<?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>230853</bug_id>
          
          <creation_ts>2021-09-27 12:24:31 -0700</creation_ts>
          <short_desc>Build-time optimization: forward declare more things in MediaPlayer.h and HTMLMediaElement.h</short_desc>
          <delta_ts>2021-09-29 11:20:24 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mkwst</cc>
    
    <cc>pdr</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797590</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-27 12:24:31 -0700</bug_when>
    <thetext>Build-time optimization: forward declare more things in MediaPlayer.h and HTMLMediaElement.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797594</commentid>
    <comment_count>1</comment_count>
      <attachid>439379</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-27 12:33:18 -0700</bug_when>
    <thetext>Created attachment 439379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797670</commentid>
    <comment_count>2</comment_count>
      <attachid>439401</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-27 15:29:06 -0700</bug_when>
    <thetext>Created attachment 439401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797684</commentid>
    <comment_count>3</comment_count>
      <attachid>439401</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-09-27 15:58:29 -0700</bug_when>
    <thetext>Comment on attachment 439401
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/ChangeLog:73
&gt; +        * html/track/VideoTrackClient.h: Copied from Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp.

Nit: you should probably remove the auto-generated &quot;Copied from Source/WebCore/Modules...&quot; message as it isn&apos;t helpful.

&gt; Source/WebCore/ChangeLog:85
&gt; +        * platform/graphics/AudioTrackPrivateClient.h: Copied from Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp.

Ditto.

&gt; Source/WebCore/ChangeLog:94
&gt; +        * platform/graphics/TrackPrivateBaseClient.h: Copied from Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp.

Ditto.

&gt; Source/WebCore/ChangeLog:98
&gt; +        * platform/graphics/VideoTrackPrivateClient.h: Copied from Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.cpp.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797688</commentid>
    <comment_count>4</comment_count>
      <attachid>439408</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-27 16:04:32 -0700</bug_when>
    <thetext>Created attachment 439408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797710</commentid>
    <comment_count>5</comment_count>
      <attachid>439417</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-27 16:46:20 -0700</bug_when>
    <thetext>Created attachment 439417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797963</commentid>
    <comment_count>6</comment_count>
      <attachid>439497</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-28 11:16:39 -0700</bug_when>
    <thetext>Created attachment 439497
Patch

Reverted the change to RefPtr, as other compilers still throw errors for &quot;RefPtr&lt;Foo&gt; foo() { return nullptr ; }&quot; when Foo is forward-declared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798063</commentid>
    <comment_count>7</comment_count>
      <attachid>439527</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-28 15:06:39 -0700</bug_when>
    <thetext>Created attachment 439527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798385</commentid>
    <comment_count>8</comment_count>
      <attachid>439613</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-29 09:28:24 -0700</bug_when>
    <thetext>Created attachment 439613
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798388</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 09:29:22 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 439613 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798434</commentid>
    <comment_count>10</comment_count>
      <attachid>439622</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-09-29 10:34:15 -0700</bug_when>
    <thetext>Created attachment 439622
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798466</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 11:19:55 -0700</bug_when>
    <thetext>Committed r283237 (242279@main): &lt;https://commits.webkit.org/242279@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439622.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798467</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 11:20:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/83680121&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439379</attachid>
            <date>2021-09-27 12:33:18 -0700</date>
            <delta_ts>2021-09-27 16:08:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210927123317.patch</filename>
            <type>text/plain</type>
            <size>69977</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZiYzllZGFjNzhlZGY5Y2ZjMjg1YWVh
NWZkOWU3YThkOGEyYWFlNWQuLmE1MmQzY2IyNTU2ZWE0MDBiYTdhOGEzZWNkMTdlNTk5MjcwNWZm
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQnVpbGQtdGltZSBvcHRpbWl6YXRpb246IGZvcndhcmQg
ZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oIGFuZCBIVE1MTWVkaWFFbGVtZW50
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
YSBjb25zdGV4cHIgY29uc3RydWN0b3IgZm9yIFJlZlB0ciB3aGVuIGdpdmVuIGEgbnVsbHB0cl90
OyB0aGlzIGFsbG93cworICAgICAgICBkZWNsYXJhdGlvbnMgb2YgUmVmUHRyPFR5cGU+IGZvciBm
b3J3YXJkLWRlY2xhcmVkIFR5cGUgcG9zc2libGUgdG8gaW5pdGlhbGl6ZQorICAgICAgICB3aXRo
IGEgbnVsbHB0ciwgd2l0aG91dCByZXF1aXJpbmcgdGhlIGZ1bGwgZGVmaW5pdGlvbiBvZiBUeXBl
LgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OlJlZlB0
cik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZl
YXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0MWE4YTBkOTA2MGJmODQxODkwODJjMDJjYWE4NmFkYTYwYTAx
NzE2Li5hMDg3MjQ1MWViNDIxYmU2ODk1NDU0NjljYWNiZGUxOGI5MzljNWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTE0IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkLWRl
Y2xhcmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCwgYW5kIGJyZWFrIGFwYXJ0ICpUcmFj
a1ByaXZhdGVDbGllbnQgaW50byBpdHMKKyAgICAgICAgb3duIGZpbGUsIHNvIHRoYXQgY2xpZW50
cyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSBjbGFzcydzIGZpbGUuIFRoaXMgcmVx
dWlyZXMKKyAgICAgICAgb3RoZXIgY2xhc3NlcyB3aG8gZ290IHRob3NlIGluY2x1ZGVzICJmb3Ig
ZnJlZSIgcHJldmlvdXNseSB0byBleHBsaWNpdGx5IGluY2x1ZGUgaGVhZGVycyBpbgorICAgICAg
ICB0aGVpciBzb3VyY2UgZmlsZXMuCisKKyAgICAgICAgVGhlIGNoYW5nZSB0byBSZWZQdHIgdG8g
YWxsb3cgY29uc3RleHByIGNvbnN0cnVjdGlvbiBmcm9tIG51bGxwdHIgY2F1c2VkICJhbWJpZ3Vv
dXMgY2FzdCIKKyAgICAgICAgZXJyb3JzIGV2ZXJ5d2hlcmUgIjAiIHdhcyB1c2VkIGluc3RlYWQg
b2YgbnVsbHB0ciB0byBpbml0aWFsaXplIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9k
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibGVuZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2lj
U2hhcGVJbnNldCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0
ZU5vZGVOUyk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2Up
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2
ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlz
dGlmeVBhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
Q2xpZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0Ns
aWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFja0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tJZENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0tpbmRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50
Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6flZp
ZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFu
Z2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVv
VHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJl
bENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFj
a0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tD
bGllbnQ6OndpbGxSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6OmNs
ZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2VDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5j
cHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJl
cGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OlJl
bmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6
ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFy
c2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwg
RmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjk3YTRjYzU5NzJkNTRkYmQ4ZWM0YzE1NWU3YzRiZDcwN2Zk
ZTY2Li4xZGFmZjEzMmE3NTI5NGI0OTA3OWU0MWQzNGZjNjMzMjUyYjNkMzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUg
bW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFdlYWtQ
dHIgYmFzZWQgY2xpZW50IHNldHRlcnMgb24gVHJhY2tQcml2YXRlcy4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRU
cmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3Rl
VmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlv
U2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA4NTZk
NzljNzY4MGU5YzEwYjkxOWNhZjBlNzIzODgxOWI2ZGY3NjI1Li41NzIwZDM2MzJmMWI0ZDU5OGFl
YTA1MmZhZDFkYjY4Zjk4OTFjYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUgbW9yZSB0aGluZ3Mg
aW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbnVsbHB0ciByYXRoZXIgdGhhbiB6
ZXJvIGZvciBudWxsIHZhbHVlcy4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGwpOgorCiAyMDIxLTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIo
dGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvUmVmUHRyLmgKaW5kZXggYTY1OTJmZThmMjhkMDcwMGE5ZDA0OTY1OGFkMThjZGEyYWQxNjYx
NC4uMGFlYzEwYzNkZTYwNjVhYjEwZDVlOTQwNTMxM2IzMjVlNTNhMzRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1JlZlB0
ciA9IHRydWU7CiAKICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBSZWZQdHIoKSA6IG1fcHRy
KG51bGxwdHIpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgY29uc3RleHByIFJlZlB0cihzdGQ6Om51
bGxwdHJfdCkgOiBtX3B0cihudWxscHRyKSB7IH0KICAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cihU
KiBwdHIpIDogbV9wdHIocHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwocHRyKTsg
fQogICAgIEFMV0FZU19JTkxJTkUgUmVmUHRyKGNvbnN0IFJlZlB0ciYgbykgOiBtX3B0cihvLm1f
cHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwoUHRyVHJhaXRzOjp1bndyYXAobV9w
dHIpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5cGVuYW1lIFo+
IFJlZlB0cihjb25zdCBSZWZQdHI8WCwgWSwgWj4mIG8pIDogbV9wdHIoby5nZXQoKSkgeyBSZWZE
ZXJlZlRyYWl0czo6cmVmSWZOb3ROdWxsKFB0clRyYWl0czo6dW53cmFwKG1fcHRyKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xl
Z2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCmluZGV4IDNhOGMw
MGY1MjMxZjUyYTZlODlkMTgzZDE1MTFjM2FjODc3M2ExZmUuLjE3ZDRmYjcyNzQwZDZlMWMzZGY2
ZmU2Zjc2ODc1YjRjOTRiMjNiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeUNETVNl
c3Npb25DbGVhcktleS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGFiZTkyMTBmZDY1ODIwOTNiMDE3MWE4MWM2
YzEzYWIzMWU2ZjRiOGIuLjBmZGJmOWY4MDQxNzZlMDY0MThiZTVlMDVmODg1YmVhOTlkMTM5OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDhkODA3ZmMyNDA5MGU4
MGY1YmNmZjNhM2ExYzhiMmJjNzExMGE3OTQuLmY4NmQ2YzFkZTM3ZTc2YmZmZjlhZmNlOTYyZjA3
YjBmYjk3N2Q1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZl
clNvdXJjZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpA
QCAtNDksNyArNTEsOSBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZp
ZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1ZNLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaAppbmRleCBhNzIzM2QyMWUwODFhYTRhOGQ4NDI1NGIyOTNhNzMyZjY4NDEz
ZThjLi43MmVkYzUwYjM1YTRjNzFkNDg1NDJmMThjMzU5NDQwMTEyOTU4YmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTM0
LDE0ICszNCwxNCBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVkZSAiQXVkaW9U
cmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFjay5oIgorI2luY2x1ZGUgIlZpZGVvVHJh
Y2tDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2Ny
aXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IGM0YWRhNzJlYmZmZDVlYzYzOTYyYjE3YzA3MDA4
NDFlOWE5NTBlZDkuLjEyNDc4YjA2MzE0MjhmOGU4NTQ4ZWZiZjQ4ZmY2OTRkMGQ5ODJiZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcApAQCAtODksOCArODksOCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6
OmluaXRpYWxpemUoKQogICAgIC8vIFRoZXNlIEF1ZGlvQnVmZmVycyB3aWxsIGJlIGRpcmVjdGx5
IGFjY2Vzc2VkIGluIHRoZSBtYWluIHRocmVhZCBieSBKYXZhU2NyaXB0LgogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBidWZmZXJDb3VudDsgKytpKSB7CiAgICAgICAgIC8vIFdlIHByZXZl
bnQgZGV0YWNoaW5nIHRoZSBBdWRpb0J1ZmZlcnMgaGVyZSBzaW5jZSB3ZSBwYXNzIHRob3NlIHRv
IEpTIGFuZCByZXVzZSB0aGVtLgotICAgICAgICBtX2lucHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0ZShtX251bWJlck9mSW5wdXRDaGFu
bmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVu
dERldGFjaGluZzo6WWVzKSA6IDA7Ci0gICAgICAgIG1fb3V0cHV0QnVmZmVyc1tpXSA9IG1fbnVt
YmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1
dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQ
cmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsKKyAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBt
X251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklu
cHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2Fj
eVByZXZlbnREZXRhY2hpbmc6OlllcykgOiBudWxscHRyOworICAgICAgICBtX291dHB1dEJ1ZmZl
cnNbaV0gPSBtX251bWJlck9mT3V0cHV0Q2hhbm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1f
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1
ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IG51bGxwdHI7CiAgICAgfQogCiAg
ICAgQXVkaW9Ob2RlOjppbml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjVjMTE0NjYyZGJkYjM0ODhlZmJiZDkz
OTExMGFkMzBhZjViYzE4Zi4uMTU4YTgyZTY2YmM4ZmY4Njg5MDI4NDVmOGQwNzE2NmIwNDljMmY4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDM3MCw2ICs0MzcwLDExIEBACiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAv
KiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3Mzk3
MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNEMTlGRUFFMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURl
Y29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE0
MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTIyNzAyMzVGNzAwNjE3
RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDFGOUIxNTI3MDIzNjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlDRDFGOUIxODI3MDIzQTJBMDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTcyNzAyM0Ey
OTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVk
aW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxQzI3
MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2
IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDIyNUMwQjFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29y
ZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMjI1QzA5MUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1t
ICovOyB9OwogCQlDRDIyNUMwQzFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVD
MEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDI3QUU1MDIyQTk4Njg3MDA5
NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FFNEUyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdl
Um90YXRpb25TZXNzaW9uVlQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTQ5NjIsNiArMTQ5NjcsMTEgQEAKIAkJQ0QxOUZFQUMxRjU3NEI2RDAw
MEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNv
ZGVyQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RkVBRDFGNTc0
QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEltYWdlRGVjb2RlckFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjEyMjcwMjM1Rjcw
MDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDFGOUIxNTI3MDIzNjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxRjlCMTcyNzAy
M0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9UcmFja0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDFGOUIxOTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1RyYWNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYx
IC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDIyNUMwQTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAv
KiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUm90YXRpb25T
ZXNzaW9uVlQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MjY2LDYgKzI2Mjc2
LDcgQEAKIAkJCQlCRTg4RTBDQzE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5jcHAgKi8s
CiAJCQkJQkU4OEUwQ0QxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaCAqLywKIAkJCQlC
RTg4RTBDRTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5pZGwgKi8sCisJCQkJQ0QxRjlC
MTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLywKIAkJCQlCRTg4RTBD
RjE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFja0xpc3QuY3BwICovLAogCQkJCUJFODhFMEQw
MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlzdC5oICovLAogCQkJCUJFODhFMEQxMTcx
NUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlzdC5pZGwgKi8sCkBAIC0yNjMwOSw2ICsyNjMy
MCw3IEBACiAJCQkJQkU4OEUwRDIxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suY3BwICov
LAogCQkJCUJFODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmggKi8sCiAJCQkJ
QkU4OEUwRDQxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaWRsICovLAorCQkJCUNEMUY5
QjE3MjcwMjNBMjkwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggKi8sCiAJCQkJQkU4OEUw
RDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCAqLywKIAkJCQlCRTg4RTBE
NjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaCAqLywKIAkJCQlCRTg4RTBENzE3
MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaWRsICovLApAQCAtMjY5MDcsNiArMjY5
MTksNyBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBBbmltYXRpb25GcmFtZVJh
dGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRpb25GcmFt
ZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9UcmFja1By
aXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxNTI3MDIzNjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaCAqLywKIAkJCQkyREQ4NzE0NzI2NUY0MzY0MDA1Rjk5N0MgLyogQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJMkREODcxNDkyNjVGNDM2NTAwNUY5OTdD
IC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlBODk5NDMyNzBCNDIzMzg3
MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLApAQCAtMjcxNTUsMTIgKzI3MTY4LDE0IEBA
CiAJCQkJMUFGODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oICovLAogCQkJ
CTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCAqLywKIAkJ
CQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oICovLAorCQkJ
CUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggKi8s
CiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXppZXIuaCAqLywKIAkJCQkw
RjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFB
MEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCiAJCQkJMURBQjMxMTMy
NTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc1MDMzQTYy
NTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oICovLAogCQkJ
CUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAorCQkJ
CUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oICov
LAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAog
CQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKIAkJCQkx
NDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLApAQCAtMzE0ODksMTEg
KzMxNTA0LDEzIEBACiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWlu
Z0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzAwNUY5RDI0RUIxRDQwMDA0ODBGOUIg
LyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEQ5MTcxNUQyQTIw
MDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxQTI3MDIz
QTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4
OEUwREMxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFja01lZGlhU291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRUYyOUVFQjE3MTVERDA5MDBDNEI0QzkgLyogQXVkaW9UcmFj
a1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNBODU0MTdGNUZDRTYwMEM1QkUyMCAv
KiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFM0E4NTgxN0Y2
MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDU0QTc2MzE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RDZB
NEY4MUJGMjMwN0QwMDE3NDE0NiAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNjA4QjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1NzYsNiArMzU1OTMsNyBAQAogCQkJCTA3MDMzNEQ3
MTQ1OUZGRDUwMDhEOEQ0NSAvKiBUcmFja0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhF
MEMyMTcxNUNFMjYwMDY1OEQ5OCAvKiBUcmFja0xpc3RCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCRTkxM0Q4MDE4MUVGOTI0MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGQUMzMEZFMTg0RkIxNDUwMDhDNEYxRSAvKiBU
cmFpbGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERC
QzRGMiAvKiBUcmFuc2FjdGlvbk9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVG
NDEyNTc5OUZEOTAwNjU2M0JCIC8qIFRyYW5zZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApA
QCAtMzU2NjksMTEgKzM1Njg3LDEzIEBACiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8q
IFZpZGVvUHJlc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM5MzlBODFFOUJERkIxMDBCQjc2
OEQgLyogVmlkZW9Ub29sYm94U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERG
MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFG
OUIxODI3MDIzQTJBMDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkU4OEUwRTIxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlh
U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRUYyOUVFQzE3MTVERDA5MDBDNEI0QzkgLyog
VmlkZW9UcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMzM2RjY0MTdGQTBBNEQw
MERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Qz
MzZGNjgxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0QxRjlCMTQyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhCNUE0MzE4MEQxNDlBMDA4QjhFNjUg
LyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3MEU4MUQxMUJGMjc2NTYwMDFGREE0OCAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUY0MThDRjExNzk2NzhDMDA5RDExMkMgLyogVmll
d3BvcnRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggY2JlNTNiYjU0Mzg5NjY2ZDJm
ZGFkNDIyN2YyOTY0ZTQ5ZDU4NWVhNy4uNzIzNGZlZDE5Y2ZjOGI2YTk4ZTcxMjhkYjE5MGY1NzZl
ZjdjMzRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlB
bmltYXRpb24uY3BwCkBAIC0zMTUsOSArMzE1LDkgQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVy
YXRpb25zIGJsZW5kRmlsdGVyT3BlcmF0aW9ucyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm8K
ICAgICBzaXplX3QgdG9TaXplID0gdG8ub3BlcmF0aW9ucygpLnNpemUoKTsKICAgICBzaXplX3Qg
c2l6ZSA9IHN0ZDo6bWF4KGZyb21TaXplLCB0b1NpemUpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21P
cCA9IChpIDwgZnJvbVNpemUpID8gZnJvbS5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwotICAg
ICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3Bl
cmF0aW9ucygpW2ldLmdldCgpIDogMDsKLSAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4g
YmxlbmRlZE9wID0gdG9PcCA/IGJsZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCksIGNv
bnRleHQpIDogKGZyb21PcCA/IGJsZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQsIHRy
dWUpIDogMCk7CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21PcCA9IChpIDwg
ZnJvbVNpemUpID8gZnJvbS5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRyOworICAgICAg
ICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3BlcmF0
aW9ucygpW2ldLmdldCgpIDogbnVsbHB0cjsKKyAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4gYmxlbmRlZE9wID0gdG9PcCA/IGJsZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCks
IGNvbnRleHQpIDogKGZyb21PcCA/IGJsZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQs
IHRydWUpIDogbnVsbHB0cik7CiAgICAgICAgIGlmIChibGVuZGVkT3ApCiAgICAgICAgICAgICBy
ZXN1bHQub3BlcmF0aW9ucygpLmFwcGVuZChibGVuZGVkT3ApOwogICAgICAgICBlbHNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXgg
Mzg3NzdjZjJhOTc4YzdhNmUyZGI1OTFkNWM1ZmY1MmMyNjU3ZWI5NS4uZWVmOWU4ZmU5MjQ4MGM0
ZmUwYTdkOWRkMzZlNDBhY2Y4NWM2ZmU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTI2NzEsOCArMjY3MSw4IEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTQmFzaWNTaGFwZUluc2V0PiBjb25zdW1lQmFzaWNTaGFwZUluc2V0KENTU1BhcnNl
clRva2VuUmFuZ2UmIGFyCiAgICAgICAgIHNoYXBlLT51cGRhdGVTaGFwZVNpemUxVmFsdWUodG9w
LnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgaWYgKGNvbnN1bWVJZGVudDxDU1NWYWx1ZVJvdW5k
PihhcmdzKSkgewotICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGhvcml6b250YWxS
YWRpaVs0XSA9IHsgMCB9OwotICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRp
Y2FsUmFkaWlbNF0gPSB7IDAgfTsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBo
b3Jpem9udGFsUmFkaWlbNF0gPSB7IG51bGxwdHIgfTsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiB2ZXJ0aWNhbFJhZGlpWzRdID0geyBudWxscHRyIH07CiAgICAgICAgIGlmICgh
Y29uc3VtZVJhZGlpKGhvcml6b250YWxSYWRpaSwgdmVydGljYWxSYWRpaSwgYXJncywgY29udGV4
dC5tb2RlLCBmYWxzZSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgc2hh
cGUtPnNldFRvcExlZnRSYWRpdXMoY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKGhvcml6b250YWxS
YWRpaVswXS5yZWxlYXNlTm9uTnVsbCgpLCB2ZXJ0aWNhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxs
KCksIFBhaXI6OklkZW50aWNhbFZhbHVlRW5jb2Rpbmc6OkNvYWxlc2NlKSk7CkBAIC0yODgxLDcg
KzI4ODEsNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VSZXBl
YXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBj
b25zdW1lQm9yZGVySW1hZ2VTbGljZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSkKIHsKICAgICBib29sIGZpbGwgPSBjb25zdW1lSWRlbnQ8Q1NTVmFs
dWVGaWxsPihyYW5nZSk7Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZXNbNF0g
PSB7IDAgfTsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNsaWNlc1s0XSA9IHsgbnVs
bHB0ciB9OwogCiAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgp
IHsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZSA9IGNvbnN1bWVQZXJj
ZW50KHJhbmdlLCBWYWx1ZVJhbmdlOjpOb25OZWdhdGl2ZSk7CkBAIC0yOTE4LDcgKzI5MTgsNyBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VTbGljZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5LCBDU1NQYXJzZQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25z
dW1lQm9yZGVySW1hZ2VPdXRzZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7Ci0gICAg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBvdXRzZXRzWzRdID0geyAwIH07CisgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBvdXRzZXRzWzRdID0geyBudWxscHRyIH07CiAKICAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlOwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsg
aW5kZXggPCA0OyArK2luZGV4KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2YwM2I4ZDU0
NzlmMGY5ODY1Y2JlZGYyZTM5OTcxY2ZhZmY3N2ZhMC4uODM1NGYzMDZhN2RlMGI0NWIxYzJkN2Vh
OWIyNTJhZGFmODk2NzI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjk5NSwxMiArMjk5
NSwxMiBAQCBSZWZQdHI8QXR0cj4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTm9kZShjb25zdCBBdG9t
U3RyaW5nJiBxdWFsaWZpZWROYW1lKQogUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmdldEF0dHJpYnV0
ZU5vZGVOUyhjb25zdCBBdG9tU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21TdHJpbmcm
IGxvY2FsTmFtZSkKIHsKICAgICBpZiAoIWVsZW1lbnREYXRhKCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBRdWFsaWZpZWROYW1lIHFOYW1lKG51bGxB
dG9tKCksIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKTsKICAgICBzeW5jaHJvbml6ZUF0dHJpYnV0
ZShxTmFtZSk7CiAgICAgY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBlbGVtZW50RGF0YSgp
LT5maW5kQXR0cmlidXRlQnlOYW1lKHFOYW1lKTsKICAgICBpZiAoIWF0dHJpYnV0ZSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBlbnN1cmVB
dHRyKGF0dHJpYnV0ZS0+bmFtZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDU1YjZkMzhlOTQ5YmQ0YTEyNTQ4YmVhYzEzY2U1
YWE5ZjE2NTY3OTguLmJiNGJjMTM2ZjdmMWE0YjlkNDVlOTZlNjAyZGM3YzMwM2YyZTlmY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTQ1
MCw3ICs0NTAsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydFVuaGFuZGxl
ZFByb21pc2VSZWplY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdAogCiB2b2lkIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpK
U0dsb2JhbE9iamVjdCogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7
Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgMCwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBudWxscHRyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBi
b29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMLCBKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uLCBDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKaW5kZXggZDY4ODkwYjgz
YjgzMjkwOWVmMWFmZmJhOGE5NzA1MWMzOTBmYTU2OS4uMjU1M2EwYzczMmRkMjkyOTQzYmI3MzFl
Nzk3NDFlMTBhNmY2NDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKQEAgLTQ4LDcgKzQ4
LDcgQEAgUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGUoUmVmUHRyPFdpbmRvd1Byb3h5
PiYmIHZpZXcsIGNvbnN0IFN0cmluZyYgZGF0YSwKIAogUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50
OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgY29u
c3QgU3RyaW5nJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQoV1RGTW92ZSh2aWV3KSwgZGF0YSwgMCwgc2hvdWxkU21h
cnRSZXBsYWNlLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVv
dGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQoV1RGTW92ZSh2aWV3KSwg
ZGF0YSwgbnVsbHB0ciwgc2hvdWxkU21hcnRSZXBsYWNlLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVI
YW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpKTsKIH0KIAogUmVmPFRleHRFdmVudD4gVGV4dEV2
ZW50OjpjcmVhdGVGb3JGcmFnbWVudFBhc3RlKFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4mJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwg
Ym9vbCBzaG91bGRNYXRjaFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1
b3RlSGFuZGxpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExp
c3RDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQu
Y3BwCmluZGV4IDg4MzczY2I0ZDYzMmYzYTk2MmQ3NTdlZDE3Y2M0ZDZhOWFjNmFmN2UuLjNiNTFi
NmFiYzQxNjA5YmEwYmMzNzUzZWY3OGIyZGM0NmU0MDFhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCkBAIC0zNjQsNyArMzY0LDcgQEAgUmVmUHRy
PEhUTUxFbGVtZW50PiBJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBW
aXNpYmxlUG9zaXRpb24mIG8KICAgICBWaXNpYmxlUG9zaXRpb24gZW5kID0gZW5kT2ZQYXJhZ3Jh
cGgoc3RhcnQsIENhblNraXBPdmVyRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAKICAgICBpZiAoc3Rh
cnQuaXNOdWxsKCkgfHwgZW5kLmlzTnVsbCgpIHx8ICFzdGFydC5kZWVwRXF1aXZhbGVudCgpLmNv
bnRhaW5lck5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFlbmQuZGVlcEVxdWl2YWxlbnQo
KS5jb250YWluZXJOb2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2hlY2sgZm9yIGFkam9pbmluZyBs
aXN0cy4KICAgICBhdXRvIGxpc3RJdGVtRWxlbWVudCA9IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKQEAgLTQwNSw3ICs0MDUsNyBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2Vy
dExpc3RDb21tYW5kOjpsaXN0aWZ5UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwog
ICAgICAgICAgICAgaW5zZXJ0aW9uUG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUobGlz
dENoaWxkLmdldCgpKTsKIAogICAgICAgICBpZiAoIWlzRWRpdGFibGVQb3NpdGlvbihpbnNlcnRp
b25Qb3MpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgICAgICBpbnNlcnROb2RlQXQoKmxpc3RFbGVtZW50LCBpbnNlcnRpb25Qb3MpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOGM5NzEyYWFm
Nzk0ZTYzZDJhOGEwN2IwYTA4YzkwMjc3ZDJmYWJkLi4xOThiOGUwMjEwZTNjYjRlZWY1NTlkZWU3
YzIzNjEzNTk2ZDZkMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgor
I2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1
ZGUgIkJsb2JVUkwuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCkBAIC04Nyw2ICs4
OCw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVy
ZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgogI2luY2x1ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCkBA
IC0xMTEsNyArMTEzLDkgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tR
dWFsaXR5LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tM
aXN0LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OEFy
cmF5Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCBhZDA5ZTdiZTFlMjMwZGZlNmJjNzk5NWI1ZjUzZDc1NzRjODgxYjNmLi5jMjdl
YTRkY2M1MjlkMmM4ZTM2Y2YyMDQ0MDkzYmJhYjI1ZDJjNjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShWSURFTykK
IAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIK
KyNpbmNsdWRlICJBdWRpb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiQXV0b3BsYXlFdmVudC5o
IgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgpAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNp
bmNsdWRlICJNZWRpYVVuaXF1ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJUZXh0VHJhY2suaCIK
LSNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgog
I2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmNwcAppbmRleCAzY2I3MThkM2RjMjdlNTgzYjVhNWRmMTA5M2EwMzY1
MjdjMDJlY2I1Li45ODE1NTY4YWU0ZTFlYzY2ODBkMjc5MzEzODEwNmFhNjQ1ZjU1OTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAi
QXVkaW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogCiAjaWYg
RU5BQkxFKFZJREVPKQogCkBAIC04MCwxMyArODEsMTMgQEAgQXVkaW9UcmFjazo6QXVkaW9UcmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJh
Y2sKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX2VuYWJsZWQodHJhY2tQ
cml2YXRlLmVuYWJsZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAg
ICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRl
KCk7CiB9CiAKIEF1ZGlvVHJhY2s6On5BdWRpb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIHZv
aWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQpAQCAtOTQsMTAgKzk1LDEwIEBAIHZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1Ry
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRy
YWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
bnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogICAgIG1fcHJpdmF0ZSA9
IHRyYWNrUHJpdmF0ZTsKICAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9lbmFibGVkKTsKLSAg
ICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgq
dGhpcyk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9wcml2YXRlLT5zZXRMb2dn
ZXIobG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmgKaW5kZXggMzc1MTBhOGNkMmY4ZjQwMTUzNTg5MjVkZjk5ZGFlYzk4
ZjE5NjA1Yy4uYTMzNzcwNTM4OWU5ODYyYmJmOGNmZjE0Y2NlY2M4Zjk0NmIxZjI3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTI4LDI2ICsyOCwxNSBAQAogCiAj
aWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKKyNpbmNs
dWRlICJBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgog
I2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEF1ZGlvVHJhY2s7CitjbGFzcyBBdWRpb1RyYWNrQ2xpZW50OwogY2xhc3MgQXVkaW9UcmFj
a0xpc3Q7CiAKLWNsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
QXVkaW9UcmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tDbGll
bnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdl
ZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENoYW5nZWQo
QXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENoYW5nZWQo
QXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxDaGFuZ2Vk
KEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1YWdlQ2hh
bmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVBdWRpb1Ry
YWNrKEF1ZGlvVHJhY2smKSB7IH0KLX07Ci0KIGNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBwdWJs
aWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYzdk
YjQ0MjcwNDFmYzRjMjBjMjg2NjFmYjNmMzAxMWU0Y2NmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1
ZGlvVHJhY2s7CisKK2NsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8QXVkaW9UcmFja0NsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tD
bGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxDaGFu
Z2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1YWdl
Q2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVBdWRp
b1RyYWNrKEF1ZGlvVHJhY2smKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXggYzZmZWEzNWVkMzhiMDQ4
NjAzZDJjZTgxZGZhYmIwMjYxODg0MjBlZC4uZDQ1OTY5ZmJmYzc3ZGU5N2UwN2Y3YmE4ZDk5NzZh
ODI0ZThlNzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRU
ZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRy
YWNrLmNwcApAQCAtNTgsMTMgKzU4LDEzIEBAIEluYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRy
YWNrKERvY3VtZW50JiBkb2N1bWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhCiAgICAg
OiBUZXh0VHJhY2soJmRvY3VtZW50LCBlbXB0eUF0b20oKSwgdHJhY2tQcml2YXRlLmlkKCksIHRy
YWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAg
ICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0
aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZy
b21Qcml2YXRlKCk7CiB9CiAKIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygpCiB7
Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVh
ckNsaWVudCgpOwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCkBAIC03Miw5ICs3Miw5IEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJp
dmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJp
dmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7Ci0gICAg
bV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRo
aXMpOwogCiAgICAgc2V0TW9kZUludGVybmFsKG1vZGUoKSk7CiAgICAgdXBkYXRlS2luZEZyb21Q
cml2YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA5
N2YwMWFjYzY1OWEwZGMwZTUxZDBlZTE4ZDAzNjQwMzYxOWFjZjQwLi42NGRlNDdiZTIyMTY4ODUx
YTJjZmZmOTMxN2FlMTc0ZTc3NTdjYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNs
dWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQpAQCAtODQsMTMgKzg1LDEzIEBAIFZpZGVvVHJhY2s6OlZpZGVvVHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrCiAgICAgLCBtX3By
aXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0
ZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUt
PnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIFZp
ZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxs
cHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIHZvaWQgVmlkZW9UcmFj
azo6c2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtOTgsOSAr
OTksOSBAQCB2b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAg
IG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7
Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGll
bnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcHJpdmF0ZS0+c2V0
TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IGVmODQ4OGU3YjU5ODFmMTMxNzIyYmZiZDY3NmQ2
ZjRiMTZkZjUxYTYuLjhkNmY4OGNmYmZlOTIyMTA1ZjIwNzExZDViN2VlYjM2NWVmOWU2ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC0yOSwyNSArMjksMTYgQEAK
ICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKLSNpbmNsdWRlICJW
aWRlb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmgi
CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgTWVkaWFEZXNjcmlwdGlvbjsKIGNsYXNzIFZpZGVvVHJhY2s7CitjbGFzcyBWaWRlb1Ry
YWNrQ2xpZW50OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7Ci0KLWNsYXNzIFZpZGVvVHJhY2tDbGll
bnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VmlkZW9UcmFja0NsaWVudD4gewotcHVibGljOgot
ICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2
b2lkIHZpZGVvVHJhY2tJZENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB2aWRlb1RyYWNrS2luZENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgdmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFjayhWaWRlb1RyYWNrJikgeyB9Ci19OworY2xh
c3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIGNsYXNzIFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMg
TWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgewogcHVibGlj
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwKaW5kZXggMmM2MGIyYjJl
NzA2NTMzODhkOWE0ZWNjMDAzOWEzMmYzNjYwYjJjOC4uOTkxMzY3MzYxZWFlYjJmY2Y0OTRhZDE5
ZmZkN2E1MDA1NDVkMGYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
aWRsCkBAIC0zNCw0ICszNCw1IEBACiAgICAgW1NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZT1NZWRpYVNvdXJjZV0gYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsKIAogICAgIGF0dHJp
YnV0ZSBib29sZWFuIHNlbGVjdGVkOworCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2tDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDVjODc2ZDdkN2I5NjQ3NjNlNzc2NDhl
OWYzOWRhNWZhMTljOGZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrQ2xpZW50LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb1RyYWNrOworCitjbGFzcyBW
aWRlb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpZGVvVHJhY2tDbGllbnQ+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRlb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0Owor
ICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrSWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0tpbmRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhYmVsQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQoVmlkZW9UcmFjayYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZpZGVvVHJhY2soVmlkZW9UcmFjayYp
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAppbmRleCA1NTNhMWNmZDc5ZTIwMTkzNjZm
M2VjMzcwYzgzYzk4MzhkMzExOTczLi5iZTVhNzBkZWVmNDczMTNmZWFiOGE4ZjdlNDAzNGEwMTg0
MTE3NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAt
MTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uCiAgICAgaWYgKGRvY3VtZW50
KQogICAgICAgICBkb2N1bWVudC0+Z2V0UGFyc2VyTG9jYXRpb24odXJsLCBsaW5lLCBjb2x1bW4p
OwogCi0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNv
bHVtbiwgMCwgSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7
CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVt
biwgbnVsbHB0ciwgSlNFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8
U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGE5ZjgzNmJkMTE3M2Uy
MmUwYWU4MTRhMTc1NDJhYTIzYTQ2MTVhNGUuLmM1MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkxMWEw
NDljZTc5NGI0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tQ
cml2YXRlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCkBAIC0zMiwxMyArMzMs
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwot
Ci1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkg
PSAwOwotfTsKLQogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRl
QmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRl
KCkKQEAgLTQ2LDggKzQwLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBBdWRpb1RyYWNrUHJpdmF0ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDbGllbnQoQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQotICAgIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2NsaWVudDsgfQorICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBj
bGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVh
ckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgewpAQCAt
NzgsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1
bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsg
bnVsbHB0ciB9OworICAgIFdlYWtQdHI8QXVkaW9UcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50
OwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKICAgICBFbmFibGVkQ2hhbmdlZENhbGxi
YWNrIG1fZW5hYmxlZENoYW5nZWRDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2NjNlMDc1YTk0NGU4MzZkY2Q4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklE
RU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CisK
K2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VD
bGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSA9
IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCmluZGV4IDBiNGQ5Y2ZlNjdj
ZTk1N2E3Yjk3MzI3OTY2MDZiMGFkMjZmZTE3OGQuLmRjYzMyNmE1M2MwMzFlZDRmZjM0YzE1YjM2
MzcwNDZhOGQyYjljMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKQEAgLTQxLDggKzQxLDkgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gY3JlYXRlKEN1ZUZv
cm1hdCBmb3JtYXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZShmb3JtYXQpKTsgfQogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKLSAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsgfQotICAgIHZvaWQgc2V0Q2xpZW50KEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQor
ICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xp
ZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
CiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7CiAgICAgICAgIERpc2FibGVkLApAQCAt
ODgsNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgQ3VlRm9ybWF0IG1fZm9y
bWF0OwotICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0
ciB9OworICAgIFdlYWtQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQg
eyBudWxscHRyIH07CiAgICAgTW9kZSBtX21vZGUgeyBNb2RlOjpEaXNhYmxlZCB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IDdhMzI2NTAzM2I5NDdiNWJlNjhjMDYyMzAyNmZmMzAxMjhjNDI4MTguLjJiZGI0YjgyNzEz
NDA1YTVkOGVkM2M0YjI1MmIzYTZhZjIwOWVkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMzLDkgKzMzLDEzIEBACiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFj
ay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xODcsNyArMTkxLDYgQEAg
cHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBtZWRpYUNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG51bGxDb250ZW50VHlwZVZlY3RvcigpOyB9CiB9OwogCi0KIGNvbnN0IFZlY3RvcjxDb250ZW50
VHlwZT4mIE1lZGlhUGxheWVyQ2xpZW50OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCgpIGNvbnN0CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxD
b250ZW50VHlwZT4+IGNvbnRlbnRUeXBlczsKQEAgLTQxMiw2ICs0MTUsNyBAQCBNZWRpYVBsYXll
cjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50
KCZjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9h
ZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlPih0aGlzKSkKKyAgICAsIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWlj
UmFuZ2VNb2RlOjpTdGFuZGFyZCkKIHsKIH0KIApAQCAtNDIwLDYgKzQyNCw3IEBAIE1lZGlhUGxh
eWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50LCBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6
OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQ
bGF5ZXJQcml2YXRlPih0aGlzKSkKICAgICAsIG1fYWN0aXZlRW5naW5lSWRlbnRpZmllcihtZWRp
YUVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHlu
YW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGUwYjg2ZDhlNmU2YTk5ZjViMDZiNmI2
ZmNhOWEyODZkM2M0NDc4OTAuLjUwMGM4MjNiZjRiMzg2MzAxMTJhNGZkN2RhNTdhZjUyNDA4YTE2
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMjcsMjQgKzI3LDE3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAi
Q29va2llLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgotI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVk
ZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNl
c3Npb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgotI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luSGFzaC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNTYsMTAgKzQ5LDYgQEAK
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KIAotI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0jaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJh
Y2suaCIKLSNlbmRpZgotCiBPQkpDX0NMQVNTIEFWUGxheWVyOwogT0JKQ19DTEFTUyBOU0FycmF5
OwogCkBAIC02OSwxMyArNTgsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhl
bEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IDogdWludDhfdDsKK2VudW0gY2xhc3MgRHluYW1pY1JhbmdlTW9kZSA6IHVp
bnQ4X3Q7CisKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7CitjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZTsKIGNsYXNzIENETUluc3RhbmNlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBHcmFwaGljc0NvbnRleHRHTDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBMZWdhY3lDRE07CitjbGFzcyBMZWdhY3lDRE1T
ZXNzaW9uOwogY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDsKIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXllcjsKQEAgLTg0LDggKzc4LDEyIEBAIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3Rh
bGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
OwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBQbGF0Zm9ybVRleHRUcmFjazsKIGNs
YXNzIFBsYXRmb3JtVGltZVJhbmdlczsKIGNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOwor
Y2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7
CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtNzEzLDcgKzcxMSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2NvbnRlbnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2luaXRpYWxpemluZ01lZGlhRW5naW5lIHsgZmFsc2UgfTsKLSAgICBEeW5hbWljUmFu
Z2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0
YW5kYXJkIH07CisgICAgRHluYW1pY1JhbmdlTW9kZSBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1v
ZGU7CiAgICAgUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtIG1fcGl0Y2hDb3JyZWN0aW9uQWxnb3Jp
dGhtIHsgUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtOjpCZXN0QWxsQXJvdW5kIH07CiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0ZWI0ZTcwNjIxMTBlZmRh
MzE0YzA4MzEwYWM0NDQzOTQxNmNhMjc2Li5hOTRiMWMxOTM4ODQ5MWMwYzkwOTQ5NzNhYzNhZGJk
OWE0Yjk4NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVNhbXBsZS5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJU
aW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3
dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKaW5kZXggMjc4ZjBjNmI3MmMyODUw
OWQzMDJmNzdiNDdkNjE5MmE3MTlkMDI4My4uNmRiZTQ5NWVmYmJhZWIxMmEzNDQ2YzIxZmY5YTk0
ZTFkZTk2ODA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VHJhY2tQcml2YXRlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RyYWNrUHJpdmF0ZUJhc2UuaApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgRU5BQkxFKFZJREVP
KQogCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9M
b2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC0zNiwxNSArMzcsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewotcHVibGljOgotICAg
IHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2VDbGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVh
bCB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoKSA9IDA7Ci19OwotCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBUcmFja1ByaXZh
dGVCYXNlCiAgICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VHJhY2tQcml2YXRlQmFz
ZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjZmNGVlOWQwY2MzNWQ3NzU3NjA5Y2I5
M2NiZmIxMDk0MTZhMDAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5U
cmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBpZENo
YW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFu
Z2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hh
bmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3Zl
KCkgPSAwOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGVhNWEyOWNlYjVjZmU5ZjAy
NDI3YzVlYWRkYzE2NDI3NGNiNmQ2MDkuLjA5ZmNlOGI4NWRkZDQ2MDk0MWI0OWY3MGE5ODRkNjRk
ZWQ2ODAyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMjgsMTkgKzI4LDE2IEBACiAjaWYgRU5BQkxFKFZJREVP
KQogCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQ
cml2YXRlQmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hh
bmdlZChib29sKSA9IDA7Ci19OwotCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZSA6IHB1YmxpYyBU
cmFja1ByaXZhdGVCYXNlIHsKIHB1YmxpYzoKLSAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0gICAgVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xp
ZW50OyB9CisgICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVu
dCkgeyBtX2NsaWVudCA9IG1ha2VXZWFrUHRyKGNsaWVudCk7IH0KKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKQogICAgIHsKQEAgLTY4
LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogICAgIFZpZGVvVHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0
OwogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKKyAgICBXZWFrUHRyPFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudCB7
IG51bGxwdHIgfTsKICAgICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogICAgIFNlbGVjdGVk
Q2hhbmdlZENhbGxiYWNrIG1fc2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRl
Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg2NjI5YTdjMWMzZWE2ODhlZGFiMWEyZjQwMzQwNmJlZTJk
ZWUxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgeworcHVibGlj
OgorICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDE2ZGQwMTY4ZTRjZGQwOTliN2M4
YmMzOTI2YmQxZDA3ZWZiNTI5YzMuLmQ3MDMwZGNjMDU4ZjQ5YTVjNmQwNDM5Nzk1ZmRlZWI4YTNj
NzYyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtNTIsNiArNTIsOSBAQAogI2ltcG9y
dCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgiCiAjaW1wb3J0ICJPdXRPZkJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCisjaW1w
b3J0ICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtU2Ny
ZWVuLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2ltcG9ydCAiUGxhdGZvcm1U
aW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBv
cnQgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9h
ZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCmluZGV4IGZkMmYwZDNlZTVkMDhkZTA4MDM2
ZmFiYjE1YzJhMzQ1MDQyOGJhM2MuLmViMjQzNjVjNzFhN2IwYTJkYjljZjhlNTM0YjI2OGU3ODgy
YTlmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2ltcG9ydCAiRGF0YVVSTERlY29kZXIuaCIKICNpbXBvcnQgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlci5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW1wb3J0ICJT
aGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlVUSVV0aWxpdGllcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0
aW9uRmFjdG9yeUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKaW5kZXggYTBiYWVk
ZTg4YTc1NTY4MWVhMmE0YTE3YmEzZTZlZDNkZmRjN2Q5ZS4uOTc0OTRlZTZjNWM4YjY5OTIzNGVh
N2M5NjZkZGQxYWM2YWE0MjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNv
bmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
VlA5VXRpbGl0aWVzQ29jb2EuaCIKICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL091dHB1dENv
bnRleHQuaD4KICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCmluZGV4IGJmOWZkZTFmMzgx
OGEwMDIyMWQyNmQ5NmE5YWFlMmE4YWVmNjZkOGQuLjk0ZmY1OGNiYjhhYzM3YzU4YWQxMTc0NTQ5
OWVhNjljZmM4OTM1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIk1lZGlh
U291cmNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDk2MzE3ZGFk
NjJjNDU0NDQ3NmU5ZTIwNWU2N2JlNGNmMTMyZmQwMDguLjYwMDBlZDQ5YTQ3YTkwNjQ2MDI2ZGNm
NmFlOWEyYjBmZmVkZmRkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OmdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50
JiBhY2N1bXVsCiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3Mo
KS5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRT
aXplKDEyKTsKICAgICBmb250ID0gRm9udENhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24p
LCAwLCAwKTsKLSAgICBmb250LnVwZGF0ZSgwKTsKKyAgICBmb250LnVwZGF0ZShudWxscHRyKTsK
IAogICAgIHJ1biA9IFRleHRSdW4obV91bmF2YWlsYWJsZVBsdWdpblJlcGxhY2VtZW50VGV4dCk7
CiAgICAgdGV4dFdpZHRoID0gZm9udC53aWR0aChydW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggOGUyZGNiMDM1M2VkOTRmNjBiZDRj
NGFkY2ViMzUzYzYzYzc3Nzk0MC4uZmUxZDBiZWI2ZTkyNmMyNmIzZTFhMmI1N2UxMGE0ZDIyMDk3
NTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQu
Y3BwCkBAIC01NCw3ICs1NCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSZW5kZXJT
ZWFyY2hGaWVsZCk7CiBSZW5kZXJTZWFyY2hGaWVsZDo6UmVuZGVyU2VhcmNoRmllbGQoSFRNTElu
cHV0RWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZShlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fc2Vh
cmNoUG9wdXBJc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX3NlYXJjaFBvcHVwKDApCisgICAgLCBt
X3NlYXJjaFBvcHVwKG51bGxwdHIpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQuaXNTZWFyY2hGaWVs
ZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRl
eCAxZWU3MjE0M2Y5MDQyZjBmNzE3ZmQyNzE4NjRmYzE5NTRmNDMzMzVlLi5kMzVlZDE1MmM2ZTc0
YjgxNWRlZTdhMjU1MDI0OThlMDRjZWQ4ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCkBAIC05NjUsNyArOTY1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1h
Yzo6c2V0Rm9udEZyb21Db250cm9sU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIE5TQ29udHJvbFNp
emUgY28KICAgICBzdHlsZS5zZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhl
aWdodCgpKTsKIAogICAgIGlmIChzdHlsZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250
RGVzY3JpcHRpb24pKSkKLSAgICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoMCk7Cisg
ICAgICAgIHN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKG51bGxwdHIpOwogfQogCiBOU0NvbnRy
b2xTaXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDgyY2Y0ZDUzYWE3M2MwOWVh
MmY2ODljYmNlOWMyMjE0ZDZkMDZkNGMuLmFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJh
Mjc0Mjc3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCBSZWZQdHI8WE1MUGFy
c2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFyc2VyKHhtbFNBWEhh
bmRsZXJQdHIgaAogICAgIHhtbFBhcnNlckN0eHRQdHIgcGFyc2VyID0geG1sQ3JlYXRlTWVtb3J5
UGFyc2VyQ3R4dChjaHVuay5kYXRhKCksIGNodW5rLmxlbmd0aCgpKTsKIAogICAgIGlmICghcGFy
c2VyKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBt
ZW1jcHkocGFyc2VyLT5zYXgsIGhhbmRsZXJzLCBzaXplb2YoeG1sU0FYSGFuZGxlcikpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFj
a1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwCmluZGV4IGQ5YTZlMTRlMWMxMjJmYzI4Y2Y1ZmMxYjk3OTdkYjgxMDA4YTI4
OWQuLjZkY2RkZGI2ZjIyNjZkZTJlMThlNDE2ZTYyOGIwYWQ3MzM5MzNjZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwCkBAIC00NSwxMiArNDUsMTMgQEAgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVB
dWRpb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGkKICAgICAs
IG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlm
aWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKLSAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIG1f
Y29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIsIGNv
bmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlQXVk
aW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9UcmFja1Byb3h5KCkKIHsKKyAgICBtX3RyYWNrUHJp
dmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmlu
ZGV4IGI0MWEwMjgxZjg1OGExMjJlMGZhYTZiYjcxOTRlZTUzMGNjOWYxZjIuLjk4ZDY2MzVlOWE1
MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtNDksMTIg
KzQ5LDEzIEBAIFJlbW90ZVRleHRUcmFja1Byb3h5OjpSZW1vdGVUZXh0VHJhY2tQcm94eShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0
cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklk
ZW50aWZpZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBt
X3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OkFkZFJlbW90ZVRleHRUcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1f
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlVGV4dFRyYWNrUHJveHk6On5SZW1v
dGVUZXh0VHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7
CiB9CiAKIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVUZXh0VHJh
Y2tQcm94eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCmluZGV4IGIwOWFhYzMzNjdm
MDNhMmFmYTM3NDMwMzcxZmEwYzgzYTdjNzA5YzkuLjQ5YzQ3YTM1NTEzOGIyNWE1OWI4MzEyN2I1
ZTY5YzZjZWIyOTc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCkBAIC00NSwxMiArNDUsMTMgQEAgUmVt
b3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgY29ubmVjdGkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkK
ICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsK
LSAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQcml2YXRl
LT5zZXRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3Rl
VmlkZW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlkZW9UcmFj
a1Byb3h5KCkKIHsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogVHJh
Y2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25m
aWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IDRkMjBjYTU2MTgwOTViOWUxOGI3YTlmN2ZjZjVmNWE2
ZWNhNTVmY2MuLmE3OGQxZmY1YjgyNDYzYjgyN2FhNzYxZjVhZTJiOTQ3MzE4YzY5YzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBs
LmNwcApAQCAtNjcsNyArNjcsNyBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VO
YW1lc3BhY2VJbXBsOjpnZXRPckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZQogU3RvcmFnZU5h
bWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBl
LCBjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgOiBtX3N0b3JhZ2VUeXBlKHN0b3JhZ2VUeXBlKQogICAgICwgbV9wYXRoKHBh
dGguaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX3N5bmNNYW5hZ2VyKDApCisgICAgLCBtX3N5bmNN
YW5hZ2VyKG51bGxwdHIpCiAgICAgLCBtX3F1b3RhKHF1b3RhKQogICAgICwgbV9pc1NodXRkb3du
KGZhbHNlKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQo=
</data>
<flag name="commit-queue"
          id="463040"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439401</attachid>
            <date>2021-09-27 15:29:06 -0700</date>
            <delta_ts>2021-09-27 16:50:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210927152906.patch</filename>
            <type>text/plain</type>
            <size>81575</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZiYzllZGFjNzhlZGY5Y2ZjMjg1YWVh
NWZkOWU3YThkOGEyYWFlNWQuLmE1MmQzY2IyNTU2ZWE0MDBiYTdhOGEzZWNkMTdlNTk5MjcwNWZm
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQnVpbGQtdGltZSBvcHRpbWl6YXRpb246IGZvcndhcmQg
ZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oIGFuZCBIVE1MTWVkaWFFbGVtZW50
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
YSBjb25zdGV4cHIgY29uc3RydWN0b3IgZm9yIFJlZlB0ciB3aGVuIGdpdmVuIGEgbnVsbHB0cl90
OyB0aGlzIGFsbG93cworICAgICAgICBkZWNsYXJhdGlvbnMgb2YgUmVmUHRyPFR5cGU+IGZvciBm
b3J3YXJkLWRlY2xhcmVkIFR5cGUgcG9zc2libGUgdG8gaW5pdGlhbGl6ZQorICAgICAgICB3aXRo
IGEgbnVsbHB0ciwgd2l0aG91dCByZXF1aXJpbmcgdGhlIGZ1bGwgZGVmaW5pdGlvbiBvZiBUeXBl
LgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OlJlZlB0
cik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZl
YXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0MWE4YTBkOTA2MGJmODQxODkwODJjMDJjYWE4NmFkYTYwYTAx
NzE2Li5hMDg3MjQ1MWViNDIxYmU2ODk1NDU0NjljYWNiZGUxOGI5MzljNWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTE0IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkLWRl
Y2xhcmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCwgYW5kIGJyZWFrIGFwYXJ0ICpUcmFj
a1ByaXZhdGVDbGllbnQgaW50byBpdHMKKyAgICAgICAgb3duIGZpbGUsIHNvIHRoYXQgY2xpZW50
cyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSBjbGFzcydzIGZpbGUuIFRoaXMgcmVx
dWlyZXMKKyAgICAgICAgb3RoZXIgY2xhc3NlcyB3aG8gZ290IHRob3NlIGluY2x1ZGVzICJmb3Ig
ZnJlZSIgcHJldmlvdXNseSB0byBleHBsaWNpdGx5IGluY2x1ZGUgaGVhZGVycyBpbgorICAgICAg
ICB0aGVpciBzb3VyY2UgZmlsZXMuCisKKyAgICAgICAgVGhlIGNoYW5nZSB0byBSZWZQdHIgdG8g
YWxsb3cgY29uc3RleHByIGNvbnN0cnVjdGlvbiBmcm9tIG51bGxwdHIgY2F1c2VkICJhbWJpZ3Vv
dXMgY2FzdCIKKyAgICAgICAgZXJyb3JzIGV2ZXJ5d2hlcmUgIjAiIHdhcyB1c2VkIGluc3RlYWQg
b2YgbnVsbHB0ciB0byBpbml0aWFsaXplIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9k
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibGVuZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2lj
U2hhcGVJbnNldCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0
ZU5vZGVOUyk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2Up
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2
ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlz
dGlmeVBhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
Q2xpZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0Ns
aWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFja0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tJZENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0tpbmRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50
Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6flZp
ZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFu
Z2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVv
VHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJl
bENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFj
a0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tD
bGllbnQ6OndpbGxSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6OmNs
ZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2VDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5j
cHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJl
cGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OlJl
bmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6
ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFy
c2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwg
RmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjk3YTRjYzU5NzJkNTRkYmQ4ZWM0YzE1NWU3YzRiZDcwN2Zk
ZTY2Li4xZGFmZjEzMmE3NTI5NGI0OTA3OWU0MWQzNGZjNjMzMjUyYjNkMzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUg
bW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFdlYWtQ
dHIgYmFzZWQgY2xpZW50IHNldHRlcnMgb24gVHJhY2tQcml2YXRlcy4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRU
cmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3Rl
VmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlv
U2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA4NTZk
NzljNzY4MGU5YzEwYjkxOWNhZjBlNzIzODgxOWI2ZGY3NjI1Li41NzIwZDM2MzJmMWI0ZDU5OGFl
YTA1MmZhZDFkYjY4Zjk4OTFjYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUgbW9yZSB0aGluZ3Mg
aW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbnVsbHB0ciByYXRoZXIgdGhhbiB6
ZXJvIGZvciBudWxsIHZhbHVlcy4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGwpOgorCiAyMDIxLTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIo
dGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvUmVmUHRyLmgKaW5kZXggYTY1OTJmZThmMjhkMDcwMGE5ZDA0OTY1OGFkMThjZGEyYWQxNjYx
NC4uMGFlYzEwYzNkZTYwNjVhYjEwZDVlOTQwNTMxM2IzMjVlNTNhMzRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1JlZlB0
ciA9IHRydWU7CiAKICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBSZWZQdHIoKSA6IG1fcHRy
KG51bGxwdHIpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgY29uc3RleHByIFJlZlB0cihzdGQ6Om51
bGxwdHJfdCkgOiBtX3B0cihudWxscHRyKSB7IH0KICAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cihU
KiBwdHIpIDogbV9wdHIocHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwocHRyKTsg
fQogICAgIEFMV0FZU19JTkxJTkUgUmVmUHRyKGNvbnN0IFJlZlB0ciYgbykgOiBtX3B0cihvLm1f
cHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwoUHRyVHJhaXRzOjp1bndyYXAobV9w
dHIpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5cGVuYW1lIFo+
IFJlZlB0cihjb25zdCBSZWZQdHI8WCwgWSwgWj4mIG8pIDogbV9wdHIoby5nZXQoKSkgeyBSZWZE
ZXJlZlRyYWl0czo6cmVmSWZOb3ROdWxsKFB0clRyYWl0czo6dW53cmFwKG1fcHRyKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xl
Z2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCmluZGV4IDNhOGMw
MGY1MjMxZjUyYTZlODlkMTgzZDE1MTFjM2FjODc3M2ExZmUuLjE3ZDRmYjcyNzQwZDZlMWMzZGY2
ZmU2Zjc2ODc1YjRjOTRiMjNiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeUNETVNl
c3Npb25DbGVhcktleS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGFiZTkyMTBmZDY1ODIwOTNiMDE3MWE4MWM2
YzEzYWIzMWU2ZjRiOGIuLjBmZGJmOWY4MDQxNzZlMDY0MThiZTVlMDVmODg1YmVhOTlkMTM5OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDhkODA3ZmMyNDA5MGU4
MGY1YmNmZjNhM2ExYzhiMmJjNzExMGE3OTQuLmY4NmQ2YzFkZTM3ZTc2YmZmZjlhZmNlOTYyZjA3
YjBmYjk3N2Q1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZl
clNvdXJjZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpA
QCAtNDksNyArNTEsOSBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZp
ZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1ZNLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaAppbmRleCBhNzIzM2QyMWUwODFhYTRhOGQ4NDI1NGIyOTNhNzMyZjY4NDEz
ZThjLi4yODA5OTI1ZjVkMjFmM2UzZjM0NzdhMWU0NTI0Mzg1MDc4NWQ0ZmFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTM0
LDE0ICszNCwxNCBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVkZSAiQXVkaW9U
cmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgotI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1
ZGUgIlRleHRUcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVmlk
ZW9UcmFjay5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYv
TG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4
IGM0YWRhNzJlYmZmZDVlYzYzOTYyYjE3YzA3MDA4NDFlOWE5NTBlZDkuLjEyNDc4YjA2MzE0Mjhm
OGU4NTQ4ZWZiZjQ4ZmY2OTRkMGQ5ODJiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtODksOCArODks
OCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUoKQogICAgIC8vIFRoZXNl
IEF1ZGlvQnVmZmVycyB3aWxsIGJlIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSBtYWluIHRocmVh
ZCBieSBKYXZhU2NyaXB0LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJDb3Vu
dDsgKytpKSB7CiAgICAgICAgIC8vIFdlIHByZXZlbnQgZGV0YWNoaW5nIHRoZSBBdWRpb0J1ZmZl
cnMgaGVyZSBzaW5jZSB3ZSBwYXNzIHRob3NlIHRvIEpTIGFuZCByZXVzZSB0aGVtLgotICAgICAg
ICBtX2lucHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZm
ZXI6OmNyZWF0ZShtX251bWJlck9mSW5wdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVS
YXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IDA7Ci0gICAg
ICAgIG1fb3V0cHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlv
QnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNh
bXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsK
KyAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1
ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwg
c2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiBu
dWxscHRyOworICAgICAgICBtX291dHB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mT3V0cHV0Q2hh
bm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgYnVm
ZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGlu
Zzo6WWVzKSA6IG51bGxwdHI7CiAgICAgfQogCiAgICAgQXVkaW9Ob2RlOjppbml0aWFsaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjVjMTE0NjYyZGJkYjM0ODhlZmJiZDkzOTExMGFkMzBhZjViYzE4Zi4uMmYwYTE3ZTlk
MWZhYjBiNTQ3YmJmNmM5YmUyZmEzZTliZThkZDFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDM3MCw2ICs0MzcwLDEyIEBA
CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcx
QTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQTgxRjU3Mzk3MjAw
MEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMTlG
RUFFMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
Q0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxNTI3MDIz
NjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxODI3MDIzQTJBMDA2MTdF
QjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTkyNzAyM0E3NjAwNjE3
RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxQzI3MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFG
OUIyMTI3MDI1NjVFMDA2MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIyMDI3MDI1NjVFMDA2MTdFQjYg
LyogVGV4dFRyYWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNl
c3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZC
RjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8q
IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE0OTYyLDYgKzE0OTY4LDEyIEBACiAJCUNEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAv
KiBJbWFnZURlY29kZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2RlckFWRk9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUZFQUQxRjU3NEI2RDAwMEM0
MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFn
ZURlY29kZXJBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDFFNzM0
NjE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxMjI3MDIzNUY3MDA2MTdFQjYg
LyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0QxRjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjE3MjcwMjNBMjkwMDYx
N0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvVHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
RjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9UcmFja0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFG
OUIxQjI3MDI0QkMxMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0
VHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjI1QzA5MUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Qy
MjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TVVJMU2Vzc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3Rh
dGlvblNlc3Npb25WVC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI2Niw2ICsyNjI3OCw3IEBACiAJCQkJ
QkU4OEUwQ0MxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suY3BwICovLAogCQkJCUJFODhF
MENEMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwQ0UxNzE1
RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaWRsICovLAorCQkJCUNEMUY5QjE5MjcwMjNBNzYw
MDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggKi8sCiAJCQkJQkU4OEUwQ0YxNzE1RDJBMjAw
NjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmNwcCAqLywKIAkJCQlCRTg4RTBEMDE3MTVEMkEyMDA2
NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCAqLywKIAkJCQlCRTg4RTBEMTE3MTVEMkEyMDA2NThE
OTggLyogQXVkaW9UcmFja0xpc3QuaWRsICovLApAQCAtMjYyODcsNiArMjYzMDAsNyBAQAogCQkJ
CTk3NTlFOTM1MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3BwICovLAogCQkJCTk3NTlF
OTM2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCAqLywKIAkJCQk5NzU5RTkzNzE0RUYx
Q0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIyMDI3MDI1NjVFMDA2
MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggKi8sCiAJCQkJOTc1OUU5MzgxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFja0N1ZS5jcHAgKi8sCiAJCQkJOTc1OUU5MzkxNEVGMUNGODAwMjZBMkRE
IC8qIFRleHRUcmFja0N1ZS5oICovLAogCQkJCTk3NTlFOTNBMTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2tDdWUuaWRsICovLApAQCAtMjYzMDksNiArMjYzMjMsNyBAQAogCQkJCUJFODhFMEQy
MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCAqLywKIAkJCQlCRTg4RTBEMzE3MTVE
MkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oICovLAogCQkJCUJFODhFMEQ0MTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIxNzI3MDIzQTI5MDA2MTdFQjYg
LyogVmlkZW9UcmFja0NsaWVudC5oICovLAogCQkJCUJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5OCAv
KiBWaWRlb1RyYWNrTGlzdC5jcHAgKi8sCiAJCQkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8q
IFZpZGVvVHJhY2tMaXN0LmggKi8sCiAJCQkJQkU4OEUwRDcxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2tMaXN0LmlkbCAqLywKQEAgLTI2OTA3LDYgKzI2OTIyLDcgQEAKIAkJCQkwRjdFNDc1
MTI1RUVCNzlBMDAxM0Y5MDkgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk3MjJB
ODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVG
MjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJQ0Qx
RjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCiAJ
CQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwICovLAogCQkJCTJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggKi8sCiAJCQkJQTg5OTQzMjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmNwcCAqLywKQEAgLTI3MTU1LDEyICsyNzE3MSwxNCBAQAogCQkJCTFBRjg5QTQxMTUxOEZE
RUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCAqLywKIAkJCQkwNzZFMTFCRTFGNjgzRTBEMDAx
NzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5MTNEN0YxODFFRjhFNTAw
RENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKKwkJCQlDRDFGOUIxQjI3MDI0QkMxMDA2
MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovLAogCQkJCUU0QUZDRkE0MERBRjI5
QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVF
REE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURC
IC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBW
aWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCTA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVERDA5MDBD
NEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxMjI3MDIzNUY3MDA2
MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQlDRDZGRTVCQTI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5
QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxNDg5LDExICszMTUwNywxMyBAQAogCQkJCUZE
QjA1MkUwMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODMwMDVGOUQyNEVCMUQ0MDAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEOTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFj
ay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMUEyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlv
VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERDMTcxNUQyQTIwMDY1OEQ5
OCAvKiBBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNEMxODBFMTdD
MDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkVGMjlFRUIxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNBODU4MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5QjE2MjcwMjM2
MEYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0Q1NEE3NjMxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYg
LyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwOEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyNTgwLDYgKzMyNjAwLDcgQEAKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZDMEQwMDZDRDYwMEVGNkYyNiAvKiBH
bHlwaEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM0RDBERDMyNEQ5RjEwRDAwM0Q3NDk4
IC8qIEdseXBoQnVmZmVyTWVtYmVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMjEyNzAy
NTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVE
NEFBN0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDg3M0I4NkIxMzYwNjRFQTAwQTUyMkMyIC8qIEdseXBoUGFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzExNTE4RkMxRTc4QzE1RjAwRUM1MTRBIC8qIEdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTU3Niw2ICszNTU5Nyw3IEBACiAJCQkJ
MDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxQzI3MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkZBQzMwRkUxODRGQjE0NTAwOEM0
RjFFIC8qIFRyYWlsaW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MDcxMzIxQkQ4
MzA4QjAwREJDNEYyIC8qIFRyYW5zYWN0aW9uT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDNFRUY0MTI1Nzk5RkQ5MDA2NTYzQkIgLyogVHJhbnNmZXJGdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNTY2OSwxMSArMzU2OTEsMTMgQEAKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzkzOUE4MUU5QkRG
QjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkU4OEUwREYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRTg4RTBFMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFRjI5RUVDMTcxNUREMDkwMEM0
QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjQx
N0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDMzNkY2ODE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxNDI3MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQzMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwRTgxRDExQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRjQxOENGMTE3OTY3OEMwMDlEMTEy
QyAvKiBWaWV3cG9ydEFyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCBjYmU1M2JiNTQz
ODk2NjZkMmZkYWQ0MjI3ZjI5NjRlNDlkNTg1ZWE3Li43MjM0ZmVkMTljZmM4YjZhOThlNzEyOGRi
MTkwZjU3NmVmN2MzNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgaW5saW5lIEZp
bHRlck9wZXJhdGlvbnMgYmxlbmRGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIGZybwogICAgIHNpemVfdCB0b1NpemUgPSB0by5vcGVyYXRpb25zKCkuc2l6ZSgpOwogICAg
IHNpemVfdCBzaXplID0gc3RkOjptYXgoZnJvbVNpemUsIHRvU2l6ZSk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4gZnJvbU9wID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9tLm9wZXJhdGlvbnMoKVtpXS5nZXQoKSA6
IDA7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IHRvT3AgPSAoaSA8IHRvU2l6ZSkg
PyB0by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwotICAgICAgICBSZWZQdHI8RmlsdGVyT3Bl
cmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxlbmRGdW5jKGZyb21PcC5nZXQoKSwgdG9PcC5n
ZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxlbmRGdW5jKDAsIGZyb21PcC5nZXQoKSwgY29u
dGV4dCwgdHJ1ZSkgOiAwKTsKKyAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZnJvbU9w
ID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9tLm9wZXJhdGlvbnMoKVtpXS5nZXQoKSA6IG51bGxwdHI7
CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IHRvT3AgPSAoaSA8IHRvU2l6ZSkgPyB0
by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRyOworICAgICAgICBSZWZQdHI8RmlsdGVy
T3BlcmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxlbmRGdW5jKGZyb21PcC5nZXQoKSwgdG9P
cC5nZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxlbmRGdW5jKDAsIGZyb21PcC5nZXQoKSwg
Y29udGV4dCwgdHJ1ZSkgOiBudWxscHRyKTsKICAgICAgICAgaWYgKGJsZW5kZWRPcCkKICAgICAg
ICAgICAgIHJlc3VsdC5vcGVyYXRpb25zKCkuYXBwZW5kKGJsZW5kZWRPcCk7CiAgICAgICAgIGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cAppbmRleCAzODc3N2NmMmE5NzhjN2E2ZTJkYjU5MWQ1YzVmZjUyYzI2NTdlYjk1Li5lZWY5ZThm
ZTkyNDgwYzRmZTBhN2Q5ZGQzNmU0MGFjZjg1YzZmZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjY3MSw4ICsyNjcxLDggQEAg
c3RhdGljIFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+IGNvbnN1bWVCYXNpY1NoYXBlSW5zZXQo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgYXIKICAgICAgICAgc2hhcGUtPnVwZGF0ZVNoYXBlU2l6ZTFW
YWx1ZSh0b3AucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICBpZiAoY29uc3VtZUlkZW50PENTU1Zh
bHVlUm91bmQ+KGFyZ3MpKSB7Ci0gICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gaG9y
aXpvbnRhbFJhZGlpWzRdID0geyAwIH07Ci0gICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gdmVydGljYWxSYWRpaVs0XSA9IHsgMCB9OworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IGhvcml6b250YWxSYWRpaVs0XSA9IHsgbnVsbHB0ciB9OworICAgICAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRpY2FsUmFkaWlbNF0gPSB7IG51bGxwdHIgfTsKICAgICAg
ICAgaWYgKCFjb25zdW1lUmFkaWkoaG9yaXpvbnRhbFJhZGlpLCB2ZXJ0aWNhbFJhZGlpLCBhcmdz
LCBjb250ZXh0Lm1vZGUsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBzaGFwZS0+c2V0VG9wTGVmdFJhZGl1cyhjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoaG9y
aXpvbnRhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxsKCksIHZlcnRpY2FsUmFkaWlbMF0ucmVsZWFz
ZU5vbk51bGwoKSwgUGFpcjo6SWRlbnRpY2FsVmFsdWVFbmNvZGluZzo6Q29hbGVzY2UpKTsKQEAg
LTI4ODEsNyArMjg4MSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJ
bWFnZVJlcGVhdChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHN0YXRpYyBSZWZQdHI8Q1NT
VmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIGJvb2wgZmlsbCA9IGNvbnN1bWVJZGVu
dDxDU1NWYWx1ZUZpbGw+KHJhbmdlKTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNs
aWNlc1s0XSA9IHsgMCB9OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gc2xpY2VzWzRd
ID0geyBudWxscHRyIH07CiAKICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgNDsg
KytpbmRleCkgewogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlID0gY29u
c3VtZVBlcmNlbnQocmFuZ2UsIFZhbHVlUmFuZ2U6Ok5vbk5lZ2F0aXZlKTsKQEAgLTI5MTgsNyAr
MjkxOCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1BhcnNlCiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVCb3JkZXJJbWFnZU91dHNldChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
IHsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG91dHNldHNbNF0gPSB7IDAgfTsKKyAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG91dHNldHNbNF0gPSB7IG51bGxwdHIgfTsKIAog
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWU7CiAgICAgZm9yIChzaXplX3QgaW5k
ZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBj
ZjAzYjhkNTQ3OWYwZjk4NjVjYmVkZjJlMzk5NzFjZmFmZjc3ZmEwLi44MzU0ZjMwNmE3ZGUwYjQ1
YjFjMmQ3ZWE5YjI1MmFkYWY4OTY3MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTk1
LDEyICsyOTk1LDEyIEBAIFJlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlKGNv
bnN0IEF0b21TdHJpbmcmIHF1YWxpZmllZE5hbWUpCiBSZWZQdHI8QXR0cj4gRWxlbWVudDo6Z2V0
QXR0cmlidXRlTm9kZU5TKGNvbnN0IEF0b21TdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRv
bVN0cmluZyYgbG9jYWxOYW1lKQogewogICAgIGlmICghZWxlbWVudERhdGEoKSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFF1YWxpZmllZE5hbWUgcU5h
bWUobnVsbEF0b20oKSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwogICAgIHN5bmNocm9uaXpl
QXR0cmlidXRlKHFOYW1lKTsKICAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1l
bnREYXRhKCktPmZpbmRBdHRyaWJ1dGVCeU5hbWUocU5hbWUpOwogICAgIGlmICghYXR0cmlidXRl
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGVuc3VyZUF0dHIoYXR0cmlidXRlLT5uYW1lKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggNTViNmQzOGU5NDliZDRhMTI1NDhi
ZWFjMTNjZTVhYTlmMTY1Njc5OC4uYmI0YmMxMzZmN2YxYTRiOWQ0NWU5NmU2MDJkYzdjMzAzZjJl
OWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0
VW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0CiAKIHZvaWQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllcikKIHsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVS
TCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAwLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIp
OworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIG51bGxwdHIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7
CiB9CiAKIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24sIENh
Y2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAppbmRleCBk
Njg4OTBiODNiODMyOTA5ZWYxYWZmYmE4YTk3MDUxYzM5MGZhNTY5Li4yNTUzYTBjNzMyZGQyOTI5
NDNiYjczMWU3OTc0MWUxMGE2ZjY0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcApAQCAt
NDgsNyArNDgsNyBAQCBSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZShSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldywgY29uc3QgU3RyaW5nJiBkYXRhLAogCiBSZWY8VGV4dEV2ZW50PiBU
ZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2
aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudChXVEZNb3ZlKHZpZXcpLCBkYXRhLCAwLCBz
aG91bGRTbWFydFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudChXVEZNb3Zl
KHZpZXcpLCBkYXRhLCBudWxscHRyLCBzaG91bGRTbWFydFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxv
Y2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSkpOwogfQogCiBSZWY8VGV4dEV2ZW50
PiBUZXh0RXZlbnQ6OmNyZWF0ZUZvckZyYWdtZW50UGFzdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYm
IHZpZXcsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRS
ZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFp
bEJsb2NrcXVvdGVIYW5kbGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGlzdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0
Q29tbWFuZC5jcHAKaW5kZXggODgzNzNjYjRkNjMyZjNhOTYyZDc1N2VkMTdjYzRkNmE5YWM2YWY3
ZS4uM2I1MWI2YWJjNDE2MDliYTBiYzM3NTNlZjc4YjJkYzQ2ZTQwMWFhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKQEAgLTM2NCw3ICszNjQsNyBA
QCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2VydExpc3RDb21tYW5kOjpsaXN0aWZ5UGFyYWdyYXBo
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwogICAgIFZpc2libGVQb3NpdGlvbiBlbmQgPSBlbmRP
ZlBhcmFncmFwaChzdGFydCwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOwogICAgIAogICAg
IGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxsKCkgfHwgIXN0YXJ0LmRlZXBFcXVpdmFs
ZW50KCkuY29udGFpbmVyTm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIWVuZC5kZWVwRXF1
aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDaGVjayBmb3IgYWRq
b2luaW5nIGxpc3RzLgogICAgIGF1dG8gbGlzdEl0ZW1FbGVtZW50ID0gSFRNTExJRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwpAQCAtNDA1LDcgKzQwNSw3IEBAIFJlZlB0cjxIVE1MRWxlbWVu
dD4gSW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBvCiAgICAgICAgICAgICBpbnNlcnRpb25Qb3MgPSBwb3NpdGlvbkluUGFyZW50QmVmb3Jl
Tm9kZShsaXN0Q2hpbGQuZ2V0KCkpOwogCiAgICAgICAgIGlmICghaXNFZGl0YWJsZVBvc2l0aW9u
KGluc2VydGlvblBvcykpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgIGluc2VydE5vZGVBdCgqbGlzdEVsZW1lbnQsIGluc2VydGlv
blBvcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI4
Yzk3MTJhYWY3OTRlNjNkMmE4YTA3YjBhMDhjOTAyNzdkMmZhYmQuLjI5Mzc5YjIwZjU5MWZmZWYw
YmQ1NTdjODA4ZDhiNDk0MGFhYTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkF1ZGlvVHJhY2tM
aXN0LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJCbG9iLmgi
CiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKQEAg
LTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1
ZGUgIkpTSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTTWVkaWFDb250cm9sc0hvc3Qu
aCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sbGVy
LmgiCkBAIC04Nyw2ICs4OSw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlBy
b2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlZ2lzdHJh
YmxlRG9tYWluLmgiCkBAIC0xMTEsNyArMTE0LDkgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudENv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUg
IlZpZGVvUGxheWJhY2tRdWFsaXR5LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1
ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhZDA5ZTdiZTFlMjMwZGZlNmJjNzk5NWI1ZjUzZDc1
NzRjODgxYjNmLi40MmRkYWM3MTIzYjllMWNlOGU0YWI0ZGE3MDE5ZGY4OGQxNTY4ZjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjgsNyArMjgsNyBAQAogI2lm
IEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkF1ZGlvVHJhY2suaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAi
QXV0b3BsYXlFdmVudC5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgpAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhVW5p
cXVlSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlRleHRUcmFjay5oIgotI2luY2x1ZGUgIlZpZGVv
VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKKyNpbmNsdWRlICJWaWRlb1Ry
YWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDBmOWY0M2IwNDhmNGVkNDEx
MDkyMDFiZjM1M2Q1OGVhYTQ1MjMzNzEuLmMyZDAzNTNlYjg3MWM1NGRhMjk2YmUyNTljMDAzNjFm
ZWRiZTJiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTG9hZGFibGVU
ZXh0VHJhY2suaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC02MCwxNyArNjEs
MTcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1cmwpCiBp
bmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1f
dHJhY2soTG9hZGFibGVUZXh0VHJhY2s6OmNyZWF0ZSgqdGhpcywgYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihraW5kQXR0cikuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbGFiZWwo
KSwgc3JjbGFuZygpKSkKIHsKKyAgICBtX3RyYWNrLT5hZGRDbGllbnQoKnRoaXMpOwogICAgIExP
RyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQgLSAlcCIsIHRoaXMp
OwogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFnKSk7CiB9CiAKIEhUTUxUcmFja0VsZW1l
bnQ6On5IVE1MVHJhY2tFbGVtZW50KCkKIHsKLSAgICBpZiAobV90cmFjaykgewotICAgICAgICBt
X3RyYWNrLT5jbGVhckVsZW1lbnQoKTsKLSAgICAgICAgbV90cmFjay0+Y2xlYXJDbGllbnQoKnRo
aXMpOwotICAgIH0KKyAgICBtX3RyYWNrLT5jbGVhckVsZW1lbnQoKTsKKyAgICBtX3RyYWNrLT5j
bGVhckNsaWVudCgqdGhpcyk7CiB9CiAKIFJlZjxIVE1MVHJhY2tFbGVtZW50PiBIVE1MVHJhY2tF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQpAQCAtMTQyLDIxICsxNDMsOSBAQCBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzRGVm
YXVsdCgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oZGVmYXVsdEF0dHIpOwogfQogCi1Mb2FkYWJsZVRleHRUcmFjayYgSFRNTFRyYWNrRWxlbWVu
dDo6dHJhY2soKQorVGV4dFRyYWNrJiBIVE1MVHJhY2tFbGVtZW50Ojp0cmFjaygpCiB7Ci0gICAg
Ly8gRklYTUU6IFRoZXJlIGlzIG5vIHByYWN0aWNhbCB2YWx1ZSBpbiBsYXppbHkgaW5pdGlhbGl6
aW5nIHRoaXMuCi0gICAgLy8gSW5zdGVhZCB0aGlzIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBj
b25zdHJ1Y3Rvci4KLSAgICBpZiAoIW1fdHJhY2spIHsKLSAgICAgICAgLy8gVGhlIGtpbmQgYXR0
cmlidXRlIGlzIGFuIGVudW1lcmF0ZWQgYXR0cmlidXRlLCBsaW1pdGVkIG9ubHkgdG8ga25vd24g
dmFsdWVzLiBJdCBkZWZhdWx0cyB0byAnc3VidGl0bGVzJyBpZiBtaXNzaW5nIG9yIGludmFsaWQu
Ci0gICAgICAgIFN0cmluZyBraW5kID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihr
aW5kQXR0cikuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgaWYgKCFUZXh0VHJh
Y2s6OmlzVmFsaWRLaW5kS2V5d29yZChraW5kKSkKLSAgICAgICAgICAgIGtpbmQgPSBUZXh0VHJh
Y2s6OnN1YnRpdGxlc0tleXdvcmQoKTsKLSAgICAgICAgbV90cmFjayA9IExvYWRhYmxlVGV4dFRy
YWNrOjpjcmVhdGUoKnRoaXMsIGtpbmQsIGxhYmVsKCksIHNyY2xhbmcoKSk7Ci0gICAgICAgIG1f
dHJhY2stPmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfQotICAgIEFTU0VSVChtX3RyYWNrLT50cmFj
a0VsZW1lbnQoKSA9PSB0aGlzKTsKLQotICAgIHJldHVybiAqbV90cmFjazsKKyAgICByZXR1cm4g
bV90cmFjazsKIH0KIAogYm9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKQEAgLTIwNiw3ICsxOTUsNyBAQCB2b2lkIEhU
TUxUcmFja0VsZW1lbnQ6OnNjaGVkdWxlTG9hZCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICB0cmFjaygpLnNjaGVkdWxlTG9hZCh0cmFja1VSTCk7CisgICAgICAg
IG1fdHJhY2stPnNjaGVkdWxlTG9hZCh0cmFja1VSTCk7CiAgICAgfSk7CiB9CiAKQEAgLTI4Mywx
MyArMjcyLDExIEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0
YXRlIHN0YXRlKQogewogICAgIHRyYWNrKCkuc2V0UmVhZGluZXNzU3RhdGUoc3RhdGljX2Nhc3Q8
VGV4dFRyYWNrOjpSZWFkaW5lc3NTdGF0ZT4oc3RhdGUpKTsKICAgICBpZiAoYXV0byBwYXJlbnQg
PSBtZWRpYUVsZW1lbnQoKSkKLSAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRlQ2hh
bmdlZChtX3RyYWNrLmdldCgpKTsKKyAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRl
Q2hhbmdlZChtX3RyYWNrLnB0cigpKTsKIH0KIAogSFRNTFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0
ZSBIVE1MVHJhY2tFbGVtZW50OjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fdHJh
Y2spCi0gICAgICAgIHJldHVybiBIVE1MVHJhY2tFbGVtZW50OjpOT05FOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZWFkeVN0YXRlPihtX3RyYWNrLT5yZWFkaW5lc3NTdGF0ZSgpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCBiODYyZDQ5YTRhOTJjMzM2
NzM1NTg5MWNiNjQ2ODVlNjgwMTVlNjAyLi4zZjQ0ZTBhOGUxNGExYzdlNWRkZmMwYWY4OTVmYTBi
NDE0N2Y1NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtMzAs
MTEgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCisjaW5jbHVkZSAi
VGV4dFRyYWNrQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKK2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBIVE1MVHJhY2tF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhU
TUxUcmFja0VsZW1lbnQpOwpAQCAtNTIsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgUmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUp
OwogCi0gICAgTG9hZGFibGVUZXh0VHJhY2smIHRyYWNrKCk7CisgICAgVGV4dFRyYWNrJiB0cmFj
aygpOwogCiAgICAgdm9pZCBzY2hlZHVsZUxvYWQoKTsKIApAQCAtODcsNyArODgsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYpOwogCi0gICAgUmVmUHRyPExv
YWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOworICAgIFJlZjxMb2FkYWJsZVRleHRUcmFjaz4gbV90
cmFjazsKICAgICBib29sIG1fbG9hZFBlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNS
ZWxldmFudExvYWRFdmVudHNMaXN0ZW5lciB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKaW5kZXggM2NiNzE4ZDNkYzI3ZTU4M2I1YTVkZjEwOTNh
MDM2NTI3YzAyZWNiNS4uMTJiMWZjYzU3NzZlMDZjZmU4ZGRmYTkyYzczYzc3MjBmYjkzZGYyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0zMSwxMCArMzEs
MTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKLSNp
bmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVk
ZSAiQXVkaW9UcmFja0NsaWVudC5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5j
bHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODAsMTMgKzgyLDEzIEBAIEF1ZGlvVHJhY2s6
OkF1ZGlvVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXVkaW9UcmFja1By
aXZhdGUmIHRyYWNrCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9lbmFi
bGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
dGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVwZGF0ZUtpbmRG
cm9tUHJpdmF0ZSgpOwogfQogCiBBdWRpb1RyYWNrOjp+QXVkaW9UcmFjaygpCiB7Ci0gICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgp
OwogfQogCiB2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKQEAgLTk0LDEwICs5NiwxMCBAQCB2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0
cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBt
X3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7CiAgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5h
YmxlZCk7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcHJpdmF0
ZS0+c2V0TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCmluZGV4IDM3NTEwYThjZDJmOGY0MDE1MzU4OTI1
ZGY5OWRhZWM5OGYxOTYwNWMuLmEzMzc3MDUzODllOTg2MmJiZjhjZmYxNGNjZWNjOGY5NDZiMWYy
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCkBAIC0yOCwyNiArMjgs
MTUgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJUcmFj
a0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1RyYWNrOworY2xhc3MgQXVkaW9UcmFja0NsaWVudDsKIGNsYXNz
IEF1ZGlvVHJhY2tMaXN0OwogCi1jbGFzcyBBdWRpb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5BdWRp
b1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5h
YmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
SWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0tp
bmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xh
YmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVt
b3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9Ci19OwotCiBjbGFzcyBBdWRpb1RyYWNrIGZp
bmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MmM3ZGI0NDI3MDQxZmM0YzIwYzI4NjYxZmIzZjMwMTFlNGNjZjhiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ2xpZW50LmgKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBdWRpb1RyYWNrOworCitjbGFzcyBBdWRpb1RyYWNrQ2xpZW50IDogcHVibGljIENh
bk1ha2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5B
dWRpb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1Ry
YWNrSWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFj
a0tpbmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFj
a0xhYmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJh
Y2tMYW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
UmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCmluZGV4IGM2ZmVh
MzVlZDM4YjA0ODYwM2QyY2U4MWRmYWJiMDI2MTg4NDIwZWQuLmQ0NTk2OWZiZmM3N2RlOTdlMDdm
N2JhOGQ5OTc2YTgyNGU4ZTc0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFRleHRUcmFjay5jcHAKQEAgLTU4LDEzICs1OCwxMyBAQCBJbmJhbmRUZXh0VHJhY2s6Oklu
YmFuZFRleHRUcmFjayhEb2N1bWVudCYgZG9jdW1lbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUm
IHRyYQogICAgIDogVGV4dFRyYWNrKCZkb2N1bWVudCwgZW1wdHlBdG9tKCksIHRyYWNrUHJpdmF0
ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdlKCksIElu
QmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7Ci0gICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVw
ZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogfQogCiBJbmJhbmRUZXh0VHJhY2s6On5JbmJhbmRUZXh0
VHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJp
dmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZh
dGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtNzIsOSArNzIsOSBA
QCB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
JiB0cmFja1ByaXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsK
KyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2
YXRlOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0
Q2xpZW50KCp0aGlzKTsKIAogICAgIHNldE1vZGVJbnRlcm5hbChtb2RlKCkpOwogICAgIHVwZGF0
ZUtpbmRGcm9tUHJpdmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3Bw
CmluZGV4IDBhNjQ3YzJjNDU2NjU0N2VmYWVmYjQ2NjI0NTEyZjA2ZmMxOGE2ZjIuLjg0OWNkNTk0
YTdiOWEzOThiMGMzMWZhOTBmYzY3ZDdmNmQ2NzZhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyLmgiCisjaW5jbHVk
ZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb24uaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDhiMzE2ZTdhZGE0OWMzMDI4OTUyNDViMGE3
MThlY2Q0ZDg5MjllMmQuLjk0MGMwMjQ2MmU4NjkzY2I4ODg5ZDAyN2I2YzlhODZlZjJlOTBjZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMzksMjUgKzM5LDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OworY2xhc3MgVGV4dFRyYWNrQ2xpZW50
OwogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKIGNsYXNzIFZUVFJlZ2lvbjsKIGNsYXNzIFZUVFJl
Z2lvbkxpc3Q7CiAKLWNsYXNzIFRleHRUcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxUZXh0VHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGll
bnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0lkQ2hhbmdlZChUZXh0
VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tMYWJlbENoYW5nZWQoVGV4dFRyYWNr
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0xhbmd1YWdlQ2hhbmdlZChUZXh0VHJh
Y2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJh
Y2tDdWUmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFjayhUZXh0VHJh
Y2smKSB7IH0KLX07Ci0KIGNsYXNzIFRleHRUcmFjayA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFRleHRUcmFjayk7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMThkMDM3ZGVm
NzU5NGZkMDBhNTJjODFjOTAxNDkwY2Q3MGVhNDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGllbnQuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHRUcmFj
azsKK2NsYXNzIFRleHRUcmFja0N1ZTsKK2NsYXNzIFRleHRUcmFja0N1ZUxpc3Q7CisKK2NsYXNz
IFRleHRUcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxUZXh0VHJhY2tDbGllbnQ+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGllbnQoKSA9IGRlZmF1bHQ7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0lkQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tMYWJlbENoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja0xhbmd1YWdlQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNr
JiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFjayhUZXh0VHJhY2smKSB7IH0KK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA5
N2YwMWFjYzY1OWEwZGMwZTUxZDBlZTE4ZDAzNjQwMzYxOWFjZjQwLi4yMzAxOTdkZDUxMjEyYWFj
ODBhYWE1OWRiMjY4ZmVhM2VmMDJjYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgor
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtODQsMTMgKzg2LDEzIEBAIFZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVmlk
ZW9UcmFja1ByaXZhdGUmIHRyYWNrCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogICAg
ICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUt
PnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAg
dXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkK
IHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNs
ZWFyQ2xpZW50KCk7CiB9CiAKIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtOTgsOSArMTAwLDkgQEAgdm9pZCBWaWRlb1RyYWNr
OjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgaWYgKG1f
cHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50
KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBtX3ByaXZhdGUtPnNldExvZ2dlcihsb2dnZXIoKSwgbG9nSWRl
bnRpZmllcigpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApp
bmRleCBlZjg0ODhlN2I1OTgxZjEzMTcyMmJmYmQ2NzZkNmY0YjE2ZGY1MWE2Li44ZDZmODhjZmJm
ZTkyMjEwNWYyMDcxMWQ1YjdlZWIzNjVlZjllNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suaApAQCAtMjksMjUgKzI5LDE2IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAj
aW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKKyNp
bmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFz
aFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247
CiBjbGFzcyBWaWRlb1RyYWNrOworY2xhc3MgVmlkZW9UcmFja0NsaWVudDsKIGNsYXNzIFZpZGVv
VHJhY2tMaXN0OwotCi1jbGFzcyBWaWRlb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFZpZGVvVHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5WaWRlb1RyYWNr
Q2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrSWRDaGFuZ2Vk
KFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0tpbmRDaGFuZ2Vk
KFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhYmVsQ2hhbmdl
ZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYW5ndWFnZUNo
YW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZp
ZGVvVHJhY2soVmlkZW9UcmFjayYpIHsgfQotfTsKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwog
CiBjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRl
IFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suaWRsCmluZGV4IDJjNjBiMmIyZTcwNjUzMzg4ZDlhNGVjYzAwMzlhMzJm
MzY2MGIyYzguLjk5MTM2NzM2MWVhZWIyZmNmNDk0YWQxOWZmZDdhNTAwNTQ1ZDBmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbApAQCAtMzQsNCArMzQsNSBAQAog
ICAgIFtTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGU9TWVkaWFTb3VyY2VdIGF0dHJpYnV0
ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBzZWxlY3RlZDsK
KwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0Ns
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzQ1Yzg3NmQ3ZDdiOTY0NzYzZTc3NjQ4ZTlmMzlkYTVmYTE5YzhmZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NsaWVudC5o
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVmlkZW9UcmFjazsKKworY2xhc3MgVmlkZW9UcmFja0NsaWVudCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxWaWRlb1RyYWNrQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+VmlkZW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9U
cmFja0lkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJh
Y2tLaW5kQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJh
Y2tMYWJlbENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1Ry
YWNrTGFuZ3VhZ2VDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlk
ZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2smKSB7IH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKaW5kZXggNTUzYTFjZmQ3OWUyMDE5MzY2ZjNlYzM3MGM4M2M5ODM4ZDMxMTk3My4u
YmU1YTcwZGVlZjQ3MzEzZmVhYjhhOGY3ZTQwMzRhMDE4NDExNzcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBh
Z2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbgogICAgIGlmIChkb2N1bWVudCkKICAgICAgICAgZG9jdW1lbnQtPmdl
dFBhcnNlckxvY2F0aW9uKHVybCwgbGluZSwgY29sdW1uKTsKIAotICAgIGFkZE1lc3NhZ2Uoc291
cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBjb2x1bW4sIDAsIEpTRXhlY1N0YXRlOjpj
dXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIpOworICAgIGFkZE1lc3NhZ2Uoc291cmNl
LCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBjb2x1bW4sIG51bGxwdHIsIEpTRXhlY1N0YXRl
OjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiB2b2lkIFBhZ2VDb25z
b2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxs
U3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGUuaAppbmRleCBhOWY4MzZiZDExNzNlMjJlMGFlODE0YTE3NTQyYWEyM2E0NjE1
YTRlLi5jNTIyN2U1YzcwNDQxOTc3OGQ1YjI4YTY5MTFhMDQ5Y2U3OTRiNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNr
UHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtMzIsMTMgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKLQotY2xhc3MgQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAg
dmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKLX07Ci0KIGNsYXNzIEF1ZGlv
VHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgpCkBAIC00Niw4ICs0MCw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGUpOwog
ICAgIH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGll
bnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLSAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCog
Y2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNl
dENsaWVudChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFr
ZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0g
bnVsbHB0cjsgfQorICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHsKQEAgLTc4LDcgKzczLDcgQEAgcHJvdGVjdGVk
OgogICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAgICBXZWFrUHRy
PEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2Fs
bGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
QXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFlMjA0NTE3OWUxNzlj
OTM3ZGJmNjYzZTA3NWE5NDRlODM2ZGNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIgorCisjaWYgRU5BQkxFKFZJREVPKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOworCitjbGFzcyBBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOworfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRU
cmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRl
eHRUcmFja1ByaXZhdGUuaAppbmRleCAwYjRkOWNmZTY3Y2U5NTdhN2I5NzMyNzk2NjA2YjBhZDI2
ZmUxNzhkLi5kY2MzMjZhNTNjMDMxZWQ0ZmYzNGMxNWIzNjM3MDQ2YThkMmI5YzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oCkBAIC00MSw4ICs0MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IGNyZWF0ZShDdWVGb3JtYXQgZm9ybWF0KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IEluYmFuZFRleHRUcmFja1ByaXZhdGUoZm9ybWF0KSk7IH0KICAgICB2aXJ0
dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCi0gICAgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
bGllbnQ7IH0KLSAgICB2b2lkIHNldENsaWVudChJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQo
KTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQmIGNs
aWVudCkgeyBtX2NsaWVudCA9IG1ha2VXZWFrUHRyKGNsaWVudCk7IH0KKyAgICB2b2lkIGNsZWFy
Q2xpZW50KCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KIAogICAgIGVudW0gY2xhc3MgTW9kZSA6
IHVpbnQ4X3QgewogICAgICAgICBEaXNhYmxlZCwKQEAgLTg4LDcgKzg5LDcgQEAgcHJvdGVjdGVk
OgogCiBwcml2YXRlOgogICAgIEN1ZUZvcm1hdCBtX2Zvcm1hdDsKLSAgICBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAgICBXZWFrUHRyPEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIE1vZGUg
bV9tb2RlIHsgTW9kZTo6RGlzYWJsZWQgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA3YTMyNjUwMzNiOTQ3YjViZTY4
YzA2MjMwMjZmZjMwMTI4YzQyODE4Li4yYmRiNGI4MjcxMzQwNWE1ZDhlZDNjNGIyNTJiM2E2YWYy
MDllZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCkBAIC0zMyw5ICszMywxMyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUg
IkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlN
RVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZS5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2Ny
ZWVuLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVRpbWVSYW5nZXMuaCIKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgpAQCAtMTg3LDcgKzE5MSw2IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsQ29udGVudFR5cGVWZWN0b3Io
KTsgfQogfTsKIAotCiBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBNZWRpYVBsYXllckNsaWVu
dDo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q29udGVudFR5cGU+PiBjb250ZW50VHlw
ZXM7CkBAIC00MTIsNiArNDE1LDcgQEAgTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9yZWxv
YWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKQogICAgICwgbV9w
cml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCisgICAgLCBt
X3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7
CiB9CiAKQEAgLTQyMCw2ICs0MjQsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJDbGllbnQmIGNsaWVudCwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbgogICAgICwg
bV9yZWxvYWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKQogICAg
ICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCiAg
ICAgLCBtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIobWVkaWFFbmdpbmVJZGVudGlmaWVyKQorICAg
ICwgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJk
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCBlMGI4NmQ4ZTZlNmE5OWY1YjA2YjZiNmZjYTlhMjg2ZDNjNDQ3ODkwLi41MDBj
ODIzYmY0YjM4NjMwMTEyYTRmZDdkYTU3YWY1MjQwOGExNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3LDI0ICsyNywxNyBAQAog
CiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKLSNpbmNsdWRlICJMZWdh
Y3lDRE1TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCi0jaW5jbHVkZSAiUGxh
dGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlZp
ZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNs
dWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KQEAgLTU2LDEwICs0OSw2IEBACiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBFTkFCTEUoQVZGX0NB
UFRJT05TKQotI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCi0jZW5kaWYKLQogT0JKQ19D
TEFTUyBBVlBsYXllcjsKIE9CSkNfQ0xBU1MgTlNBcnJheTsKIApAQCAtNjksMTMgKzU4LDE4IEBA
IHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29yeSA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1vZGUgOiB1aW50OF90OworCiBjbGFzcyBBdWRpb1Nv
dXJjZVByb3ZpZGVyOworY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiBjbGFzcyBDRE1JbnN0YW5j
ZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0w7
CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOwog
Y2xhc3MgTGVnYWN5Q0RNOworY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbjsKIGNsYXNzIExlZ2FjeUNE
TVNlc3Npb25DbGllbnQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQ
bGF5ZXI7CkBAIC04NCw4ICs3OCwxMiBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U7CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFj
azsKIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudDsKIGNsYXNzIE1lZGlhU3RyZWFtUHJp
dmF0ZTsKK2NsYXNzIE5hdGl2ZUltYWdlOworY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyOworY2xhc3MgUGxhdGZvcm1UZXh0VHJhY2s7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7
CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRl
OwogCiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwogc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKQEAgLTcxMyw3ICs3MTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRQcmVw
YXJlVG9SZW5kZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZl
cnJlZEZyb21FeHRlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbml0aWFsaXppbmdNZWRp
YUVuZ2luZSB7IGZhbHNlIH07Ci0gICAgRHluYW1pY1JhbmdlTW9kZSBtX3ByZWZlcnJlZER5bmFt
aWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCB9OworICAgIER5bmFtaWNS
YW5nZU1vZGUgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOwogICAgIFBpdGNoQ29ycmVjdGlv
bkFsZ29yaXRobSBtX3BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSB7IFBpdGNoQ29ycmVjdGlvbkFs
Z29yaXRobTo6QmVzdEFsbEFyb3VuZCB9OwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKaW5kZXggNGViNGU3MDYyMTEwZWZkYTMxNGMwODMxMGFjNDQ0Mzk0MTZjYTI3
Ni4uYTk0YjFjMTkzODg0OTFjMGM5MDk0OTczYWMzYWRiZDlhNGI5ODQ3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNZWRpYURlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKQEAgLTM2
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+
CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJh
Y2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQ
cml2YXRlQmFzZS5oCmluZGV4IDI3OGYwYzZiNzJjMjg1MDlkMzAyZjc3YjQ3ZDYxOTJhNzE5ZDAy
ODMuLjZkYmU0OTVlZmJiYWViMTJhMzQ0NmMyMWZmOWE5NGUxZGU5NjgwOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZUJhc2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgpAQCAtMzYsMTUgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFj
a1ByaXZhdGVCYXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVC
YXNlQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoY29uc3Qg
QXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0
b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBB
dG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCkgPSAwOwotfTsK
LQogY2xhc3MgV0VCQ09SRV9FWFBPUlQgVHJhY2tQcml2YXRlQmFzZQogICAgIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFRyYWNrUHJpdmF0ZUJhc2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJl
YWQ6Ok1haW4+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmI2ZjRlZTlkMGNjMzVkNzc1NzYwOWNiOTNjYmZiMTA5NDE2YTAwMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2VDbGllbnQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHJhY2tQ
cml2YXRlQmFzZUNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxUcmFja1ByaXZhdGVCYXNl
Q2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZUNsaWVudCgp
ID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1Ry
YWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaAppbmRleCBlYTVhMjljZWI1Y2ZlOWYwMjQyN2M1ZWFkZGMxNjQyNzRjYjZkNjA5
Li4wOWZjZThiODVkZGQ0NjA5NDFiNDlmNzBhOTg0ZDY0ZGVkNjgwMmY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAg
LTI4LDE5ICsyOCwxNiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZUJhc2UuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFZpZGVv
VHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewotcHVi
bGljOgotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOwotfTsKLQog
Y2xhc3MgVmlkZW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJs
aWM6Ci0gICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkg
eyBtX2NsaWVudCA9IGNsaWVudDsgfQotICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGll
bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZvaWQgc2V0Q2xp
ZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vh
a1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxs
cHRyOyB9CisgICAgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vs
ZWN0ZWQoYm9vbCBzZWxlY3RlZCkKICAgICB7CkBAIC02OCw3ICs2NSw3IEBAIHByb3RlY3RlZDoK
ICAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBWaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxW
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBt
X3NlbGVjdGVkIHsgZmFsc2UgfTsKICAgICBTZWxlY3RlZENoYW5nZWRDYWxsYmFjayBtX3NlbGVj
dGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4
NjYyOWE3YzFjM2VhNjg4ZWRhYjFhMmY0MDM0MDZiZWUyZGVlMWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShWSURFTykKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1Ymxp
YyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2Vs
ZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQppbmRleCAxNmRkMDE2OGU0Y2RkMDk5YjdjOGJjMzkyNmJkMWQwN2VmYjUyOWMzLi5k
NzAzMGRjYzA1OGY0OWE1YzZkMDQzOTc5NWZkZWViOGEzYzc2MjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTUyLDYgKzUyLDkgQEAKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYS5oIgogI2ltcG9ydCAiT3V0T2ZCYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9y
dCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUGxhdGZv
cm1UZXh0VHJhY2suaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJTY3JpcHREaXNhbGxvd2VkU2Nv
cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxv
YWRlci5tbQppbmRleCBmZDJmMGQzZWU1ZDA4ZGUwODAzNmZhYmIxNWMyYTM0NTA0MjhiYTNjLi5l
YjI0MzY1YzcxYTdiMGEyZGI5Y2Y4ZTUzNGIyNjhlNzg4MmE5ZjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbXBvcnQgIkRhdGFV
UkxEZWNvZGVyLmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgiCisjaW1wb3J0ICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0
ICJVVElVdGlsaXRpZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5Q29jb2EuY3BwCmluZGV4IGEwYmFlZGU4OGE3NTU2ODFlYTJhNGExN2JhM2U2
ZWQzZGZkYzdkOWUuLjk3NDk0ZWU2YzVjOGI2OTkyMzRlYTdjOTY2ZGRkMWFjNmFhNDI0ZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5n
aW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29h
LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAj
aW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9PdXRwdXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8cGFs
L2F2Zm91bmRhdGlvbi9PdXRwdXREZXZpY2UuaD4KKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5o
PgogCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRp
YVNvdXJjZVByaXZhdGUuaAppbmRleCBiZjlmZGUxZjM4MThhMDAyMjFkMjZkOTZhOWFhZTJhOGFl
ZjY2ZDhkLi45NGZmNThjYmI4YWMzN2M1OGFkMTE3NDU0OTllYTY5Y2ZjODkzNWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNv
dXJjZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKKyNpbmNs
dWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCA5NjMxN2RhZDYyYzQ1NDQ0NzZlOWUyMDVlNjdiZTRj
ZjEzMmZkMDA4Li42MDAwZWQ0OWE0N2E5MDY0NjAyNmRjZjZhZTlhMmIwZmZlZGZkZDM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAK
QEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNl
bWVudFRleHRHZW9tZXRyeShjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bAogICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzKCkuZm9udFJlbmRlcmluZ01vZGUoKSk7
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgxMik7CiAgICAgZm9udCA9IEZv
bnRDYXNjYWRlKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSwgMCwgMCk7Ci0gICAgZm9udC51cGRh
dGUoMCk7CisgICAgZm9udC51cGRhdGUobnVsbHB0cik7CiAKICAgICBydW4gPSBUZXh0UnVuKG1f
dW5hdmFpbGFibGVQbHVnaW5SZXBsYWNlbWVudFRleHQpOwogICAgIHRleHRXaWR0aCA9IGZvbnQu
d2lkdGgocnVuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
ZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuY3BwCmluZGV4IDhlMmRjYjAzNTNlZDk0ZjYwYmQ0YzRhZGNlYjM1M2M2M2M3Nzc5NDAuLmZl
MWQwYmViNmU5MjZjMjZiM2UxYTJiNTdlMTBhNGQyMjA5NzU2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNTQsNyArNTQsNyBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyU2VhcmNoRmllbGQpOwogUmVuZGVyU2Vh
cmNoRmllbGQ6OlJlbmRlclNlYXJjaEZpZWxkKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFJl
bmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxl
bWVudCwgV1RGTW92ZShzdHlsZSkpCiAgICAgLCBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKGZhbHNl
KQotICAgICwgbV9zZWFyY2hQb3B1cCgwKQorICAgICwgbV9zZWFyY2hQb3B1cChudWxscHRyKQog
ewogICAgIEFTU0VSVChlbGVtZW50LmlzU2VhcmNoRmllbGQoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWVlNzIxNDNmOTA0MmYwZjcxN2Zk
MjcxODY0ZmMxOTU0ZjQzMzM1ZS4uZDM1ZWQxNTJjNmU3NGI4MTVkZWU3YTI1NTAyNDk4ZTA0Y2Vk
OGQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAt
OTY1LDcgKzk2NSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OnNldEZvbnRGcm9tQ29udHJvbFNp
emUoUmVuZGVyU3R5bGUmIHN0eWxlLCBOU0NvbnRyb2xTaXplIGNvCiAgICAgc3R5bGUuc2V0TGlu
ZUhlaWdodChSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CiAKICAgICBpZiAoc3R5
bGUuc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSkpCi0gICAgICAg
IHN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKDApOworICAgICAgICBzdHlsZS5mb250Q2FzY2Fk
ZSgpLnVwZGF0ZShudWxscHRyKTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6
Y29udHJvbFNpemVGb3JTeXN0ZW1Gb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJM
aWJ4bWwyLmNwcAppbmRleCA4MmNmNGQ1M2FhNzNjMDllYTJmNjg5Y2JjZTljMjIxNGQ2ZDA2ZDRj
Li5hZjc2OTc2MjNjYzljZjQ0NmNlOGRjZTNjZGQ0YzJiYTI3NDI3NzUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
CkBAIC01NjMsNyArNTYzLDcgQEAgUmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IFhNTFBhcnNlckNv
bnRleHQ6OmNyZWF0ZU1lbW9yeVBhcnNlcih4bWxTQVhIYW5kbGVyUHRyIGgKICAgICB4bWxQYXJz
ZXJDdHh0UHRyIHBhcnNlciA9IHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoY2h1bmsuZGF0YSgp
LCBjaHVuay5sZW5ndGgoKSk7CiAKICAgICBpZiAoIXBhcnNlcikKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgbWVtY3B5KHBhcnNlci0+c2F4LCBoYW5k
bGVycywgc2l6ZW9mKHhtbFNBWEhhbmRsZXIpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCBkOWE2
ZTE0ZTFjMTIyZmMyOGNmNWZjMWI5Nzk3ZGI4MTAwOGEyODlkLi42ZGNkZGRiNmYyMjY2ZGUyZTE4
ZTQxNmU2MjhiMGFkNzMzOTMzY2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNDUsMTIgKzQ1LDEz
IEBAIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1By
aXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZp
ZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3RyYWNr
UHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
PmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFk
ZFJlbW90ZUF1ZGlvVHJhY2sobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlh
UGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1
ZGlvVHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9
CiAKIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAppbmRleCBiNDFhMDI4MWY4NThhMTIyZTBm
YWE2YmI3MTk0ZWU1MzBjYzlmMWYyLi45OGQ2NjM1ZTlhNTA3MjRkZjllOWM4N2E4YjBiNTQ2NDgz
M2I5NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VGV4dFRyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKQEAgLTQ5LDEyICs0OSwxMyBAQCBSZW1vdGVUZXh0VHJh
Y2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbgogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9t
ZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1fdHJh
Y2tQcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVu
dCgqdGhpcyk7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2so
bV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7
CiB9CiAKIFJlbW90ZVRleHRUcmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQogewor
ICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVv
VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlk
ZW9UcmFja1Byb3h5LmNwcAppbmRleCBiMDlhYWMzMzY3ZjAzYTJhZmEzNzQzMDM3MWZhMGM4M2E3
YzcwOWM5Li40OWM0N2EzNTUxMzhiMjVhNTliODMxMjdiNWU2OWM2Y2ViMjk3OTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFj
a1Byb3h5LmNwcApAQCAtNDUsMTIgKzQ1LDEzIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVt
b3RlVmlkZW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAg
ICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRl
bnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNl
dENsaWVudCh0aGlzKTsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAg
ICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVudGlmaWVy
LCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90
ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFj
a1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRl
eCA0ZDIwY2E1NjE4MDk1YjllMThiN2E5ZjdmY2Y1ZjVhNmVjYTU1ZmNjLi5hNzhkMWZmNWI4MjQ2
M2I4MjdhYTc2MWY1YWUyYjk0NzMxOGM2OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
UmVmPFN0b3JhZ2VOYW1lc3BhY2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Z2V0T3JDcmVh
dGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UKIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFt
ZXNwYWNlSW1wbChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgY29uc3QgU3RyaW5nJiBwYXRoLCB1
bnNpZ25lZCBxdW90YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdl
VHlwZShzdG9yYWdlVHlwZSkKICAgICAsIG1fcGF0aChwYXRoLmlzb2xhdGVkQ29weSgpKQotICAg
ICwgbV9zeW5jTWFuYWdlcigwKQorICAgICwgbV9zeW5jTWFuYWdlcihudWxscHRyKQogICAgICwg
bV9xdW90YShxdW90YSkKICAgICAsIG1faXNTaHV0ZG93bihmYWxzZSkKICAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
CmluZGV4IDVjZGRmNWY2ZDkyMGIxYTZmZjQxNDZhMjM1ODg0MzE4MTBiNzRiMTguLjQ0YmJlYjIx
MzNmMGQyNDZiNGJiMzM4NjIzYzgwYjJlOGEyNGJhZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1Mu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudElPUy5tbQpAQCAtMzAyLDEyICszMDIsMTIgQEAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVu
dEF0SW5kZXgodW4KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsK
LSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYURldGFpbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKQEAg
LTMyOCwxMiArMzI4LDEyIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphcmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0CiAKIFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dB
dEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxs
cHRyOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4
KSBjb25zdAo=
</data>
<flag name="commit-queue"
          id="463052"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439408</attachid>
            <date>2021-09-27 16:04:32 -0700</date>
            <delta_ts>2021-09-27 16:48:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210927160431.patch</filename>
            <type>text/plain</type>
            <size>82731</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZiYzllZGFjNzhlZGY5Y2ZjMjg1YWVh
NWZkOWU3YThkOGEyYWFlNWQuLmE1MmQzY2IyNTU2ZWE0MDBiYTdhOGEzZWNkMTdlNTk5MjcwNWZm
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQnVpbGQtdGltZSBvcHRpbWl6YXRpb246IGZvcndhcmQg
ZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oIGFuZCBIVE1MTWVkaWFFbGVtZW50
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
YSBjb25zdGV4cHIgY29uc3RydWN0b3IgZm9yIFJlZlB0ciB3aGVuIGdpdmVuIGEgbnVsbHB0cl90
OyB0aGlzIGFsbG93cworICAgICAgICBkZWNsYXJhdGlvbnMgb2YgUmVmUHRyPFR5cGU+IGZvciBm
b3J3YXJkLWRlY2xhcmVkIFR5cGUgcG9zc2libGUgdG8gaW5pdGlhbGl6ZQorICAgICAgICB3aXRo
IGEgbnVsbHB0ciwgd2l0aG91dCByZXF1aXJpbmcgdGhlIGZ1bGwgZGVmaW5pdGlvbiBvZiBUeXBl
LgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OlJlZlB0
cik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZl
YXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0MWE4YTBkOTA2MGJmODQxODkwODJjMDJjYWE4NmFkYTYwYTAx
NzE2Li5hMDg3MjQ1MWViNDIxYmU2ODk1NDU0NjljYWNiZGUxOGI5MzljNWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTE0IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkLWRl
Y2xhcmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCwgYW5kIGJyZWFrIGFwYXJ0ICpUcmFj
a1ByaXZhdGVDbGllbnQgaW50byBpdHMKKyAgICAgICAgb3duIGZpbGUsIHNvIHRoYXQgY2xpZW50
cyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSBjbGFzcydzIGZpbGUuIFRoaXMgcmVx
dWlyZXMKKyAgICAgICAgb3RoZXIgY2xhc3NlcyB3aG8gZ290IHRob3NlIGluY2x1ZGVzICJmb3Ig
ZnJlZSIgcHJldmlvdXNseSB0byBleHBsaWNpdGx5IGluY2x1ZGUgaGVhZGVycyBpbgorICAgICAg
ICB0aGVpciBzb3VyY2UgZmlsZXMuCisKKyAgICAgICAgVGhlIGNoYW5nZSB0byBSZWZQdHIgdG8g
YWxsb3cgY29uc3RleHByIGNvbnN0cnVjdGlvbiBmcm9tIG51bGxwdHIgY2F1c2VkICJhbWJpZ3Vv
dXMgY2FzdCIKKyAgICAgICAgZXJyb3JzIGV2ZXJ5d2hlcmUgIjAiIHdhcyB1c2VkIGluc3RlYWQg
b2YgbnVsbHB0ciB0byBpbml0aWFsaXplIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9k
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibGVuZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2lj
U2hhcGVJbnNldCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0
ZU5vZGVOUyk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2Up
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2
ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlz
dGlmeVBhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
Q2xpZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0Ns
aWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFja0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tJZENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0tpbmRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50
Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6flZp
ZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFu
Z2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVv
VHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJl
bENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFj
a0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tD
bGllbnQ6OndpbGxSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6OmNs
ZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2VDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5j
cHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJl
cGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OlJl
bmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6
ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFy
c2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwg
RmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjk3YTRjYzU5NzJkNTRkYmQ4ZWM0YzE1NWU3YzRiZDcwN2Zk
ZTY2Li4xZGFmZjEzMmE3NTI5NGI0OTA3OWU0MWQzNGZjNjMzMjUyYjNkMzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUg
bW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFdlYWtQ
dHIgYmFzZWQgY2xpZW50IHNldHRlcnMgb24gVHJhY2tQcml2YXRlcy4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRU
cmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3Rl
VmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlv
U2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA4NTZk
NzljNzY4MGU5YzEwYjkxOWNhZjBlNzIzODgxOWI2ZGY3NjI1Li41NzIwZDM2MzJmMWI0ZDU5OGFl
YTA1MmZhZDFkYjY4Zjk4OTFjYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUgbW9yZSB0aGluZ3Mg
aW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbnVsbHB0ciByYXRoZXIgdGhhbiB6
ZXJvIGZvciBudWxsIHZhbHVlcy4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGwpOgorCiAyMDIxLTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIo
dGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvUmVmUHRyLmgKaW5kZXggYTY1OTJmZThmMjhkMDcwMGE5ZDA0OTY1OGFkMThjZGEyYWQxNjYx
NC4uMGFlYzEwYzNkZTYwNjVhYjEwZDVlOTQwNTMxM2IzMjVlNTNhMzRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1JlZlB0
ciA9IHRydWU7CiAKICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBSZWZQdHIoKSA6IG1fcHRy
KG51bGxwdHIpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgY29uc3RleHByIFJlZlB0cihzdGQ6Om51
bGxwdHJfdCkgOiBtX3B0cihudWxscHRyKSB7IH0KICAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cihU
KiBwdHIpIDogbV9wdHIocHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwocHRyKTsg
fQogICAgIEFMV0FZU19JTkxJTkUgUmVmUHRyKGNvbnN0IFJlZlB0ciYgbykgOiBtX3B0cihvLm1f
cHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwoUHRyVHJhaXRzOjp1bndyYXAobV9w
dHIpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5cGVuYW1lIFo+
IFJlZlB0cihjb25zdCBSZWZQdHI8WCwgWSwgWj4mIG8pIDogbV9wdHIoby5nZXQoKSkgeyBSZWZE
ZXJlZlRyYWl0czo6cmVmSWZOb3ROdWxsKFB0clRyYWl0czo6dW53cmFwKG1fcHRyKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xl
Z2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCmluZGV4IDNhOGMw
MGY1MjMxZjUyYTZlODlkMTgzZDE1MTFjM2FjODc3M2ExZmUuLjE3ZDRmYjcyNzQwZDZlMWMzZGY2
ZmU2Zjc2ODc1YjRjOTRiMjNiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeUNETVNl
c3Npb25DbGVhcktleS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGFiZTkyMTBmZDY1ODIwOTNiMDE3MWE4MWM2
YzEzYWIzMWU2ZjRiOGIuLjBmZGJmOWY4MDQxNzZlMDY0MThiZTVlMDVmODg1YmVhOTlkMTM5OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDhkODA3ZmMyNDA5MGU4
MGY1YmNmZjNhM2ExYzhiMmJjNzExMGE3OTQuLmY4NmQ2YzFkZTM3ZTc2YmZmZjlhZmNlOTYyZjA3
YjBmYjk3N2Q1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZl
clNvdXJjZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpA
QCAtNDksNyArNTEsOSBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZp
ZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1ZNLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaAppbmRleCBhNzIzM2QyMWUwODFhYTRhOGQ4NDI1NGIyOTNhNzMyZjY4NDEz
ZThjLi4yODA5OTI1ZjVkMjFmM2UzZjM0NzdhMWU0NTI0Mzg1MDc4NWQ0ZmFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTM0
LDE0ICszNCwxNCBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVkZSAiQXVkaW9U
cmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgotI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1
ZGUgIlRleHRUcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVmlk
ZW9UcmFjay5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYv
TG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4
IGM0YWRhNzJlYmZmZDVlYzYzOTYyYjE3YzA3MDA4NDFlOWE5NTBlZDkuLjEyNDc4YjA2MzE0Mjhm
OGU4NTQ4ZWZiZjQ4ZmY2OTRkMGQ5ODJiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtODksOCArODks
OCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUoKQogICAgIC8vIFRoZXNl
IEF1ZGlvQnVmZmVycyB3aWxsIGJlIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSBtYWluIHRocmVh
ZCBieSBKYXZhU2NyaXB0LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJDb3Vu
dDsgKytpKSB7CiAgICAgICAgIC8vIFdlIHByZXZlbnQgZGV0YWNoaW5nIHRoZSBBdWRpb0J1ZmZl
cnMgaGVyZSBzaW5jZSB3ZSBwYXNzIHRob3NlIHRvIEpTIGFuZCByZXVzZSB0aGVtLgotICAgICAg
ICBtX2lucHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZm
ZXI6OmNyZWF0ZShtX251bWJlck9mSW5wdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVS
YXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IDA7Ci0gICAg
ICAgIG1fb3V0cHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlv
QnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNh
bXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsK
KyAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1
ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwg
c2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiBu
dWxscHRyOworICAgICAgICBtX291dHB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mT3V0cHV0Q2hh
bm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgYnVm
ZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGlu
Zzo6WWVzKSA6IG51bGxwdHI7CiAgICAgfQogCiAgICAgQXVkaW9Ob2RlOjppbml0aWFsaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjVjMTE0NjYyZGJkYjM0ODhlZmJiZDkzOTExMGFkMzBhZjViYzE4Zi4uNTg2M2Y4MTc1
OTA4MzlmZGE2ZjNkZjVmMDk5Zjk5NTNmYTkwMjI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDM3MCw2ICs0MzcwLDEyIEBA
CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcx
QTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQTgxRjU3Mzk3MjAw
MEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMTlG
RUFFMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
Q0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxNTI3MDIz
NjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxODI3MDIzQTJBMDA2MTdF
QjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTkyNzAyM0E3NjAwNjE3
RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxQzI3MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFG
OUIyMTI3MDI1NjVFMDA2MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIyMDI3MDI1NjVFMDA2MTdFQjYg
LyogVGV4dFRyYWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNl
c3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZC
RjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8q
IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE0OTYyLDYgKzE0OTY4LDEyIEBACiAJCUNEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAv
KiBJbWFnZURlY29kZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2RlckFWRk9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUZFQUQxRjU3NEI2RDAwMEM0
MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFn
ZURlY29kZXJBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDFFNzM0
NjE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxMjI3MDIzNUY3MDA2MTdFQjYg
LyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0QxRjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjE3MjcwMjNBMjkwMDYx
N0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvVHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
RjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9UcmFja0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFG
OUIxQjI3MDI0QkMxMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0
VHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjI1QzA5MUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Qy
MjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TVVJMU2Vzc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3Rh
dGlvblNlc3Npb25WVC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI2Niw2ICsyNjI3OCw3IEBACiAJCQkJ
QkU4OEUwQ0MxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suY3BwICovLAogCQkJCUJFODhF
MENEMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwQ0UxNzE1
RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaWRsICovLAorCQkJCUNEMUY5QjE5MjcwMjNBNzYw
MDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggKi8sCiAJCQkJQkU4OEUwQ0YxNzE1RDJBMjAw
NjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmNwcCAqLywKIAkJCQlCRTg4RTBEMDE3MTVEMkEyMDA2
NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCAqLywKIAkJCQlCRTg4RTBEMTE3MTVEMkEyMDA2NThE
OTggLyogQXVkaW9UcmFja0xpc3QuaWRsICovLApAQCAtMjYyODcsNiArMjYzMDAsNyBAQAogCQkJ
CTk3NTlFOTM1MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3BwICovLAogCQkJCTk3NTlF
OTM2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCAqLywKIAkJCQk5NzU5RTkzNzE0RUYx
Q0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIyMDI3MDI1NjVFMDA2
MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggKi8sCiAJCQkJOTc1OUU5MzgxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFja0N1ZS5jcHAgKi8sCiAJCQkJOTc1OUU5MzkxNEVGMUNGODAwMjZBMkRE
IC8qIFRleHRUcmFja0N1ZS5oICovLAogCQkJCTk3NTlFOTNBMTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2tDdWUuaWRsICovLApAQCAtMjYzMDksNiArMjYzMjMsNyBAQAogCQkJCUJFODhFMEQy
MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCAqLywKIAkJCQlCRTg4RTBEMzE3MTVE
MkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oICovLAogCQkJCUJFODhFMEQ0MTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIxNzI3MDIzQTI5MDA2MTdFQjYg
LyogVmlkZW9UcmFja0NsaWVudC5oICovLAogCQkJCUJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5OCAv
KiBWaWRlb1RyYWNrTGlzdC5jcHAgKi8sCiAJCQkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8q
IFZpZGVvVHJhY2tMaXN0LmggKi8sCiAJCQkJQkU4OEUwRDcxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2tMaXN0LmlkbCAqLywKQEAgLTI2OTA3LDYgKzI2OTIyLDcgQEAKIAkJCQkwRjdFNDc1
MTI1RUVCNzlBMDAxM0Y5MDkgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk3MjJB
ODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVG
MjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJQ0Qx
RjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCiAJ
CQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwICovLAogCQkJCTJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggKi8sCiAJCQkJQTg5OTQzMjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmNwcCAqLywKQEAgLTI3MTU1LDEyICsyNzE3MSwxNCBAQAogCQkJCTFBRjg5QTQxMTUxOEZE
RUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCAqLywKIAkJCQkwNzZFMTFCRTFGNjgzRTBEMDAx
NzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5MTNEN0YxODFFRjhFNTAw
RENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKKwkJCQlDRDFGOUIxQjI3MDI0QkMxMDA2
MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovLAogCQkJCUU0QUZDRkE0MERBRjI5
QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVF
REE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURC
IC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBW
aWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCTA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVERDA5MDBD
NEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxMjI3MDIzNUY3MDA2
MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQlDRDZGRTVCQTI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5
QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxNDg5LDExICszMTUwNywxMyBAQAogCQkJCUZE
QjA1MkUwMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODMwMDVGOUQyNEVCMUQ0MDAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEOTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFj
ay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMUEyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlv
VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERDMTcxNUQyQTIwMDY1OEQ5
OCAvKiBBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNEMxODBFMTdD
MDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkVGMjlFRUIxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNBODU4MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5QjE2MjcwMjM2
MEYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0Q1NEE3NjMxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYg
LyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwOEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
QEAgLTM1NTMxLDYgKzM1NTUxLDcgQEAKIAkJCQlBODI0QjQ2NTBFMkVGMkVBMDA4MUE3QjcgLyog
VGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QjFCN0EwRjNBMkY5QjAwNDdBOUUyIC8q
IFRleHRTaXplQWRqdXN0bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1OUU5NDAxNEVGMUNG
ODAwMjZBMkREIC8qIFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMjEyNzAy
NTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1
OUU5NDMxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDcxQTlFQzMxNjhGQkM1NTAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NTlFOTQ2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWVM
aXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTc2LDYgKzM1NTk3LDcgQEAKIAkJCQkwNzAzMzRE
NzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4
RTBDMjE3MTVDRTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU5MTNEODAxODFFRjkyNDAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEMUY5QjFDMjcwMjRCQzIwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1MDA4QzRGMUUgLyog
VHJhaWxpbmdPYmplY3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwNzEzMjFCRDgzMDhCMDBE
QkM0RjIgLyogVHJhbnNhY3Rpb25PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VF
RjQxMjU3OTlGRDkwMDY1NjNCQiAvKiBUcmFuc2ZlckZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTM1NjY5LDExICszNTY5MSwxMyBAQAogCQkJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAv
KiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTM5QTgxRTlCREZCMTAwQkI3
NjhEIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBE
RjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Qx
RjlCMTgyNzAyM0EyQTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJFODhFMEUyMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkVGMjlFRUMxNzE1REQwOTAwQzRCNEM5IC8q
IFZpZGVvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDMzNkY2NDE3RkEwQTRE
MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1
IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzBFODFEMTFCRjI3NjU2MDAxRkRBNDggLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VGNDE4Q0YxMTc5Njc4QzAwOUQxMTJDIC8qIFZp
ZXdwb3J0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IGNiZTUzYmI1NDM4OTY2NmQy
ZmRhZDQyMjdmMjk2NGU0OWQ1ODVlYTcuLjcyMzRmZWQxOWNmYzhiNmE5OGU3MTI4ZGIxOTBmNTc2
ZWY3YzM0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5
QW5pbWF0aW9uLmNwcApAQCAtMzE1LDkgKzMxNSw5IEBAIHN0YXRpYyBpbmxpbmUgRmlsdGVyT3Bl
cmF0aW9ucyBibGVuZEZpbHRlck9wZXJhdGlvbnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJv
CiAgICAgc2l6ZV90IHRvU2l6ZSA9IHRvLm9wZXJhdGlvbnMoKS5zaXplKCk7CiAgICAgc2l6ZV90
IHNpemUgPSBzdGQ6Om1heChmcm9tU2l6ZSwgdG9TaXplKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmcm9t
T3AgPSAoaSA8IGZyb21TaXplKSA/IGZyb20ub3BlcmF0aW9ucygpW2ldLmdldCgpIDogMDsKLSAg
ICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gdG9PcCA9IChpIDwgdG9TaXplKSA/IHRvLm9w
ZXJhdGlvbnMoKVtpXS5nZXQoKSA6IDA7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+
IGJsZW5kZWRPcCA9IHRvT3AgPyBibGVuZEZ1bmMoZnJvbU9wLmdldCgpLCB0b09wLmdldCgpLCBj
b250ZXh0KSA6IChmcm9tT3AgPyBibGVuZEZ1bmMoMCwgZnJvbU9wLmdldCgpLCBjb250ZXh0LCB0
cnVlKSA6IDApOworICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmcm9tT3AgPSAoaSA8
IGZyb21TaXplKSA/IGZyb20ub3BlcmF0aW9ucygpW2ldLmdldCgpIDogbnVsbHB0cjsKKyAgICAg
ICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gdG9PcCA9IChpIDwgdG9TaXplKSA/IHRvLm9wZXJh
dGlvbnMoKVtpXS5nZXQoKSA6IG51bGxwdHI7CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+IGJsZW5kZWRPcCA9IHRvT3AgPyBibGVuZEZ1bmMoZnJvbU9wLmdldCgpLCB0b09wLmdldCgp
LCBjb250ZXh0KSA6IChmcm9tT3AgPyBibGVuZEZ1bmMoMCwgZnJvbU9wLmdldCgpLCBjb250ZXh0
LCB0cnVlKSA6IG51bGxwdHIpOwogICAgICAgICBpZiAoYmxlbmRlZE9wKQogICAgICAgICAgICAg
cmVzdWx0Lm9wZXJhdGlvbnMoKS5hcHBlbmQoYmxlbmRlZE9wKTsKICAgICAgICAgZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4
IDM4Nzc3Y2YyYTk3OGM3YTZlMmRiNTkxZDVjNWZmNTJjMjY1N2ViOTUuLmVlZjllOGZlOTI0ODBj
NGZlMGE3ZDlkZDM2ZTQwYWNmODVjNmZlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yNjcxLDggKzI2NzEsOCBAQCBzdGF0aWMg
UmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldD4gY29uc3VtZUJhc2ljU2hhcGVJbnNldChDU1NQYXJz
ZXJUb2tlblJhbmdlJiBhcgogICAgICAgICBzaGFwZS0+dXBkYXRlU2hhcGVTaXplMVZhbHVlKHRv
cC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGlmIChjb25zdW1lSWRlbnQ8Q1NTVmFsdWVSb3Vu
ZD4oYXJncykpIHsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBob3Jpem9udGFs
UmFkaWlbNF0gPSB7IDAgfTsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2ZXJ0
aWNhbFJhZGlpWzRdID0geyAwIH07CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
aG9yaXpvbnRhbFJhZGlpWzRdID0geyBudWxscHRyIH07CisgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gdmVydGljYWxSYWRpaVs0XSA9IHsgbnVsbHB0ciB9OwogICAgICAgICBpZiAo
IWNvbnN1bWVSYWRpaShob3Jpem9udGFsUmFkaWksIHZlcnRpY2FsUmFkaWksIGFyZ3MsIGNvbnRl
eHQubW9kZSwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHNo
YXBlLT5zZXRUb3BMZWZ0UmFkaXVzKGNyZWF0ZVByaW1pdGl2ZVZhbHVlUGFpcihob3Jpem9udGFs
UmFkaWlbMF0ucmVsZWFzZU5vbk51bGwoKSwgdmVydGljYWxSYWRpaVswXS5yZWxlYXNlTm9uTnVs
bCgpLCBQYWlyOjpJZGVudGljYWxWYWx1ZUVuY29kaW5nOjpDb2FsZXNjZSkpOwpAQCAtMjg4MSw3
ICsyODgxLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlckltYWdlUmVw
ZWF0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUJvcmRlckltYWdlU2xpY2UoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgYm9vbCBmaWxsID0gY29uc3VtZUlkZW50PENTU1Zh
bHVlRmlsbD4ocmFuZ2UpOwotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gc2xpY2VzWzRd
ID0geyAwIH07CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZXNbNF0gPSB7IG51
bGxwdHIgfTsKIAogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4
KSB7CiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWUgPSBjb25zdW1lUGVy
Y2VudChyYW5nZSwgVmFsdWVSYW5nZTo6Tm9uTmVnYXRpdmUpOwpAQCAtMjkxOCw3ICsyOTE4LDcg
QEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlckltYWdlU2xpY2UoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTUGFyc2UKIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUJvcmRlckltYWdlT3V0c2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewotICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gb3V0c2V0c1s0XSA9IHsgMCB9OworICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gb3V0c2V0c1s0XSA9IHsgbnVsbHB0ciB9OwogCiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZTsKICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7
IGluZGV4IDwgNDsgKytpbmRleCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGNmMDNiOGQ1
NDc5ZjBmOTg2NWNiZWRmMmUzOTk3MWNmYWZmNzdmYTAuLjgzNTRmMzA2YTdkZTBiNDViMWMyZDdl
YTliMjUyYWRhZjg5NjcyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI5OTUsMTIgKzI5
OTUsMTIgQEAgUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGUoY29uc3QgQXRv
bVN0cmluZyYgcXVhbGlmaWVkTmFtZSkKIFJlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRyaWJ1
dGVOb2RlTlMoY29uc3QgQXRvbVN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9tU3RyaW5n
JiBsb2NhbE5hbWUpCiB7CiAgICAgaWYgKCFlbGVtZW50RGF0YSgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgUXVhbGlmaWVkTmFtZSBxTmFtZShudWxs
QXRvbSgpLCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk7CiAgICAgc3luY2hyb25pemVBdHRyaWJ1
dGUocU5hbWUpOwogICAgIGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlID0gZWxlbWVudERhdGEo
KS0+ZmluZEF0dHJpYnV0ZUJ5TmFtZShxTmFtZSk7CiAgICAgaWYgKCFhdHRyaWJ1dGUpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gZW5zdXJl
QXR0cihhdHRyaWJ1dGUtPm5hbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCA1NWI2ZDM4ZTk0OWJkNGExMjU0OGJlYWMxM2Nl
NWFhOWYxNjU2Nzk4Li5iYjRiYzEzNmY3ZjFhNGI5ZDQ1ZTk2ZTYwMmRjN2MzMDNmMmU5ZmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC00
NTAsNyArNDUwLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRVbmhhbmRs
ZWRQcm9taXNlUmVqZWN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QKIAogdm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQog
ewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIDAsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgbnVsbHB0ciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAog
Ym9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2Ny
aXB0KiBjYWNoZWRTY3JpcHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwCmluZGV4IGQ2ODg5MGI4
M2I4MzI5MDllZjFhZmZiYThhOTcwNTFjMzkwZmE1NjkuLjI1NTNhMGM3MzJkZDI5Mjk0M2JiNzMx
ZTc5NzQxZTEwYTZmNjQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIFJlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlKFJlZlB0cjxXaW5kb3dQcm94
eT4mJiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsCiAKIFJlZjxUZXh0RXZlbnQ+IFRleHRFdmVu
dDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNv
bnN0IFN0cmluZyYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KFdURk1vdmUodmlldyksIGRhdGEsIDAsIHNob3VsZFNt
YXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1
b3RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KFdURk1vdmUodmlldyks
IGRhdGEsIG51bGxwdHIsIHNob3VsZFNtYXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKSk7CiB9CiAKIFJlZjxUZXh0RXZlbnQ+IFRleHRF
dmVudDo6Y3JlYXRlRm9yRnJhZ21lbnRQYXN0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2Us
IGJvb2wgc2hvdWxkTWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2tx
dW90ZUhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5k
LmNwcAppbmRleCA4ODM3M2NiNGQ2MzJmM2E5NjJkNzU3ZWQxN2NjNGQ2YTlhYzZhZjdlLi4zYjUx
YjZhYmM0MTYwOWJhMGJjMzc1M2VmNzhiMmRjNDZlNDAxYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIFJlZlB0
cjxIVE1MRWxlbWVudD4gSW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBvCiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZCA9IGVuZE9mUGFyYWdy
YXBoKHN0YXJ0LCBDYW5Ta2lwT3ZlckVkaXRpbmdCb3VuZGFyeSk7CiAgICAgCiAgICAgaWYgKHN0
YXJ0LmlzTnVsbCgpIHx8IGVuZC5pc051bGwoKSB8fCAhc3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5j
b250YWluZXJOb2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhZW5kLmRlZXBFcXVpdmFsZW50
KCkuY29udGFpbmVyTm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGZvciBhZGpvaW5pbmcg
bGlzdHMuCiAgICAgYXV0byBsaXN0SXRlbUVsZW1lbnQgPSBIVE1MTElFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CkBAIC00MDUsNyArNDA1LDcgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBJbnNl
cnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIG8K
ICAgICAgICAgICAgIGluc2VydGlvblBvcyA9IHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKGxp
c3RDaGlsZC5nZXQoKSk7CiAKICAgICAgICAgaWYgKCFpc0VkaXRhYmxlUG9zaXRpb24oaW5zZXJ0
aW9uUG9zKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAgICAgaW5zZXJ0Tm9kZUF0KCpsaXN0RWxlbWVudCwgaW5zZXJ0aW9uUG9zKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMjhjOTcxMmFh
Zjc5NGU2M2QyYThhMDdiMGEwOGM5MDI3N2QyZmFiZC4uMjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4
MDhkOGI0OTQwYWFhNWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNl
LmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIK
KyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNs
dWRlICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtNjgsNiAr
NjksNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNI
VE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNNZWRpYUNvbnRyb2xzSG9zdC5oIgorI2lu
Y2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKQEAg
LTg3LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQaWN0dXJl
SW5QaWN0dXJlU3VwcG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21h
aW4uaCIKQEAgLTExMSw3ICsxMTQsOSBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlkZW9Q
bGF5YmFja1F1YWxpdHkuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCiAjaW5jbHVkZSAiVmlk
ZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdE9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDxsaW1pdHM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IGFkMDllN2JlMWUyMzBkZmU2YmM3OTk1YjVmNTNkNzU3NGM4ODFi
M2YuLjQyZGRhYzcxMjNiOWUxY2U4ZTRhYjRkYTcwMTlkZjg4ZDE1NjhmOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxF
KFZJREVPKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiQXVkaW9U
cmFjay5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJBdXRvcGxh
eUV2ZW50LmgiCiAjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFVbmlxdWVJZGVu
dGlmaWVyLmgiCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFjay5o
IgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGll
bnQuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggMGY5ZjQzYjA0OGY0ZWQ0MTEwOTIwMWJm
MzUzZDU4ZWFhNDUyMzM3MS4uYzJkMDM1M2ViODcxYzU0ZGEyOTZiZTI1OWMwMDM2MWZlZGJlMmI5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFj
ay5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTYwLDE3ICs2MSwxNyBAQCBz
dGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBVUkwmIHVybCkKIGlubGluZSBI
VE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQorICAgICwgbV90cmFjayhM
b2FkYWJsZVRleHRUcmFjazo6Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKGtpbmRBdHRyKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBsYWJlbCgpLCBzcmNs
YW5nKCkpKQogeworICAgIG1fdHJhY2stPmFkZENsaWVudCgqdGhpcyk7CiAgICAgTE9HKE1lZGlh
LCAiSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudCAtICVwIiwgdGhpcyk7CiAgICAg
QVNTRVJUKGhhc1RhZ05hbWUodHJhY2tUYWcpKTsKIH0KIAogSFRNTFRyYWNrRWxlbWVudDo6fkhU
TUxUcmFja0VsZW1lbnQoKQogewotICAgIGlmIChtX3RyYWNrKSB7Ci0gICAgICAgIG1fdHJhY2st
PmNsZWFyRWxlbWVudCgpOwotICAgICAgICBtX3RyYWNrLT5jbGVhckNsaWVudCgqdGhpcyk7Ci0g
ICAgfQorICAgIG1fdHJhY2stPmNsZWFyRWxlbWVudCgpOworICAgIG1fdHJhY2stPmNsZWFyQ2xp
ZW50KCp0aGlzKTsKIH0KIAogUmVmPEhUTUxUcmFja0VsZW1lbnQ+IEhUTUxUcmFja0VsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CkBAIC0xNDIsMjEgKzE0Myw5IEBAIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6aXNEZWZhdWx0KCkg
Y29uc3QKICAgICByZXR1cm4gaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkZWZh
dWx0QXR0cik7CiB9CiAKLUxvYWRhYmxlVGV4dFRyYWNrJiBIVE1MVHJhY2tFbGVtZW50Ojp0cmFj
aygpCitUZXh0VHJhY2smIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkKIHsKLSAgICAvLyBGSVhN
RTogVGhlcmUgaXMgbm8gcHJhY3RpY2FsIHZhbHVlIGluIGxhemlseSBpbml0aWFsaXppbmcgdGhp
cy4KLSAgICAvLyBJbnN0ZWFkIHRoaXMgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVj
dG9yLgotICAgIGlmICghbV90cmFjaykgewotICAgICAgICAvLyBUaGUga2luZCBhdHRyaWJ1dGUg
aXMgYW4gZW51bWVyYXRlZCBhdHRyaWJ1dGUsIGxpbWl0ZWQgb25seSB0byBrbm93biB2YWx1ZXMu
IEl0IGRlZmF1bHRzIHRvICdzdWJ0aXRsZXMnIGlmIG1pc3Npbmcgb3IgaW52YWxpZC4KLSAgICAg
ICAgU3RyaW5nIGtpbmQgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGtpbmRBdHRy
KS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgICAgICBpZiAoIVRleHRUcmFjazo6aXNW
YWxpZEtpbmRLZXl3b3JkKGtpbmQpKQotICAgICAgICAgICAga2luZCA9IFRleHRUcmFjazo6c3Vi
dGl0bGVzS2V5d29yZCgpOwotICAgICAgICBtX3RyYWNrID0gTG9hZGFibGVUZXh0VHJhY2s6OmNy
ZWF0ZSgqdGhpcywga2luZCwgbGFiZWwoKSwgc3JjbGFuZygpKTsKLSAgICAgICAgbV90cmFjay0+
YWRkQ2xpZW50KCp0aGlzKTsKLSAgICB9Ci0gICAgQVNTRVJUKG1fdHJhY2stPnRyYWNrRWxlbWVu
dCgpID09IHRoaXMpOwotCi0gICAgcmV0dXJuICptX3RyYWNrOworICAgIHJldHVybiBtX3RyYWNr
OwogfQogCiBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYgYXR0cmlidXRlKSBjb25zdApAQCAtMjA2LDcgKzE5NSw3IEBAIHZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6c2NoZWR1bGVMb2FkKCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIHRyYWNrKCkuc2NoZWR1bGVMb2FkKHRyYWNrVVJMKTsKKyAgICAgICAgbV90cmFj
ay0+c2NoZWR1bGVMb2FkKHRyYWNrVVJMKTsKICAgICB9KTsKIH0KIApAQCAtMjgzLDEzICsyNzIs
MTEgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUgc3Rh
dGUpCiB7CiAgICAgdHJhY2soKS5zZXRSZWFkaW5lc3NTdGF0ZShzdGF0aWNfY2FzdDxUZXh0VHJh
Y2s6OlJlYWRpbmVzc1N0YXRlPihzdGF0ZSkpOwogICAgIGlmIChhdXRvIHBhcmVudCA9IG1lZGlh
RWxlbWVudCgpKQotICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2VkKG1f
dHJhY2suZ2V0KCkpOworICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2Vk
KG1fdHJhY2sucHRyKCkpOwogfQogCiBIVE1MVHJhY2tFbGVtZW50OjpSZWFkeVN0YXRlIEhUTUxU
cmFja0VsZW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewotICAgIGlmICghbV90cmFjaykKLSAg
ICAgICAgcmV0dXJuIEhUTUxUcmFja0VsZW1lbnQ6Ok5PTkU7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlYWR5U3RhdGU+KG1fdHJhY2stPnJlYWRpbmVzc1N0YXRlKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IGI4NjJkNDlhNGE5MmMzMzY3MzU1ODkx
Y2I2NDY4NWU2ODAxNWU2MDIuLjNmNDRlMGE4ZTE0YTFjN2U1ZGRmYzBhZjg5NWZhMGI0MTQ3ZjU2
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC0zMCwxMSArMzAs
MTIgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJh
Y2tDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50OworY2xhc3MgTG9hZGFibGVUZXh0VHJhY2s7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBUZXh0VHJhY2tDbGllbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTFRyYWNr
RWxlbWVudCk7CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdDsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSk7CiAKLSAg
ICBMb2FkYWJsZVRleHRUcmFjayYgdHJhY2soKTsKKyAgICBUZXh0VHJhY2smIHRyYWNrKCk7CiAK
ICAgICB2b2lkIHNjaGVkdWxlTG9hZCgpOwogCkBAIC04Nyw3ICs4OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJik7CiAKLSAgICBSZWZQdHI8TG9hZGFibGVU
ZXh0VHJhY2s+IG1fdHJhY2s7CisgICAgUmVmPExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOwog
ICAgIGJvb2wgbV9sb2FkUGVuZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlbGV2YW50
TG9hZEV2ZW50c0xpc3RlbmVyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrLmNwcAppbmRleCAzY2I3MThkM2RjMjdlNTgzYjVhNWRmMTA5M2EwMzY1Mjdj
MDJlY2I1Li4xMmIxZmNjNTc3NmUwNmNmZThkZGZhOTJjNzNjNzcyMGZiOTNkZjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTMxLDEwICszMSwxMiBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotI2luY2x1ZGUg
IkF1ZGlvVHJhY2tMaXN0LmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJBdWRp
b1RyYWNrQ2xpZW50LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MCwxMyArODIsMTMgQEAgQXVkaW9UcmFjazo6QXVkaW9U
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1RyYWNrUHJpdmF0ZSYg
dHJhY2sKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX2VuYWJsZWQodHJh
Y2tQcml2YXRlLmVuYWJsZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
KyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2
YXRlKCk7CiB9CiAKIEF1ZGlvVHJhY2s6On5BdWRpb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUt
PnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAK
IHZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQpAQCAtOTQsMTAgKzk2LDEwIEBAIHZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRp
b1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0g
JnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcml2YXRlLT5zZXRDbGll
bnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogICAgIG1fcHJpdmF0
ZSA9IHRyYWNrUHJpdmF0ZTsKICAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9lbmFibGVkKTsK
LSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVu
dCgqdGhpcyk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9wcml2YXRlLT5zZXRM
b2dnZXIobG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrLmgKaW5kZXggMzc1MTBhOGNkMmY4ZjQwMTUzNTg5MjVkZjk5ZGFl
Yzk4ZjE5NjA1Yy4uYTMzNzcwNTM4OWU5ODYyYmJmOGNmZjE0Y2NlY2M4Zjk0NmIxZjI3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTI4LDI2ICsyOCwxNSBAQAog
CiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKKyNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5o
IgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEF1ZGlvVHJhY2s7CitjbGFzcyBBdWRpb1RyYWNrQ2xpZW50OwogY2xhc3MgQXVkaW9U
cmFja0xpc3Q7CiAKLWNsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8QXVkaW9UcmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tD
bGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxDaGFu
Z2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1YWdl
Q2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVBdWRp
b1RyYWNrKEF1ZGlvVHJhY2smKSB7IH0KLX07Ci0KIGNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBw
dWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYy
YzdkYjQ0MjcwNDFmYzRjMjBjMjg2NjFmYjNmMzAxMWU0Y2NmOGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEF1ZGlvVHJhY2s7CisKK2NsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8QXVkaW9UcmFja0NsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfkF1ZGlvVHJh
Y2tDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENo
YW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENo
YW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxD
aGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1
YWdlQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVB
dWRpb1RyYWNrKEF1ZGlvVHJhY2smKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXggYzZmZWEzNWVkMzhi
MDQ4NjAzZDJjZTgxZGZhYmIwMjYxODg0MjBlZC4uZDQ1OTY5ZmJmYzc3ZGU5N2UwN2Y3YmE4ZDk5
NzZhODI0ZThlNzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4
dFRyYWNrLmNwcApAQCAtNTgsMTMgKzU4LDEzIEBAIEluYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4
dFRyYWNrKERvY3VtZW50JiBkb2N1bWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhCiAg
ICAgOiBUZXh0VHJhY2soJmRvY3VtZW50LCBlbXB0eUF0b20oKSwgdHJhY2tQcml2YXRlLmlkKCks
IHRyYWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQog
ICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVu
dCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2lu
ZEZyb21Qcml2YXRlKCk7CiB9CiAKIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygp
CiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5j
bGVhckNsaWVudCgpOwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCkBAIC03Miw5ICs3Miw5IEBAIHZvaWQg
SW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1f
cHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7Ci0g
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
KnRoaXMpOwogCiAgICAgc2V0TW9kZUludGVybmFsKG1vZGUoKSk7CiAgICAgdXBkYXRlS2luZEZy
b21Qcml2YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXgg
MGE2NDdjMmM0NTY2NTQ3ZWZhZWZiNDY2MjQ1MTJmMDZmYzE4YTZmMi4uODQ5Y2Q1OTRhN2I5YTM5
OGIwYzMxZmE5MGZjNjdkN2Y2ZDY3NmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJUZXh0
VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAjaW5jbHVkZSAi
VGV4dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmgKaW5kZXggOGIzMTZlN2FkYTQ5YzMwMjg5NTI0NWIwYTcxOGVjZDRk
ODkyOWUyZC4uOTQwYzAyNDYyZTg2OTNjYjg4ODlkMDI3YjZjOWE4NmVmMmU5MGNmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC0zOSwyNSArMzksMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFRleHRU
cmFjazsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CitjbGFzcyBUZXh0VHJhY2tDbGllbnQ7CiBjbGFz
cyBUZXh0VHJhY2tDdWVMaXN0OwogY2xhc3MgVlRUUmVnaW9uOwogY2xhc3MgVlRUUmVnaW9uTGlz
dDsKIAotY2xhc3MgVGV4dFRyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRleHRU
cmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpID0g
ZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrSWRDaGFuZ2VkKFRleHRUcmFjayYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0xhYmVsQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFRleHRUcmFjayYpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3Vl
cyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYpIHsg
fQotfTsKLQogY2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoVGV4dFRyYWNrKTsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxOGQwMzdkZWY3NTk0ZmQw
MGE1MmM4MWM5MDE0OTBjZDcwZWE0MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dFRyYWNrOworY2xh
c3MgVGV4dFRyYWNrQ3VlOworY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKKworY2xhc3MgVGV4dFRy
YWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRleHRUcmFja0NsaWVudD4geworcHVi
bGljOgorICAgIHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGV4dFRyYWNrSWRDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja0xhYmVsQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
dGV4dFRyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB3aWxsUmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYpIHsgfQorfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IDk3ZjAxYWNj
NjU5YTBkYzBlNTFkMGVlMThkMDM2NDAzNjE5YWNmNDAuLjIzMDE5N2RkNTEyMTJhYWM4MGFhYTU5
ZGIyNjhmZWEzZWYwMmNhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmNwcApAQCAtMzQsNyArMzQsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAi
VmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC04NCwxMyArODYsMTMgQEAgVmlkZW9UcmFj
azo6VmlkZW9UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2sKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX3Nl
bGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICB1cGRhdGVL
aW5kRnJvbVByaXZhdGUoKTsKIH0KIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAg
IG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGll
bnQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRl
JiB0cmFja1ByaXZhdGUpCkBAIC05OCw5ICsxMDAsOSBAQCB2b2lkIFZpZGVvVHJhY2s6OnNldFBy
aXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRl
LnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAg
ICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhp
cyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIG1fcHJpdmF0ZS0+c2V0TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlmaWVy
KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IGVm
ODQ4OGU3YjU5ODFmMTMxNzIyYmZiZDY3NmQ2ZjRiMTZkZjUxYTYuLjhkNmY4OGNmYmZlOTIyMTA1
ZjIwNzExZDViN2VlYjM2NWVmOWU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5oCkBAIC0yOSwyNSArMjksMTYgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRl
ICJUcmFja0Jhc2UuaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFEZXNjcmlwdGlvbjsKIGNsYXNz
IFZpZGVvVHJhY2s7CitjbGFzcyBWaWRlb1RyYWNrQ2xpZW50OwogY2xhc3MgVmlkZW9UcmFja0xp
c3Q7Ci0KLWNsYXNzIFZpZGVvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Vmlk
ZW9UcmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tJZENoYW5nZWQoVmlkZW9U
cmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrS2luZENoYW5nZWQoVmlkZW9U
cmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKFZpZGVv
VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZChW
aWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFj
ayhWaWRlb1RyYWNrJikgeyB9Ci19OworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIGNsYXNz
IFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5pZGwKaW5kZXggMmM2MGIyYjJlNzA2NTMzODhkOWE0ZWNjMDAzOWEzMmYzNjYwYjJj
OC4uOTkxMzY3MzYxZWFlYjJmY2Y0OTRhZDE5ZmZkN2E1MDA1NDVkMGYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCkBAIC0zNCw0ICszNCw1IEBACiAgICAgW1Nl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZT1NZWRpYVNvdXJjZV0gYXR0cmlidXRlIERPTVN0
cmluZyBsYW5ndWFnZTsKIAogICAgIGF0dHJpYnV0ZSBib29sZWFuIHNlbGVjdGVkOworCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNDVjODc2ZDdkN2I5NjQ3NjNlNzc2NDhlOWYzOWRhNWZhMTljOGZmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50LmgKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
KQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBWaWRlb1RyYWNrOworCitjbGFzcyBWaWRlb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPFZpZGVvVHJhY2tDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRl
b1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrSWRD
aGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0tpbmRD
aGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhYmVs
Q2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYW5n
dWFnZUNoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
bW92ZVZpZGVvVHJhY2soVmlkZW9UcmFjayYpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNw
cAppbmRleCA1NTNhMWNmZDc5ZTIwMTkzNjZmM2VjMzcwYzgzYzk4MzhkMzExOTczLi5iZTVhNzBk
ZWVmNDczMTNmZWFiOGE4ZjdlNDAzNGEwMTg0MTE3NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGFnZUNvbnNv
bGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uCiAgICAgaWYgKGRvY3VtZW50KQogICAgICAgICBkb2N1bWVudC0+Z2V0UGFyc2Vy
TG9jYXRpb24odXJsLCBsaW5lLCBjb2x1bW4pOwogCi0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwgMCwgSlNFeGVjU3RhdGU6OmN1cnJlbnRT
dGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwgbnVsbHB0ciwgSlNFeGVjU3RhdGU6OmN1cnJl
bnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGll
bnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZS5oCmluZGV4IGE5ZjgzNmJkMTE3M2UyMmUwYWU4MTRhMTc1NDJhYTIzYTQ2MTVhNGUuLmM1
MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkxMWEwNDljZTc5NGI0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtMjUs
NiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogCkBAIC0zMiwxMyArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwotCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwotfTsKLQogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkKQEAgLTQ2LDggKzQwLDkgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZSk7CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRDbGllbnQoQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBt
X2NsaWVudCA9IGNsaWVudDsgfQotICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZvaWQgc2V0Q2xpZW50
KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0
cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRy
OyB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgewpAQCAtNzgsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
QXVkaW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8QXVkaW9U
cmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBFbmFibGVkQ2hhbmdlZENhbGxiYWNrIG1fZW5hYmxlZENoYW5nZWRDYWxsYmFjazsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2
NjNlMDc1YTk0NGU4MzZkY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CisKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
dm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSA9IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oCmluZGV4IDBiNGQ5Y2ZlNjdjZTk1N2E3Yjk3MzI3OTY2MDZiMGFkMjZmZTE3OGQu
LmRjYzMyNmE1M2MwMzFlZDRmZjM0YzE1YjM2MzcwNDZhOGQyYjljMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgKQEAgLTQxLDggKzQxLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4gY3JlYXRlKEN1ZUZvcm1hdCBmb3JtYXQpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShmb3JtYXQpKTsgfQogICAgIHZpcnR1YWwgfklu
YmFuZFRleHRUcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsg
fQotICAgIHZvaWQgc2V0Q2xpZW50KEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Cisg
ICAgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7
IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQo
KSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogCiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhf
dCB7CiAgICAgICAgIERpc2FibGVkLApAQCAtODgsNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAKIHBy
aXZhdGU6CiAgICAgQ3VlRm9ybWF0IG1fZm9ybWF0OwotICAgIEluYmFuZFRleHRUcmFja1ByaXZh
dGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgTW9kZSBtX21vZGUg
eyBNb2RlOjpEaXNhYmxlZCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdhMzI2NTAzM2I5NDdiNWJlNjhjMDYyMzAy
NmZmMzAxMjhjNDI4MTguLmVjMDEwYzdlYzBiYjBmNWE2ZjIyZGNhNzRkZGM3MjU5OGQ2NWY2YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTMzLDkgKzMzLDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTGVnYWN5
Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC04OSw2ICs5Myw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gVGhl
IGltcGxlbWVudGF0aW9uIGlzIGhlcmUgcmF0aGVyIHRoYW4gaW4gdGhlIGhlYWRlciBiZWNhdXNl
IGl0IHJlcXVpcmVzIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIHRvIGJlIGluY2x1ZGVk
IHdoZW4gY29tcGlsZWQgd2l0aCBHQ0MuCitSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyPiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigp
IHsgcmV0dXJuIG51bGxwdHI7IH0KKwogLy8gYSBudWxsIHBsYXllciB0byBtYWtlIE1lZGlhUGxh
eWVyIGxvZ2ljIHNpbXBsZXIKIAogY2xhc3MgTnVsbE1lZGlhUGxheWVyUHJpdmF0ZSBmaW5hbCA6
IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewpAQCAtMTg3LDcgKzE5NCw2IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBudWxsQ29udGVudFR5cGVWZWN0b3IoKTsgfQogfTsKIAotCiBjb25zdCBWZWN0b3I8Q29udGVu
dFR5cGU+JiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSBjb25zdAogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
Q29udGVudFR5cGU+PiBjb250ZW50VHlwZXM7CkBAIC00MTIsNiArNDE4LDcgQEAgTWVkaWFQbGF5
ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVu
dCgmY2xpZW50KQogICAgICwgbV9yZWxvYWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyOjpyZWxv
YWRUaW1lckZpcmVkKQogICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlhUGxheWVy
UHJpdmF0ZT4odGhpcykpCisgICAgLCBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1p
Y1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7CiB9CiAKQEAgLTQyMCw2ICs0MjcsNyBAQCBNZWRpYVBs
YXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCwgTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbgogICAgICwgbV9yZWxvYWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVy
OjpyZWxvYWRUaW1lckZpcmVkKQogICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlh
UGxheWVyUHJpdmF0ZT4odGhpcykpCiAgICAgLCBtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIobWVk
aWFFbmdpbmVJZGVudGlmaWVyKQorICAgICwgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5
bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlMGI4NmQ4ZTZlNmE5OWY1YjA2YjZi
NmZjYTlhMjg2ZDNjNDQ3ODkwLi5kODhjYTlhMTkxZWFiZGJiNDIwMWVkOGVjOGNjNDU2NTExMjli
ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKQEAgLTI3LDI0ICsyNywxNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAi
QXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUg
IkNvb2tpZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKLSNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1
ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFT
ZXNzaW9uLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KQEAgLTU2LDEwICs0OSw2IEBA
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CiAKLSNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRy
YWNrLmgiCi0jZW5kaWYKLQogT0JKQ19DTEFTUyBBVlBsYXllcjsKIE9CSkNfQ0xBU1MgTlNBcnJh
eTsKIApAQCAtNjksMTMgKzU4LDE4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4
ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBBdWRpb1Nl
c3Npb25DYXRlZ29yeSA6IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1vZGUgOiB1
aW50OF90OworCiBjbGFzcyBBdWRpb1NvdXJjZVByb3ZpZGVyOworY2xhc3MgQXVkaW9UcmFja1By
aXZhdGU7CiBjbGFzcyBDRE1JbnN0YW5jZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0R0w7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOwogY2xhc3MgTGVnYWN5Q0RNOworY2xhc3MgTGVnYWN5Q0RN
U2Vzc2lvbjsKIGNsYXNzIExlZ2FjeUNETVNlc3Npb25DbGllbnQ7CiBjbGFzcyBNZWRpYVBsYXli
YWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5ZXI7CkBAIC04NCw4ICs3OCwxMiBAQCBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVu
dDsKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKK2NsYXNzIE5hdGl2ZUltYWdlOworY2xhc3Mg
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOworY2xhc3MgUGxhdGZvcm1UZXh0VHJhY2s7CiBj
bGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsK
K2NsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVy
Owogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTIzMCw3ICsyMjgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyUGxhdGZvcm1Wb2x1bWVDb25maWd1cmF0aW9u
UmVxdWlyZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtZWRp
YVBsYXllcklzTG9vcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBD
YWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIHsg
cmV0dXJuIG51bGxwdHI7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSB7IHJldHVybiBudWxs
cHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBt
ZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCk7CiAgICAgdmlydHVhbCBib29sIGRvZXNI
YXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9tU3RyaW5nKiA9IG51bGxwdHIpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxk
VXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
Y29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJl
dHVybiBlbXB0eVN0cmluZygpOyB9CkBAIC03MTMsNyArNzExLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fc2hvdWxkUHJlcGFyZVRvUmVuZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGVu
dE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aW5pdGlhbGl6aW5nTWVkaWFFbmdpbmUgeyBmYWxzZSB9OwotICAgIER5bmFtaWNSYW5nZU1vZGUg
bV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlIHsgRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQg
fTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKICAg
ICBQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0gbV9waXRjaENvcnJlY3Rpb25BbGdvcml0aG0geyBQ
aXRjaENvcnJlY3Rpb25BbGdvcml0aG06OkJlc3RBbGxBcm91bmQgfTsKIAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDRlYjRlNzA2MjExMGVmZGEzMTRjMDgz
MTBhYzQ0NDM5NDE2Y2EyNzYuLmE5NGIxYzE5Mzg4NDkxYzBjOTA5NDk3M2FjM2FkYmQ5YTRiOTg0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Nv
dXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU09VUkNFKQogCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
U2FtcGxlLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVSYW5n
ZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkQXJpdGhtZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAppbmRleCAyNzhmMGM2YjcyYzI4NTA5ZDMwMmY3
N2I0N2Q2MTkyYTcxOWQwMjgzLi42ZGJlNDk1ZWZiYmFlYjEyYTM0NDZjMjFmZjlhOTRlMWRlOTY4
MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1By
aXZhdGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQ
cml2YXRlQmFzZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KQEAgLTM2LDE1ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+VHJhY2tQcml2YXRlQmFzZUNsaWVudCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQg
aWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxhYmVs
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFn
ZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
bW92ZSgpID0gMDsKLX07Ci0KIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFRyYWNrUHJpdmF0ZUJhc2UK
ICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlLCBXVEY6
OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRl
QmFzZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNmY0ZWU5ZDBjYzM1ZDc3NTc2MDljYjkzY2JmYjEw
OTQxNmEwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
VHJhY2tQcml2YXRlQmFzZUNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflRyYWNrUHJp
dmF0ZUJhc2VDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChj
b25zdCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoY29u
c3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKSA9IDA7
Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggZWE1YTI5Y2ViNWNmZTlmMDI0MjdjNWVh
ZGRjMTY0Mjc0Y2I2ZDYwOS4uMDlmY2U4Yjg1ZGRkNDYwOTQxYjQ5ZjcwYTk4NGQ2NGRlZDY4MDJm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1Ry
YWNrUHJpdmF0ZS5oCkBAIC0yOCwxOSArMjgsMTYgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVD
bGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVC
YXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJv
b2wpID0gMDsKLX07Ci0KIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJp
dmF0ZUJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2YXRl
Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLSAgICBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0K
KyAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1f
Y2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7
IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGll
bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCiAgICAgewpAQCAtNjgsNyArNjUs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHBy
aXZhdGU6Ci0gICAgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9
OworICAgIFdlYWtQdHI8VmlkZW9UcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50IHsgbnVsbHB0
ciB9OwogICAgIGJvb2wgbV9zZWxlY3RlZCB7IGZhbHNlIH07CiAgICAgU2VsZWN0ZWRDaGFuZ2Vk
Q2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wODY2MjlhN2MxYzNlYTY4OGVkYWIxYTJmNDAzNDA2YmVlMmRlZTFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9UcmFja1ByaXZh
dGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSA9IDA7Cit9OworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMTZkZDAxNjhlNGNkZDA5OWI3YzhiYzM5MjZi
ZDFkMDdlZmI1MjljMy4uZDcwMzBkY2MwNThmNDlhNWM2ZDA0Mzk3OTVmZGVlYjhhM2M3NjI1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01Miw2ICs1Miw5IEBACiAjaW1wb3J0ICJNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk91dE9mQmFuZFRleHRUcmFja1ByaXZh
dGVBVkYuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKKyNpbXBvcnQgIlBs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIK
KyNpbXBvcnQgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5n
ZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2ltcG9ydCAiU2Ny
aXB0RGlzYWxsb3dlZFNjb3BlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KaW5kZXggZmQyZjBkM2VlNWQwOGRlMDgwMzZmYWJiMTVj
MmEzNDUwNDI4YmEzYy4uZWIyNDM2NWM3MWE3YjBhMmRiOWNmOGU1MzRiMjY4ZTc4ODJhOWYxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRl
ci5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW1wb3J0ICJEYXRhVVJMRGVjb2Rlci5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
LmgiCiAjaW1wb3J0ICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1
ZmZlci5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAppbmRleCBhMGJhZWRlODhhNzU1
NjgxZWEyYTRhMTdiYTNlNmVkM2RmZGM3ZDllLi45NzQ5NGVlNmM1YzhiNjk5MjM0ZWE3Yzk2NmRk
ZDFhYzZhYTQyNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnlDb2NvYS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJWUDlVdGls
aXRpZXNDb2NvYS5oIgogI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5o
PgogI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vT3V0cHV0RGV2aWNlLmg+CisjaW5jbHVkZSA8
d3RmL0FsZ29yaXRobXMuaD4KIAogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhU291cmNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmgKaW5kZXggYmY5ZmRlMWYzODE4YTAwMjIx
ZDI2ZDk2YTlhYWUyYThhZWY2NmQ4ZC4uOTRmZjU4Y2JiOGFjMzdjNThhZDExNzQ1NDk5ZWE2OWNm
Yzg5MzVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQ
cml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9N
ZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggOTYzMTdkYWQ2MmM0NTQ0
NDc2ZTllMjA1ZTY3YmU0Y2YxMzJmZDAwOC4uNjAwMGVkNDlhNDdhOTA2NDYwMjZkY2Y2YWU5YTJi
MGZmZWRmZGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWwKICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncygpLmZvbnRS
ZW5kZXJpbmdNb2RlKCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoMTIp
OwogICAgIGZvbnQgPSBGb250Q2FzY2FkZShXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbiksIDAsIDAp
OwotICAgIGZvbnQudXBkYXRlKDApOworICAgIGZvbnQudXBkYXRlKG51bGxwdHIpOwogCiAgICAg
cnVuID0gVGV4dFJ1bihtX3VuYXZhaWxhYmxlUGx1Z2luUmVwbGFjZW1lbnRUZXh0KTsKICAgICB0
ZXh0V2lkdGggPSBmb250LndpZHRoKHJ1bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCA4ZTJkY2IwMzUzZWQ5NGY2MGJkNGM0YWRjZWIz
NTNjNjNjNzc3OTQwLi5mZTFkMGJlYjZlOTI2YzI2YjNlMWEyYjU3ZTEwYTRkMjIwOTc1NmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNlYXJjaEZp
ZWxkKTsKIFJlbmRlclNlYXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hGaWVsZChIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lKGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9zZWFyY2hQb3B1
cElzVmlzaWJsZShmYWxzZSkKLSAgICAsIG1fc2VhcmNoUG9wdXAoMCkKKyAgICAsIG1fc2VhcmNo
UG9wdXAobnVsbHB0cikKIHsKICAgICBBU1NFUlQoZWxlbWVudC5pc1NlYXJjaEZpZWxkKCkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDFlZTcy
MTQzZjkwNDJmMGY3MTdmZDI3MTg2NGZjMTk1NGY0MzMzNWUuLmQzNWVkMTUyYzZlNzRiODE1ZGVl
N2EyNTUwMjQ5OGUwNGNlZDhkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KQEAgLTk2NSw3ICs5NjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRG
b250RnJvbUNvbnRyb2xTaXplKFJlbmRlclN0eWxlJiBzdHlsZSwgTlNDb250cm9sU2l6ZSBjbwog
ICAgIHN0eWxlLnNldExpbmVIZWlnaHQoUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCkp
OwogCiAgICAgaWYgKHN0eWxlLnNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlw
dGlvbikpKQotICAgICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgwKTsKKyAgICAgICAg
c3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUobnVsbHB0cik7CiB9CiAKIE5TQ29udHJvbFNpemUg
UmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xTaXplRm9yU3lzdGVtRm9udChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggODJjZjRkNTNhYTczYzA5ZWEyZjY4OWNi
Y2U5YzIyMTRkNmQwNmQ0Yy4uYWY3Njk3NjIzY2M5Y2Y0NDZjZThkY2UzY2RkNGMyYmEyNzQyNzc1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcApAQCAtNTYzLDcgKzU2Myw3IEBAIFJlZlB0cjxYTUxQYXJzZXJDb250
ZXh0PiBYTUxQYXJzZXJDb250ZXh0OjpjcmVhdGVNZW1vcnlQYXJzZXIoeG1sU0FYSGFuZGxlclB0
ciBoCiAgICAgeG1sUGFyc2VyQ3R4dFB0ciBwYXJzZXIgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJD
dHh0KGNodW5rLmRhdGEoKSwgY2h1bmsubGVuZ3RoKCkpOwogCiAgICAgaWYgKCFwYXJzZXIpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIG1lbWNweShw
YXJzZXItPnNheCwgaGFuZGxlcnMsIHNpemVvZih4bWxTQVhIYW5kbGVyKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5jcHAKaW5kZXggZDlhNmUxNGUxYzEyMmZjMjhjZjVmYzFiOTc5N2RiODEwMDhhMjg5ZC4uNmRj
ZGRkYjZmMjI2NmRlMmUxOGU0MTZlNjI4YjBhZDczMzkzM2NkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAK
QEAgLTQ1LDEyICs0NSwxMyBAQCBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OlJlbW90ZUF1ZGlvVHJh
Y2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aQogICAgICwgbV90cmFj
a1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVk
aWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQodGhp
cyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpBZGRSZW1vdGVBdWRpb1RyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJh
dGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiBSZW1vdGVBdWRpb1RyYWNr
UHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkoKQogeworICAgIG1fdHJhY2tQcml2YXRlLT5j
bGVhckNsaWVudCgpOwogfQogCiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1v
dGVBdWRpb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKaW5kZXggYjQx
YTAyODFmODU4YTEyMmUwZmFhNmJiNzE5NGVlNTMwY2M5ZjFmMi4uOThkNjYzNWU5YTUwNzI0ZGY5
ZTljODdhOGIwYjU0NjQ4MzNiOTc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCkBAIC00OSwxMiArNDksMTMg
QEAgUmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24KICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJp
dmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmll
cikKIHsKLSAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQ
cml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRk
UmVtb3RlVGV4dFRyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9tZWRpYVBs
YXllcklkZW50aWZpZXIpOwogfQogCiBSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRU
cmFja1Byb3h5KCkKIHsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAog
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVRleHRUcmFja1Byb3h5
Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKaW5kZXggYjA5YWFjMzM2N2YwM2EyYWZh
Mzc0MzAzNzFmYTBjODNhN2M3MDljOS4uNDljNDdhMzU1MTM4YjI1YTU5YjgzMTI3YjVlNjljNmNl
YjI5Nzk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVZpZGVvVHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKQEAgLTQ1LDEyICs0NSwxMyBAQCBSZW1vdGVWaWRl
b1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwg
bV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1f
dHJhY2tQcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENs
aWVudCgqdGhpcyk7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVWaWRlb1Ry
YWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIpOwogfQogCiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6On5SZW1vdGVWaWRlb1RyYWNrUHJveHko
KQogeworICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiBUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAKaW5kZXggNGQyMGNhNTYxODA5NWI5ZTE4YjdhOWY3ZmNmNWY1YTZlY2E1NWZj
Yy4uYTc4ZDFmZjViODI0NjNiODI3YWE3NjFmNWFlMmI5NDczMThjNjljOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBA
IC02Nyw3ICs2Nyw3IEBAIFJlZjxTdG9yYWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OmdldE9yQ3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlCiBTdG9yYWdlTmFtZXNwYWNl
SW1wbDo6U3RvcmFnZU5hbWVzcGFjZUltcGwoU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIGNvbnN0
IFN0cmluZyYgcGF0aCwgdW5zaWduZWQgcXVvdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICA6IG1fc3RvcmFnZVR5cGUoc3RvcmFnZVR5cGUpCiAgICAgLCBtX3BhdGgocGF0aC5pc29s
YXRlZENvcHkoKSkKLSAgICAsIG1fc3luY01hbmFnZXIoMCkKKyAgICAsIG1fc3luY01hbmFnZXIo
bnVsbHB0cikKICAgICAsIG1fcXVvdGEocXVvdGEpCiAgICAgLCBtX2lzU2h1dGRvd24oZmFsc2Up
CiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbQppbmRleCA1Y2RkZjVmNmQ5MjBiMWE2ZmY0MTQ2YTIzNTg4NDMxODEw
Yjc0YjE4Li40NGJiZWIyMTMzZjBkMjQ2YjRiYjMzODYyM2M4MGIyZThhMjRiYWZiIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KQEAgLTMwMiwxMiArMzAyLDEy
IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuCiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhQ29udHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEZXRhaWxzRWxlbWVudEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpCkBAIC0zMjgsMTIgKzMyOCwxMiBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUVycm9yTWVzc2FnZUVsZW1lbnRB
dAogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
</data>
<flag name="commit-queue"
          id="463051"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439417</attachid>
            <date>2021-09-27 16:46:20 -0700</date>
            <delta_ts>2021-09-28 11:16:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210927164619.patch</filename>
            <type>text/plain</type>
            <size>82590</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZiYzllZGFjNzhlZGY5Y2ZjMjg1YWVh
NWZkOWU3YThkOGEyYWFlNWQuLmE1MmQzY2IyNTU2ZWE0MDBiYTdhOGEzZWNkMTdlNTk5MjcwNWZm
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQnVpbGQtdGltZSBvcHRpbWl6YXRpb246IGZvcndhcmQg
ZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oIGFuZCBIVE1MTWVkaWFFbGVtZW50
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
YSBjb25zdGV4cHIgY29uc3RydWN0b3IgZm9yIFJlZlB0ciB3aGVuIGdpdmVuIGEgbnVsbHB0cl90
OyB0aGlzIGFsbG93cworICAgICAgICBkZWNsYXJhdGlvbnMgb2YgUmVmUHRyPFR5cGU+IGZvciBm
b3J3YXJkLWRlY2xhcmVkIFR5cGUgcG9zc2libGUgdG8gaW5pdGlhbGl6ZQorICAgICAgICB3aXRo
IGEgbnVsbHB0ciwgd2l0aG91dCByZXF1aXJpbmcgdGhlIGZ1bGwgZGVmaW5pdGlvbiBvZiBUeXBl
LgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpSZWZQdHI6OlJlZlB0
cik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZl
YXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0MWE4YTBkOTA2MGJmODQxODkwODJjMDJjYWE4NmFkYTYwYTAx
NzE2Li5hMDg3MjQ1MWViNDIxYmU2ODk1NDU0NjljYWNiZGUxOGI5MzljNWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTE0IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkLWRl
Y2xhcmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCwgYW5kIGJyZWFrIGFwYXJ0ICpUcmFj
a1ByaXZhdGVDbGllbnQgaW50byBpdHMKKyAgICAgICAgb3duIGZpbGUsIHNvIHRoYXQgY2xpZW50
cyBkb24ndCBuZWVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSBjbGFzcydzIGZpbGUuIFRoaXMgcmVx
dWlyZXMKKyAgICAgICAgb3RoZXIgY2xhc3NlcyB3aG8gZ290IHRob3NlIGluY2x1ZGVzICJmb3Ig
ZnJlZSIgcHJldmlvdXNseSB0byBleHBsaWNpdGx5IGluY2x1ZGUgaGVhZGVycyBpbgorICAgICAg
ICB0aGVpciBzb3VyY2UgZmlsZXMuCisKKyAgICAgICAgVGhlIGNoYW5nZSB0byBSZWZQdHIgdG8g
YWxsb3cgY29uc3RleHByIGNvbnN0cnVjdGlvbiBmcm9tIG51bGxwdHIgY2F1c2VkICJhbWJpZ3Vv
dXMgY2FzdCIKKyAgICAgICAgZXJyb3JzIGV2ZXJ5d2hlcmUgIjAiIHdhcyB1c2VkIGluc3RlYWQg
b2YgbnVsbHB0ciB0byBpbml0aWFsaXplIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9k
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpibGVuZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2lj
U2hhcGVJbnNldCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAq
IGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0
ZU5vZGVOUyk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2Up
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2
ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlz
dGlmeVBhcmFncmFwaCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
Q2xpZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0Ns
aWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJh
Y2svQXVkaW9UcmFja0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tJZENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0tpbmRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tM
YWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50
Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0
VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0
VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6flZp
ZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFu
Z2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVv
VHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJl
bENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFj
a0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tD
bGllbnQ6OndpbGxSZW1vdmVWaWRlb1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNz
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGU6OmNs
ZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2VDbGllbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5j
cHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tN
ZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJl
cGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OlJl
bmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6
ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFy
c2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50YWwg
RmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjk3YTRjYzU5NzJkNTRkYmQ4ZWM0YzE1NWU3YzRiZDcwN2Zk
ZTY2Li4xZGFmZjEzMmE3NTI5NGI0OTA3OWU0MWQzNGZjNjMzMjUyYjNkMzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUg
bW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFdlYWtQ
dHIgYmFzZWQgY2xpZW50IHNldHRlcnMgb24gVHJhY2tQcml2YXRlcy4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNrUHJveHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4dFRyYWNrUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRU
cmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3Rl
VmlkZW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlv
U2Vzc2lvbiBFeHBlcmltZW50YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA4NTZk
NzljNzY4MGU5YzEwYjkxOWNhZjBlNzIzODgxOWI2ZGY3NjI1Li41NzIwZDM2MzJmMWI0ZDU5OGFl
YTA1MmZhZDFkYjY4Zjk4OTFjYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xhcmUgbW9yZSB0aGluZ3Mg
aW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbnVsbHB0ciByYXRoZXIgdGhhbiB6
ZXJvIGZvciBudWxsIHZhbHVlcy4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGwpOgorCiAyMDIxLTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RvcCB1c2luZyBtYWtlUmVmKCp0aGlzKSAvIG1ha2VSZWZQdHIo
dGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93
dGYvUmVmUHRyLmgKaW5kZXggYTY1OTJmZThmMjhkMDcwMGE5ZDA0OTY1OGFkMThjZGEyYWQxNjYx
NC4uMGFlYzEwYzNkZTYwNjVhYjEwZDVlOTQwNTMxM2IzMjVlNTNhMzRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAg
LTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc1JlZlB0
ciA9IHRydWU7CiAKICAgICBBTFdBWVNfSU5MSU5FIGNvbnN0ZXhwciBSZWZQdHIoKSA6IG1fcHRy
KG51bGxwdHIpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgY29uc3RleHByIFJlZlB0cihzdGQ6Om51
bGxwdHJfdCkgOiBtX3B0cihudWxscHRyKSB7IH0KICAgICBBTFdBWVNfSU5MSU5FIFJlZlB0cihU
KiBwdHIpIDogbV9wdHIocHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwocHRyKTsg
fQogICAgIEFMV0FZU19JTkxJTkUgUmVmUHRyKGNvbnN0IFJlZlB0ciYgbykgOiBtX3B0cihvLm1f
cHRyKSB7IFJlZkRlcmVmVHJhaXRzOjpyZWZJZk5vdE51bGwoUHRyVHJhaXRzOjp1bndyYXAobV9w
dHIpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFksIHR5cGVuYW1lIFo+
IFJlZlB0cihjb25zdCBSZWZQdHI8WCwgWSwgWj4mIG8pIDogbV9wdHIoby5nZXQoKSkgeyBSZWZE
ZXJlZlRyYWl0czo6cmVmSWZOb3ROdWxsKFB0clRyYWl0czo6dW53cmFwKG1fcHRyKSk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xl
Z2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCmluZGV4IDNhOGMw
MGY1MjMxZjUyYTZlODlkMTgzZDE1MTFjM2FjODc3M2ExZmUuLjE3ZDRmYjcyNzQwZDZlMWMzZGY2
ZmU2Zjc2ODc1YjRjOTRiMjNiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkxlZ2FjeUNETVNl
c3Npb25DbGVhcktleS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IGFiZTkyMTBmZDY1ODIwOTNiMDE3MWE4MWM2
YzEzYWIzMWU2ZjRiOGIuLjBmZGJmOWY4MDQxNzZlMDY0MThiZTVlMDVmODg1YmVhOTlkMTM5OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisj
aW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDhkODA3ZmMyNDA5MGU4
MGY1YmNmZjNhM2ExYzhiMmJjNzExMGE3OTQuLmY4NmQ2YzFkZTM3ZTc2YmZmZjlhZmNlOTYyZjA3
YjBmYjk3N2Q1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZl
clNvdXJjZS5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpA
QCAtNDksNyArNTEsOSBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZp
ZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1ZNLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuaAppbmRleCBhNzIzM2QyMWUwODFhYTRhOGQ4NDI1NGIyOTNhNzMyZjY4NDEz
ZThjLi4yODA5OTI1ZjVkMjFmM2UzZjM0NzdhMWU0NTI0Mzg1MDc4NWQ0ZmFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTM0
LDE0ICszNCwxNCBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVkZSAiQXVkaW9U
cmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgotI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1
ZGUgIlRleHRUcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVmlk
ZW9UcmFjay5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYv
TG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4
IGM0YWRhNzJlYmZmZDVlYzYzOTYyYjE3YzA3MDA4NDFlOWE5NTBlZDkuLjEyNDc4YjA2MzE0Mjhm
OGU4NTQ4ZWZiZjQ4ZmY2OTRkMGQ5ODJiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtODksOCArODks
OCBAQCB2b2lkIFNjcmlwdFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUoKQogICAgIC8vIFRoZXNl
IEF1ZGlvQnVmZmVycyB3aWxsIGJlIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSBtYWluIHRocmVh
ZCBieSBKYXZhU2NyaXB0LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJDb3Vu
dDsgKytpKSB7CiAgICAgICAgIC8vIFdlIHByZXZlbnQgZGV0YWNoaW5nIHRoZSBBdWRpb0J1ZmZl
cnMgaGVyZSBzaW5jZSB3ZSBwYXNzIHRob3NlIHRvIEpTIGFuZCByZXVzZSB0aGVtLgotICAgICAg
ICBtX2lucHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZm
ZXI6OmNyZWF0ZShtX251bWJlck9mSW5wdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVS
YXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IDA7Ci0gICAg
ICAgIG1fb3V0cHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlv
QnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNh
bXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsK
KyAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1
ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwg
c2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiBu
dWxscHRyOworICAgICAgICBtX291dHB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mT3V0cHV0Q2hh
bm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgYnVm
ZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGlu
Zzo6WWVzKSA6IG51bGxwdHI7CiAgICAgfQogCiAgICAgQXVkaW9Ob2RlOjppbml0aWFsaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjVjMTE0NjYyZGJkYjM0ODhlZmJiZDkzOTExMGFkMzBhZjViYzE4Zi4uNTg2M2Y4MTc1
OTA4MzlmZGE2ZjNkZjVmMDk5Zjk5NTNmYTkwMjI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDM3MCw2ICs0MzcwLDEyIEBA
CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcx
QTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQTgxRjU3Mzk3MjAw
MEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMTlG
RUFFMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
Q0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxNTI3MDIz
NjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxODI3MDIzQTJBMDA2MTdF
QjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTkyNzAyM0E3NjAwNjE3
RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxQzI3MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFG
OUIyMTI3MDI1NjVFMDA2MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIyMDI3MDI1NjVFMDA2MTdFQjYg
LyogVGV4dFRyYWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNl
c3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEMxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZC
RjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0FFNTAyMkE5ODY4NzAwOTQ3RkY5IC8q
IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9u
U2Vzc2lvblZULmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTE0OTYyLDYgKzE0OTY4LDEyIEBACiAJCUNEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAv
KiBJbWFnZURlY29kZXJBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlRGVjb2RlckFWRk9i
akMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUZFQUQxRjU3NEI2RDAwMEM0
MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbWFn
ZURlY29kZXJBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDFFNzM0
NjE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxMjI3MDIzNUY3MDA2MTdFQjYg
LyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0QxRjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjE3MjcwMjNBMjkwMDYx
N0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvVHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Qx
RjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9UcmFja0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFG
OUIxQjI3MDI0QkMxMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0
VHJhY2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjI1QzA5MUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Qy
MjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TVVJMU2Vzc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3Rh
dGlvblNlc3Npb25WVC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjI2Niw2ICsyNjI3OCw3IEBACiAJCQkJ
QkU4OEUwQ0MxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suY3BwICovLAogCQkJCUJFODhF
MENEMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwQ0UxNzE1
RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaWRsICovLAorCQkJCUNEMUY5QjE5MjcwMjNBNzYw
MDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggKi8sCiAJCQkJQkU4OEUwQ0YxNzE1RDJBMjAw
NjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmNwcCAqLywKIAkJCQlCRTg4RTBEMDE3MTVEMkEyMDA2
NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCAqLywKIAkJCQlCRTg4RTBEMTE3MTVEMkEyMDA2NThE
OTggLyogQXVkaW9UcmFja0xpc3QuaWRsICovLApAQCAtMjYyODcsNiArMjYzMDAsNyBAQAogCQkJ
CTk3NTlFOTM1MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3BwICovLAogCQkJCTk3NTlF
OTM2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCAqLywKIAkJCQk5NzU5RTkzNzE0RUYx
Q0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIyMDI3MDI1NjVFMDA2
MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggKi8sCiAJCQkJOTc1OUU5MzgxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFja0N1ZS5jcHAgKi8sCiAJCQkJOTc1OUU5MzkxNEVGMUNGODAwMjZBMkRE
IC8qIFRleHRUcmFja0N1ZS5oICovLAogCQkJCTk3NTlFOTNBMTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2tDdWUuaWRsICovLApAQCAtMjYzMDksNiArMjYzMjMsNyBAQAogCQkJCUJFODhFMEQy
MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrLmNwcCAqLywKIAkJCQlCRTg4RTBEMzE3MTVE
MkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oICovLAogCQkJCUJFODhFMEQ0MTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIxNzI3MDIzQTI5MDA2MTdFQjYg
LyogVmlkZW9UcmFja0NsaWVudC5oICovLAogCQkJCUJFODhFMEQ1MTcxNUQyQTIwMDY1OEQ5OCAv
KiBWaWRlb1RyYWNrTGlzdC5jcHAgKi8sCiAJCQkJQkU4OEUwRDYxNzE1RDJBMjAwNjU4RDk4IC8q
IFZpZGVvVHJhY2tMaXN0LmggKi8sCiAJCQkJQkU4OEUwRDcxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2tMaXN0LmlkbCAqLywKQEAgLTI2OTA3LDYgKzI2OTIyLDcgQEAKIAkJCQkwRjdFNDc1
MTI1RUVCNzlBMDAxM0Y5MDkgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk3MjJB
ODE1QzIzOEZENTA1MDBDMDA1ODMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmggKi8sCiAJCQkJQkVG
MjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJQ0Qx
RjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCiAJ
CQkJMkREODcxNDcyNjVGNDM2NDAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQu
Y3BwICovLAogCQkJCTJERDg3MTQ5MjY1RjQzNjUwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhp
Y3NDb250ZXh0LmggKi8sCiAJCQkJQTg5OTQzMjcwQjQyMzM4NzAwRDdDODAyIC8qIEJpdG1hcElt
YWdlLmNwcCAqLywKQEAgLTI3MTU1LDEyICsyNzE3MSwxNCBAQAogCQkJCTFBRjg5QTQxMTUxOEZE
RUEwMEU1NDdCNSAvKiBUaWxlZEJhY2tpbmcuaCAqLywKIAkJCQkwNzZFMTFCRTFGNjgzRTBEMDAx
NzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5MTNEN0YxODFFRjhFNTAw
RENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKKwkJCQlDRDFGOUIxQjI3MDI0QkMxMDA2
MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovLAogCQkJCUU0QUZDRkE0MERBRjI5
QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVF
REE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURC
IC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCTFEQUIzMTEzMjUxRDcyNUMwMEZDOTQ4NSAvKiBW
aWRlb0xheWVyTWFuYWdlci5oICovLAogCQkJCTA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBW
aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVERDA5MDBD
NEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxMjI3MDIzNUY3MDA2
MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQlDRDZGRTVCQTI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5
QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKQEAgLTMxNDg5LDExICszMTUwNywxMyBAQAogCQkJCUZE
QjA1MkUwMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODMwMDVGOUQyNEVCMUQ0MDAwNDgwRjlCIC8qIEF1ZGlvVGltZXN0YW1wLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEOTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFj
ay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMUEyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlv
VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERDMTcxNUQyQTIwMDY1OEQ5
OCAvKiBBdWRpb1RyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNEMxODBFMTdD
MDAwOEI4RTY1IC8qIEF1ZGlvVHJhY2tNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkVGMjlFRUIxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREUzQTg1NDE3RjVGQ0U2MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVB
VkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNBODU4MTdGNjAyMDQwMEM1QkUyMCAvKiBBdWRp
b1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5QjE2MjcwMjM2
MEYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0Q1NEE3NjMxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Q2QTRGODFCRjIzMDdEMDAxNzQxNDYg
LyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQz
MTYwOEIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
QEAgLTM1NTMxLDYgKzM1NTUxLDcgQEAKIAkJCQlBODI0QjQ2NTBFMkVGMkVBMDA4MUE3QjcgLyog
VGV4dFJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QjFCN0EwRjNBMkY5QjAwNDdBOUUyIC8q
IFRleHRTaXplQWRqdXN0bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1OUU5NDAxNEVGMUNG
ODAwMjZBMkREIC8qIFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMjEyNzAy
NTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1
OUU5NDMxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDcxQTlFQzMxNjhGQkM1NTAwMjYyOUY5IC8qIFRleHRUcmFja0N1ZUdlbmVyaWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NTlFOTQ2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWVM
aXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTc2LDYgKzM1NTk3LDcgQEAKIAkJCQkwNzAzMzRE
NzE0NTlGRkQ1MDA4RDhENDUgLyogVHJhY2tCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4
RTBDMjE3MTVDRTI2MDA2NThEOTggLyogVHJhY2tMaXN0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU5MTNEODAxODFFRjkyNDAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNEMUY5QjFDMjcwMjRCQzIwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkFDMzBGRTE4NEZCMTQ1MDA4QzRGMUUgLyog
VHJhaWxpbmdPYmplY3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwNzEzMjFCRDgzMDhCMDBE
QkM0RjIgLyogVHJhbnNhY3Rpb25PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VF
RjQxMjU3OTlGRDkwMDY1NjNCQiAvKiBUcmFuc2ZlckZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTM1NjY5LDExICszNTY5MSwxMyBAQAogCQkJCTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAv
KiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTM5QTgxRTlCREZCMTAwQkI3
NjhEIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBE
RjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Qx
RjlCMTgyNzAyM0EyQTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJFODhFMEUyMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkVGMjlFRUMxNzE1REQwOTAwQzRCNEM5IC8q
IFZpZGVvVHJhY2tQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDMzNkY2NDE3RkEwQTRE
MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkYuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MzM2RjY4MTdGQTBBQzYwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNEMUY5QjE0MjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1
IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzBFODFEMTFCRjI3NjU2MDAxRkRBNDggLyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VGNDE4Q0YxMTc5Njc4QzAwOUQxMTJDIC8qIFZp
ZXdwb3J0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IGNiZTUzYmI1NDM4OTY2NmQy
ZmRhZDQyMjdmMjk2NGU0OWQ1ODVlYTcuLjcyMzRmZWQxOWNmYzhiNmE5OGU3MTI4ZGIxOTBmNTc2
ZWY3YzM0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5
QW5pbWF0aW9uLmNwcApAQCAtMzE1LDkgKzMxNSw5IEBAIHN0YXRpYyBpbmxpbmUgRmlsdGVyT3Bl
cmF0aW9ucyBibGVuZEZpbHRlck9wZXJhdGlvbnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJv
CiAgICAgc2l6ZV90IHRvU2l6ZSA9IHRvLm9wZXJhdGlvbnMoKS5zaXplKCk7CiAgICAgc2l6ZV90
IHNpemUgPSBzdGQ6Om1heChmcm9tU2l6ZSwgdG9TaXplKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmcm9t
T3AgPSAoaSA8IGZyb21TaXplKSA/IGZyb20ub3BlcmF0aW9ucygpW2ldLmdldCgpIDogMDsKLSAg
ICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gdG9PcCA9IChpIDwgdG9TaXplKSA/IHRvLm9w
ZXJhdGlvbnMoKVtpXS5nZXQoKSA6IDA7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+
IGJsZW5kZWRPcCA9IHRvT3AgPyBibGVuZEZ1bmMoZnJvbU9wLmdldCgpLCB0b09wLmdldCgpLCBj
b250ZXh0KSA6IChmcm9tT3AgPyBibGVuZEZ1bmMoMCwgZnJvbU9wLmdldCgpLCBjb250ZXh0LCB0
cnVlKSA6IDApOworICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmcm9tT3AgPSAoaSA8
IGZyb21TaXplKSA/IGZyb20ub3BlcmF0aW9ucygpW2ldLmdldCgpIDogbnVsbHB0cjsKKyAgICAg
ICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gdG9PcCA9IChpIDwgdG9TaXplKSA/IHRvLm9wZXJh
dGlvbnMoKVtpXS5nZXQoKSA6IG51bGxwdHI7CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+IGJsZW5kZWRPcCA9IHRvT3AgPyBibGVuZEZ1bmMoZnJvbU9wLmdldCgpLCB0b09wLmdldCgp
LCBjb250ZXh0KSA6IChmcm9tT3AgPyBibGVuZEZ1bmMoMCwgZnJvbU9wLmdldCgpLCBjb250ZXh0
LCB0cnVlKSA6IG51bGxwdHIpOwogICAgICAgICBpZiAoYmxlbmRlZE9wKQogICAgICAgICAgICAg
cmVzdWx0Lm9wZXJhdGlvbnMoKS5hcHBlbmQoYmxlbmRlZE9wKTsKICAgICAgICAgZWxzZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCmluZGV4
IDM4Nzc3Y2YyYTk3OGM3YTZlMmRiNTkxZDVjNWZmNTJjMjY1N2ViOTUuLmVlZjllOGZlOTI0ODBj
NGZlMGE3ZDlkZDM2ZTQwYWNmODVjNmZlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwCkBAIC0yNjcxLDggKzI2NzEsOCBAQCBzdGF0aWMg
UmVmUHRyPENTU0Jhc2ljU2hhcGVJbnNldD4gY29uc3VtZUJhc2ljU2hhcGVJbnNldChDU1NQYXJz
ZXJUb2tlblJhbmdlJiBhcgogICAgICAgICBzaGFwZS0+dXBkYXRlU2hhcGVTaXplMVZhbHVlKHRv
cC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGlmIChjb25zdW1lSWRlbnQ8Q1NTVmFsdWVSb3Vu
ZD4oYXJncykpIHsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBob3Jpem9udGFs
UmFkaWlbNF0gPSB7IDAgfTsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2ZXJ0
aWNhbFJhZGlpWzRdID0geyAwIH07CisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
aG9yaXpvbnRhbFJhZGlpWzRdID0geyBudWxscHRyIH07CisgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gdmVydGljYWxSYWRpaVs0XSA9IHsgbnVsbHB0ciB9OwogICAgICAgICBpZiAo
IWNvbnN1bWVSYWRpaShob3Jpem9udGFsUmFkaWksIHZlcnRpY2FsUmFkaWksIGFyZ3MsIGNvbnRl
eHQubW9kZSwgZmFsc2UpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHNo
YXBlLT5zZXRUb3BMZWZ0UmFkaXVzKGNyZWF0ZVByaW1pdGl2ZVZhbHVlUGFpcihob3Jpem9udGFs
UmFkaWlbMF0ucmVsZWFzZU5vbk51bGwoKSwgdmVydGljYWxSYWRpaVswXS5yZWxlYXNlTm9uTnVs
bCgpLCBQYWlyOjpJZGVudGljYWxWYWx1ZUVuY29kaW5nOjpDb2FsZXNjZSkpOwpAQCAtMjg4MSw3
ICsyODgxLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlckltYWdlUmVw
ZWF0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4g
Y29uc3VtZUJvcmRlckltYWdlU2xpY2UoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgYm9vbCBmaWxsID0gY29uc3VtZUlkZW50PENTU1Zh
bHVlRmlsbD4ocmFuZ2UpOwotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gc2xpY2VzWzRd
ID0geyAwIH07CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZXNbNF0gPSB7IG51
bGxwdHIgfTsKIAogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4
KSB7CiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWUgPSBjb25zdW1lUGVy
Y2VudChyYW5nZSwgVmFsdWVSYW5nZTo6Tm9uTmVnYXRpdmUpOwpAQCAtMjkxOCw3ICsyOTE4LDcg
QEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUJvcmRlckltYWdlU2xpY2UoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTUGFyc2UKIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUJvcmRlckltYWdlT3V0c2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewotICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gb3V0c2V0c1s0XSA9IHsgMCB9OworICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gb3V0c2V0c1s0XSA9IHsgbnVsbHB0ciB9OwogCiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZTsKICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7
IGluZGV4IDwgNDsgKytpbmRleCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGNmMDNiOGQ1
NDc5ZjBmOTg2NWNiZWRmMmUzOTk3MWNmYWZmNzdmYTAuLjgzNTRmMzA2YTdkZTBiNDViMWMyZDdl
YTliMjUyYWRhZjg5NjcyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI5OTUsMTIgKzI5
OTUsMTIgQEAgUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGUoY29uc3QgQXRv
bVN0cmluZyYgcXVhbGlmaWVkTmFtZSkKIFJlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRyaWJ1
dGVOb2RlTlMoY29uc3QgQXRvbVN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9tU3RyaW5n
JiBsb2NhbE5hbWUpCiB7CiAgICAgaWYgKCFlbGVtZW50RGF0YSgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgUXVhbGlmaWVkTmFtZSBxTmFtZShudWxs
QXRvbSgpLCBsb2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk7CiAgICAgc3luY2hyb25pemVBdHRyaWJ1
dGUocU5hbWUpOwogICAgIGNvbnN0IEF0dHJpYnV0ZSogYXR0cmlidXRlID0gZWxlbWVudERhdGEo
KS0+ZmluZEF0dHJpYnV0ZUJ5TmFtZShxTmFtZSk7CiAgICAgaWYgKCFhdHRyaWJ1dGUpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gZW5zdXJl
QXR0cihhdHRyaWJ1dGUtPm5hbWUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCA1NWI2ZDM4ZTk0OWJkNGExMjU0OGJlYWMxM2Nl
NWFhOWYxNjU2Nzk4Li5iYjRiYzEzNmY3ZjFhNGI5ZDQ1ZTk2ZTYwMmRjN2MzMDNmMmU5ZmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC00
NTAsNyArNDUwLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRVbmhhbmRs
ZWRQcm9taXNlUmVqZWN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QKIAogdm9pZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQog
ewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIDAsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgbnVsbHB0ciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAog
Ym9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRpb24qIGV4Y2VwdGlvbiwgQ2FjaGVkU2Ny
aXB0KiBjYWNoZWRTY3JpcHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwCmluZGV4IGQ2ODg5MGI4
M2I4MzI5MDllZjFhZmZiYThhOTcwNTFjMzkwZmE1NjkuLjI1NTNhMGM3MzJkZDI5Mjk0M2JiNzMx
ZTc5NzQxZTEwYTZmNjQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIFJlZjxUZXh0RXZlbnQ+IFRleHRFdmVudDo6Y3JlYXRlKFJlZlB0cjxXaW5kb3dQcm94
eT4mJiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsCiAKIFJlZjxUZXh0RXZlbnQ+IFRleHRFdmVu
dDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNv
bnN0IFN0cmluZyYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2UpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KFdURk1vdmUodmlldyksIGRhdGEsIDAsIHNob3VsZFNt
YXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1
b3RlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dEV2ZW50KFdURk1vdmUodmlldyks
IGRhdGEsIG51bGxwdHIsIHNob3VsZFNtYXJ0UmVwbGFjZSwgZmFsc2UsIE1haWxCbG9ja3F1b3Rl
SGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKSk7CiB9CiAKIFJlZjxUZXh0RXZlbnQ+IFRleHRF
dmVudDo6Y3JlYXRlRm9yRnJhZ21lbnRQYXN0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+JiYgZGF0YSwgYm9vbCBzaG91bGRTbWFydFJlcGxhY2Us
IGJvb2wgc2hvdWxkTWF0Y2hTdHlsZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2tx
dW90ZUhhbmRsaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRM
aXN0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5k
LmNwcAppbmRleCA4ODM3M2NiNGQ2MzJmM2E5NjJkNzU3ZWQxN2NjNGQ2YTlhYzZhZjdlLi4zYjUx
YjZhYmM0MTYwOWJhMGJjMzc1M2VmNzhiMmRjNDZlNDAxYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIFJlZlB0
cjxIVE1MRWxlbWVudD4gSW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBvCiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZCA9IGVuZE9mUGFyYWdy
YXBoKHN0YXJ0LCBDYW5Ta2lwT3ZlckVkaXRpbmdCb3VuZGFyeSk7CiAgICAgCiAgICAgaWYgKHN0
YXJ0LmlzTnVsbCgpIHx8IGVuZC5pc051bGwoKSB8fCAhc3RhcnQuZGVlcEVxdWl2YWxlbnQoKS5j
b250YWluZXJOb2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKSB8fCAhZW5kLmRlZXBFcXVpdmFsZW50
KCkuY29udGFpbmVyTm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoZWNrIGZvciBhZGpvaW5pbmcg
bGlzdHMuCiAgICAgYXV0byBsaXN0SXRlbUVsZW1lbnQgPSBIVE1MTElFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CkBAIC00MDUsNyArNDA1LDcgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBJbnNl
cnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIG8K
ICAgICAgICAgICAgIGluc2VydGlvblBvcyA9IHBvc2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKGxp
c3RDaGlsZC5nZXQoKSk7CiAKICAgICAgICAgaWYgKCFpc0VkaXRhYmxlUG9zaXRpb24oaW5zZXJ0
aW9uUG9zKSkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAgICAgaW5zZXJ0Tm9kZUF0KCpsaXN0RWxlbWVudCwgaW5zZXJ0aW9uUG9zKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMjhjOTcxMmFh
Zjc5NGU2M2QyYThhMDdiMGEwOGM5MDI3N2QyZmFiZC4uMjkzNzliMjBmNTkxZmZlZjBiZDU1N2M4
MDhkOGI0OTQwYWFhNWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNl
LmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIK
KyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNs
dWRlICJCbG9iVVJMLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpAQCAtNjgsNiAr
NjksNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNI
VE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNNZWRpYUNvbnRyb2xzSG9zdC5oIgorI2lu
Y2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXIuaCIKQEAg
LTg3LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQaWN0dXJl
SW5QaWN0dXJlU3VwcG9ydC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21h
aW4uaCIKQEAgLTExMSw3ICsxMTQsOSBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlkZW9Q
bGF5YmFja1F1YWxpdHkuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCiAjaW5jbHVkZSAiVmlk
ZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdE9iamVjdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1VpbnQ4QXJyYXkuaD4KICNpbmNsdWRlIDxsaW1pdHM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IGFkMDllN2JlMWUyMzBkZmU2YmM3OTk1YjVmNTNkNzU3NGM4ODFi
M2YuLjQyZGRhYzcxMjNiOWUxY2U4ZTRhYjRkYTcwMTlkZjg4ZDE1NjhmOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxF
KFZJREVPKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiQXVkaW9U
cmFjay5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJBdXRvcGxh
eUV2ZW50LmgiCiAjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCkBAIC0zOSw4ICszOSw4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFVbmlxdWVJZGVu
dGlmaWVyLmgiCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFjay5o
IgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGll
bnQuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggMGY5ZjQzYjA0OGY0ZWQ0MTEwOTIwMWJm
MzUzZDU4ZWFhNDUyMzM3MS4uYzJkMDM1M2ViODcxYzU0ZGEyOTZiZTI1OWMwMDM2MWZlZGJlMmI5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFj
ay5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTYwLDE3ICs2MSwxNyBAQCBz
dGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBVUkwmIHVybCkKIGlubGluZSBI
VE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogICAgICwgQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQorICAgICwgbV90cmFjayhM
b2FkYWJsZVRleHRUcmFjazo6Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKGtpbmRBdHRyKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBsYWJlbCgpLCBzcmNs
YW5nKCkpKQogeworICAgIG1fdHJhY2stPmFkZENsaWVudCgqdGhpcyk7CiAgICAgTE9HKE1lZGlh
LCAiSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudCAtICVwIiwgdGhpcyk7CiAgICAg
QVNTRVJUKGhhc1RhZ05hbWUodHJhY2tUYWcpKTsKIH0KIAogSFRNTFRyYWNrRWxlbWVudDo6fkhU
TUxUcmFja0VsZW1lbnQoKQogewotICAgIGlmIChtX3RyYWNrKSB7Ci0gICAgICAgIG1fdHJhY2st
PmNsZWFyRWxlbWVudCgpOwotICAgICAgICBtX3RyYWNrLT5jbGVhckNsaWVudCgqdGhpcyk7Ci0g
ICAgfQorICAgIG1fdHJhY2stPmNsZWFyRWxlbWVudCgpOworICAgIG1fdHJhY2stPmNsZWFyQ2xp
ZW50KCp0aGlzKTsKIH0KIAogUmVmPEhUTUxUcmFja0VsZW1lbnQ+IEhUTUxUcmFja0VsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CkBAIC0xNDIsMjEgKzE0Myw5IEBAIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6aXNEZWZhdWx0KCkg
Y29uc3QKICAgICByZXR1cm4gaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkZWZh
dWx0QXR0cik7CiB9CiAKLUxvYWRhYmxlVGV4dFRyYWNrJiBIVE1MVHJhY2tFbGVtZW50Ojp0cmFj
aygpCitUZXh0VHJhY2smIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkKIHsKLSAgICAvLyBGSVhN
RTogVGhlcmUgaXMgbm8gcHJhY3RpY2FsIHZhbHVlIGluIGxhemlseSBpbml0aWFsaXppbmcgdGhp
cy4KLSAgICAvLyBJbnN0ZWFkIHRoaXMgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIGNvbnN0cnVj
dG9yLgotICAgIGlmICghbV90cmFjaykgewotICAgICAgICAvLyBUaGUga2luZCBhdHRyaWJ1dGUg
aXMgYW4gZW51bWVyYXRlZCBhdHRyaWJ1dGUsIGxpbWl0ZWQgb25seSB0byBrbm93biB2YWx1ZXMu
IEl0IGRlZmF1bHRzIHRvICdzdWJ0aXRsZXMnIGlmIG1pc3Npbmcgb3IgaW52YWxpZC4KLSAgICAg
ICAgU3RyaW5nIGtpbmQgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGtpbmRBdHRy
KS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgICAgICBpZiAoIVRleHRUcmFjazo6aXNW
YWxpZEtpbmRLZXl3b3JkKGtpbmQpKQotICAgICAgICAgICAga2luZCA9IFRleHRUcmFjazo6c3Vi
dGl0bGVzS2V5d29yZCgpOwotICAgICAgICBtX3RyYWNrID0gTG9hZGFibGVUZXh0VHJhY2s6OmNy
ZWF0ZSgqdGhpcywga2luZCwgbGFiZWwoKSwgc3JjbGFuZygpKTsKLSAgICAgICAgbV90cmFjay0+
YWRkQ2xpZW50KCp0aGlzKTsKLSAgICB9Ci0gICAgQVNTRVJUKG1fdHJhY2stPnRyYWNrRWxlbWVu
dCgpID09IHRoaXMpOwotCi0gICAgcmV0dXJuICptX3RyYWNrOworICAgIHJldHVybiBtX3RyYWNr
OwogfQogCiBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYgYXR0cmlidXRlKSBjb25zdApAQCAtMjA2LDcgKzE5NSw3IEBAIHZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6c2NoZWR1bGVMb2FkKCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIHRyYWNrKCkuc2NoZWR1bGVMb2FkKHRyYWNrVVJMKTsKKyAgICAgICAgbV90cmFj
ay0+c2NoZWR1bGVMb2FkKHRyYWNrVVJMKTsKICAgICB9KTsKIH0KIApAQCAtMjgzLDEzICsyNzIs
MTEgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUgc3Rh
dGUpCiB7CiAgICAgdHJhY2soKS5zZXRSZWFkaW5lc3NTdGF0ZShzdGF0aWNfY2FzdDxUZXh0VHJh
Y2s6OlJlYWRpbmVzc1N0YXRlPihzdGF0ZSkpOwogICAgIGlmIChhdXRvIHBhcmVudCA9IG1lZGlh
RWxlbWVudCgpKQotICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2VkKG1f
dHJhY2suZ2V0KCkpOworICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2Vk
KG1fdHJhY2sucHRyKCkpOwogfQogCiBIVE1MVHJhY2tFbGVtZW50OjpSZWFkeVN0YXRlIEhUTUxU
cmFja0VsZW1lbnQ6OnJlYWR5U3RhdGUoKSBjb25zdAogewotICAgIGlmICghbV90cmFjaykKLSAg
ICAgICAgcmV0dXJuIEhUTUxUcmFja0VsZW1lbnQ6Ok5PTkU7CiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFJlYWR5U3RhdGU+KG1fdHJhY2stPnJlYWRpbmVzc1N0YXRlKCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IGI4NjJkNDlhNGE5MmMzMzY3MzU1ODkx
Y2I2NDY4NWU2ODAxNWU2MDIuLjNmNDRlMGE4ZTE0YTFjN2U1ZGRmYzBhZjg5NWZhMGI0MTQ3ZjU2
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC0zMCwxMSArMzAs
MTIgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJh
Y2tDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTWVkaWFFbGVt
ZW50OworY2xhc3MgTG9hZGFibGVUZXh0VHJhY2s7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBUZXh0VHJhY2tDbGllbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTFRyYWNr
RWxlbWVudCk7CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdDsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSk7CiAKLSAg
ICBMb2FkYWJsZVRleHRUcmFjayYgdHJhY2soKTsKKyAgICBUZXh0VHJhY2smIHRyYWNrKCk7CiAK
ICAgICB2b2lkIHNjaGVkdWxlTG9hZCgpOwogCkBAIC04Nyw3ICs4OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJik7CiAKLSAgICBSZWZQdHI8TG9hZGFibGVU
ZXh0VHJhY2s+IG1fdHJhY2s7CisgICAgUmVmPExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOwog
ICAgIGJvb2wgbV9sb2FkUGVuZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlbGV2YW50
TG9hZEV2ZW50c0xpc3RlbmVyIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrLmNwcAppbmRleCAzY2I3MThkM2RjMjdlNTgzYjVhNWRmMTA5M2EwMzY1Mjdj
MDJlY2I1Li4xMmIxZmNjNTc3NmUwNmNmZThkZGZhOTJjNzNjNzcyMGZiOTNkZjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTMxLDEwICszMSwxMiBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotI2luY2x1ZGUg
IkF1ZGlvVHJhY2tMaXN0LmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJBdWRp
b1RyYWNrQ2xpZW50LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MCwxMyArODIsMTMgQEAgQXVkaW9UcmFjazo6QXVkaW9U
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1RyYWNrUHJpdmF0ZSYg
dHJhY2sKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX2VuYWJsZWQodHJh
Y2tQcml2YXRlLmVuYWJsZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
KyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2
YXRlKCk7CiB9CiAKIEF1ZGlvVHJhY2s6On5BdWRpb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUt
PnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAK
IHZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQpAQCAtOTQsMTAgKzk2LDEwIEBAIHZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRp
b1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0g
JnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcml2YXRlLT5zZXRDbGll
bnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogICAgIG1fcHJpdmF0
ZSA9IHRyYWNrUHJpdmF0ZTsKICAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9lbmFibGVkKTsK
LSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVu
dCgqdGhpcyk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9wcml2YXRlLT5zZXRM
b2dnZXIobG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrLmgKaW5kZXggMzc1MTBhOGNkMmY4ZjQwMTUzNTg5MjVkZjk5ZGFl
Yzk4ZjE5NjA1Yy4uYTMzNzcwNTM4OWU5ODYyYmJmOGNmZjE0Y2NlY2M4Zjk0NmIxZjI3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTI4LDI2ICsyOCwxNSBAQAog
CiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKKyNp
bmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5o
IgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEF1ZGlvVHJhY2s7CitjbGFzcyBBdWRpb1RyYWNrQ2xpZW50OwogY2xhc3MgQXVkaW9U
cmFja0xpc3Q7CiAKLWNsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8QXVkaW9UcmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tD
bGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENoYW5n
ZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxDaGFu
Z2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1YWdl
Q2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVBdWRp
b1RyYWNrKEF1ZGlvVHJhY2smKSB7IH0KLX07Ci0KIGNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBw
dWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYy
YzdkYjQ0MjcwNDFmYzRjMjBjMjg2NjFmYjNmMzAxMWU0Y2NmOGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaApAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisK
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEF1ZGlvVHJhY2s7CisKK2NsYXNzIEF1ZGlvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8QXVkaW9UcmFja0NsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfkF1ZGlvVHJh
Y2tDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tJZENo
YW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrS2luZENo
YW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFiZWxD
aGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhbmd1
YWdlQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVB
dWRpb1RyYWNrKEF1ZGlvVHJhY2smKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXggYzZmZWEzNWVkMzhi
MDQ4NjAzZDJjZTgxZGZhYmIwMjYxODg0MjBlZC4uZDQ1OTY5ZmJmYzc3ZGU5N2UwN2Y3YmE4ZDk5
NzZhODI0ZThlNzRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4
dFRyYWNrLmNwcApAQCAtNTgsMTMgKzU4LDEzIEBAIEluYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4
dFRyYWNrKERvY3VtZW50JiBkb2N1bWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhCiAg
ICAgOiBUZXh0VHJhY2soJmRvY3VtZW50LCBlbXB0eUF0b20oKSwgdHJhY2tQcml2YXRlLmlkKCks
IHRyYWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQog
ICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVu
dCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2lu
ZEZyb21Qcml2YXRlKCk7CiB9CiAKIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygp
CiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5j
bGVhckNsaWVudCgpOwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCkBAIC03Miw5ICs3Miw5IEBAIHZvaWQg
SW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1f
cHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7Ci0g
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
KnRoaXMpOwogCiAgICAgc2V0TW9kZUludGVybmFsKG1vZGUoKSk7CiAgICAgdXBkYXRlS2luZEZy
b21Qcml2YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXgg
MGE2NDdjMmM0NTY2NTQ3ZWZhZWZiNDY2MjQ1MTJmMDZmYzE4YTZmMi4uODQ5Y2Q1OTRhN2I5YTM5
OGIwYzMxZmE5MGZjNjdkN2Y2ZDY3NmEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJUZXh0
VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAjaW5jbHVkZSAi
VGV4dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbi5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmgKaW5kZXggOGIzMTZlN2FkYTQ5YzMwMjg5NTI0NWIwYTcxOGVjZDRk
ODkyOWUyZC4uOTQwYzAyNDYyZTg2OTNjYjg4ODlkMDI3YjZjOWE4NmVmMmU5MGNmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC0zOSwyNSArMzksMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFRleHRU
cmFjazsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CitjbGFzcyBUZXh0VHJhY2tDbGllbnQ7CiBjbGFz
cyBUZXh0VHJhY2tDdWVMaXN0OwogY2xhc3MgVlRUUmVnaW9uOwogY2xhc3MgVlRUUmVnaW9uTGlz
dDsKIAotY2xhc3MgVGV4dFRyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRleHRU
cmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpID0g
ZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrSWRDaGFuZ2VkKFRleHRUcmFjayYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0xhYmVsQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFRleHRUcmFjayYpIHsg
fQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3Vl
cyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYpIHsg
fQotfTsKLQogY2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoVGV4dFRyYWNrKTsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxOGQwMzdkZWY3NTk0ZmQw
MGE1MmM4MWM5MDE0OTBjZDcwZWE0MzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dFRyYWNrOworY2xh
c3MgVGV4dFRyYWNrQ3VlOworY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKKworY2xhc3MgVGV4dFRy
YWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRleHRUcmFja0NsaWVudD4geworcHVi
bGljOgorICAgIHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGV4dFRyYWNrSWRDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja0xhYmVsQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
dGV4dFRyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB3aWxsUmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYpIHsgfQorfTsKKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IDk3ZjAxYWNj
NjU5YTBkYzBlNTFkMGVlMThkMDM2NDAzNjE5YWNmNDAuLjIzMDE5N2RkNTEyMTJhYWM4MGFhYTU5
ZGIyNjhmZWEzZWYwMmNhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmNwcApAQCAtMzQsNyArMzQsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAi
VmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCkBAIC04NCwxMyArODYsMTMgQEAgVmlkZW9UcmFj
azo6VmlkZW9UcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2sKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX3Nl
bGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICB1cGRhdGVL
aW5kRnJvbVByaXZhdGUoKTsKIH0KIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAg
IG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGll
bnQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRl
JiB0cmFja1ByaXZhdGUpCkBAIC05OCw5ICsxMDAsOSBAQCB2b2lkIFZpZGVvVHJhY2s6OnNldFBy
aXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRl
LnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAg
ICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhp
cyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIG1fcHJpdmF0ZS0+c2V0TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlmaWVy
KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IGVm
ODQ4OGU3YjU5ODFmMTMxNzIyYmZiZDY3NmQ2ZjRiMTZkZjUxYTYuLjhkNmY4OGNmYmZlOTIyMTA1
ZjIwNzExZDViN2VlYjM2NWVmOWU2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5oCkBAIC0yOSwyNSArMjksMTYgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRl
ICJUcmFja0Jhc2UuaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUg
IlZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFEZXNjcmlwdGlvbjsKIGNsYXNz
IFZpZGVvVHJhY2s7CitjbGFzcyBWaWRlb1RyYWNrQ2xpZW50OwogY2xhc3MgVmlkZW9UcmFja0xp
c3Q7Ci0KLWNsYXNzIFZpZGVvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Vmlk
ZW9UcmFja0NsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tJZENoYW5nZWQoVmlkZW9U
cmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrS2luZENoYW5nZWQoVmlkZW9U
cmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKFZpZGVv
VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZChW
aWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFj
ayhWaWRlb1RyYWNrJikgeyB9Ci19OworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIGNsYXNz
IFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5pZGwKaW5kZXggMmM2MGIyYjJlNzA2NTMzODhkOWE0ZWNjMDAzOWEzMmYzNjYwYjJj
OC4uOTkxMzY3MzYxZWFlYjJmY2Y0OTRhZDE5ZmZkN2E1MDA1NDVkMGYxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCkBAIC0zNCw0ICszNCw1IEBACiAgICAgW1Nl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZT1NZWRpYVNvdXJjZV0gYXR0cmlidXRlIERPTVN0
cmluZyBsYW5ndWFnZTsKIAogICAgIGF0dHJpYnV0ZSBib29sZWFuIHNlbGVjdGVkOworCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNDVjODc2ZDdkN2I5NjQ3NjNlNzc2NDhlOWYzOWRhNWZhMTljOGZmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50LmgKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
KQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBWaWRlb1RyYWNrOworCitjbGFzcyBWaWRlb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPFZpZGVvVHJhY2tDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5WaWRl
b1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrSWRD
aGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0tpbmRD
aGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhYmVs
Q2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYW5n
dWFnZUNoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
bW92ZVZpZGVvVHJhY2soVmlkZW9UcmFjayYpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNw
cAppbmRleCA1NTNhMWNmZDc5ZTIwMTkzNjZmM2VjMzcwYzgzYzk4MzhkMzExOTczLi5iZTVhNzBk
ZWVmNDczMTNmZWFiOGE4ZjdlNDAzNGEwMTg0MTE3NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGFnZUNvbnNv
bGVDbGllbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uCiAgICAgaWYgKGRvY3VtZW50KQogICAgICAgICBkb2N1bWVudC0+Z2V0UGFyc2Vy
TG9jYXRpb24odXJsLCBsaW5lLCBjb2x1bW4pOwogCi0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwgMCwgSlNFeGVjU3RhdGU6OmN1cnJlbnRT
dGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwgbnVsbHB0ciwgSlNFeGVjU3RhdGU6OmN1cnJl
bnRTdGF0ZSgpLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGll
bnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiYmIGNhbGxTdGFjaykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVBy
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5o
CmluZGV4IDkwNzg0YmU0MDA2ZGQwMTBlODEwN2EzYjQwMzdjMGRlYzQ2NGVkOGYuLjU2ODE1Mjgx
NzJhMmIxNGM3MDU5NmZkMDBhYWJjMjcwNzk1YTVjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMzIsNyArMzIsNiBAQAog
CiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlICJDRE1JbnN0YW5jZVNlc3Npb24u
aCIKLSNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQm94UHRyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5o
PgpAQCAtNDQsNiArNDMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE1lZGlh
UGxheWVyOworCiB1c2luZyBLZXlJRFR5cGUgPSBWZWN0b3I8dWludDhfdD47CiB1c2luZyBLZXlI
YW5kbGVWYWx1ZVZhcmlhbnQgPSBWYXJpYW50PAogICAgIFZlY3Rvcjx1aW50OF90PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgK
aW5kZXggYTlmODM2YmQxMTczZTIyZTBhZTgxNGExNzU0MmFhMjNhNDYxNWE0ZS4uYzUyMjdlNWM3
MDQ0MTk3NzhkNWIyOGE2OTExYTA0OWNlNzk0YjRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yNSw2ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVDbGllbnQu
aCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CiAKQEAgLTMyLDEzICszMyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
QXVkaW9UcmFja1ByaXZhdGU7Ci0KLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVi
bGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSA9IDA7Ci19OwotCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZSA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEF1ZGlv
VHJhY2tQcml2YXRlPiBjcmVhdGUoKQpAQCAtNDYsOCArNDAsOSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2tQcml2YXRlKTsKICAgICB9CiAKLSAgICB2
b2lkIHNldENsaWVudChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgdm9pZCBzZXRDbGllbnQoQXVkaW9U
cmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9IG1ha2VXZWFrUHRyKGNsaWVu
dCk7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KKyAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jbGllbnQuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICAgICB7CkBAIC03OCw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICBBdWRpb1Ry
YWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxBdWRpb1RyYWNrUHJp
dmF0ZUNsaWVudD4gbV9jbGllbnQ7CiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogICAg
IEVuYWJsZWRDaGFuZ2VkQ2FsbGJhY2sgbV9lbmFibGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNr
UHJpdmF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZTIwNDUxNzllMTc5YzkzN2RiZjY2M2UwNzVh
OTQ0ZTgzNmRjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VDbGllbnQu
aCIKKworI2lmIEVOQUJMRShWSURFTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZTsKKworY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJs
aWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGVu
YWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
LmgKaW5kZXggMGI0ZDljZmU2N2NlOTU3YTdiOTczMjc5NjYwNmIwYWQyNmZlMTc4ZC4uZGNjMzI2
YTUzYzAzMWVkNGZmMzRjMTViMzYzNzA0NmE4ZDJiOWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApA
QCAtNDEsOCArNDEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlPiBjcmVhdGUoQ3VlRm9ybWF0IGZvcm1hdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKGZvcm1hdCkpOyB9CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAotICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAg
dm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1f
Y2xpZW50ID0gY2xpZW50OyB9CisgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xp
ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KKyAgICB2b2lk
IHNldENsaWVudChJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGll
bnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9j
bGllbnQgPSBudWxscHRyOyB9CiAKICAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50OF90IHsKICAg
ICAgICAgRGlzYWJsZWQsCkBAIC04OCw3ICs4OSw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToK
ICAgICBDdWVGb3JtYXQgbV9mb3JtYXQ7Ci0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50PiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAgICBNb2RlIG1fbW9kZSB7IE1vZGU6
OkRpc2FibGVkIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2EzMjY1MDMzYjk0N2I1YmU2OGMwNjIzMDI2ZmYzMDEy
OGM0MjgxOC4uZWMwMTBjN2VjMGJiMGY1YTZmMjJkY2E3NGRkYzcyNTk4ZDY1ZjZhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MzMsOSArMzMsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJMZWdhY3lDRE1TZXNz
aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnku
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgi
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
QEAgLTg5LDYgKzkzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBUaGUgaW1wbGVt
ZW50YXRpb24gaXMgaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUgaGVhZGVyIGJlY2F1c2UgaXQgcmVx
dWlyZXMgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggdG8gYmUgaW5jbHVkZWQgd2hlbiBj
b21waWxlZCB3aXRoIEdDQy4KK1JlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IE1l
ZGlhUGxheWVyQ2xpZW50OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQorCiAvLyBhIG51bGwgcGxheWVyIHRvIG1ha2UgTWVkaWFQbGF5ZXIgbG9n
aWMgc2ltcGxlcgogCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJQcml2YXRlIGZpbmFsIDogcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CkBAIC0xODcsNyArMTk0LDYgQEAgcHJpdmF0
ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxD
b250ZW50VHlwZVZlY3RvcigpOyB9CiB9OwogCi0KIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4m
IE1lZGlhUGxheWVyQ2xpZW50OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3Vw
cG9ydCgpIGNvbnN0CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxDb250ZW50
VHlwZT4+IGNvbnRlbnRUeXBlczsKQEAgLTQxMiw2ICs0MTgsNyBAQCBNZWRpYVBsYXllcjo6TWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KCZjbGll
bnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVy
RmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRl
Pih0aGlzKSkKKyAgICAsIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VN
b2RlOjpTdGFuZGFyZCkKIHsKIH0KIApAQCAtNDIwLDYgKzQyNyw3IEBAIE1lZGlhUGxheWVyOjpN
ZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50LCBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9h
ZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlPih0aGlzKSkKICAgICAsIG1fYWN0aXZlRW5naW5lSWRlbnRpZmllcihtZWRpYUVuZ2lu
ZUlkZW50aWZpZXIpCisgICAgLCBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1Jh
bmdlTW9kZTo6U3RhbmRhcmQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGUwYjg2ZDhlNmU2YTk5ZjViMDZiNmI2ZmNhOWEy
ODZkM2M0NDc4OTAuLmQ4OGNhOWExOTFlYWJkYmI0MjAxZWQ4ZWM4Y2M0NTY1MTEyOWI4MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
MjcsMjQgKzI3LDE3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJBdWRpb1Ry
YWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2ll
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgotI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllckVu
dW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiTmF0
aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24u
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
SGFzaC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5jbHVkZSA8
d3RmL1VSTC5oPgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNTYsMTAgKzQ5LDYgQEAKICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAot
I2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0jaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIK
LSNlbmRpZgotCiBPQkpDX0NMQVNTIEFWUGxheWVyOwogT0JKQ19DTEFTUyBOU0FycmF5OwogCkBA
IC02OSwxMyArNTgsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZl
clJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5IDogdWludDhfdDsKK2VudW0gY2xhc3MgRHluYW1pY1JhbmdlTW9kZSA6IHVpbnQ4X3Q7
CisKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7CitjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsK
IGNsYXNzIENETUluc3RhbmNlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHRHTDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEluYmFuZFRl
eHRUcmFja1ByaXZhdGU7CiBjbGFzcyBMZWdhY3lDRE07CitjbGFzcyBMZWdhY3lDRE1TZXNzaW9u
OwogY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJn
ZXQ7CiBjbGFzcyBNZWRpYVBsYXllcjsKQEAgLTg0LDggKzc4LDEyIEBAIGNsYXNzIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50OwogY2xh
c3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBQbGF0Zm9ybVRleHRUcmFjazsKIGNsYXNzIFBs
YXRmb3JtVGltZVJhbmdlczsKIGNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3Mg
VmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1
Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtMjMwLDcgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVy
SXNMb29waW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIENhY2hlZFJl
c291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQotICAgIHZpcnR1YWwgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
cj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxh
eWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKTsKICAgICB2aXJ0dWFsIGJvb2wgZG9lc0hhdmVBdHRy
aWJ1dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqID0gbnVsbHB0cikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJz
aXN0ZW50Q2FjaGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBjb25zdCBT
dHJpbmcmIG1lZGlhUGxheWVyTWVkaWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7IH0KQEAgLTcxMyw3ICs3MTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9z
aG91bGRQcmVwYXJlVG9SZW5kZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250ZW50TUlNRVR5
cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9pbml0aWFs
aXppbmdNZWRpYUVuZ2luZSB7IGZhbHNlIH07Ci0gICAgRHluYW1pY1JhbmdlTW9kZSBtX3ByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCB9OworICAg
IER5bmFtaWNSYW5nZU1vZGUgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlOwogICAgIFBpdGNo
Q29ycmVjdGlvbkFsZ29yaXRobSBtX3BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSB7IFBpdGNoQ29y
cmVjdGlvbkFsZ29yaXRobTo6QmVzdEFsbEFyb3VuZCB9OwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKaW5kZXggODcxNjc1N2EwZDJlNTYxZWZmZWEwODk5MmVlN2E4NzAyYzdj
YzM5Mi4uMjA2ZmYzZWFjYWMxOTBmM2RhNTk4MjViMTliMmY2ZjQwMzEyMTY0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXgg
NGViNGU3MDYyMTEwZWZkYTMxNGMwODMxMGFjNDQ0Mzk0MTZjYTI3Ni4uYTk0YjFjMTkzODg0OTFj
MGM5MDk0OTczYWMzYWRiZDlhNGI5ODQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYURlc2NyaXB0
aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRl
LmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL01l
ZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4
IDI3OGYwYzZiNzJjMjg1MDlkMzAyZjc3YjQ3ZDYxOTJhNzE5ZDAyODMuLjZkYmU0OTVlZmJiYWVi
MTJhMzQ0NmMyMWZmOWE5NGUxZGU5NjgwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCIK
ICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzYsMTUgKzM3LDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgPSBkZWZh
dWx0OwotICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCkgPSAwOwotfTsKLQogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgVHJhY2tQcml2YXRlQmFzZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFRyYWNrUHJpdmF0ZUJhc2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2ZjRlZTlk
MGNjMzVkNzc1NzYwOWNiOTNjYmZiMTA5NDE2YTAwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklE
RU8pCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVHJhY2tQcml2YXRlQmFzZUNsaWVudCA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxUcmFja1ByaXZhdGVCYXNlQ2xpZW50PiB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZUNsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2
aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAppbmRleCBl
YTVhMjljZWI1Y2ZlOWYwMjQyN2M1ZWFkZGMxNjQyNzRjYjZkNjA5Li4wOWZjZThiODVkZGQ0NjA5
NDFiNDlmNzBhOTg0ZDY0ZGVkNjgwMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTI4LDE5ICsyOCwxNiBAQAog
I2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKKyNpbmNs
dWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwg
dm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOwotfTsKLQogY2xhc3MgVmlkZW9UcmFja1By
aXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXRD
bGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVu
dDsgfQotICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2
YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9Cisg
ICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAgVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xp
ZW50LmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3Rl
ZCkKICAgICB7CkBAIC02OCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKICAgICBWaWRlb1RyYWNrUHJp
dmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudD4gbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2Ug
fTsKICAgICBTZWxlY3RlZENoYW5nZWRDYWxsYmFjayBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNr
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
VHJhY2tQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NjYyOWE3YzFjM2VhNjg4ZWRh
YjFhMmY0MDM0MDZiZWUyZGVlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNDEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2lu
Y2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wp
ID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAxNmRk
MDE2OGU0Y2RkMDk5YjdjOGJjMzkyNmJkMWQwN2VmYjUyOWMzLi5kNzAzMGRjYzA1OGY0OWE1YzZk
MDQzOTc5NWZkZWViOGEzYzc2MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTUyLDYg
KzUyLDkgQEAKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAi
T3V0T2ZCYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25m
b3JtZXJDVi5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW1w
b3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNp
bXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgiCiAjaW1wb3J0ICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRleCBmZDJm
MGQzZWU1ZDA4ZGUwODAzNmZhYmIxNWMyYTM0NTA0MjhiYTNjLi5lYjI0MzY1YzcxYTdiMGEyZGI5
Y2Y4ZTUzNGIyNjhlNzg4MmE5ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbXBvcnQgIkRhdGFVUkxEZWNvZGVyLmgiCiAjaW1w
b3J0ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCisjaW1wb3J0ICJQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2Eu
Y3BwCmluZGV4IGEwYmFlZGU4OGE3NTU2ODFlYTJhNGExN2JhM2U2ZWQzZGZkYzdkOWUuLjk3NDk0
ZWU2YzVjOGI2OTkyMzRlYTdjOTY2ZGRkMWFjNmFhNDI0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3RvcnlDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcApAQCAtMzUsNiArMzUs
NyBAQAogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSA8cGFsL2F2Zm91
bmRhdGlvbi9PdXRwdXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9PdXRw
dXREZXZpY2UuaD4KKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogCiAjaW5jbHVkZSAiVmlk
ZW9Ub29sYm94U29mdExpbmsuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaApp
bmRleCBiZjlmZGUxZjM4MThhMDAyMjFkMjZkOTZhOWFhZTJhOGFlZjY2ZDhkLi45NGZmNThjYmI4
YWMzN2M1OGFkMTE3NDU0OTllYTY5Y2ZjODkzNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJj
ZVByaXZhdGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAK
ICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCA5NjMxN2RhZDYyYzQ1NDQ0NzZlOWUyMDVlNjdiZTRjZjEzMmZkMDA4Li42MDAwZWQ0
OWE0N2E5MDY0NjAyNmRjZjZhZTlhMmIwZmZlZGZkZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTMxMCw3ICszMTAsNyBA
QCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeShj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJp
bmdNb2RlKHNldHRpbmdzKCkuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0
aW9uLnNldENvbXB1dGVkU2l6ZSgxMik7CiAgICAgZm9udCA9IEZvbnRDYXNjYWRlKFdURk1vdmUo
Zm9udERlc2NyaXB0aW9uKSwgMCwgMCk7Ci0gICAgZm9udC51cGRhdGUoMCk7CisgICAgZm9udC51
cGRhdGUobnVsbHB0cik7CiAKICAgICBydW4gPSBUZXh0UnVuKG1fdW5hdmFpbGFibGVQbHVnaW5S
ZXBsYWNlbWVudFRleHQpOwogICAgIHRleHRXaWR0aCA9IGZvbnQud2lkdGgocnVuKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDhlMmRj
YjAzNTNlZDk0ZjYwYmQ0YzRhZGNlYjM1M2M2M2M3Nzc5NDAuLmZlMWQwYmViNmU5MjZjMjZiM2Ux
YTJiNTdlMTBhNGQyMjA5NzU2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNTQsNyArNTQsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoUmVuZGVyU2VhcmNoRmllbGQpOwogUmVuZGVyU2VhcmNoRmllbGQ6OlJlbmRlclNl
YXJjaEZpZWxkKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxlbWVudCwgV1RGTW92ZShzdHls
ZSkpCiAgICAgLCBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKGZhbHNlKQotICAgICwgbV9zZWFyY2hQ
b3B1cCgwKQorICAgICwgbV9zZWFyY2hQb3B1cChudWxscHRyKQogewogICAgIEFTU0VSVChlbGVt
ZW50LmlzU2VhcmNoRmllbGQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggMWVlNzIxNDNmOTA0MmYwZjcxN2ZkMjcxODY0ZmMxOTU0ZjQzMzM1
ZS4uZDM1ZWQxNTJjNmU3NGI4MTVkZWU3YTI1NTAyNDk4ZTA0Y2VkOGQ2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtOTY1LDcgKzk2NSw3IEBAIHZv
aWQgUmVuZGVyVGhlbWVNYWM6OnNldEZvbnRGcm9tQ29udHJvbFNpemUoUmVuZGVyU3R5bGUmIHN0
eWxlLCBOU0NvbnRyb2xTaXplIGNvCiAgICAgc3R5bGUuc2V0TGluZUhlaWdodChSZW5kZXJTdHls
ZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CiAKICAgICBpZiAoc3R5bGUuc2V0Rm9udERlc2NyaXB0
aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSkpCi0gICAgICAgIHN0eWxlLmZvbnRDYXNjYWRl
KCkudXBkYXRlKDApOworICAgICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZShudWxscHRy
KTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0
ZW1Gb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA4
MmNmNGQ1M2FhNzNjMDllYTJmNjg5Y2JjZTljMjIxNGQ2ZDA2ZDRjLi5hZjc2OTc2MjNjYzljZjQ0
NmNlOGRjZTNjZGQ0YzJiYTI3NDI3NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01NjMsNyArNTYzLDcg
QEAgUmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IFhNTFBhcnNlckNvbnRleHQ6OmNyZWF0ZU1lbW9y
eVBhcnNlcih4bWxTQVhIYW5kbGVyUHRyIGgKICAgICB4bWxQYXJzZXJDdHh0UHRyIHBhcnNlciA9
IHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoY2h1bmsuZGF0YSgpLCBjaHVuay5sZW5ndGgoKSk7
CiAKICAgICBpZiAoIXBhcnNlcikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgbWVtY3B5KHBhcnNlci0+c2F4LCBoYW5kbGVycywgc2l6ZW9mKHhtbFNB
WEhhbmRsZXIpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCBkOWE2ZTE0ZTFjMTIyZmMyOGNmNWZj
MWI5Nzk3ZGI4MTAwOGEyODlkLi42ZGNkZGRiNmYyMjY2ZGUyZTE4ZTQxNmU2MjhiMGFkNzMzOTMz
Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNDUsMTIgKzQ1LDEzIEBAIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3RpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21l
ZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFj
a1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50
KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZUF1ZGlvVHJhY2so
bV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7
CiB9CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiB7
CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRy
YWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRU
cmFja1Byb3h5LmNwcAppbmRleCBiNDFhMDI4MWY4NThhMTIyZTBmYWE2YmI3MTk0ZWU1MzBjYzlm
MWYyLi45OGQ2NjM1ZTlhNTA3MjRkZjllOWM4N2E4YjBiNTQ2NDgzM2I5NzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94
eS5jcHAKQEAgLTQ5LDEyICs0OSwxMyBAQCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4
dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbgogICAgICwg
bV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGll
bnQodGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVudGlmaWVyLCBjb25m
aWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQogeworICAgIG1fdHJhY2tQcml2YXRl
LT5jbGVhckNsaWVudCgpOwogfQogCiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApp
bmRleCBiMDlhYWMzMzY3ZjAzYTJhZmEzNzQzMDM3MWZhMGM4M2E3YzcwOWM5Li40OWM0N2EzNTUx
MzhiMjVhNTliODMxMjdiNWU2OWM2Y2ViMjk3OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtNDUs
MTIgKzQ1LDEzIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAgICAgLCBtX3RyYWNrUHJpdmF0
ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXll
cklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAg
ICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkp
LCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6
flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xp
ZW50KCk7CiB9CiAKIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCA0ZDIwY2E1NjE4MDk1Yjll
MThiN2E5ZjdmY2Y1ZjVhNmVjYTU1ZmNjLi5hNzhkMWZmNWI4MjQ2M2I4MjdhYTc2MWY1YWUyYjk0
NzMxOGM2OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Z2V0T3JDcmVhdGVMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UKIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdl
VHlwZSBzdG9yYWdlVHlwZSwgY29uc3QgU3RyaW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlwZShzdG9yYWdlVHlwZSkK
ICAgICAsIG1fcGF0aChwYXRoLmlzb2xhdGVkQ29weSgpKQotICAgICwgbV9zeW5jTWFuYWdlcigw
KQorICAgICwgbV9zeW5jTWFuYWdlcihudWxscHRyKQogICAgICwgbV9xdW90YShxdW90YSkKICAg
ICAsIG1faXNTaHV0ZG93bihmYWxzZSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439497</attachid>
            <date>2021-09-28 11:16:39 -0700</date>
            <delta_ts>2021-09-28 15:06:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210928111638.patch</filename>
            <type>text/plain</type>
            <size>83599</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFhOGEwZDkwNjBiZjg0
MTg5MDgyYzAyY2FhODZhZGE2MGEwMTcxNi4uYTA4NzI0NTFlYjQyMWJlNjg5NTQ1NDY5Y2FjYmRl
MThiOTM5YzVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMS0wOS0yNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGlt
aXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5k
IEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRm9yd2FyZC1kZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmgs
IGFuZCBicmVhayBhcGFydCAqVHJhY2tQcml2YXRlQ2xpZW50IGludG8gaXRzCisgICAgICAgIG93
biBmaWxlLCBzbyB0aGF0IGNsaWVudHMgZG9uJ3QgbmVlZCB0byBpbmNsdWRlIHRoZSBlbnRpcmUg
Y2xhc3MncyBmaWxlLiBUaGlzIHJlcXVpcmVzCisgICAgICAgIG90aGVyIGNsYXNzZXMgd2hvIGdv
dCB0aG9zZSBpbmNsdWRlcyAiZm9yIGZyZWUiIHByZXZpb3VzbHkgdG8gZXhwbGljaXRseSBpbmNs
dWRlIGhlYWRlcnMgaW4KKyAgICAgICAgdGhlaXIgc291cmNlIGZpbGVzLgorCisgICAgICAgIFRo
ZSBjaGFuZ2UgdG8gUmVmUHRyIHRvIGFsbG93IGNvbnN0ZXhwciBjb25zdHJ1Y3Rpb24gZnJvbSBu
dWxscHRyIGNhdXNlZCAiYW1iaWd1b3VzIGNhc3QiCisgICAgICAgIGVycm9ycyBldmVyeXdoZXJl
ICIwIiB3YXMgdXNlZCBpbnN0ZWFkIG9mIG51bGxwdHIgdG8gaW5pdGlhbGl6ZSBhIFJlZlB0ci4K
KworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGaWx0ZXJPcGVyYXRpb25z
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN1bWVCYXNpY1NoYXBlSW5zZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
c3VtZUJvcmRlckltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJvcmRlcklt
YWdlT3V0c2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlTlMpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBkb20vVGV4dEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgpOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OkF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6fkF1
ZGlvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0lkQ2hhbmdlZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrS2luZENo
YW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVk
aW9UcmFja0xhYmVsQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50OjphdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OndpbGxSZW1vdmVBdWRpb1RyYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1
ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xp
ZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tD
bGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFja0NsaWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6fkluYmFuZFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0
VHJhY2s6OnNldFByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpWaWRlb1RyYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6OnNldFByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0lkQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNr
S2luZENoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVu
dDo6dmlkZW9UcmFja0xhYmVsQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6d2lsbFJl
bW92ZVZpZGVvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFj
ay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50Lmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNE
TVByaXZhdGVDbGVhcktleS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50
Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGll
bnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
Q2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6CisgICAg
ICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Q29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
QXVkaW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
OjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OmNsZWFy
Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNs
aWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
YmFuZFRleHRUcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpjbGVhckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1l
ZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmNsZWFyQ2xpZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdh
Y3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJl
c291cmNlTG9hZGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNlYXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hGaWVsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6
OnNldEZvbnRGcm9tQ29udHJvbFNpemUgY29uc3QpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFBhcnNlckNv
bnRleHQ6OmNyZWF0ZU1lbW9yeVBhcnNlcik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRp
b1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjY5N2E0Y2M1OTcyZDU0
ZGJkOGVjNGMxNTVlN2M0YmQ3MDdmZGU2Ni4uMWRhZmYxMzJhNzUyOTRiNDkwNzllNDFkMzRmYzYz
MzI1MmIzZDM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0yNyAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGltaXph
dGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5kIEhU
TUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBXZWFrUHRyIGJhc2VkIGNsaWVudCBzZXR0ZXJzIG9uIFRyYWNrUHJp
dmF0ZXMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVk
aW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVRleHRUcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRy
YWNrUHJveHk6On5SZW1vdGVUZXh0VHJhY2tQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVW
aWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisKIDIwMjEt
MDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
QWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9DaGFuZ2VMb2cKaW5kZXggODU2ZDc5Yzc2ODBlOWMxMGI5MTljYWYwZTcyMzg4MTliNmRmNzYy
NS4uNTcyMGQzNjMyZjFiNGQ1OThhZWEwNTJmYWQxZGI2OGY5ODkxY2E0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGltaXphdGlvbjogZm9yd2Fy
ZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5kIEhUTUxNZWRpYUVsZW1l
bnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IG51bGxwdHIgcmF0aGVyIHRoYW4gemVybyBmb3IgbnVsbCB2YWx1ZXMuCisKKyAgICAgICAgKiBT
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKToKKwogMjAyMS0wOS0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJl
ZigqdGhpcykgLyBtYWtlUmVmUHRyKHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RN
UHJpdmF0ZUNsZWFyS2V5LmNwcAppbmRleCAzYThjMDBmNTIzMWY1MmE2ZTg5ZDE4M2QxNTExYzNh
Yzg3NzNhMWZlLi4xN2Q0ZmI3Mjc0MGQ2ZTFjM2RmNmZlNmY3Njg3NWI0Yzk0YjIzYmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdh
Y3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXkuaCIKICNpbmNsdWRl
ICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApp
bmRleCBhYmU5MjEwZmQ2NTgyMDkzYjAxNzFhODFjNmMxM2FiMzFlNmY0YjhiLi4wZmRiZjlmODA0
MTc2ZTA2NDE4YmU1ZTA1Zjg4NWJlYTk5ZDEzOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNTAsNiArNTAsNyBAQAog
I2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0
LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKICNp
bmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAppbmRleCA4ZDgwN2ZjMjQwOTBlODBmNWJjZmYzYTNhMWM4YjJiYzcxMTBhNzk0
Li5mODZkNmMxZGUzN2U3NmJmZmY5YWZjZTk2MmYwN2IwZmI5NzdkNTNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0z
NCw3ICszNCw5IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiQXVk
aW9UcmFjay5oIgogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiQXVkaW9U
cmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTQ5LDcgKzUxLDkgQEAKICNpbmNsdWRl
ICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrTGlzdC5oIgogI2lu
Y2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCiAjaW5jbHVkZSAi
VmlkZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9WTS5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggYTcyMzNk
MjFlMDgxYWE0YThkODQyNTRiMjkzYTczMmY2ODQxM2U4Yy4uMjgwOTkyNWY1ZDIxZjNlM2YzNDc3
YTFlNDUyNDM4NTA3ODVkNGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0zNCwxNCArMzQsMTQgQEAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAi
QXVkaW9UcmFjay5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU291cmNl
QnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIK
LSNpbmNsdWRlICJUZXh0VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKICNp
bmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKKyNpbmNsdWRlICJWaWRl
b1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAppbmRleCBjNGFkYTcyZWJmZmQ1ZWM2Mzk2MmIxN2Mw
NzAwODQxZTlhOTUwZWQ5Li4xMjQ3OGIwNjMxNDI4ZjhlODU0OGVmYmY0OGZmNjk0ZDBkOTgyYmZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTg5LDggKzg5LDggQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JO
b2RlOjppbml0aWFsaXplKCkKICAgICAvLyBUaGVzZSBBdWRpb0J1ZmZlcnMgd2lsbCBiZSBkaXJl
Y3RseSBhY2Nlc3NlZCBpbiB0aGUgbWFpbiB0aHJlYWQgYnkgSmF2YVNjcmlwdC4KICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVyQ291bnQ7ICsraSkgewogICAgICAgICAvLyBXZSBw
cmV2ZW50IGRldGFjaGluZyB0aGUgQXVkaW9CdWZmZXJzIGhlcmUgc2luY2Ugd2UgcGFzcyB0aG9z
ZSB0byBKUyBhbmQgcmV1c2UgdGhlbS4KLSAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBtX251
bWJlck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0
Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVBy
ZXZlbnREZXRhY2hpbmc6OlllcykgOiAwOwotICAgICAgICBtX291dHB1dEJ1ZmZlcnNbaV0gPSBt
X251bWJlck9mT3V0cHV0Q2hhbm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVn
YWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IDA7CisgICAgICAgIG1faW5wdXRCdWZmZXJzW2ld
ID0gbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVy
T2ZJbnB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpM
ZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogbnVsbHB0cjsKKyAgICAgICAgbV9vdXRwdXRC
dWZmZXJzW2ldID0gbV9udW1iZXJPZk91dHB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0
ZShtX251bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVk
aW9CdWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiBudWxscHRyOwogICAgIH0K
IAogICAgIEF1ZGlvTm9kZTo6aW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1YzExNDY2MmRiZGIzNDg4ZWZi
YmQ5MzkxMTBhZDMwYWY1YmMxOGYuLjU4NjNmODE3NTkwODM5ZmRhNmYzZGY1ZjA5OWY5OTUzZmE5
MDIyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQzNzAsNiArNDM3MCwxMiBAQAogCQlDRDE5QTI2ODFBMTNFNzAwMDA4RDY1
MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUNEMTlGRUE4MUY1NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUE2MUY1
NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQyRkIgLyogSW1h
Z2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFG
OUIxNDI3MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjEyMjcwMjM1Rjcw
MDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE2MjcwMjM2MEYwMDYxN0VCNiAv
KiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQ
cml2YXRlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQ0QxRjlCMTgyNzAyM0EyQTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjE3Mjcw
MjNBMjkwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlCMUEyNzAyM0E3NjAwNjE3RUI2IC8q
IEF1ZGlvVHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMUY5QjE5MjcwMjNBNzYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlC
MUMyNzAyNEJDMjAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjFCMjcwMjRCQzEwMDYx
N0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlCMjEyNzAyNTY1RTAwNjE3RUI2IC8qIFRl
eHRUcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QxRjlCMjAyNzAyNTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMjI1QzBCMUM0
NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYxIC8q
IFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gKi87IH07CiAJCUNEMjI1QzBDMUM0NkZCRjQwMDE0MDc2
MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwQTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJM
U2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIy
QTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNDk2Miw2ICsxNDk2OCwxMiBA
QAogCQlDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNEMTlGRUFEMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpD
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjE1MjcwMjM2MEUwMDYx
N0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDFGOUIxNzI3MDIzQTI5MDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjE5MjcwMjNBNzYwMDYxN0VCNiAvKiBB
dWRpb1RyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VHJhY2tQcml2YXRlQmFzZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
RDFGOUIyMDI3MDI1NjVFMDA2MTdFQjYgLyogVGV4dFRyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRUcmFja0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDIy
NUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVOU1VSTFNlc3Npb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBX
ZWJDb3JlTlNVUkxTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvcmVOU1VSTFNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0FF
NEUyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNjYsNiArMjYyNzgsNyBAQAogCQkJCUJFODhFMENDMTcxNUQyQTIwMDY1OEQ5OCAv
KiBBdWRpb1RyYWNrLmNwcCAqLywKIAkJCQlCRTg4RTBDRDE3MTVEMkEyMDA2NThEOTggLyogQXVk
aW9UcmFjay5oICovLAogCQkJCUJFODhFMENFMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNr
LmlkbCAqLywKKwkJCQlDRDFGOUIxOTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVu
dC5oICovLAogCQkJCUJFODhFMENGMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlzdC5j
cHAgKi8sCiAJCQkJQkU4OEUwRDAxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0Lmgg
Ki8sCiAJCQkJQkU4OEUwRDExNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmlkbCAq
LywKQEAgLTI2Mjg3LDYgKzI2MzAwLDcgQEAKIAkJCQk5NzU5RTkzNTE0RUYxQ0Y4MDAyNkEyREQg
LyogVGV4dFRyYWNrLmNwcCAqLywKIAkJCQk5NzU5RTkzNjE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4
dFRyYWNrLmggKi8sCiAJCQkJOTc1OUU5MzcxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFjay5p
ZGwgKi8sCisJCQkJQ0QxRjlCMjAyNzAyNTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5o
ICovLAogCQkJCTk3NTlFOTM4MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWUuY3BwICov
LAogCQkJCTk3NTlFOTM5MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWUuaCAqLywKIAkJ
CQk5NzU5RTkzQTE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3VlLmlkbCAqLywKQEAgLTI2
MzA5LDYgKzI2MzIzLDcgQEAKIAkJCQlCRTg4RTBEMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9U
cmFjay5jcHAgKi8sCiAJCQkJQkU4OEUwRDMxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2su
aCAqLywKIAkJCQlCRTg4RTBENDE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5pZGwgKi8s
CisJCQkJQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCAqLywK
IAkJCQlCRTg4RTBENTE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3BwICovLAog
CQkJCUJFODhFMEQ2MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oICovLAogCQkJ
CUJFODhFMEQ3MTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5pZGwgKi8sCkBAIC0y
NjkwNyw2ICsyNjkyMiw3IEBACiAJCQkJMEY3RTQ3NTEyNUVFQjc5QTAwMTNGOTA5IC8qIEFuaW1h
dGlvbkZyYW1lUmF0ZS5jcHAgKi8sCiAJCQkJNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFu
aW1hdGlvbkZyYW1lUmF0ZS5oICovLAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBB
dWRpb1RyYWNrUHJpdmF0ZS5oICovLAorCQkJCUNEMUY5QjE1MjcwMjM2MEUwMDYxN0VCNiAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3
QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmNwcCAqLywKIAkJCQkyREQ4NzE0OTI2NUY0
MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCUE4OTk0
MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBCaXRtYXBJbWFnZS5jcHAgKi8sCkBAIC0yNzE1NSwxMiAr
MjcxNzEsMTQgQEAKIAkJCQkxQUY4OUE0MTE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5n
LmggKi8sCiAJCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2Uu
Y3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNl
LmggKi8sCisJCQkJQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VD
bGllbnQuaCAqLywKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5o
ICovLAogCQkJCTBGNUE1N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICov
LAogCQkJCTBGMUEwQzM2MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJ
CQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJ
CQkwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNz
LmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRl
LmggKi8sCisJCQkJQ0QxRjlCMTIyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRl
Q2xpZW50LmggKi8sCiAJCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGll
cy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5o
ICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggKi8sCkBA
IC0zMTQ4OSwxMSArMzE1MDcsMTMgQEAKIAkJCQlGREIwNTJFMDE1NjFBNDJDMDBCNTAwRDYgLyog
QXVkaW9TdW1taW5nSnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDA1RjlEMjRFQjFE
NDAwMDQ4MEY5QiAvKiBBdWRpb1RpbWVzdGFtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUw
RDkxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNE
MUY5QjFBMjcwMjNBNzYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCRTg4RTBEQzE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEOEI1QTRDMTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFRjI5RUVCMTcxNUREMDkwMEM0QjRDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RFM0E4NTQxN0Y1RkNF
NjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REUzQTg1ODE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKKwkJCQlDRDFGOUIxNjI3MDIzNjBGMDA2MTdFQjYgLyogQXVkaW9UcmFja1By
aXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENTRBNzYzMTgwRjlGNzAwMEIwNzZD
OSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdENkE0RjgxQkYyMzA3RDAwMTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBB
dWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUzMSw2ICszNTU1MSw3IEBACiAJ
CQkJQTgyNEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ0OEIxQjdBMEYzQTJGOUIwMDQ3QTlFMiAvKiBUZXh0U2l6ZUFkanVzdG1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NTlFOTQwMTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCBp
biBIZWFkZXJzICovLAorCQkJCUNEMUY5QjIxMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJhY2tD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NTlFOTQzMTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MUE5RUMzMTY4RkJDNTUwMDI2MjlG
OSAvKiBUZXh0VHJhY2tDdWVHZW5lcmljLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0NjE0
RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3VlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NTU3Niw2ICszNTU5Nyw3IEBACiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNr
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRy
YWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5
RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxQzI3MDI0
QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkZBQzMwRkUxODRGQjE0NTAwOEM0RjFFIC8qIFRyYWlsaW5nT2JqZWN0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE2MDcxMzIxQkQ4MzA4QjAwREJDNEYyIC8qIFRyYW5zYWN0aW9uT3BlcmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNFRUY0MTI1Nzk5RkQ5MDA2NTYzQkIgLyogVHJh
bnNmZXJGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTY2OSwxMSArMzU2OTEsMTMgQEAK
IAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEQzkzOUE4MUU5QkRGQjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwREYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVv
VHJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBW
aWRlb1RyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBFMjE3MTVEMkEyMDA2
NThEOTggLyogVmlkZW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQ2MTgw
REZGNEUwMDhCOEU2NSAvKiBWaWRlb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJFRjI5RUVDMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjQxN0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2
YXRlQVZGLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDMzNkY2ODE3RkEwQUM2MDBERERDRDAgLyog
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxNDI3
MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEOEI1QTQzMTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwRTgxRDExQkYyNzY1NjAwMUZE
QTQ4IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNFRjQxOENGMTE3OTY3OEMwMDlEMTEyQyAvKiBWaWV3cG9ydEFyZ3VtZW50cy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0
aW9uLmNwcAppbmRleCBjYmU1M2JiNTQzODk2NjZkMmZkYWQ0MjI3ZjI5NjRlNDlkNTg1ZWE3Li43
MjM0ZmVkMTljZmM4YjZhOThlNzEyOGRiMTkwZjU3NmVmN2MzNGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTMxNSw5ICsz
MTUsOSBAQCBzdGF0aWMgaW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGaWx0ZXJPcGVyYXRp
b25zKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZybwogICAgIHNpemVfdCB0b1NpemUgPSB0by5v
cGVyYXRpb25zKCkuc2l6ZSgpOwogICAgIHNpemVfdCBzaXplID0gc3RkOjptYXgoZnJvbVNpemUs
IHRvU2l6ZSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAg
ICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZnJvbU9wID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9t
Lm9wZXJhdGlvbnMoKVtpXS5nZXQoKSA6IDA7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRp
b24+IHRvT3AgPSAoaSA8IHRvU2l6ZSkgPyB0by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwot
ICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxlbmRG
dW5jKGZyb21PcC5nZXQoKSwgdG9PcC5nZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxlbmRG
dW5jKDAsIGZyb21PcC5nZXQoKSwgY29udGV4dCwgdHJ1ZSkgOiAwKTsKKyAgICAgICAgUmVmUHRy
PEZpbHRlck9wZXJhdGlvbj4gZnJvbU9wID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9tLm9wZXJhdGlv
bnMoKVtpXS5nZXQoKSA6IG51bGxwdHI7CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+
IHRvT3AgPSAoaSA8IHRvU2l6ZSkgPyB0by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRy
OworICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxl
bmRGdW5jKGZyb21PcC5nZXQoKSwgdG9PcC5nZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxl
bmRGdW5jKDAsIGZyb21PcC5nZXQoKSwgY29udGV4dCwgdHJ1ZSkgOiBudWxscHRyKTsKICAgICAg
ICAgaWYgKGJsZW5kZWRPcCkKICAgICAgICAgICAgIHJlc3VsdC5vcGVyYXRpb25zKCkuYXBwZW5k
KGJsZW5kZWRPcCk7CiAgICAgICAgIGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCAzODc3N2NmMmE5NzhjN2E2ZTJkYjU5MWQ1
YzVmZjUyYzI2NTdlYjk1Li5lZWY5ZThmZTkyNDgwYzRmZTBhN2Q5ZGQzNmU0MGFjZjg1YzZmZTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cApAQCAtMjY3MSw4ICsyNjcxLDggQEAgc3RhdGljIFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+
IGNvbnN1bWVCYXNpY1NoYXBlSW5zZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgYXIKICAgICAgICAg
c2hhcGUtPnVwZGF0ZVNoYXBlU2l6ZTFWYWx1ZSh0b3AucmVsZWFzZU5vbk51bGwoKSk7CiAKICAg
ICBpZiAoY29uc3VtZUlkZW50PENTU1ZhbHVlUm91bmQ+KGFyZ3MpKSB7Ci0gICAgICAgIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gaG9yaXpvbnRhbFJhZGlpWzRdID0geyAwIH07Ci0gICAgICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmVydGljYWxSYWRpaVs0XSA9IHsgMCB9OworICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGhvcml6b250YWxSYWRpaVs0XSA9IHsgbnVs
bHB0ciB9OworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRpY2FsUmFkaWlb
NF0gPSB7IG51bGxwdHIgfTsKICAgICAgICAgaWYgKCFjb25zdW1lUmFkaWkoaG9yaXpvbnRhbFJh
ZGlpLCB2ZXJ0aWNhbFJhZGlpLCBhcmdzLCBjb250ZXh0Lm1vZGUsIGZhbHNlKSkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBzaGFwZS0+c2V0VG9wTGVmdFJhZGl1cyhjcmVh
dGVQcmltaXRpdmVWYWx1ZVBhaXIoaG9yaXpvbnRhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxsKCks
IHZlcnRpY2FsUmFkaWlbMF0ucmVsZWFzZU5vbk51bGwoKSwgUGFpcjo6SWRlbnRpY2FsVmFsdWVF
bmNvZGluZzo6Q29hbGVzY2UpKTsKQEAgLTI4ODEsNyArMjg4MSw3IEBAIHN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVJlcGVhdChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSkKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNlKENT
U1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAg
IGJvb2wgZmlsbCA9IGNvbnN1bWVJZGVudDxDU1NWYWx1ZUZpbGw+KHJhbmdlKTsKLSAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNsaWNlc1s0XSA9IHsgMCB9OworICAgIFJlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gc2xpY2VzWzRdID0geyBudWxscHRyIH07CiAKICAgICBmb3IgKHNpemVf
dCBpbmRleCA9IDA7IGluZGV4IDwgNDsgKytpbmRleCkgewogICAgICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHZhbHVlID0gY29uc3VtZVBlcmNlbnQocmFuZ2UsIFZhbHVlUmFuZ2U6Ok5v
bk5lZ2F0aXZlKTsKQEAgLTI5MTgsNyArMjkxOCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1BhcnNl
CiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZU91dHNldChDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IG91dHNldHNbNF0gPSB7IDAgfTsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG91dHNl
dHNbNF0gPSB7IG51bGxwdHIgfTsKIAogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFs
dWU7CiAgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAppbmRleCBjZjAzYjhkNTQ3OWYwZjk4NjVjYmVkZjJlMzk5NzFjZmFm
Zjc3ZmEwLi44MzU0ZjMwNmE3ZGUwYjQ1YjFjMmQ3ZWE5YjI1MmFkYWY4OTY3MjVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTk1LDEyICsyOTk1LDEyIEBAIFJlZlB0cjxBdHRyPiBFbGVt
ZW50OjpnZXRBdHRyaWJ1dGVOb2RlKGNvbnN0IEF0b21TdHJpbmcmIHF1YWxpZmllZE5hbWUpCiBS
ZWZQdHI8QXR0cj4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTm9kZU5TKGNvbnN0IEF0b21TdHJpbmcm
IG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbVN0cmluZyYgbG9jYWxOYW1lKQogewogICAgIGlmICgh
ZWxlbWVudERhdGEoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIFF1YWxpZmllZE5hbWUgcU5hbWUobnVsbEF0b20oKSwgbG9jYWxOYW1lLCBuYW1lc3Bh
Y2VVUkkpOwogICAgIHN5bmNocm9uaXplQXR0cmlidXRlKHFOYW1lKTsKICAgICBjb25zdCBBdHRy
aWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1lbnREYXRhKCktPmZpbmRBdHRyaWJ1dGVCeU5hbWUocU5h
bWUpOwogICAgIGlmICghYXR0cmlidXRlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGVuc3VyZUF0dHIoYXR0cmlidXRlLT5uYW1lKCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5k
ZXggNTViNmQzOGU5NDliZDRhMTI1NDhiZWFjMTNjZTVhYTlmMTY1Njc5OC4uYmI0YmMxMzZmN2Yx
YTRiOWQ0NWU5NmU2MDJkYzdjMzAzZjJlOWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0VW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0CiAKIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBzdGF0ZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKIHsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAwLCBz
dGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwg
bWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIG51bGxwdHIsIHN0
YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6
RXhjZXB0aW9uKiBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGV4dEV2ZW50LmNwcAppbmRleCBkNjg4OTBiODNiODMyOTA5ZWYxYWZmYmE4YTk3MDUxYzM5
MGZhNTY5Li4yNTUzYTBjNzMyZGQyOTI5NDNiYjczMWU3OTc0MWUxMGE2ZjY0MDA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVGV4dEV2ZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8VGV4dEV2ZW50PiBUZXh0
RXZlbnQ6OmNyZWF0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgY29uc3QgU3RyaW5nJiBk
YXRhLAogCiBSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3Rl
KFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hv
dWxkU21hcnRSZXBsYWNlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudChX
VEZNb3ZlKHZpZXcpLCBkYXRhLCAwLCBzaG91bGRTbWFydFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxv
Y2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFRleHRFdmVudChXVEZNb3ZlKHZpZXcpLCBkYXRhLCBudWxscHRyLCBzaG91bGRTbWFy
dFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90
ZSkpOwogfQogCiBSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZUZvckZyYWdtZW50UGFz
dGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYm
IGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKaW5kZXggODgzNzNjYjRkNjMyZjNh
OTYyZDc1N2VkMTdjYzRkNmE5YWM2YWY3ZS4uM2I1MWI2YWJjNDE2MDliYTBiYzM3NTNlZjc4YjJk
YzQ2ZTQwMWFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFu
ZC5jcHAKQEAgLTM2NCw3ICszNjQsNyBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2VydExpc3RD
b21tYW5kOjpsaXN0aWZ5UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwogICAgIFZp
c2libGVQb3NpdGlvbiBlbmQgPSBlbmRPZlBhcmFncmFwaChzdGFydCwgQ2FuU2tpcE92ZXJFZGl0
aW5nQm91bmRhcnkpOwogICAgIAogICAgIGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxs
KCkgfHwgIXN0YXJ0LmRlZXBFcXVpdmFsZW50KCkuY29udGFpbmVyTm9kZSgpLT5oYXNFZGl0YWJs
ZVN0eWxlKCkgfHwgIWVuZC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKS0+aGFzRWRp
dGFibGVTdHlsZSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICAvLyBDaGVjayBmb3IgYWRqb2luaW5nIGxpc3RzLgogICAgIGF1dG8gbGlzdEl0ZW1F
bGVtZW50ID0gSFRNTExJRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpAQCAtNDA1LDcgKzQw
NSw3IEBAIFJlZlB0cjxIVE1MRWxlbWVudD4gSW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJh
Z3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBvCiAgICAgICAgICAgICBpbnNlcnRpb25Qb3Mg
PSBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShsaXN0Q2hpbGQuZ2V0KCkpOwogCiAgICAgICAg
IGlmICghaXNFZGl0YWJsZVBvc2l0aW9uKGluc2VydGlvblBvcykpCi0gICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIGluc2VydE5vZGVB
dCgqbGlzdEVsZW1lbnQsIGluc2VydGlvblBvcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI4Yzk3MTJhYWY3OTRlNjNkMmE4YTA3YjBhMDhjOTAyNzdk
MmZhYmQuLjI5Mzc5YjIwZjU5MWZmZWYwYmQ1NTdjODA4ZDhiNDk0MGFhYTVhNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5o
IgogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZh
dGUuaCIKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKQEAgLTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1
ZGUgIkpTTWVkaWFDb250cm9sc0hvc3QuaCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiTWVkaWFDb250cm9sbGVyLmgiCkBAIC04Nyw2ICs4OSw3IEBACiAjaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVRl
eHRUcmFjay5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlF1aXJr
cy5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCkBAIC0xMTEsNyArMTE0LDkgQEAK
ICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVy
ZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5LmgiCisjaW5jbHVk
ZSAiVmlkZW9UcmFjay5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRPYmpl
Y3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8
bGltaXRzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhZDA5ZTdi
ZTFlMjMwZGZlNmJjNzk5NWI1ZjUzZDc1NzRjODgxYjNmLi40MmRkYWM3MTIzYjllMWNlOGU0YWI0
ZGE3MDE5ZGY4OGQxNTY4ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKKyNpbmNsdWRlICJBdWRpb1Ry
YWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiQXV0b3BsYXlFdmVudC5oIgogI2luY2x1ZGUgIkNhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgpAQCAtMzksOCAr
MzksOCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNl
ci5oIgogI2luY2x1ZGUgIk1lZGlhVW5pcXVlSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlRleHRU
cmFjay5oIgotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDbGll
bnQuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0
eUNoYW5nZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2dnZXJIZWxwZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3Bw
CmluZGV4IDBmOWY0M2IwNDhmNGVkNDExMDkyMDFiZjM1M2Q1OGVhYTQ1MjMzNzEuLmMyZDAzNTNl
Yjg3MWM1NGRhMjk2YmUyNTljMDAzNjFmZWRiZTJiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC02MCwxNyArNjEsMTcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5n
VHJhY2soY29uc3QgVVJMJiB1cmwpCiBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNr
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9i
amVjdChkb2N1bWVudCkKKyAgICAsIG1fdHJhY2soTG9hZGFibGVUZXh0VHJhY2s6OmNyZWF0ZSgq
dGhpcywgYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihraW5kQXR0cikuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKSwgbGFiZWwoKSwgc3JjbGFuZygpKSkKIHsKKyAgICBtX3RyYWNrLT5h
ZGRDbGllbnQoKnRoaXMpOwogICAgIExPRyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxU
cmFja0VsZW1lbnQgLSAlcCIsIHRoaXMpOwogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFn
KSk7CiB9CiAKIEhUTUxUcmFja0VsZW1lbnQ6On5IVE1MVHJhY2tFbGVtZW50KCkKIHsKLSAgICBp
ZiAobV90cmFjaykgewotICAgICAgICBtX3RyYWNrLT5jbGVhckVsZW1lbnQoKTsKLSAgICAgICAg
bV90cmFjay0+Y2xlYXJDbGllbnQoKnRoaXMpOwotICAgIH0KKyAgICBtX3RyYWNrLT5jbGVhckVs
ZW1lbnQoKTsKKyAgICBtX3RyYWNrLT5jbGVhckNsaWVudCgqdGhpcyk7CiB9CiAKIFJlZjxIVE1M
VHJhY2tFbGVtZW50PiBIVE1MVHJhY2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTQyLDIxICsxNDMsOSBAQCBib29s
IEhUTUxUcmFja0VsZW1lbnQ6OmlzRGVmYXVsdCgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZGVmYXVsdEF0dHIpOwogfQogCi1Mb2FkYWJsZVRl
eHRUcmFjayYgSFRNTFRyYWNrRWxlbWVudDo6dHJhY2soKQorVGV4dFRyYWNrJiBIVE1MVHJhY2tF
bGVtZW50Ojp0cmFjaygpCiB7Ci0gICAgLy8gRklYTUU6IFRoZXJlIGlzIG5vIHByYWN0aWNhbCB2
YWx1ZSBpbiBsYXppbHkgaW5pdGlhbGl6aW5nIHRoaXMuCi0gICAgLy8gSW5zdGVhZCB0aGlzIHNo
b3VsZCBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3Rvci4KLSAgICBpZiAoIW1fdHJhY2spIHsK
LSAgICAgICAgLy8gVGhlIGtpbmQgYXR0cmlidXRlIGlzIGFuIGVudW1lcmF0ZWQgYXR0cmlidXRl
LCBsaW1pdGVkIG9ubHkgdG8ga25vd24gdmFsdWVzLiBJdCBkZWZhdWx0cyB0byAnc3VidGl0bGVz
JyBpZiBtaXNzaW5nIG9yIGludmFsaWQuCi0gICAgICAgIFN0cmluZyBraW5kID0gYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihraW5kQXR0cikuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KTsKLSAgICAgICAgaWYgKCFUZXh0VHJhY2s6OmlzVmFsaWRLaW5kS2V5d29yZChraW5kKSkKLSAg
ICAgICAgICAgIGtpbmQgPSBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKTsKLSAgICAgICAg
bV90cmFjayA9IExvYWRhYmxlVGV4dFRyYWNrOjpjcmVhdGUoKnRoaXMsIGtpbmQsIGxhYmVsKCks
IHNyY2xhbmcoKSk7Ci0gICAgICAgIG1fdHJhY2stPmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfQot
ICAgIEFTU0VSVChtX3RyYWNrLT50cmFja0VsZW1lbnQoKSA9PSB0aGlzKTsKLQotICAgIHJldHVy
biAqbV90cmFjazsKKyAgICByZXR1cm4gbV90cmFjazsKIH0KIAogYm9vbCBIVE1MVHJhY2tFbGVt
ZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKQEAg
LTIwNiw3ICsxOTUsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnNjaGVkdWxlTG9hZCgpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB0cmFjaygpLnNjaGVkdWxl
TG9hZCh0cmFja1VSTCk7CisgICAgICAgIG1fdHJhY2stPnNjaGVkdWxlTG9hZCh0cmFja1VSTCk7
CiAgICAgfSk7CiB9CiAKQEAgLTI4MywxMyArMjcyLDExIEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVu
dDo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlIHN0YXRlKQogewogICAgIHRyYWNrKCkuc2V0UmVh
ZGluZXNzU3RhdGUoc3RhdGljX2Nhc3Q8VGV4dFRyYWNrOjpSZWFkaW5lc3NTdGF0ZT4oc3RhdGUp
KTsKICAgICBpZiAoYXV0byBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKLSAgICAgICAgcGFyZW50
LT50ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChtX3RyYWNrLmdldCgpKTsKKyAgICAgICAgcGFy
ZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChtX3RyYWNrLnB0cigpKTsKIH0KIAogSFRN
TFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0ZSBIVE1MVHJhY2tFbGVtZW50OjpyZWFkeVN0YXRlKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fdHJhY2spCi0gICAgICAgIHJldHVybiBIVE1MVHJhY2tFbGVt
ZW50OjpOT05FOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWFkeVN0YXRlPihtX3RyYWNrLT5y
ZWFkaW5lc3NTdGF0ZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQu
aAppbmRleCBiODYyZDQ5YTRhOTJjMzM2NzM1NTg5MWNiNjQ2ODVlNjgwMTVlNjAyLi4zZjQ0ZTBh
OGUxNGExYzdlNWRkZmMwYWY4OTVmYTBiNDE0N2Y1NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUcmFja0VsZW1lbnQuaApAQCAtMzAsMTEgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkxvYWRhYmxl
VGV4dFRyYWNrLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK2NsYXNzIExvYWRhYmxlVGV4dFRy
YWNrOwogCiBjbGFzcyBIVE1MVHJhY2tFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKEhUTUxUcmFja0VsZW1lbnQpOwpAQCAtNTIsNyArNTMsNyBA
QCBwdWJsaWM6CiAgICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUpOwogCi0gICAgTG9hZGFibGVUZXh0VHJhY2smIHRyYWNr
KCk7CisgICAgVGV4dFRyYWNrJiB0cmFjaygpOwogCiAgICAgdm9pZCBzY2hlZHVsZUxvYWQoKTsK
IApAQCAtODcsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0
IFVSTCYpOwogCi0gICAgUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOworICAgIFJl
ZjxMb2FkYWJsZVRleHRUcmFjaz4gbV90cmFjazsKICAgICBib29sIG1fbG9hZFBlbmRpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9oYXNSZWxldmFudExvYWRFdmVudHNMaXN0ZW5lciB7IGZhbHNl
IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKaW5kZXggM2Ni
NzE4ZDNkYzI3ZTU4M2I1YTVkZjEwOTNhMDM2NTI3YzAyZWNiNS4uMTJiMWZjYzU3NzZlMDZjZmU4
ZGRmYTkyYzczYzc3MjBmYjkzZGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suY3BwCkBAIC0zMSwxMCArMzEsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2suaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogCiAjaWYg
RU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiQXVkaW9UcmFja0NsaWVudC5oIgorI2luY2x1ZGUg
IkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODAs
MTMgKzgyLDEzIEBAIEF1ZGlvVHJhY2s6OkF1ZGlvVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrCiAgICAgLCBtX3ByaXZhdGUodHJh
Y2tQcml2YXRlKQogICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCiB7Ci0g
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
KnRoaXMpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogfQogCiBBdWRpb1RyYWNrOjp+
QXVkaW9UcmFjaygpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAg
bV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiB2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKQEAgLTk0LDEwICs5NiwxMCBAQCB2
b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0
ZSkKICAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0
ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7CiAgICAgbV9w
cml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
dGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIG1fcHJpdmF0ZS0+c2V0TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlm
aWVyKCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCmluZGV4
IDM3NTEwYThjZDJmOGY0MDE1MzU4OTI1ZGY5OWRhZWM5OGYxOTYwNWMuLmEzMzc3MDUzODllOTg2
MmJiZjhjZmYxNGNjZWNjOGY5NDZiMWYyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVk
aW9UcmFjay5oCkBAIC0yOCwyNiArMjgsMTUgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVD
bGllbnQuaCIKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hT
ZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb1RyYWNrOworY2xhc3Mg
QXVkaW9UcmFja0NsaWVudDsKIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogCi1jbGFzcyBBdWRpb1Ry
YWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5BdWRpb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZp
cnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrSWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0tpbmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhYmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9Ci19
OwotCiBjbGFzcyBBdWRpb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2
YXRlIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEF1
ZGlvVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1Ry
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2tDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmM3ZGI0NDI3MDQxZmM0YzIwYzI4NjYxZmIz
ZjMwMTFlNGNjZjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrQ2xpZW50LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1RyYWNrOworCitjbGFzcyBBdWRp
b1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5BdWRpb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrSWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0tpbmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xhYmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9
Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRU
ZXh0VHJhY2suY3BwCmluZGV4IGM2ZmVhMzVlZDM4YjA0ODYwM2QyY2U4MWRmYWJiMDI2MTg4NDIw
ZWQuLmQ0NTk2OWZiZmM3N2RlOTdlMDdmN2JhOGQ5OTc2YTgyNGU4ZTc0ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKQEAgLTU4LDEzICs1OCwx
MyBAQCBJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhEb2N1bWVudCYgZG9jdW1lbnQs
IEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYQogICAgIDogVGV4dFRyYWNrKCZkb2N1bWVudCwg
ZW1wdHlBdG9tKCksIHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJh
Y2tQcml2YXRlLmxhbmd1YWdlKCksIEluQmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZh
dGUpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQoKnRoaXMpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogfQogCiBJbmJh
bmRUZXh0VHJhY2s6On5JbmJhbmRUZXh0VHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBJ
bmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQ
cml2YXRlKQpAQCAtNzIsOSArNzIsOSBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0
ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ByaXZh
dGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAg
ICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKIAogICAgIHNldE1vZGVJbnRl
cm5hbChtb2RlKCkpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IDBhNjQ3YzJjNDU2NjU0N2VmYWVmYjQ2NjI0
NTEyZjA2ZmMxOGE2ZjIuLjg0OWNkNTk0YTdiOWEzOThiMGMzMWZhOTBmYzY3ZDdmNmQ2NzZhMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
U291cmNlQnVmZmVyLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VGV4dFRyYWNrQ3VlTGlzdC5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRl
ICJWVFRSZWdpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDhi
MzE2ZTdhZGE0OWMzMDI4OTUyNDViMGE3MThlY2Q0ZDg5MjllMmQuLjk0MGMwMjQ2MmU4NjkzY2I4
ODg5ZDAyN2I2YzlhODZlZjJlOTBjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suaApAQCAtMzksMjUgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tMaXN0
OworY2xhc3MgVGV4dFRyYWNrQ2xpZW50OwogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKIGNsYXNz
IFZUVFJlZ2lvbjsKIGNsYXNzIFZUVFJlZ2lvbkxpc3Q7CiAKLWNsYXNzIFRleHRUcmFja0NsaWVu
dCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxUZXh0VHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja0lkQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRU
cmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tMYWJlbENoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFj
a0xhbmd1YWdlQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92
ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFJlbW92ZVRleHRUcmFjayhUZXh0VHJhY2smKSB7IH0KLX07Ci0KIGNsYXNzIFRleHRUcmFjayA6
IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFRleHRUcmFj
ayk7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMThkMDM3ZGVmNzU5NGZkMDBhNTJjODFjOTAxNDkwY2Q3MGVhNDMyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGll
bnQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRleHRUcmFjazsKK2NsYXNzIFRleHRUcmFja0N1ZTsKK2NsYXNzIFRl
eHRUcmFja0N1ZUxpc3Q7CisKK2NsYXNzIFRleHRUcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxUZXh0VHJhY2tDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0VHJh
Y2tDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0lkQ2hhbmdl
ZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQo
VGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRl
eHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tMYWJlbENoYW5nZWQoVGV4
dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0xhbmd1YWdlQ2hhbmdlZChU
ZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJh
Y2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRU
cmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3Vl
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBU
ZXh0VHJhY2tDdWUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFjayhU
ZXh0VHJhY2smKSB7IH0KK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmNwcAppbmRleCA5N2YwMWFjYzY1OWEwZGMwZTUxZDBlZTE4ZDAzNjQwMzYx
OWFjZjQwLi4yMzAxOTdkZDUxMjEyYWFjODBhYWE1OWRiMjY4ZmVhM2VmMDJjYTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNs
dWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQpAQCAtODQsMTMgKzg2LDEzIEBAIFZpZGVvVHJhY2s6OlZpZGVvVHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrCiAgICAgLCBtX3By
aXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0
ZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUt
PnNldENsaWVudCgqdGhpcyk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIFZp
ZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxs
cHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIHZvaWQgVmlkZW9UcmFj
azo6c2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtOTgsOSAr
MTAwLDkgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAg
ICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRl
OwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KCp0aGlzKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3ByaXZhdGUtPnNl
dExvZ2dlcihsb2dnZXIoKSwgbG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCBlZjg0ODhlN2I1OTgxZjEzMTcyMmJmYmQ2NzZk
NmY0YjE2ZGY1MWE2Li44ZDZmODhjZmJmZTkyMjEwNWYyMDcxMWQ1YjdlZWIzNjVlZjllNmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAtMjksMjUgKzI5LDE2IEBA
CiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5o
IgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhRGVzY3JpcHRpb247CiBjbGFzcyBWaWRlb1RyYWNrOworY2xhc3MgVmlkZW9U
cmFja0NsaWVudDsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwotCi1jbGFzcyBWaWRlb1RyYWNrQ2xp
ZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpZGVvVHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5WaWRlb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwg
dm9pZCB2aWRlb1RyYWNrSWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgdmlkZW9UcmFja0tpbmRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgdmlkZW9UcmFja0xhYmVsQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZpZGVvVHJhY2soVmlkZW9UcmFjayYpIHsgfQotfTsKK2Ns
YXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCiBjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGlj
IE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCmluZGV4IDJjNjBiMmIy
ZTcwNjUzMzg4ZDlhNGVjYzAwMzlhMzJmMzY2MGIyYzguLjk5MTM2NzM2MWVhZWIyZmNmNDk0YWQx
OWZmZDdhNTAwNTQ1ZDBmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmlkbApAQCAtMzQsNCArMzQsNSBAQAogICAgIFtTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU9TWVkaWFTb3VyY2VdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAKICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiBzZWxlY3RlZDsKKwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFja0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1Yzg3NmQ3ZDdiOTY0NzYzZTc3NjQ4
ZTlmMzlkYTVmYTE5YzhmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFja0NsaWVudC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9UcmFjazsKKworY2xhc3Mg
VmlkZW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxWaWRlb1RyYWNrQ2xpZW50
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsK
KyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0lkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tLaW5kQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYWJlbENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFZpZGVvVHJhY2smKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2sm
KSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggNTUzYTFjZmQ3OWUyMDE5MzY2
ZjNlYzM3MGM4M2M5ODM4ZDMxMTk3My4uYmU1YTcwZGVlZjQ3MzEzZmVhYjhhOGY3ZTQwMzRhMDE4
NDExNzcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKQEAg
LTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbgogICAgIGlmIChkb2N1bWVu
dCkKICAgICAgICAgZG9jdW1lbnQtPmdldFBhcnNlckxvY2F0aW9uKHVybCwgbGluZSwgY29sdW1u
KTsKIAotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBj
b2x1bW4sIDAsIEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIp
OworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBjb2x1
bW4sIG51bGxwdHIsIEpTRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZp
ZXIpOwogfQogCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVm
PFNjcmlwdENhbGxTdGFjaz4mJiBjYWxsU3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAppbmRleCA5MDc4NGJlNDAwNmRkMDEwZTgx
MDdhM2I0MDM3YzBkZWM0NjRlZDhmLi41NjgxNTI4MTcyYTJiMTRjNzA1OTZmZDAwYWFiYzI3MDc5
NWE1Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmgKQEAgLTMyLDcgKzMyLDYgQEAKIAogI2luY2x1ZGUgIkNETUluc3RhbmNlLmgi
CiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2VTZXNzaW9uLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0JveFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KQEAgLTQ0LDYgKzQzLDggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZWRpYVBsYXllcjsKKwogdXNpbmcgS2V5SURUeXBl
ID0gVmVjdG9yPHVpbnQ4X3Q+OwogdXNpbmcgS2V5SGFuZGxlVmFsdWVWYXJpYW50ID0gVmFyaWFu
dDwKICAgICBWZWN0b3I8dWludDhfdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGE5ZjgzNmJkMTE3M2UyMmUwYWU4
MTRhMTc1NDJhYTIzYTQ2MTVhNGUuLmM1MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkxMWEwNDljZTc5
NGI0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRl
QmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCkBAIC0zMiwxMyArMzMsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwotCi1jbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwot
fTsKLQogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkKQEAg
LTQ2LDggKzQwLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRp
b1RyYWNrUHJpdmF0ZSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRDbGllbnQoQXVkaW9UcmFja1By
aXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQotICAgIEF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVu
dDsgfQorICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQp
IHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVu
dCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQq
IGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgewpAQCAtNzgsNyAr
NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAK
IHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0
ciB9OworICAgIFdlYWtQdHI8QXVkaW9UcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwogICAg
IGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKICAgICBFbmFibGVkQ2hhbmdlZENhbGxiYWNrIG1f
ZW5hYmxlZENoYW5nZWRDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2NjNlMDc1YTk0NGU4MzZkY2Q4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVD
bGllbnQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CisKK2NsYXNz
IEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQg
eworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSA9IDA7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCmluZGV4IDBiNGQ5Y2ZlNjdjZTk1N2E3
Yjk3MzI3OTY2MDZiMGFkMjZmZTE3OGQuLmRjYzMyNmE1M2MwMzFlZDRmZjM0YzE1YjM2MzcwNDZh
OGQyYjljMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
YmFuZFRleHRUcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKQEAgLTQxLDggKzQxLDkgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gY3JlYXRlKEN1ZUZvcm1hdCBm
b3JtYXQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShmb3Jt
YXQpKTsgfQogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7
CiAKLSAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2NsaWVudDsgfQotICAgIHZvaWQgc2V0Q2xpZW50KEluYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIElu
YmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsg
fQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogCiAgICAg
ZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7CiAgICAgICAgIERpc2FibGVkLApAQCAtODgsNyAr
ODksNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgQ3VlRm9ybWF0IG1fZm9ybWF0Owot
ICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9Owor
ICAgIFdlYWtQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxs
cHRyIH07CiAgICAgTW9kZSBtX21vZGUgeyBNb2RlOjpEaXNhYmxlZCB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdh
MzI2NTAzM2I5NDdiNWJlNjhjMDYyMzAyNmZmMzAxMjhjNDI4MTguLjM3Yjc2ZmQ0NGRjYzU0MTVl
OGViOTM0ZTEwNDFkY2ZhZWQ3OTZjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMzLDkgKzMzLDEzIEBACiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCisjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQ
cml2YXRlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xODUsOCArMTg5LDEzIEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4mIG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbENvbnRlbnRUeXBlVmVjdG9yKCk7IH0KLX07CiAKKyAgICBSZWZQdHI8UGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkg
ZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorCisjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURf
TUVESUEpCisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtZWRpYVBsYXllckNhY2hlZEtleUZvcktl
eUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRp
ZgorfTsKIAogY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKIHsKQEAgLTQx
Miw2ICs0MjEsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQm
IGNsaWVudCkKICAgICA6IG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0
aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFr
ZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKSkKKyAgICAsIG1fcHJlZmVycmVk
RHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2RlOjpTdGFuZGFyZCkKIHsKIH0KIApAQCAt
NDIwLDYgKzQzMCw3IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVu
dCYgY2xpZW50LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luCiAgICAgLCBtX3JlbG9hZFRp
bWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZh
dGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQcml2YXRlPih0aGlzKSkKICAgICAsIG1fYWN0
aXZlRW5naW5lSWRlbnRpZmllcihtZWRpYUVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3ByZWZl
cnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4
IGUwYjg2ZDhlNmU2YTk5ZjViMDZiNmI2ZmNhOWEyODZkM2M0NDc4OTAuLmU3ZmRiYWNhMGI2ZDM2
YjMwMzRiOGMyMWUzZjUzZjExZmRlYzgyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMjcsMjQgKzI3LDE3IEBACiAKICNpZiBFTkFC
TEUoVklERU8pCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkNv
bnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBl
c0dMLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgotI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Np
b24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFj
a1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgIlZpZGVv
VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgpAQCAtNTYsMTAgKzQ5LDYgQEAKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0j
aW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKLSNlbmRpZgotCiBPQkpDX0NMQVNTIEFWUGxh
eWVyOwogT0JKQ19DTEFTUyBOU0FycmF5OwogCkBAIC02OSwxMyArNTgsMTggQEAgdHlwZWRlZiBz
dHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitlbnVtIGNsYXNzIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5IDogdWludDhfdDsKK2VudW0gY2xh
c3MgRHluYW1pY1JhbmdlTW9kZSA6IHVpbnQ4X3Q7CisKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlk
ZXI7CitjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIENETUluc3RhbmNlOwogY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBMZWdh
Y3lDRE07CitjbGFzcyBMZWdhY3lDRE1TZXNzaW9uOwogY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbkNs
aWVudDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXllcjsKQEAg
LTg0LDggKzc4LDEyIEBAIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNz
IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogY2xhc3Mg
TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50OwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xh
c3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI7CitjbGFz
cyBQbGF0Zm9ybVRleHRUcmFjazsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdlczsKIGNsYXNzIFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uOworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVj
dCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAt
MjAzLDcgKzIwMSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCi0gICAgdmlydHVhbCBSZWZQdHI8QXJyYXlCdWZmZXI+IG1lZGlhUGxheWVy
Q2FjaGVkS2V5Rm9yS2V5SWQoY29uc3QgU3RyaW5nJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5QnVmZmVyPiBtZWRpYVBsYXllckNhY2hlZEtleUZv
cktleUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJLZXlOZWVkZWQoVWludDhBcnJheSopIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlh
UGxheWVyTWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7IH0KICNlbmRpZgpAQCAtMjMwLDcgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVySXNMb29w
aW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNl
TG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQotICAgIHZpcnR1YWwgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVk
aWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2
aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3Jl
YXRlUmVzb3VyY2VMb2FkZXIoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGRvZXNIYXZlQXR0cmli
dXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9tU3RyaW5nKiA9IG51bGxwdHIpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lz
dGVudENhY2hlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgU3Ry
aW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBlbXB0
eVN0cmluZygpOyB9CkBAIC03MTMsNyArNzExLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hv
dWxkUHJlcGFyZVRvUmVuZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGVudE1JTUVUeXBl
V2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5pdGlhbGl6
aW5nTWVkaWFFbmdpbmUgeyBmYWxzZSB9OwotICAgIER5bmFtaWNSYW5nZU1vZGUgbV9wcmVmZXJy
ZWREeW5hbWljUmFuZ2VNb2RlIHsgRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQgfTsKKyAgICBE
eW5hbWljUmFuZ2VNb2RlIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKICAgICBQaXRjaENv
cnJlY3Rpb25BbGdvcml0aG0gbV9waXRjaENvcnJlY3Rpb25BbGdvcml0aG0geyBQaXRjaENvcnJl
Y3Rpb25BbGdvcml0aG06OkJlc3RBbGxBcm91bmQgfTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oCmluZGV4IDg3MTY3NTdhMGQyZTU2MWVmZmVhMDg5OTJlZTdhODcwMmM3Y2Mz
OTIuLjc3OTEwOTgxNWRhOGY4MGJjOTliYWZjZjY3YjcwMjQ4M2VjZTYzMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CkBAIC0zMCw5ICszMCwxNCBAQAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAorI2lmIEVOQUJMRShMRUdBQ1lfRU5D
UllQVEVEX01FRElBKQorI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1
ZmZlclByaXZhdGUuY3BwCmluZGV4IDRlYjRlNzA2MjExMGVmZGEzMTRjMDgzMTBhYzQ0NDM5NDE2
Y2EyNzYuLmE5NGIxYzE5Mzg4NDkxYzBjOTA5NDk3M2FjM2FkYmQ5YTRiOTg0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclBy
aXZhdGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTWVkaWFEZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCkBA
IC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNs
dWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRp
Yy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RyYWNrUHJpdmF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Ry
YWNrUHJpdmF0ZUJhc2UuaAppbmRleCAyNzhmMGM2YjcyYzI4NTA5ZDMwMmY3N2I0N2Q2MTkyYTcx
OWQwMjgzLi42ZGJlNDk1ZWZiYmFlYjEyYTM0NDZjMjFmZjlhOTRlMWRlOTY4MDllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJUcmFj
a1ByaXZhdGVCYXNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KQEAgLTM2LDE1ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
VHJhY2tQcml2YXRlQmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+VHJhY2tQcml2
YXRlQmFzZUNsaWVudCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNv
bnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29u
c3QgQXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsK
LX07Ci0KIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFRyYWNrUHJpdmF0ZUJhc2UKICAgICA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlLCBXVEY6OkRlc3RydWN0aW9u
VGhyZWFkOjpNYWluPgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJiNmY0ZWU5ZDBjYzM1ZDc3NTc2MDljYjkzY2JmYjEwOTQxNmEwMDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1By
aXZhdGVCYXNlQ2xpZW50LmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VHJhY2tQcml2YXRl
QmFzZUNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2VDbGll
bnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbVN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJp
bmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKSA9IDA7Cit9OworCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
VHJhY2tQcml2YXRlLmgKaW5kZXggZWE1YTI5Y2ViNWNmZTlmMDI0MjdjNWVhZGRjMTY0Mjc0Y2I2
ZDYwOS4uMDlmY2U4Yjg1ZGRkNDYwOTQxYjQ5ZjcwYTk4NGQ2NGRlZDY4MDJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5o
CkBAIC0yOCwxOSArMjgsMTYgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJUcmFj
a1ByaXZhdGVCYXNlLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBW
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKLX07
Ci0KIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2Ugewog
cHVibGljOgotICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGll
bnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCog
Y2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNl
dENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFr
ZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0g
bnVsbHB0cjsgfQorICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNl
dFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQpCiAgICAgewpAQCAtNjgsNyArNjUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAg
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQ
dHI8VmlkZW9UcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIGJv
b2wgbV9zZWxlY3RlZCB7IGZhbHNlIH07CiAgICAgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9z
ZWxlY3RlZENoYW5nZWRDYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wODY2MjlhN2MxYzNlYTY4OGVkYWIxYTJmNDAzNDA2YmVlMmRlZTFmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVD
bGllbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBw
dWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lk
IHNlbGVjdGVkQ2hhbmdlZChib29sKSA9IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCmluZGV4IDVkNTZiMWM0ZjkzYjg3ZGE2NjE3NjYxZDY1NDYyOGQ2YTJkOTg5MGMu
LmQ2MzIzNTVhMTIzZDI5ZWIzZmQxYzcxOWEyNmQ3YmRjYTNlNWRiYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKQEAgLTM4NSw3ICszODUsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxBVk91
dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29udGV4dDsKLSAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1Rh
cmdldD4gbV9wbGF5YmFja1RhcmdldCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8TWVkaWFQbGF5
YmFja1RhcmdldD4gbV9wbGF5YmFja1RhcmdldDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FD
WV9FTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAxNmRkMDE2OGU0
Y2RkMDk5YjdjOGJjMzkyNmJkMWQwN2VmYjUyOWMzLi5kYWVhNGNmZWRhZmRhZGFjM2RlMmU3NGE1
MjRiMGZjZWMwOGEyYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTUyLDYgKzUyLDkg
QEAKICNpbXBvcnQgIk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiT3V0T2ZC
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5oIgorI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW1wb3J0ICJQ
bGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbXBvcnQg
IlBsYXRmb3JtVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCiAjaW1wb3J0ICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKQEAgLTEwNSw2ICsxMDgsMTAg
QEAKICNpbXBvcnQgIlRleHRUcmFjay5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQorI2ltcG9ydCAiTWVkaWFQbGF5YmFja1RhcmdldC5oIgorI2VuZGlm
CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiQXVkaW9TZXNzaW9uSU9TLmgi
CiAjaW1wb3J0ICJMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCmluZGV4IGZkMmYwZDNlZTVkMDhk
ZTA4MDM2ZmFiYjE1YzJhMzQ1MDQyOGJhM2MuLmViMjQzNjVjNzFhN2IwYTJkYjljZjhlNTM0YjI2
OGU3ODgyYTlmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2ltcG9ydCAiRGF0YVVSTERlY29kZXIuaCIKICNpbXBvcnQgIk1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW1w
b3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlVUSVV0aWxpdGllcy5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25m
aWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKaW5kZXgg
YTBiYWVkZTg4YTc1NTY4MWVhMmE0YTE3YmEzZTZlZDNkZmRjN2Q5ZS4uOTc0OTRlZTZjNWM4YjY5
OTIzNGVhN2M5NjZkZGQxYWM2YWE0MjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiVlA5VXRpbGl0aWVzQ29jb2EuaCIKICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL091
dHB1dENvbnRleHQuaD4KICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5o
PgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hT
b2Z0TGluay5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCmluZGV4IGJmOWZk
ZTFmMzgxOGEwMDIyMWQyNmQ5NmE5YWFlMmE4YWVmNjZkOGQuLjk0ZmY1OGNiYjhhYzM3YzU4YWQx
MTc0NTQ5OWVhNjljZmM4OTM1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUg
Ik1lZGlhU291cmNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNp
bmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDk2
MzE3ZGFkNjJjNDU0NDQ3NmU5ZTIwNWU2N2JlNGNmMTMyZmQwMDguLjYwMDBlZDQ5YTQ3YTkwNjQ2
MDI2ZGNmNmFlOWEyYjBmZmVkZmRkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsCiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0
dGluZ3MoKS5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29t
cHV0ZWRTaXplKDEyKTsKICAgICBmb250ID0gRm9udENhc2NhZGUoV1RGTW92ZShmb250RGVzY3Jp
cHRpb24pLCAwLCAwKTsKLSAgICBmb250LnVwZGF0ZSgwKTsKKyAgICBmb250LnVwZGF0ZShudWxs
cHRyKTsKIAogICAgIHJ1biA9IFRleHRSdW4obV91bmF2YWlsYWJsZVBsdWdpblJlcGxhY2VtZW50
VGV4dCk7CiAgICAgdGV4dFdpZHRoID0gZm9udC53aWR0aChydW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggOGUyZGNiMDM1M2VkOTRm
NjBiZDRjNGFkY2ViMzUzYzYzYzc3Nzk0MC4uZmUxZDBiZWI2ZTkyNmMyNmIzZTFhMmI1N2UxMGE0
ZDIyMDk3NTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
YXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNo
RmllbGQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChS
ZW5kZXJTZWFyY2hGaWVsZCk7CiBSZW5kZXJTZWFyY2hGaWVsZDo6UmVuZGVyU2VhcmNoRmllbGQo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZShlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAs
IG1fc2VhcmNoUG9wdXBJc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX3NlYXJjaFBvcHVwKDApCisg
ICAgLCBtX3NlYXJjaFBvcHVwKG51bGxwdHIpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQuaXNTZWFy
Y2hGaWVsZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQppbmRleCAxZWU3MjE0M2Y5MDQyZjBmNzE3ZmQyNzE4NjRmYzE5NTRmNDMzMzVlLi5kMzVlZDE1
MmM2ZTc0YjgxNWRlZTdhMjU1MDI0OThlMDRjZWQ4ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC05NjUsNyArOTY1LDcgQEAgdm9pZCBSZW5kZXJU
aGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9sU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIE5TQ29u
dHJvbFNpemUgY28KICAgICBzdHlsZS5zZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFs
TGluZUhlaWdodCgpKTsKIAogICAgIGlmIChzdHlsZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92
ZShmb250RGVzY3JpcHRpb24pKSkKLSAgICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUo
MCk7CisgICAgICAgIHN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKG51bGxwdHIpOwogfQogCiBO
U0NvbnRyb2xTaXplIFJlbmRlclRoZW1lTWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDgyY2Y0ZDUzYWE3
M2MwOWVhMmY2ODljYmNlOWMyMjE0ZDZkMDZkNGMuLmFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2Nk
ZDRjMmJhMjc0Mjc3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCBSZWZQdHI8
WE1MUGFyc2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFyc2VyKHht
bFNBWEhhbmRsZXJQdHIgaAogICAgIHhtbFBhcnNlckN0eHRQdHIgcGFyc2VyID0geG1sQ3JlYXRl
TWVtb3J5UGFyc2VyQ3R4dChjaHVuay5kYXRhKCksIGNodW5rLmxlbmd0aCgpKTsKIAogICAgIGlm
ICghcGFyc2VyKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBtZW1jcHkocGFyc2VyLT5zYXgsIGhhbmRsZXJzLCBzaXplb2YoeG1sU0FYSGFuZGxlcikp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb1RyYWNrUHJveHkuY3BwCmluZGV4IGQ5YTZlMTRlMWMxMjJmYzI4Y2Y1ZmMxYjk3OTdkYjgx
MDA4YTI4OWQuLjZkY2RkZGI2ZjIyNjZkZTJlMThlNDE2ZTYyOGIwYWQ3MzM5MzNjZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Ry
YWNrUHJveHkuY3BwCkBAIC00NSwxMiArNDUsMTMgQEAgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpS
ZW1vdGVBdWRpb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGkK
ICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKLSAgICBtX3RyYWNrUHJpdmF0ZS0+
c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwog
ICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlQXVkaW9UcmFjayhtX2lkZW50aWZp
ZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVt
b3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9UcmFja1Byb3h5KCkKIHsKKyAgICBtX3Ry
YWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmln
dXJhdGlvbiYgUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHku
Y3BwCmluZGV4IGI0MWEwMjgxZjg1OGExMjJlMGZhYTZiYjcxOTRlZTUzMGNjOWYxZjIuLjk4ZDY2
MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1NDY0ODMzYjk3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAt
NDksMTIgKzQ5LDEzIEBAIFJlbW90ZVRleHRUcmFja1Byb3h5OjpSZW1vdGVUZXh0VHJhY2tQcm94
eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uCiAgICAgLCBtX3RyYWNrUHJp
dmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBs
YXllcklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
KyAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OkFkZFJlbW90ZVRleHRUcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24o
KSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlVGV4dFRyYWNrUHJveHk6
On5SZW1vdGVUZXh0VHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xp
ZW50KCk7CiB9CiAKIFRleHRUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVU
ZXh0VHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCmluZGV4IGIwOWFh
YzMzNjdmMDNhMmFmYTM3NDMwMzcxZmEwYzgzYTdjNzA5YzkuLjQ5YzQ3YTM1NTEzOGIyNWE1OWI4
MzEyN2I1ZTY5YzZjZWIyOTc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwCkBAIC00NSwxMiArNDUsMTMg
QEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJp
dmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmll
cikKIHsKLSAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQ
cml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRk
UmVtb3RlVmlkZW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQ
bGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlk
ZW9UcmFja1Byb3h5KCkKIHsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0K
IAogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5
Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCmluZGV4IDRkMjBjYTU2MTgwOTViOWUxOGI3YTlmN2Zj
ZjVmNWE2ZWNhNTVmY2MuLmE3OGQxZmY1YjgyNDYzYjgyN2FhNzYxZjVhZTJiOTQ3MzE4YzY5Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmNwcApAQCAtNjcsNyArNjcsNyBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpnZXRPckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZQogU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3Jh
Z2VUeXBlLCBjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCiAgICAgOiBtX3N0b3JhZ2VUeXBlKHN0b3JhZ2VUeXBlKQogICAgICwgbV9w
YXRoKHBhdGguaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX3N5bmNNYW5hZ2VyKDApCisgICAgLCBt
X3N5bmNNYW5hZ2VyKG51bGxwdHIpCiAgICAgLCBtX3F1b3RhKHF1b3RhKQogICAgICwgbV9pc1No
dXRkb3duKGZhbHNlKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9z
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KaW5kZXggNWNkZGY1ZjZkOTIwYjFhNmZmNDE0
NmEyMzU4ODQzMTgxMGI3NGIxOC4uNDRiYmViMjEzM2YwZDI0NmI0YmIzMzg2MjNjODBiMmU4YTI0
YmFmYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0z
MDIsMTIgKzMwMiwxMiBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50QXRJbmRleCh1bgogCiBSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRGV0YWlsc0VsZW1l
bnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQpAQCAtMzI4LDEyICszMjgsMTIgQEAgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFFcnJvck1l
c3NhZ2VFbGVtZW50QXQKIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVk
IGluZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439527</attachid>
            <date>2021-09-28 15:06:39 -0700</date>
            <delta_ts>2021-09-29 09:28:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230853-20210928150639.patch</filename>
            <type>text/plain</type>
            <size>85228</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFhOGEwZDkwNjBiZjg0
MTg5MDgyYzAyY2FhODZhZGE2MGEwMTcxNi4uYTA4NzI0NTFlYjQyMWJlNjg5NTQ1NDY5Y2FjYmRl
MThiOTM5YzVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMS0wOS0yNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGlt
aXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5k
IEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRm9yd2FyZC1kZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmgs
IGFuZCBicmVhayBhcGFydCAqVHJhY2tQcml2YXRlQ2xpZW50IGludG8gaXRzCisgICAgICAgIG93
biBmaWxlLCBzbyB0aGF0IGNsaWVudHMgZG9uJ3QgbmVlZCB0byBpbmNsdWRlIHRoZSBlbnRpcmUg
Y2xhc3MncyBmaWxlLiBUaGlzIHJlcXVpcmVzCisgICAgICAgIG90aGVyIGNsYXNzZXMgd2hvIGdv
dCB0aG9zZSBpbmNsdWRlcyAiZm9yIGZyZWUiIHByZXZpb3VzbHkgdG8gZXhwbGljaXRseSBpbmNs
dWRlIGhlYWRlcnMgaW4KKyAgICAgICAgdGhlaXIgc291cmNlIGZpbGVzLgorCisgICAgICAgIFRo
ZSBjaGFuZ2UgdG8gUmVmUHRyIHRvIGFsbG93IGNvbnN0ZXhwciBjb25zdHJ1Y3Rpb24gZnJvbSBu
dWxscHRyIGNhdXNlZCAiYW1iaWd1b3VzIGNhc3QiCisgICAgICAgIGVycm9ycyBldmVyeXdoZXJl
ICIwIiB3YXMgdXNlZCBpbnN0ZWFkIG9mIG51bGxwdHIgdG8gaW5pdGlhbGl6ZSBhIFJlZlB0ci4K
KworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGaWx0ZXJPcGVyYXRpb25z
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN1bWVCYXNpY1NoYXBlSW5zZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
c3VtZUJvcmRlckltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJvcmRlcklt
YWdlT3V0c2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlTlMpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKiBkb20vVGV4dEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRFdmVudDo6Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUpOgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgpOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OkF1ZGlvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6fkF1
ZGlvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6c2V0UHJpdmF0ZSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0lkQ2hhbmdlZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrS2luZENo
YW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVk
aW9UcmFja0xhYmVsQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50OjphdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OndpbGxSZW1vdmVBdWRpb1RyYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJp
dmF0ZUNsZWFyS2V5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1
ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xp
ZW50OjphdWRpb1RyYWNrSWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tD
bGllbnQ6OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9UcmFja0NsaWVudDo6d2lsbFJlbW92ZUF1ZGlvVHJhY2spOgorICAgICAgICAq
IGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6fkluYmFuZFRleHRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0
VHJhY2s6OnNldFByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpWaWRlb1RyYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6OnNldFByaXZhdGUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFjay5oOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0lkQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNr
S2luZENoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVu
dDo6dmlkZW9UcmFja0xhYmVsQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpW
aWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6d2lsbFJl
bW92ZVZpZGVvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFj
ay5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50Lmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNE
TVByaXZhdGVDbGVhcktleS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50
Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGll
bnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNr
Q2xpZW50Ojp2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFjayk6CisgICAg
ICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Q29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
QXVkaW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRl
OjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGU6OmNsZWFy
Q2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZUNs
aWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
YmFuZFRleHRUcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpjbGVhckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1l
ZGlhUGxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2FjeUNETVByaXZh
dGVDbGVhcktleS5jcHAuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1By
aXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlOjpzZXRDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6OmNsZWFyQ2xpZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdh
Y3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJl
c291cmNlTG9hZGVyLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeSBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNlYXJjaEZpZWxkOjpSZW5kZXJTZWFyY2hGaWVsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6
OnNldEZvbnRGcm9tQ29udHJvbFNpemUgY29uc3QpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTFBhcnNlckNv
bnRleHQ6OmNyZWF0ZU1lbW9yeVBhcnNlcik6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRp
b1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjY5N2E0Y2M1OTcyZDU0
ZGJkOGVjNGMxNTVlN2M0YmQ3MDdmZGU2Ni4uMWRhZmYxMzJhNzUyOTRiNDkwNzllNDFkMzRmYzYz
MzI1MmIzZDM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOS0yNyAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGltaXph
dGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5kIEhU
TUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBXZWFrUHRyIGJhc2VkIGNsaWVudCBzZXR0ZXJzIG9uIFRyYWNrUHJp
dmF0ZXMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVk
aW9UcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+
UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZVRleHRUcmFja1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJv
eHk6OlJlbW90ZVRleHRUcmFja1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRy
YWNrUHJveHk6On5SZW1vdGVUZXh0VHJhY2tQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVW
aWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVZpZGVvVHJhY2tQcm94eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisKIDIwMjEt
MDktMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
QWRkIGEgTXVsdGlwbGUgQVZBdWRpb1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9DaGFuZ2VMb2cKaW5kZXggODU2ZDc5Yzc2ODBlOWMxMGI5MTljYWYwZTcyMzg4MTliNmRmNzYy
NS4uNTcyMGQzNjMyZjFiNGQ1OThhZWEwNTJmYWQxZGI2OGY5ODkxY2E0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGltaXphdGlvbjogZm9yd2Fy
ZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5kIEhUTUxNZWRpYUVsZW1l
bnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMw
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IG51bGxwdHIgcmF0aGVyIHRoYW4gemVybyBmb3IgbnVsbCB2YWx1ZXMuCisKKyAgICAgICAgKiBT
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU5hbWVzcGFjZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKToKKwogMjAyMS0wOS0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgbWFrZVJl
ZigqdGhpcykgLyBtYWtlUmVmUHRyKHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBlYzA1MDE0
MmE1ZmM2NjEzZDc3MzVmNjVmOTQ5Zjc4MWQ4Y2UwZmM2Li43MDAzZDIzZDkxYWFiZjlhMGE0MzZh
OTg3NWE1Mjc2ZmIxZDI2MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTc2MSwxMSArNzYxLDE0
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBodG1sL3BhcnNl
ci9IVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oCiAKICAgICBodG1sL3RyYWNrL0F1ZGlv
VHJhY2suaAorICAgIGh0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oCiAgICAgaHRtbC90cmFj
ay9UZXh0VHJhY2suaAorICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrQ2xpZW50LmgKICAgICBodG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5oCiAgICAgaHRtbC90cmFjay9UcmFja0Jhc2UuaAogICAgIGh0
bWwvdHJhY2svVlRUQ3VlLmgKICAgICBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorICAgIGh0bWwv
dHJhY2svVmlkZW9UcmFja0NsaWVudC5oCiAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50
LmgKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xMjE5LDYgKzEyMjIs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FuaW1h
dGlvbkZyYW1lUmF0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUu
aAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9CaWZ1cmNhdGVkR3JhcGhpY3NDb250ZXh0LmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaApA
QCAtMTM2MSwxMSArMTM2NSwxMyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
VHJhY2tQcml2YXRlQmFzZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9WZWxvY2l0eURhdGEuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVv
TGF5ZXJNYW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3MuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKyAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvV2lkdGhDYWNoZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvV2luZFJ1bGUu
aAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xl
Z2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcAppbmRl
eCAzYThjMDBmNTIzMWY1MmE2ZTg5ZDE4M2QxNTExYzNhYzg3NzNhMWZlLi4xN2Q0ZmI3Mjc0MGQ2
ZTFjM2RmNmZlNmY3Njg3NWI0Yzk0YjIzYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2Fj
eUNETVByaXZhdGVDbGVhcktleS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJMZWdh
Y3lDRE1TZXNzaW9uQ2xlYXJLZXkuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhYmU5MjEwZmQ2NTgyMDkzYjAx
NzFhODFjNmMxM2FiMzFlNmY0YjhiLi4wZmRiZjlmODA0MTc2ZTA2NDE4YmU1ZTA1Zjg4NWJlYTk5
ZDEzOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclBy
aXZhdGUuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdl
cy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA4ZDgwN2Zj
MjQwOTBlODBmNWJjZmYzYTNhMWM4YjJiYzcxMTBhNzk0Li5mODZkNmMxZGUzN2U3NmJmZmY5YWZj
ZTk2MmYwN2IwZmI5NzdkNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0zNCw3ICszNCw5IEBACiAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgogI2luY2x1ZGUgIkF1
ZGlvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKQEAgLTQ5LDcgKzUxLDkgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgi
CiAjaW5jbHVkZSAiVGV4dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNp
bmNsdWRlICJWaWRlb1RyYWNrLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKKyNpbmNs
dWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9WTS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggYTcyMzNkMjFlMDgxYWE0YThkODQyNTRiMjkzYTcz
MmY2ODQxM2U4Yy4uMjgwOTkyNWY1ZDIxZjNlM2YzNDc3YTFlNDUyNDM4NTA3ODVkNGZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5o
CkBAIC0zNCwxNCArMzQsMTQgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiQXVkaW9UcmFjay5oIgorI2luY2x1ZGUg
IkF1ZGlvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKLSNpbmNsdWRlICJUZXh0VHJhY2suaCIK
KyNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1
ZGUgIlZpZGVvVHJhY2suaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNw
cAppbmRleCBjNGFkYTcyZWJmZmQ1ZWM2Mzk2MmIxN2MwNzAwODQxZTlhOTUwZWQ5Li4xMjQ3OGIw
NjMxNDI4ZjhlODU0OGVmYmY0OGZmNjk0ZDBkOTgyYmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTg5
LDggKzg5LDggQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjppbml0aWFsaXplKCkKICAgICAv
LyBUaGVzZSBBdWRpb0J1ZmZlcnMgd2lsbCBiZSBkaXJlY3RseSBhY2Nlc3NlZCBpbiB0aGUgbWFp
biB0aHJlYWQgYnkgSmF2YVNjcmlwdC4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVm
ZmVyQ291bnQ7ICsraSkgewogICAgICAgICAvLyBXZSBwcmV2ZW50IGRldGFjaGluZyB0aGUgQXVk
aW9CdWZmZXJzIGhlcmUgc2luY2Ugd2UgcGFzcyB0aG9zZSB0byBKUyBhbmQgcmV1c2UgdGhlbS4K
LSAgICAgICAgbV9pbnB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1
ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwg
c2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiAw
OwotICAgICAgICBtX291dHB1dEJ1ZmZlcnNbaV0gPSBtX251bWJlck9mT3V0cHV0Q2hhbm5lbHMg
PyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgYnVmZmVyU2l6
ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVz
KSA6IDA7CisgICAgICAgIG1faW5wdXRCdWZmZXJzW2ldID0gbV9udW1iZXJPZklucHV0Q2hhbm5l
bHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBidWZmZXJT
aXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZ
ZXMpIDogbnVsbHB0cjsKKyAgICAgICAgbV9vdXRwdXRCdWZmZXJzW2ldID0gbV9udW1iZXJPZk91
dHB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0ZShtX251bWJlck9mT3V0cHV0Q2hhbm5l
bHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZlbnRE
ZXRhY2hpbmc6OlllcykgOiBudWxscHRyOwogICAgIH0KIAogICAgIEF1ZGlvTm9kZTo6aW5pdGlh
bGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDI1YzExNDY2MmRiZGIzNDg4ZWZiYmQ5MzkxMTBhZDMwYWY1YmMxOGYuLjU4
NjNmODE3NTkwODM5ZmRhNmYzZGY1ZjA5OWY5OTUzZmE5MDIyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQzNzAsNiArNDM3
MCwxMiBAQAogCQlDRDE5QTI2ODFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MTlBMjY3MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMTlGRUE4MUY1
NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUE2MUY1NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURl
Y29kZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUMxRjU3NEI2
RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxNDI3MDIzNUY3MDA2MTdFQjYgLyog
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUNEMUY5QjE2MjcwMjM2MEYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlC
MTUyNzAyMzYwRTAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlCMTgyNzAyM0Ey
QTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjE3MjcwMjNBMjkwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQ0QxRjlCMUEyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjE5MjcwMjNB
NzYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxRjlCMUMyNzAyNEJDMjAwNjE3RUI2IC8qIFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQ0QxRjlCMjEyNzAyNTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxRjlCMjAyNzAyNTY1RTAw
NjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNEMjI1QzBCMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0g
Ki87IH07CiAJCUNEMjI1QzBDMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMw
QTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEMjdBRTUwMjJBOTg2ODcwMDk0
N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3QUU0RTIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNDk2Miw2ICsxNDk2OCwxMiBAQAogCQlDRDE5RkVBQzFGNTc0QjZEMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29k
ZXJBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlGRUFEMUY1NzRC
NkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0QxRTczNDYxNjdCQzc4RTAwOUE4ODVEIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRUcmFja1JlcHJlc2VudGF0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxRjlCMTIyNzAyMzVGNzAw
NjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNEMUY5QjE1MjcwMjM2MEUwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJp
dmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxNzI3MDIz
QTI5MDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb1RyYWNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEMUY5QjE5MjcwMjNBNzYwMDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEF1ZGlvVHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QxRjlCMUIyNzAyNEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHJhY2tQcml2YXRlQmFzZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIyMDI3MDI1NjVFMDA2MTdFQjYg
LyogVGV4dFRyYWNrQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja0NsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyog
V2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVOU1VSTFNlc3Npb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVOU1VSTFNlc3Npb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0FFNEUyMkE5ODY4NzAwOTQ3RkY5IC8qIElt
YWdlUm90YXRpb25TZXNzaW9uVlQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VSb3RhdGlvblNlc3Np
b25WVC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYyNjYsNiArMjYyNzgsNyBA
QAogCQkJCUJFODhFMENDMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmNwcCAqLywKIAkJ
CQlCRTg4RTBDRDE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5oICovLAogCQkJCUJFODhF
MENFMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmlkbCAqLywKKwkJCQlDRDFGOUIxOTI3
MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oICovLAogCQkJCUJFODhFMENGMTcx
NUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlzdC5jcHAgKi8sCiAJCQkJQkU4OEUwRDAxNzE1
RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmggKi8sCiAJCQkJQkU4OEUwRDExNzE1RDJB
MjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0LmlkbCAqLywKQEAgLTI2Mjg3LDYgKzI2MzAwLDcg
QEAKIAkJCQk5NzU5RTkzNTE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrLmNwcCAqLywKIAkJ
CQk5NzU5RTkzNjE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrLmggKi8sCiAJCQkJOTc1OUU5
MzcxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFjay5pZGwgKi8sCisJCQkJQ0QxRjlCMjAyNzAy
NTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oICovLAogCQkJCTk3NTlFOTM4MTRFRjFD
RjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWUuY3BwICovLAogCQkJCTk3NTlFOTM5MTRFRjFDRjgw
MDI2QTJERCAvKiBUZXh0VHJhY2tDdWUuaCAqLywKIAkJCQk5NzU5RTkzQTE0RUYxQ0Y4MDAyNkEy
REQgLyogVGV4dFRyYWNrQ3VlLmlkbCAqLywKQEAgLTI2MzA5LDYgKzI2MzIzLDcgQEAKIAkJCQlC
RTg4RTBEMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5jcHAgKi8sCiAJCQkJQkU4OEUw
RDMxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaCAqLywKIAkJCQlCRTg4RTBENDE3MTVE
MkEyMDA2NThEOTggLyogVmlkZW9UcmFjay5pZGwgKi8sCisJCQkJQ0QxRjlCMTcyNzAyM0EyOTAw
NjE3RUI2IC8qIFZpZGVvVHJhY2tDbGllbnQuaCAqLywKIAkJCQlCRTg4RTBENTE3MTVEMkEyMDA2
NThEOTggLyogVmlkZW9UcmFja0xpc3QuY3BwICovLAogCQkJCUJFODhFMEQ2MTcxNUQyQTIwMDY1
OEQ5OCAvKiBWaWRlb1RyYWNrTGlzdC5oICovLAogCQkJCUJFODhFMEQ3MTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrTGlzdC5pZGwgKi8sCkBAIC0yNjkwNyw2ICsyNjkyMiw3IEBACiAJCQkJ
MEY3RTQ3NTEyNUVFQjc5QTAwMTNGOTA5IC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5jcHAgKi8sCiAJ
CQkJNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5oICovLAog
CQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovLAor
CQkJCUNEMUY5QjE1MjcwMjM2MEUwMDYxN0VCNiAvKiBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5o
ICovLAogCQkJCTJERDg3MTQ3MjY1RjQzNjQwMDVGOTk3QyAvKiBCaWZ1cmNhdGVkR3JhcGhpY3ND
b250ZXh0LmNwcCAqLywKIAkJCQkyREQ4NzE0OTI2NUY0MzY1MDA1Rjk5N0MgLyogQmlmdXJjYXRl
ZEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCUE4OTk0MzI3MEI0MjMzODcwMEQ3QzgwMiAvKiBC
aXRtYXBJbWFnZS5jcHAgKi8sCkBAIC0yNzE1NSwxMiArMjcxNzEsMTQgQEAKIAkJCQkxQUY4OUE0
MTE1MThGREVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggKi8sCiAJCQkJMDc2RTExQkUxRjY4
M0UwRDAwMTc3Mzk1IC8qIFRyYWNrUHJpdmF0ZUJhc2UuY3BwICovLAogCQkJCUJFOTEzRDdGMTgx
RUY4RTUwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmggKi8sCisJCQkJQ0QxRjlCMUIyNzAy
NEJDMTAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCAqLywKIAkJCQlFNEFGQ0ZB
NDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAogCQkJCTBGNUE1N0NBMjI5QjE4
QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2MjI5QTQ4MTgw
MEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0
ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLywKIAkJCQkwNzUwMzNBNjI1MkJEMzY4MDBGNzBD
RTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1
REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJQ0QxRjlCMTIyNzAy
MzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJQ0Q2RkU1
QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCiAJCQkJQ0Q2RkU1QkEy
NEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5
QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggKi8sCkBAIC0zMTQ4OSwxMSArMzE1MDcsMTMgQEAK
IAkJCQlGREIwNTJFMDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTgzMDA1RjlEMjRFQjFENDAwMDQ4MEY5QiAvKiBBdWRpb1RpbWVz
dGFtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwRDkxNzE1RDJBMjAwNjU4RDk4IC8qIEF1
ZGlvVHJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5QjFBMjcwMjNBNzYwMDYxN0VCNiAv
KiBBdWRpb1RyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTg4RTBEQzE3MTVEMkEy
MDA2NThEOTggLyogQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTRD
MTgwRTE3QzAwMDhCOEU2NSAvKiBBdWRpb1RyYWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJFRjI5RUVCMTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RFM0E4NTQxN0Y1RkNFNjAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQ
cml2YXRlQVZGLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREUzQTg1ODE3RjYwMjA0MDBDNUJFMjAg
LyogQXVkaW9UcmFja1ByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIx
NjI3MDIzNjBGMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNENTRBNzYzMTgwRjlGNzAwMEIwNzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdENkE0RjgxQkYyMzA3RDAw
MTc0MTQ2IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNTUzMSw2ICszNTU1MSw3IEBACiAJCQkJQTgyNEI0NjUwRTJFRjJFQTAwODFB
N0I3IC8qIFRleHRSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OEIxQjdBMEYzQTJGOUIwMDQ3
QTlFMiAvKiBUZXh0U2l6ZUFkanVzdG1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NTlFOTQw
MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNEMUY5
QjIxMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NTlFOTQzMTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3MUE5RUMzMTY4RkJDNTUwMDI2MjlGOSAvKiBUZXh0VHJhY2tDdWVHZW5lcmlj
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0NjE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRy
YWNrQ3VlTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTU3Niw2ICszNTU5Nyw3IEBACiAJCQkJ
MDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkU4OEUwQzIxNzE1Q0UyNjAwNjU4RDk4IC8qIFRyYWNrTGlzdEJhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJFOTEzRDgwMTgxRUY5MjQwMERDQjA5RSAvKiBUcmFja1ByaXZhdGVCYXNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxQzI3MDI0QkMyMDA2MTdFQjYgLyogVHJhY2tQcml2
YXRlQmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkZBQzMwRkUxODRGQjE0NTAwOEM0
RjFFIC8qIFRyYWlsaW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MDcxMzIxQkQ4
MzA4QjAwREJDNEYyIC8qIFRyYW5zYWN0aW9uT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDNFRUY0MTI1Nzk5RkQ5MDA2NTYzQkIgLyogVHJhbnNmZXJGdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNTY2OSwxMSArMzU2OTEsMTMgQEAKIAkJCQkwNzU3QjEzRTIxNEFFNzk5MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzkzOUE4MUU5QkRG
QjEwMEJCNzY4RCAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkU4OEUwREYxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaCBpbiBIZWFkZXJzICovLAor
CQkJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRTg4RTBFMjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQ2MTgwREZGNEUwMDhCOEU2NSAvKiBWaWRlb1Ry
YWNrTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFRjI5RUVDMTcxNUREMDkwMEM0
QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjQx
N0ZBMEE0RDAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDMzNkY2ODE3RkEwQUM2MDBERERDRDAgLyogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxNDI3MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOEI1QTQzMTgwRDE0OUEw
MDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwRTgxRDExQkYyNzY1NjAwMUZEQTQ4IC8qIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRjQxOENGMTE3OTY3OEMwMDlEMTEy
QyAvKiBWaWV3cG9ydEFyZ3VtZW50cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCBjYmU1M2JiNTQz
ODk2NjZkMmZkYWQ0MjI3ZjI5NjRlNDlkNTg1ZWE3Li43MjM0ZmVkMTljZmM4YjZhOThlNzEyOGRi
MTkwZjU3NmVmN2MzNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTMxNSw5ICszMTUsOSBAQCBzdGF0aWMgaW5saW5lIEZp
bHRlck9wZXJhdGlvbnMgYmxlbmRGaWx0ZXJPcGVyYXRpb25zKGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIGZybwogICAgIHNpemVfdCB0b1NpemUgPSB0by5vcGVyYXRpb25zKCkuc2l6ZSgpOwogICAg
IHNpemVfdCBzaXplID0gc3RkOjptYXgoZnJvbVNpemUsIHRvU2l6ZSk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlv
bj4gZnJvbU9wID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9tLm9wZXJhdGlvbnMoKVtpXS5nZXQoKSA6
IDA7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IHRvT3AgPSAoaSA8IHRvU2l6ZSkg
PyB0by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwotICAgICAgICBSZWZQdHI8RmlsdGVyT3Bl
cmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxlbmRGdW5jKGZyb21PcC5nZXQoKSwgdG9PcC5n
ZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxlbmRGdW5jKDAsIGZyb21PcC5nZXQoKSwgY29u
dGV4dCwgdHJ1ZSkgOiAwKTsKKyAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZnJvbU9w
ID0gKGkgPCBmcm9tU2l6ZSkgPyBmcm9tLm9wZXJhdGlvbnMoKVtpXS5nZXQoKSA6IG51bGxwdHI7
CisgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IHRvT3AgPSAoaSA8IHRvU2l6ZSkgPyB0
by5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRyOworICAgICAgICBSZWZQdHI8RmlsdGVy
T3BlcmF0aW9uPiBibGVuZGVkT3AgPSB0b09wID8gYmxlbmRGdW5jKGZyb21PcC5nZXQoKSwgdG9P
cC5nZXQoKSwgY29udGV4dCkgOiAoZnJvbU9wID8gYmxlbmRGdW5jKDAsIGZyb21PcC5nZXQoKSwg
Y29udGV4dCwgdHJ1ZSkgOiBudWxscHRyKTsKICAgICAgICAgaWYgKGJsZW5kZWRPcCkKICAgICAg
ICAgICAgIHJlc3VsdC5vcGVyYXRpb25zKCkuYXBwZW5kKGJsZW5kZWRPcCk7CiAgICAgICAgIGVs
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNw
cAppbmRleCAzODc3N2NmMmE5NzhjN2E2ZTJkYjU5MWQ1YzVmZjUyYzI2NTdlYjk1Li5lZWY5ZThm
ZTkyNDgwYzRmZTBhN2Q5ZGQzNmU0MGFjZjg1YzZmZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcApAQCAtMjY3MSw4ICsyNjcxLDggQEAg
c3RhdGljIFJlZlB0cjxDU1NCYXNpY1NoYXBlSW5zZXQ+IGNvbnN1bWVCYXNpY1NoYXBlSW5zZXQo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgYXIKICAgICAgICAgc2hhcGUtPnVwZGF0ZVNoYXBlU2l6ZTFW
YWx1ZSh0b3AucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICBpZiAoY29uc3VtZUlkZW50PENTU1Zh
bHVlUm91bmQ+KGFyZ3MpKSB7Ci0gICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gaG9y
aXpvbnRhbFJhZGlpWzRdID0geyAwIH07Ci0gICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gdmVydGljYWxSYWRpaVs0XSA9IHsgMCB9OworICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IGhvcml6b250YWxSYWRpaVs0XSA9IHsgbnVsbHB0ciB9OworICAgICAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRpY2FsUmFkaWlbNF0gPSB7IG51bGxwdHIgfTsKICAgICAg
ICAgaWYgKCFjb25zdW1lUmFkaWkoaG9yaXpvbnRhbFJhZGlpLCB2ZXJ0aWNhbFJhZGlpLCBhcmdz
LCBjb250ZXh0Lm1vZGUsIGZhbHNlKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBzaGFwZS0+c2V0VG9wTGVmdFJhZGl1cyhjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoaG9y
aXpvbnRhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxsKCksIHZlcnRpY2FsUmFkaWlbMF0ucmVsZWFz
ZU5vbk51bGwoKSwgUGFpcjo6SWRlbnRpY2FsVmFsdWVFbmNvZGluZzo6Q29hbGVzY2UpKTsKQEAg
LTI4ODEsNyArMjg4MSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJ
bWFnZVJlcGVhdChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHN0YXRpYyBSZWZQdHI8Q1NT
VmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIGJvb2wgZmlsbCA9IGNvbnN1bWVJZGVu
dDxDU1NWYWx1ZUZpbGw+KHJhbmdlKTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNs
aWNlc1s0XSA9IHsgMCB9OworICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gc2xpY2VzWzRd
ID0geyBudWxscHRyIH07CiAKICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgNDsg
KytpbmRleCkgewogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZhbHVlID0gY29u
c3VtZVBlcmNlbnQocmFuZ2UsIFZhbHVlUmFuZ2U6Ok5vbk5lZ2F0aXZlKTsKQEAgLTI5MTgsNyAr
MjkxOCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVCb3JkZXJJbWFnZVNsaWNl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1BhcnNlCiAKIHN0YXRpYyBSZWZQdHI8Q1NTVmFs
dWU+IGNvbnN1bWVCb3JkZXJJbWFnZU91dHNldChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkK
IHsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG91dHNldHNbNF0gPSB7IDAgfTsKKyAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG91dHNldHNbNF0gPSB7IG51bGxwdHIgfTsKIAog
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWU7CiAgICAgZm9yIChzaXplX3QgaW5k
ZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBj
ZjAzYjhkNTQ3OWYwZjk4NjVjYmVkZjJlMzk5NzFjZmFmZjc3ZmEwLi44MzU0ZjMwNmE3ZGUwYjQ1
YjFjMmQ3ZWE5YjI1MmFkYWY4OTY3MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTk1
LDEyICsyOTk1LDEyIEBAIFJlZlB0cjxBdHRyPiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOb2RlKGNv
bnN0IEF0b21TdHJpbmcmIHF1YWxpZmllZE5hbWUpCiBSZWZQdHI8QXR0cj4gRWxlbWVudDo6Z2V0
QXR0cmlidXRlTm9kZU5TKGNvbnN0IEF0b21TdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRv
bVN0cmluZyYgbG9jYWxOYW1lKQogewogICAgIGlmICghZWxlbWVudERhdGEoKSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFF1YWxpZmllZE5hbWUgcU5h
bWUobnVsbEF0b20oKSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwogICAgIHN5bmNocm9uaXpl
QXR0cmlidXRlKHFOYW1lKTsKICAgICBjb25zdCBBdHRyaWJ1dGUqIGF0dHJpYnV0ZSA9IGVsZW1l
bnREYXRhKCktPmZpbmRBdHRyaWJ1dGVCeU5hbWUocU5hbWUpOwogICAgIGlmICghYXR0cmlidXRl
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJu
IGVuc3VyZUF0dHIoYXR0cmlidXRlLT5uYW1lKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggNTViNmQzOGU5NDliZDRhMTI1NDhi
ZWFjMTNjZTVhYTlmMTY1Njc5OC4uYmI0YmMxMzZmN2YxYTRiOWQ0NWU5NmU2MDJkYzdjMzAzZjJl
OWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cApAQCAtNDUwLDcgKzQ1MCw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0
VW5oYW5kbGVkUHJvbWlzZVJlamVjdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0CiAKIHZvaWQgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllcikKIHsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVS
TCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAwLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIp
OworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsIG51bGxwdHIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7
CiB9CiAKIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24sIENh
Y2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcAppbmRleCBk
Njg4OTBiODNiODMyOTA5ZWYxYWZmYmE4YTk3MDUxYzM5MGZhNTY5Li4yNTUzYTBjNzMyZGQyOTI5
NDNiYjczMWU3OTc0MWUxMGE2ZjY0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2ZW50LmNwcApAQCAt
NDgsNyArNDgsNyBAQCBSZWY8VGV4dEV2ZW50PiBUZXh0RXZlbnQ6OmNyZWF0ZShSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldywgY29uc3QgU3RyaW5nJiBkYXRhLAogCiBSZWY8VGV4dEV2ZW50PiBU
ZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2
aWV3LCBjb25zdCBTdHJpbmcmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRSZXBsYWNlKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudChXVEZNb3ZlKHZpZXcpLCBkYXRhLCAwLCBz
aG91bGRTbWFydFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0
QmxvY2txdW90ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRFdmVudChXVEZNb3Zl
KHZpZXcpLCBkYXRhLCBudWxscHRyLCBzaG91bGRTbWFydFJlcGxhY2UsIGZhbHNlLCBNYWlsQmxv
Y2txdW90ZUhhbmRsaW5nOjpSZXNwZWN0QmxvY2txdW90ZSkpOwogfQogCiBSZWY8VGV4dEV2ZW50
PiBUZXh0RXZlbnQ6OmNyZWF0ZUZvckZyYWdtZW50UGFzdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYm
IHZpZXcsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiYmIGRhdGEsIGJvb2wgc2hvdWxkU21hcnRS
ZXBsYWNlLCBib29sIHNob3VsZE1hdGNoU3R5bGUsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcgbWFp
bEJsb2NrcXVvdGVIYW5kbGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGlzdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0
Q29tbWFuZC5jcHAKaW5kZXggODgzNzNjYjRkNjMyZjNhOTYyZDc1N2VkMTdjYzRkNmE5YWM2YWY3
ZS4uM2I1MWI2YWJjNDE2MDliYTBiYzM3NTNlZjc4YjJkYzQ2ZTQwMWFhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKQEAgLTM2NCw3ICszNjQsNyBA
QCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2VydExpc3RDb21tYW5kOjpsaXN0aWZ5UGFyYWdyYXBo
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwogICAgIFZpc2libGVQb3NpdGlvbiBlbmQgPSBlbmRP
ZlBhcmFncmFwaChzdGFydCwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOwogICAgIAogICAg
IGlmIChzdGFydC5pc051bGwoKSB8fCBlbmQuaXNOdWxsKCkgfHwgIXN0YXJ0LmRlZXBFcXVpdmFs
ZW50KCkuY29udGFpbmVyTm9kZSgpLT5oYXNFZGl0YWJsZVN0eWxlKCkgfHwgIWVuZC5kZWVwRXF1
aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKS0+aGFzRWRpdGFibGVTdHlsZSgpKQotICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDaGVjayBmb3IgYWRq
b2luaW5nIGxpc3RzLgogICAgIGF1dG8gbGlzdEl0ZW1FbGVtZW50ID0gSFRNTExJRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOwpAQCAtNDA1LDcgKzQwNSw3IEBAIFJlZlB0cjxIVE1MRWxlbWVu
dD4gSW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0
aW9uJiBvCiAgICAgICAgICAgICBpbnNlcnRpb25Qb3MgPSBwb3NpdGlvbkluUGFyZW50QmVmb3Jl
Tm9kZShsaXN0Q2hpbGQuZ2V0KCkpOwogCiAgICAgICAgIGlmICghaXNFZGl0YWJsZVBvc2l0aW9u
KGluc2VydGlvblBvcykpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgIGluc2VydE5vZGVBdCgqbGlzdEVsZW1lbnQsIGluc2VydGlv
blBvcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI4
Yzk3MTJhYWY3OTRlNjNkMmE4YTA3YjBhMDhjOTAyNzdkMmZhYmQuLjI5Mzc5YjIwZjU5MWZmZWYw
YmQ1NTdjODA4ZDhiNDk0MGFhYTVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkF1ZGlvVHJhY2tM
aXN0LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJCbG9iLmgi
CiAjaW5jbHVkZSAiQmxvYlVSTC5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKQEAg
LTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1
ZGUgIkpTSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTTWVkaWFDb250cm9sc0hvc3Qu
aCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sbGVy
LmgiCkBAIC04Nyw2ICs4OSw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UGljdHVyZUluUGljdHVyZVN1cHBvcnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlBy
b2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlZ2lzdHJh
YmxlRG9tYWluLmgiCkBAIC0xMTEsNyArMTE0LDkgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudENv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUg
IlZpZGVvUGxheWJhY2tRdWFsaXR5LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1
ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRPYmplY3QuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8bGltaXRzPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBhZDA5ZTdiZTFlMjMwZGZlNmJjNzk5NWI1ZjUzZDc1
NzRjODgxYjNmLi40MmRkYWM3MTIzYjllMWNlOGU0YWI0ZGE3MDE5ZGY4OGQxNTY4ZjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjgsNyArMjgsNyBAQAogI2lm
IEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUg
IkF1ZGlvVHJhY2suaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAi
QXV0b3BsYXlFdmVudC5oIgogI2luY2x1ZGUgIkNhcHRpb25Vc2VyUHJlZmVyZW5jZXMuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgpAQCAtMzksOCArMzksOCBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhVW5p
cXVlSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlRleHRUcmFjay5oIgotI2luY2x1ZGUgIlZpZGVv
VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKKyNpbmNsdWRlICJWaWRlb1Ry
YWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDBmOWY0M2IwNDhmNGVkNDEx
MDkyMDFiZjM1M2Q1OGVhYTQ1MjMzNzEuLmMyZDAzNTNlYjg3MWM1NGRhMjk2YmUyNTljMDAzNjFm
ZWRiZTJiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTG9hZGFibGVU
ZXh0VHJhY2suaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC02MCwxNyArNjEs
MTcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1cmwpCiBp
bmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1f
dHJhY2soTG9hZGFibGVUZXh0VHJhY2s6OmNyZWF0ZSgqdGhpcywgYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihraW5kQXR0cikuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbGFiZWwo
KSwgc3JjbGFuZygpKSkKIHsKKyAgICBtX3RyYWNrLT5hZGRDbGllbnQoKnRoaXMpOwogICAgIExP
RyhNZWRpYSwgIkhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQgLSAlcCIsIHRoaXMp
OwogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFnKSk7CiB9CiAKIEhUTUxUcmFja0VsZW1l
bnQ6On5IVE1MVHJhY2tFbGVtZW50KCkKIHsKLSAgICBpZiAobV90cmFjaykgewotICAgICAgICBt
X3RyYWNrLT5jbGVhckVsZW1lbnQoKTsKLSAgICAgICAgbV90cmFjay0+Y2xlYXJDbGllbnQoKnRo
aXMpOwotICAgIH0KKyAgICBtX3RyYWNrLT5jbGVhckVsZW1lbnQoKTsKKyAgICBtX3RyYWNrLT5j
bGVhckNsaWVudCgqdGhpcyk7CiB9CiAKIFJlZjxIVE1MVHJhY2tFbGVtZW50PiBIVE1MVHJhY2tF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQpAQCAtMTQyLDIxICsxNDMsOSBAQCBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzRGVm
YXVsdCgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oZGVmYXVsdEF0dHIpOwogfQogCi1Mb2FkYWJsZVRleHRUcmFjayYgSFRNTFRyYWNrRWxlbWVu
dDo6dHJhY2soKQorVGV4dFRyYWNrJiBIVE1MVHJhY2tFbGVtZW50Ojp0cmFjaygpCiB7Ci0gICAg
Ly8gRklYTUU6IFRoZXJlIGlzIG5vIHByYWN0aWNhbCB2YWx1ZSBpbiBsYXppbHkgaW5pdGlhbGl6
aW5nIHRoaXMuCi0gICAgLy8gSW5zdGVhZCB0aGlzIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBj
b25zdHJ1Y3Rvci4KLSAgICBpZiAoIW1fdHJhY2spIHsKLSAgICAgICAgLy8gVGhlIGtpbmQgYXR0
cmlidXRlIGlzIGFuIGVudW1lcmF0ZWQgYXR0cmlidXRlLCBsaW1pdGVkIG9ubHkgdG8ga25vd24g
dmFsdWVzLiBJdCBkZWZhdWx0cyB0byAnc3VidGl0bGVzJyBpZiBtaXNzaW5nIG9yIGludmFsaWQu
Ci0gICAgICAgIFN0cmluZyBraW5kID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihr
aW5kQXR0cikuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgaWYgKCFUZXh0VHJh
Y2s6OmlzVmFsaWRLaW5kS2V5d29yZChraW5kKSkKLSAgICAgICAgICAgIGtpbmQgPSBUZXh0VHJh
Y2s6OnN1YnRpdGxlc0tleXdvcmQoKTsKLSAgICAgICAgbV90cmFjayA9IExvYWRhYmxlVGV4dFRy
YWNrOjpjcmVhdGUoKnRoaXMsIGtpbmQsIGxhYmVsKCksIHNyY2xhbmcoKSk7Ci0gICAgICAgIG1f
dHJhY2stPmFkZENsaWVudCgqdGhpcyk7Ci0gICAgfQotICAgIEFTU0VSVChtX3RyYWNrLT50cmFj
a0VsZW1lbnQoKSA9PSB0aGlzKTsKLQotICAgIHJldHVybiAqbV90cmFjazsKKyAgICByZXR1cm4g
bV90cmFjazsKIH0KIAogYm9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKQEAgLTIwNiw3ICsxOTUsNyBAQCB2b2lkIEhU
TUxUcmFja0VsZW1lbnQ6OnNjaGVkdWxlTG9hZCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICB0cmFjaygpLnNjaGVkdWxlTG9hZCh0cmFja1VSTCk7CisgICAgICAg
IG1fdHJhY2stPnNjaGVkdWxlTG9hZCh0cmFja1VSTCk7CiAgICAgfSk7CiB9CiAKQEAgLTI4Mywx
MyArMjcyLDExIEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShSZWFkeVN0
YXRlIHN0YXRlKQogewogICAgIHRyYWNrKCkuc2V0UmVhZGluZXNzU3RhdGUoc3RhdGljX2Nhc3Q8
VGV4dFRyYWNrOjpSZWFkaW5lc3NTdGF0ZT4oc3RhdGUpKTsKICAgICBpZiAoYXV0byBwYXJlbnQg
PSBtZWRpYUVsZW1lbnQoKSkKLSAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRlQ2hh
bmdlZChtX3RyYWNrLmdldCgpKTsKKyAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZWFkeVN0YXRl
Q2hhbmdlZChtX3RyYWNrLnB0cigpKTsKIH0KIAogSFRNTFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0
ZSBIVE1MVHJhY2tFbGVtZW50OjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fdHJh
Y2spCi0gICAgICAgIHJldHVybiBIVE1MVHJhY2tFbGVtZW50OjpOT05FOwogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZWFkeVN0YXRlPihtX3RyYWNrLT5yZWFkaW5lc3NTdGF0ZSgpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCBiODYyZDQ5YTRhOTJjMzM2
NzM1NTg5MWNiNjQ2ODVlNjgwMTVlNjAyLi4zZjQ0ZTBhOGUxNGExYzdlNWRkZmMwYWY4OTVmYTBi
NDE0N2Y1NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtMzAs
MTEgKzMwLDEyIEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCisjaW5jbHVkZSAi
VGV4dFRyYWNrQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE1l
ZGlhRWxlbWVudDsKK2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBIVE1MVHJhY2tF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgVGV4dFRyYWNrQ2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEhU
TUxUcmFja0VsZW1lbnQpOwpAQCAtNTIsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgUmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKFJlYWR5U3RhdGUp
OwogCi0gICAgTG9hZGFibGVUZXh0VHJhY2smIHRyYWNrKCk7CisgICAgVGV4dFRyYWNrJiB0cmFj
aygpOwogCiAgICAgdm9pZCBzY2hlZHVsZUxvYWQoKTsKIApAQCAtODcsNyArODgsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYpOwogCi0gICAgUmVmUHRyPExv
YWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOworICAgIFJlZjxMb2FkYWJsZVRleHRUcmFjaz4gbV90
cmFjazsKICAgICBib29sIG1fbG9hZFBlbmRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNS
ZWxldmFudExvYWRFdmVudHNMaXN0ZW5lciB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKaW5kZXggM2NiNzE4ZDNkYzI3ZTU4M2I1YTVkZjEwOTNh
MDM2NTI3YzAyZWNiNS4uMTJiMWZjYzU3NzZlMDZjZmU4ZGRmYTkyYzczYzc3MjBmYjkzZGYyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0zMSwxMCArMzEs
MTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKLSNp
bmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVk
ZSAiQXVkaW9UcmFja0NsaWVudC5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCisjaW5j
bHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODAsMTMgKzgyLDEzIEBAIEF1ZGlvVHJhY2s6
OkF1ZGlvVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXVkaW9UcmFja1By
aXZhdGUmIHRyYWNrCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9lbmFi
bGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
dGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVwZGF0ZUtpbmRG
cm9tUHJpdmF0ZSgpOwogfQogCiBBdWRpb1RyYWNrOjp+QXVkaW9UcmFjaygpCiB7Ci0gICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgp
OwogfQogCiB2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKQEAgLTk0LDEwICs5NiwxMCBAQCB2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAobV9wcml2YXRlLnB0
cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKICAgICBt
X3ByaXZhdGUgPSB0cmFja1ByaXZhdGU7CiAgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5h
YmxlZCk7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQoKnRoaXMpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIG1fcHJpdmF0
ZS0+c2V0TG9nZ2VyKGxvZ2dlcigpLCBsb2dJZGVudGlmaWVyKCkpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCmluZGV4IDM3NTEwYThjZDJmOGY0MDE1MzU4OTI1
ZGY5OWRhZWM5OGYxOTYwNWMuLmEzMzc3MDUzODllOTg2MmJiZjhjZmYxNGNjZWNjOGY5NDZiMWYy
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCkBAIC0yOCwyNiArMjgs
MTUgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
LmgiCisjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJUcmFj
a0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBdWRpb1RyYWNrOworY2xhc3MgQXVkaW9UcmFja0NsaWVudDsKIGNsYXNz
IEF1ZGlvVHJhY2tMaXN0OwogCi1jbGFzcyBBdWRpb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1h
a2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5BdWRp
b1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5h
YmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
SWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0tp
bmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0xh
YmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tM
YW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVt
b3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9Ci19OwotCiBjbGFzcyBBdWRpb1RyYWNrIGZp
bmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tDbGllbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MmM3ZGI0NDI3MDQxZmM0YzIwYzI4NjYxZmIzZjMwMTFlNGNjZjhiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrQ2xpZW50LmgKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBdWRpb1RyYWNrOworCitjbGFzcyBBdWRpb1RyYWNrQ2xpZW50IDogcHVibGljIENh
bk1ha2VXZWFrUHRyPEF1ZGlvVHJhY2tDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5B
dWRpb1RyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1Ry
YWNrSWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFj
a0tpbmRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFj
a0xhYmVsQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJh
Y2tMYW5ndWFnZUNoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
UmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJikgeyB9Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCmluZGV4IGM2ZmVh
MzVlZDM4YjA0ODYwM2QyY2U4MWRmYWJiMDI2MTg4NDIwZWQuLmQ0NTk2OWZiZmM3N2RlOTdlMDdm
N2JhOGQ5OTc2YTgyNGU4ZTc0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFRleHRUcmFjay5jcHAKQEAgLTU4LDEzICs1OCwxMyBAQCBJbmJhbmRUZXh0VHJhY2s6Oklu
YmFuZFRleHRUcmFjayhEb2N1bWVudCYgZG9jdW1lbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUm
IHRyYQogICAgIDogVGV4dFRyYWNrKCZkb2N1bWVudCwgZW1wdHlBdG9tKCksIHRyYWNrUHJpdmF0
ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdlKCksIElu
QmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7Ci0gICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVw
ZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogfQogCiBJbmJhbmRUZXh0VHJhY2s6On5JbmJhbmRUZXh0
VHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOworICAgIG1fcHJp
dmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZh
dGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtNzIsOSArNzIsOSBA
QCB2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
JiB0cmFja1ByaXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsK
KyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2
YXRlOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0
Q2xpZW50KCp0aGlzKTsKIAogICAgIHNldE1vZGVJbnRlcm5hbChtb2RlKCkpOwogICAgIHVwZGF0
ZUtpbmRGcm9tUHJpdmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3Bw
CmluZGV4IDBhNjQ3YzJjNDU2NjU0N2VmYWVmYjQ2NjI0NTEyZjA2ZmMxOGE2ZjIuLjg0OWNkNTk0
YTdiOWEzOThiMGMzMWZhOTBmYzY3ZDdmNmQ2NzZhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyLmgiCisjaW5jbHVk
ZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogI2lu
Y2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb24uaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDhiMzE2ZTdhZGE0OWMzMDI4OTUyNDViMGE3
MThlY2Q0ZDg5MjllMmQuLjk0MGMwMjQ2MmU4NjkzY2I4ODg5ZDAyN2I2YzlhODZlZjJlOTBjZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMzksMjUgKzM5LDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OworY2xhc3MgVGV4dFRyYWNrQ2xpZW50
OwogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKIGNsYXNzIFZUVFJlZ2lvbjsKIGNsYXNzIFZUVFJl
Z2lvbkxpc3Q7CiAKLWNsYXNzIFRleHRUcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxUZXh0VHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGll
bnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0lkQ2hhbmdlZChUZXh0
VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tMYWJlbENoYW5nZWQoVGV4dFRyYWNr
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0xhbmd1YWdlQ2hhbmdlZChUZXh0VHJh
Y2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJh
Y2tDdWUmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFjayhUZXh0VHJh
Y2smKSB7IH0KLX07Ci0KIGNsYXNzIFRleHRUcmFjayA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFRleHRUcmFjayk7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0NsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMThkMDM3ZGVm
NzU5NGZkMDBhNTJjODFjOTAxNDkwY2Q3MGVhNDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDbGllbnQuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHRUcmFj
azsKK2NsYXNzIFRleHRUcmFja0N1ZTsKK2NsYXNzIFRleHRUcmFja0N1ZUxpc3Q7CisKK2NsYXNz
IFRleHRUcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxUZXh0VHJhY2tDbGllbnQ+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGllbnQoKSA9IGRlZmF1bHQ7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0lkQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tMYWJlbENoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja0xhbmd1YWdlQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNr
JiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVRleHRUcmFjayhUZXh0VHJhY2smKSB7IH0KK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAppbmRleCA5
N2YwMWFjYzY1OWEwZGMwZTUxZDBlZTE4ZDAzNjQwMzYxOWFjZjQwLi4yMzAxOTdkZDUxMjEyYWFj
ODBhYWE1OWRiMjY4ZmVhM2VmMDJjYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAKQEAgLTM0LDcgKzM0LDkgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2lu
Y2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgor
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAtODQsMTMgKzg2LDEzIEBAIFZp
ZGVvVHJhY2s6OlZpZGVvVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVmlk
ZW9UcmFja1ByaXZhdGUmIHRyYWNrCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogICAg
ICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQoKSkKIHsKLSAgICBtX3ByaXZhdGUt
PnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAg
dXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkK
IHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNs
ZWFyQ2xpZW50KCk7CiB9CiAKIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQpAQCAtOTgsOSArMTAwLDkgQEAgdm9pZCBWaWRlb1RyYWNr
OjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgaWYgKG1f
cHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50
KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBtX3ByaXZhdGUtPnNldExvZ2dlcihsb2dnZXIoKSwgbG9nSWRl
bnRpZmllcigpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApp
bmRleCBlZjg0ODhlN2I1OTgxZjEzMTcyMmJmYmQ2NzZkNmY0YjE2ZGY1MWE2Li44ZDZmODhjZmJm
ZTkyMjEwNWYyMDcxMWQ1YjdlZWIzNjVlZjllNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suaApAQCAtMjksMjUgKzI5LDE2IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAj
aW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKKyNp
bmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFz
aFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247
CiBjbGFzcyBWaWRlb1RyYWNrOworY2xhc3MgVmlkZW9UcmFja0NsaWVudDsKIGNsYXNzIFZpZGVv
VHJhY2tMaXN0OwotCi1jbGFzcyBWaWRlb1RyYWNrQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFZpZGVvVHJhY2tDbGllbnQ+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5WaWRlb1RyYWNr
Q2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrSWRDaGFuZ2Vk
KFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0tpbmRDaGFuZ2Vk
KFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhYmVsQ2hhbmdl
ZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYW5ndWFnZUNo
YW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZp
ZGVvVHJhY2soVmlkZW9UcmFjayYpIHsgfQotfTsKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwog
CiBjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRl
IFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suaWRsCmluZGV4IDJjNjBiMmIyZTcwNjUzMzg4ZDlhNGVjYzAwMzlhMzJm
MzY2MGIyYzguLjk5MTM2NzM2MWVhZWIyZmNmNDk0YWQxOWZmZDdhNTAwNTQ1ZDBmMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbApAQCAtMzQsNCArMzQsNSBAQAog
ICAgIFtTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGU9TWVkaWFTb3VyY2VdIGF0dHJpYnV0
ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBzZWxlY3RlZDsK
KwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0Ns
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrQ2xpZW50LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzQ1Yzg3NmQ3ZDdiOTY0NzYzZTc3NjQ4ZTlmMzlkYTVmYTE5YzhmZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0NsaWVudC5o
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgVmlkZW9UcmFjazsKKworY2xhc3MgVmlkZW9UcmFja0NsaWVudCA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxWaWRlb1RyYWNrQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+VmlkZW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9U
cmFja0lkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJh
Y2tLaW5kQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJh
Y2tMYWJlbENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1Ry
YWNrTGFuZ3VhZ2VDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlk
ZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2smKSB7IH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKaW5kZXggNTUzYTFjZmQ3OWUyMDE5MzY2ZjNlYzM3MGM4M2M5ODM4ZDMxMTk3My4u
YmU1YTcwZGVlZjQ3MzEzZmVhYjhhOGY3ZTQwMzRhMDE4NDExNzcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBh
Z2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbgogICAgIGlmIChkb2N1bWVudCkKICAgICAgICAgZG9jdW1lbnQtPmdl
dFBhcnNlckxvY2F0aW9uKHVybCwgbGluZSwgY29sdW1uKTsKIAotICAgIGFkZE1lc3NhZ2Uoc291
cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBjb2x1bW4sIDAsIEpTRXhlY1N0YXRlOjpj
dXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIpOworICAgIGFkZE1lc3NhZ2Uoc291cmNl
LCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCBjb2x1bW4sIG51bGxwdHIsIEpTRXhlY1N0YXRl
OjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiB2b2lkIFBhZ2VDb25z
b2xlQ2xpZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmPFNjcmlwdENhbGxTdGFjaz4mJiBjYWxs
U3RhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RN
UHJveHkuaAppbmRleCA5MDc4NGJlNDAwNmRkMDEwZTgxMDdhM2I0MDM3YzBkZWM0NjRlZDhmLi41
NjgxNTI4MTcyYTJiMTRjNzA1OTZmZDAwYWFiYzI3MDc5NWE1Y2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKQEAgLTMyLDcgKzMy
LDYgQEAKIAogI2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2VT
ZXNzaW9uLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0JveFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KQEAgLTQ0LDYgKzQzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBNZWRpYVBsYXllcjsKKwogdXNpbmcgS2V5SURUeXBlID0gVmVjdG9yPHVpbnQ4X3Q+OwogdXNp
bmcgS2V5SGFuZGxlVmFsdWVWYXJpYW50ID0gVmFyaWFudDwKICAgICBWZWN0b3I8dWludDhfdD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJp
dmF0ZS5oCmluZGV4IGE5ZjgzNmJkMTE3M2UyMmUwYWU4MTRhMTc1NDJhYTIzYTQ2MTVhNGUuLmM1
MjI3ZTVjNzA0NDE5Nzc4ZDViMjhhNjkxMWEwNDljZTc5NGI0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAtMjUs
NiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogCkBAIC0zMiwxMyArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwotCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwotfTsKLQogY2xhc3MgQXVkaW9UcmFja1By
aXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKCkKQEAgLTQ2LDggKzQwLDkgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZSk7CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRDbGllbnQoQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBt
X2NsaWVudCA9IGNsaWVudDsgfQotICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZvaWQgc2V0Q2xpZW50
KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0
cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRy
OyB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgewpAQCAtNzgsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
QXVkaW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8QXVkaW9U
cmFja1ByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2Ug
fTsKICAgICBFbmFibGVkQ2hhbmdlZENhbGxiYWNrIG1fZW5hYmxlZENoYW5nZWRDYWxsYmFjazsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWUyMDQ1MTc5ZTE3OWM5MzdkYmY2
NjNlMDc1YTk0NGU4MzZkY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaApAQCAtMCwwICsxLDQzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CisKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50
IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
dm9pZCBlbmFibGVkQ2hhbmdlZChib29sKSA9IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oCmluZGV4IDBiNGQ5Y2ZlNjdjZTk1N2E3Yjk3MzI3OTY2MDZiMGFkMjZmZTE3OGQu
LmRjYzMyNmE1M2MwMzFlZDRmZjM0YzE1YjM2MzcwNDZhOGQyYjljMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgKQEAgLTQxLDggKzQxLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4gY3JlYXRlKEN1ZUZvcm1hdCBmb3JtYXQpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShmb3JtYXQpKTsgfQogICAgIHZpcnR1YWwgfklu
YmFuZFRleHRUcmFja1ByaXZhdGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudDsg
fQotICAgIHZvaWQgc2V0Q2xpZW50KEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVu
dCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Cisg
ICAgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCYgY2xpZW50KSB7
IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQo
KSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogCiAgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhf
dCB7CiAgICAgICAgIERpc2FibGVkLApAQCAtODgsNyArODksNyBAQCBwcm90ZWN0ZWQ6CiAKIHBy
aXZhdGU6CiAgICAgQ3VlRm9ybWF0IG1fZm9ybWF0OwotICAgIEluYmFuZFRleHRUcmFja1ByaXZh
dGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQgeyBudWxscHRyIH07CiAgICAgTW9kZSBtX21vZGUg
eyBNb2RlOjpEaXNhYmxlZCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDdhMzI2NTAzM2I5NDdiNWJlNjhjMDYyMzAy
NmZmMzAxMjhjNDI4MTguLjM3Yjc2ZmQ0NGRjYzU0MTVlOGViOTM0ZTEwNDFkY2ZhZWQ3OTZjYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTMzLDkgKzMzLDEzIEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTGVnYWN5
Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJh
bmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CkBAIC0xODUsOCArMTg5LDEzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbENvbnRlbnRUeXBlVmVj
dG9yKCk7IH0KLX07CiAKKyAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBt
ZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsg
fQorCisjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCisgICAgUmVmUHRyPEFycmF5
QnVmZmVyPiBtZWRpYVBsYXllckNhY2hlZEtleUZvcktleUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRpZgorfTsKIAogY29uc3QgVmVjdG9yPENv
bnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKIHsKQEAgLTQxMiw2ICs0MjEsNyBAQCBNZWRpYVBsYXll
cjo6TWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50
KCZjbGllbnQpCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6OnJlbG9h
ZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQbGF5ZXJQ
cml2YXRlPih0aGlzKSkKKyAgICAsIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWlj
UmFuZ2VNb2RlOjpTdGFuZGFyZCkKIHsKIH0KIApAQCAtNDIwLDYgKzQzMCw3IEBAIE1lZGlhUGxh
eWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50LCBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luCiAgICAgLCBtX3JlbG9hZFRpbWVyKCp0aGlzLCAmTWVkaWFQbGF5ZXI6
OnJlbG9hZFRpbWVyRmlyZWQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxOdWxsTWVkaWFQ
bGF5ZXJQcml2YXRlPih0aGlzKSkKICAgICAsIG1fYWN0aXZlRW5naW5lSWRlbnRpZmllcihtZWRp
YUVuZ2luZUlkZW50aWZpZXIpCisgICAgLCBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHlu
YW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGUwYjg2ZDhlNmU2YTk5ZjViMDZiNmI2
ZmNhOWEyODZkM2M0NDc4OTAuLmU3ZmRiYWNhMGI2ZDM2YjMwMzRiOGMyMWUzZjUzZjExZmRlYzgy
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMjcsMjQgKzI3LDE3IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAi
Q29va2llLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgotI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRlICJNZWRpYVBs
YXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVk
ZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNl
c3Npb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgotI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luSGFzaC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5j
bHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgpAQCAtNTYsMTAgKzQ5LDYgQEAK
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KIAotI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0jaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJh
Y2suaCIKLSNlbmRpZgotCiBPQkpDX0NMQVNTIEFWUGxheWVyOwogT0JKQ19DTEFTUyBOU0FycmF5
OwogCkBAIC02OSwxMyArNTgsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhl
bEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIGNsYXNzIEF1ZGlvU2Vz
c2lvbkNhdGVnb3J5IDogdWludDhfdDsKK2VudW0gY2xhc3MgRHluYW1pY1JhbmdlTW9kZSA6IHVp
bnQ4X3Q7CisKIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXI7CitjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZTsKIGNsYXNzIENETUluc3RhbmNlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBj
bGFzcyBHcmFwaGljc0NvbnRleHRHTDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBMZWdhY3lDRE07CitjbGFzcyBMZWdhY3lDRE1T
ZXNzaW9uOwogY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudDsKIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXQ7CiBjbGFzcyBNZWRpYVBsYXllcjsKQEAgLTg0LDggKzc4LDEyIEBAIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3Rh
bGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
OwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI7CitjbGFzcyBQbGF0Zm9ybVRleHRUcmFjazsKIGNs
YXNzIFBsYXRmb3JtVGltZVJhbmdlczsKIGNsYXNzIFRleHRUcmFja1JlcHJlc2VudGF0aW9uOwor
Y2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7
CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtMjAzLDcgKzIwMSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCi0gICAgdmlydHVh
bCBSZWZQdHI8QXJyYXlCdWZmZXI+IG1lZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQoY29uc3Qg
U3RyaW5nJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPEFy
cmF5QnVmZmVyPiBtZWRpYVBsYXllckNhY2hlZEtleUZvcktleUlkKGNvbnN0IFN0cmluZyYpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlOZWVkZWQoVWludDhBcnJh
eSopIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyTWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KICNlbmRpZgpAQCAtMjMw
LDcgKzIyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9y
bVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVySXNMb29waW5nKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hl
ZFJlc291cmNlTG9hZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgUmVmUHRy
PFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxv
YWRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBB
dG9tU3RyaW5nKiA9IG51bGxwdHIpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2Fj
aGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CkBAIC03MTMsNyAr
NzExLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUHJlcGFyZVRvUmVuZGVyIHsgZmFs
c2UgfTsKICAgICBib29sIG1fY29udGVudE1JTUVUeXBlV2FzSW5mZXJyZWRGcm9tRXh0ZW5zaW9u
IHsgZmFsc2UgfTsKICAgICBib29sIG1faW5pdGlhbGl6aW5nTWVkaWFFbmdpbmUgeyBmYWxzZSB9
OwotICAgIER5bmFtaWNSYW5nZU1vZGUgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlIHsgRHlu
YW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQgfTsKKyAgICBEeW5hbWljUmFuZ2VNb2RlIG1fcHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZTsKICAgICBQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0gbV9waXRj
aENvcnJlY3Rpb25BbGdvcml0aG0geyBQaXRjaENvcnJlY3Rpb25BbGdvcml0aG06OkJlc3RBbGxB
cm91bmQgfTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDg3MTY3
NTdhMGQyZTU2MWVmZmVhMDg5OTJlZTdhODcwMmM3Y2MzOTIuLjc3OTEwOTgxNWRhOGY4MGJjOTli
YWZjZjY3YjcwMjQ4M2VjZTYzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMCw5ICszMCwxNCBAQAogI2lu
Y2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KIAorI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQorI2luY2x1ZGUg
IkxlZ2FjeUNETVNlc3Npb24uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDRl
YjRlNzA2MjExMGVmZGEzMTRjMDgzMTBhYzQ0NDM5NDE2Y2EyNzYuLmE5NGIxYzE5Mzg4NDkxYzBj
OTA5NDk3M2FjM2FkYmQ5YTRiOTg0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCisjaW5jbHVkZSAiQXVkaW9UcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXNjcmlwdGlv
bi5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCkBAIC0zNiw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5o
IgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5o
IgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAppbmRleCAy
NzhmMGM2YjcyYzI4NTA5ZDMwMmY3N2I0N2Q2MTkyYTcxOWQwMjgzLi42ZGJlNDk1ZWZiYmFlYjEy
YTM0NDZjMjFmZjlhOTRlMWRlOTY4MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
ZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTM2LDE1ICszNyw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZUNsaWVudCgpID0gZGVmYXVs
dDsKLSAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKLX07Ci0KIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIFRyYWNrUHJpdmF0ZUJhc2UKICAgICA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxU
cmFja1ByaXZhdGVCYXNlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPgogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNmY0ZWU5ZDBj
YzM1ZDc3NTc2MDljYjkzY2JmYjEwOTQxNmEwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
KQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8VHJhY2tQcml2YXRlQmFzZUNsaWVudD4geworcHVibGljOgor
ICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2VDbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmly
dHVhbCB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxSZW1vdmUoKSA9IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggZWE1
YTI5Y2ViNWNmZTlmMDI0MjdjNWVhZGRjMTY0Mjc0Y2I2ZDYwOS4uMDlmY2U4Yjg1ZGRkNDYwOTQx
YjQ5ZjcwYTk4NGQ2NGRlZDY4MDJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCkBAIC0yOCwxOSArMjgsMTYgQEAKICNp
ZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCisjaW5jbHVk
ZSAiVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKLX07Ci0KIGNsYXNzIFZpZGVvVHJhY2tQcml2
YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewogcHVibGljOgotICAgIHZvaWQgc2V0Q2xp
ZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAg
IHZvaWQgY2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIFZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVu
dC5nZXQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkKGJvb2wgc2VsZWN0ZWQp
CiAgICAgewpAQCAtNjgsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVmlkZW9UcmFja1ByaXZh
dGUoKSA9IGRlZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQq
IG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIFdlYWtQdHI8VmlkZW9UcmFja1ByaXZhdGVDbGll
bnQ+IG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9zZWxlY3RlZCB7IGZhbHNlIH07
CiAgICAgU2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2sgbV9zZWxlY3RlZENoYW5nZWRDYWxsYmFjazsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGVDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODY2MjlhN2MxYzNlYTY4OGVkYWIx
YTJmNDAzNDA2YmVlMmRlZTFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNs
dWRlICJUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNs
aWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29sKSA9
IDA7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDVkNTZiMWM0
ZjkzYjg3ZGE2NjE3NjYxZDY1NDYyOGQ2YTJkOTg5MGMuLmQ2MzIzNTVhMTIzZDI5ZWIzZmQxYzcx
OWEyNmQ3YmRjYTNlNWRiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTM4NSw3ICszODUs
NyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYg
UExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxBVk91dHB1dENvbnRleHQ+IG1fb3V0cHV0Q29u
dGV4dDsKLSAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1RhcmdldD4gbV9wbGF5YmFja1RhcmdldCB7
IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8TWVkaWFQbGF5YmFja1RhcmdldD4gbV9wbGF5YmFja1Rh
cmdldDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQppbmRleCAxNmRkMDE2OGU0Y2RkMDk5YjdjOGJjMzkyNmJkMWQwN2Vm
YjUyOWMzLi5kYWVhNGNmZWRhZmRhZGFjM2RlMmU3NGE1MjRiMGZjZWMwOGEyYWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KQEAgLTUyLDYgKzUyLDkgQEAKICNpbXBvcnQgIk1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5oIgogI2ltcG9ydCAiT3V0T2ZCYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5o
IgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgorI2ltcG9ydCAiUGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9y
dCAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbXBvcnQgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgog
I2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0ICJTY3JpcHREaXNh
bGxvd2VkU2NvcGUuaCIKQEAgLTEwNSw2ICsxMDgsMTAgQEAKICNpbXBvcnQgIlRleHRUcmFjay5o
IgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorI2ltcG9y
dCAiTWVkaWFQbGF5YmFja1RhcmdldC5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogI2ltcG9ydCAiQXVkaW9TZXNzaW9uSU9TLmgiCiAjaW1wb3J0ICJMb2NhbGl6ZWREZXZp
Y2VNb2RlbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyLm1tCmluZGV4IGZkMmYwZDNlZTVkMDhkZTA4MDM2ZmFiYjE1YzJhMzQ1MDQyOGJh
M2MuLmViMjQzNjVjNzFhN2IwYTJkYjljZjhlNTM0YjI2OGU3ODgyYTlmMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KQEAgLTMz
LDYgKzMzLDcgQEAKICNpbXBvcnQgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2ltcG9ydCAi
RGF0YVVSTERlY29kZXIuaCIKICNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9y
dCAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNp
bXBvcnQgIlVUSVV0aWxpdGllcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKaW5kZXggYTBiYWVkZTg4YTc1NTY4MWVhMmE0YTE3
YmEzZTZlZDNkZmRjN2Q5ZS4uOTc0OTRlZTZjNWM4YjY5OTIzNGVhN2M5NjZkZGQxYWM2YWE0MjRl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Q29jb2EuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiVlA5VXRpbGl0aWVzQ29jb2Eu
aCIKICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQuaD4KICNpbmNsdWRl
IDxwYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5oPgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0
aG1zLmg+CiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJj
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhU291cmNlUHJpdmF0ZS5oCmluZGV4IGJmOWZkZTFmMzgxOGEwMDIyMWQyNmQ5NmE5YWFl
MmE4YWVmNjZkOGQuLjk0ZmY1OGNiYjhhYzM3YzU4YWQxMTc0NTQ5OWVhNjljZmM4OTM1ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01l
ZGlhU291cmNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZS5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDk2MzE3ZGFkNjJjNDU0NDQ3NmU5ZTIwNWU2
N2JlNGNmMTMyZmQwMDguLjYwMDBlZDQ5YTQ3YTkwNjQ2MDI2ZGNmNmFlOWEyYjBmZmVkZmRkMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJl
cGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsCiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MoKS5mb250UmVuZGVyaW5nTW9k
ZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKDEyKTsKICAgICBmb250
ID0gRm9udENhc2NhZGUoV1RGTW92ZShmb250RGVzY3JpcHRpb24pLCAwLCAwKTsKLSAgICBmb250
LnVwZGF0ZSgwKTsKKyAgICBmb250LnVwZGF0ZShudWxscHRyKTsKIAogICAgIHJ1biA9IFRleHRS
dW4obV91bmF2YWlsYWJsZVBsdWdpblJlcGxhY2VtZW50VGV4dCk7CiAgICAgdGV4dFdpZHRoID0g
Zm9udC53aWR0aChydW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKaW5kZXggOGUyZGNiMDM1M2VkOTRmNjBiZDRjNGFkY2ViMzUzYzYzYzc3Nzk0
MC4uZmUxZDBiZWI2ZTkyNmMyNmIzZTFhMmI1N2UxMGE0ZDIyMDk3NTZmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSZW5kZXJTZWFyY2hGaWVsZCk7CiBSZW5k
ZXJTZWFyY2hGaWVsZDo6UmVuZGVyU2VhcmNoRmllbGQoSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZShlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKICAgICAsIG1fc2VhcmNoUG9wdXBJc1Zpc2libGUo
ZmFsc2UpCi0gICAgLCBtX3NlYXJjaFBvcHVwKDApCisgICAgLCBtX3NlYXJjaFBvcHVwKG51bGxw
dHIpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQuaXNTZWFyY2hGaWVsZCgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAxZWU3MjE0M2Y5MDQyZjBm
NzE3ZmQyNzE4NjRmYzE5NTRmNDMzMzVlLi5kMzVlZDE1MmM2ZTc0YjgxNWRlZTdhMjU1MDI0OThl
MDRjZWQ4ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
CkBAIC05NjUsNyArOTY1LDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250
cm9sU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIE5TQ29udHJvbFNpemUgY28KICAgICBzdHlsZS5z
ZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKTsKIAogICAgIGlm
IChzdHlsZS5zZXRGb250RGVzY3JpcHRpb24oV1RGTW92ZShmb250RGVzY3JpcHRpb24pKSkKLSAg
ICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRhdGUoMCk7CisgICAgICAgIHN0eWxlLmZvbnRD
YXNjYWRlKCkudXBkYXRlKG51bGxwdHIpOwogfQogCiBOU0NvbnRyb2xTaXplIFJlbmRlclRoZW1l
TWFjOjpjb250cm9sU2l6ZUZvclN5c3RlbUZvbnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCmluZGV4IDgyY2Y0ZDUzYWE3M2MwOWVhMmY2ODljYmNlOWMyMjE0ZDZk
MDZkNGMuLmFmNzY5NzYyM2NjOWNmNDQ2Y2U4ZGNlM2NkZDRjMmJhMjc0Mjc3NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCBSZWZQdHI8WE1MUGFyc2VyQ29udGV4dD4gWE1MUGFy
c2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFyc2VyKHhtbFNBWEhhbmRsZXJQdHIgaAogICAgIHht
bFBhcnNlckN0eHRQdHIgcGFyc2VyID0geG1sQ3JlYXRlTWVtb3J5UGFyc2VyQ3R4dChjaHVuay5k
YXRhKCksIGNodW5rLmxlbmd0aCgpKTsKIAogICAgIGlmICghcGFyc2VyKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBtZW1jcHkocGFyc2VyLT5zYXgs
IGhhbmRsZXJzLCBzaXplb2YoeG1sU0FYSGFuZGxlcikpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCmluZGV4
IGQ5YTZlMTRlMWMxMjJmYzI4Y2Y1ZmMxYjk3OTdkYjgxMDA4YTI4OWQuLjZkY2RkZGI2ZjIyNjZk
ZTJlMThlNDE2ZTYyOGIwYWQ3MzM5MzNjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwCkBAIC00NSwxMiAr
NDUsMTMgQEAgUmVtb3RlQXVkaW9UcmFja1Byb3h5OjpSZW1vdGVBdWRpb1RyYWNrUHJveHkoR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRy
YWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRl
bnRpZmllcikKIHsKLSAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1f
dHJhY2tQcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6QWRkUmVtb3RlQXVkaW9UcmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1f
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAogUmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVt
b3RlQXVkaW9UcmFja1Byb3h5KCkKIHsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQo
KTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYgUmVtb3RlQXVkaW9UcmFj
a1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3BwCmluZGV4IGI0MWEwMjgxZjg1OGEx
MjJlMGZhYTZiYjcxOTRlZTUzMGNjOWYxZjIuLjk4ZDY2MzVlOWE1MDcyNGRmOWU5Yzg3YThiMGI1
NDY0ODMzYjk3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcApAQCAtNDksMTIgKzQ5LDEzIEBAIFJlbW90ZVRl
eHRUcmFja1Byb3h5OjpSZW1vdGVUZXh0VHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAg
LCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCiB7Ci0gICAg
bV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0
Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZVRleHRU
cmFjayhtX2lkZW50aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlm
aWVyKTsKIH0KIAogUmVtb3RlVGV4dFRyYWNrUHJveHk6On5SZW1vdGVUZXh0VHJhY2tQcm94eSgp
CiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIFRleHRUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVUZXh0VHJhY2tQcm94eTo6Y29uZmlndXJh
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
VmlkZW9UcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb1RyYWNrUHJveHkuY3BwCmluZGV4IGIwOWFhYzMzNjdmMDNhMmFmYTM3NDMwMzcxZmEw
YzgzYTdjNzA5YzkuLjQ5YzQ3YTM1NTEzOGIyNWE1OWI4MzEyN2I1ZTY5YzZjZWIyOTc5NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRl
b1RyYWNrUHJveHkuY3BwCkBAIC00NSwxMiArNDUsMTMgQEAgUmVtb3RlVmlkZW9UcmFja1Byb3h5
OjpSZW1vdGVWaWRlb1RyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGkKICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5
ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKLSAgICBtX3RyYWNrUHJpdmF0
ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQoKnRoaXMp
OwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlVmlkZW9UcmFjayhtX2lkZW50
aWZpZXIsIGNvbmZpZ3VyYXRpb24oKSksIG1fbWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKIH0KIAog
UmVtb3RlVmlkZW9UcmFja1Byb3h5Ojp+UmVtb3RlVmlkZW9UcmFja1Byb3h5KCkKIHsKKyAgICBt
X3RyYWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogVHJhY2tQcml2YXRlUmVtb3RlQ29u
ZmlndXJhdGlvbiYgUmVtb3RlVmlkZW9UcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3Bw
CmluZGV4IDRkMjBjYTU2MTgwOTViOWUxOGI3YTlmN2ZjZjVmNWE2ZWNhNTVmY2MuLmE3OGQxZmY1
YjgyNDYzYjgyN2FhNzYxZjVhZTJiOTQ3MzE4YzY5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcApAQCAtNjcsNyArNjcs
NyBAQCBSZWY8U3RvcmFnZU5hbWVzcGFjZUltcGw+IFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpnZXRP
ckNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZQogU3RvcmFnZU5hbWVzcGFjZUltcGw6OlN0b3Jh
Z2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBjb25zdCBTdHJpbmcmIHBh
dGgsIHVuc2lnbmVkIHF1b3RhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3N0
b3JhZ2VUeXBlKHN0b3JhZ2VUeXBlKQogICAgICwgbV9wYXRoKHBhdGguaXNvbGF0ZWRDb3B5KCkp
Ci0gICAgLCBtX3N5bmNNYW5hZ2VyKDApCisgICAgLCBtX3N5bmNNYW5hZ2VyKG51bGxwdHIpCiAg
ICAgLCBtX3F1b3RhKHF1b3RhKQogICAgICwgbV9pc1NodXRkb3duKGZhbHNlKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJ
T1MubW0KaW5kZXggNWNkZGY1ZjZkOTIwYjFhNmZmNDE0NmEyMzU4ODQzMTgxMGI3NGIxOC4uNDRi
YmViMjEzM2YwZDI0NmI0YmIzMzg2MjNjODBiMmU4YTI0YmFmYiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0zMDIsMTIgKzMwMiwxMiBAQCBSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNF
bGVtZW50QXRJbmRleCh1bgogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4
KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUNvbnRyb2xz
RWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphcmlhRGV0YWlsc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4
KQpAQCAtMzI4LDEyICszMjgsMTIgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFFcnJvck1lc3NhZ2VFbGVtZW50QXQKIAogUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3Nl
ZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewotICAgIHJldHVybiAw
OworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQg
aW5kZXgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439613</attachid>
            <date>2021-09-29 09:28:24 -0700</date>
            <delta_ts>2021-09-29 10:34:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230853-20210929092823.patch</filename>
            <type>text/plain</type>
            <size>84692</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFhOGEwZDkwNjBiZjg0
MTg5MDgyYzAyY2FhODZhZGE2MGEwMTcxNi4uOTk5ZTM5YTQ5NGQyNDFkODIxMjlkNmQ5ZDQyMDgx
YThhZjY1YWRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wOS0yNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGlt
aXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5k
IEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oLCBh
bmQgYnJlYWsgYXBhcnQgKlRyYWNrUHJpdmF0ZUNsaWVudCBpbnRvIGl0cworICAgICAgICBvd24g
ZmlsZSwgc28gdGhhdCBjbGllbnRzIGRvbid0IG5lZWQgdG8gaW5jbHVkZSB0aGUgZW50aXJlIGNs
YXNzJ3MgZmlsZS4gVGhpcyByZXF1aXJlcworICAgICAgICBvdGhlciBjbGFzc2VzIHdobyBnb3Qg
dGhvc2UgaW5jbHVkZXMgImZvciBmcmVlIiBwcmV2aW91c2x5IHRvIGV4cGxpY2l0bHkgaW5jbHVk
ZSBoZWFkZXJzIGluCisgICAgICAgIHRoZWlyIHNvdXJjZSBmaWxlcy4KKworICAgICAgICBEcml2
ZS1ieSBmaXhlczogRml4ZWQgYSBudW1iZXIgb2YgcGxhY2VzIHdoZXJlICcwJyB3YXMgYmVpbmcg
dXNlZCBmb3IgJ251bGwnLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdh
Y3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVu
ZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2ljU2hhcGVJbnNldCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGVOUyk6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9U
ZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFp
blRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
OjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNr
SWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6
OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6d2lsbFJlbW92ZUF1
ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJs
ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tJZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0tpbmRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1
ZGlvVHJhY2tMYWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVu
dDo6YXVkaW9UcmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9J
bmJhbmRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJ
bmJhbmRUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5i
YW5kVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJp
dmF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFjazo6flZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJp
dmF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNr
TGFiZWxDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGll
bnQ6OnZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFj
ayk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJlbENoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OndpbGxSZW1vdmVWaWRl
b1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZh
dGU6OmNsZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJD
bGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6Omdl
dFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6
OlJlbmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9s
U2l6ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5
UGFyc2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50
YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNjk3YTRjYzU5NzJkNTRkYmQ4ZWM0YzE1NWU3YzRiZDcw
N2ZkZTY2Li5mODBiYTNlMGVmMGFkNGI0NzkwYjE4YTdiOTBjOGViODM0ZTU4MjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVXNlIG5ldyBXZWFr
UHRyIGJhc2VkIGNsaWVudCBzZXR0ZXJzIG9uIFRyYWNrUHJpdmF0ZXMuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9UcmFja1Byb3h5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1By
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6On5SZW1vdGVUZXh0
VHJhY2tQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90
ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94
eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRp
b1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggODU2
ZDc5Yzc2ODBlOWMxMGI5MTljYWYwZTcyMzg4MTliNmRmNzYyNS4uZDJmNGZkZjNhYTgxNjBiODdj
MTVlM2E0M2E5NjRjODFhZDA0YTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBCdWlsZC10aW1lIG9wdGltaXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdz
IGluIE1lZGlhUGxheWVyLmggYW5kIEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVzZSBudWxscHRyIHJhdGhlciB0aGFuIHpl
cm8gZm9yIG51bGwgdmFsdWVzLgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdl
TmFtZXNwYWNlSW1wbCk6CisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFrZVJlZlB0cih0
aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWMwNTAxNDJhNWZjNjYxM2Q3NzM1ZjY1Zjk0OWY3
ODFkOGNlMGZjNi4uNzAwM2QyM2Q5MWFhYmY5YTBhNDM2YTk4NzVhNTI3NmZiMWQyNjBkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC03NjEsMTEgKzc2MSwxNCBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0Zs
YWdQb2xpY3kuaAogCiAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKyAgICBodG1sL3RyYWNr
L0F1ZGlvVHJhY2tDbGllbnQuaAogICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrLmgKKyAgICBodG1s
L3RyYWNrL1RleHRUcmFja0NsaWVudC5oCiAgICAgaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAog
ICAgIGh0bWwvdHJhY2svVHJhY2tCYXNlLmgKICAgICBodG1sL3RyYWNrL1ZUVEN1ZS5oCiAgICAg
aHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKyAgICBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQu
aAogCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaApAQCAtMTIxOSw2ICsxMjIyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJp
ZGdlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9BdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJj
YXRlZEdyYXBoaWNzQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKQEAgLTEzNjEsMTEgKzEzNjUsMTMgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlE
YXRhLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlk
ZW9UcmFja1ByaXZhdGVDbGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoQ2FjaGUu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNs
ZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5
L0xlZ2FjeUNETVByaXZhdGVDbGVhcktleS5jcHAKaW5kZXggM2E4YzAwZjUyMzFmNTJhNmU4OWQx
ODNkMTUxMWMzYWM4NzczYTFmZS4uMTdkNGZiNzI3NDBkNmUxYzNkZjZmZTZmNzY4NzViNGM5NGIy
M2JiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9s
ZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5Lmgi
CiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKaW5kZXggYWJlOTIxMGZkNjU4MjA5M2IwMTcxYTgxYzZjMTNhYjMxZTZmNGI4Yi4u
MGZkYmY5ZjgwNDE3NmUwNjQxOGJlNWUwNWY4ODViZWE5OWQxMzk5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTUwLDYg
KzUwLDcgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGV4
dFRyYWNrTGlzdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb1Ry
YWNrLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggOGQ4MDdmYzI0MDkwZTgwZjViY2ZmM2EzYTFjOGIy
YmM3MTEwYTc5NC4uZjg2ZDZjMWRlMzdlNzZiZmZmOWFmY2U5NjJmMDdiMGZiOTc3ZDUzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcApAQCAtMzQsNyArMzQsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2lu
Y2x1ZGUgIkF1ZGlvVHJhY2suaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1
ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC00OSw3ICs1MSw5IEBA
CiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xp
c3QuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgog
I2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVk0uaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmlu
ZGV4IGE3MjMzZDIxZTA4MWFhNGE4ZDg0MjU0YjI5M2E3MzJmNjg0MTNlOGMuLjI4MDk5MjVmNWQy
MWYzZTNmMzQ3N2ExZTQ1MjQzODUwNzg1ZDRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMzQsMTQgKzM0LDE0IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgot
I2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LmgiCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCisjaW5j
bHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYzRhZGE3MmViZmZkNWVj
NjM5NjJiMTdjMDcwMDg0MWU5YTk1MGVkOS4uMTI0NzhiMDYzMTQyOGY4ZTg1NDhlZmJmNDhmZjY5
NGQwZDk4MmJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9T
Y3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC04OSw4ICs4OSw4IEBAIHZvaWQgU2NyaXB0
UHJvY2Vzc29yTm9kZTo6aW5pdGlhbGl6ZSgpCiAgICAgLy8gVGhlc2UgQXVkaW9CdWZmZXJzIHdp
bGwgYmUgZGlyZWN0bHkgYWNjZXNzZWQgaW4gdGhlIG1haW4gdGhyZWFkIGJ5IEphdmFTY3JpcHQu
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1ZmZlckNvdW50OyArK2kpIHsKICAgICAg
ICAgLy8gV2UgcHJldmVudCBkZXRhY2hpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNpbmNlIHdl
IHBhc3MgdGhvc2UgdG8gSlMgYW5kIHJldXNlIHRoZW0uCi0gICAgICAgIG1faW5wdXRCdWZmZXJz
W2ldID0gbV9udW1iZXJPZklucHV0Q2hhbm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVt
YmVyT2ZJbnB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVy
OjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsKLSAgICAgICAgbV9vdXRwdXRCdWZm
ZXJzW2ldID0gbV9udW1iZXJPZk91dHB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0ZSht
X251bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9C
dWZmZXI6OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiAwOworICAgICAgICBtX2lucHV0
QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0
ZShtX251bWJlck9mSW5wdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRp
b0J1ZmZlcjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IG51bGxwdHI7CisgICAgICAg
IG1fb3V0cHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVm
ZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBs
ZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogbnVsbHB0
cjsKICAgICB9CiAKICAgICBBdWRpb05vZGU6OmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNWMxMTQ2NjJk
YmRiMzQ4OGVmYmJkOTM5MTEwYWQzMGFmNWJjMThmLi41ODYzZjgxNzU5MDgzOWZkYTZmM2RmNWYw
OTlmOTk1M2ZhOTAyMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MzcwLDYgKzQzNzAsMTIgQEAKIAkJQ0QxOUEyNjgxQTEz
RTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUg
LyogRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VE
ZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5RkVBNjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQUUxRjU3NEI2RDAwMEM0
MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29k
ZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJQ0QxRjlCMTQyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIx
MjI3MDIzNUY3MDA2MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxNjI3MDIzNjBG
MDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjE1MjcwMjM2MEUwMDYxN0VCNiAvKiBB
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBWaWRlb1RyYWNr
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDFGOUIxNzI3MDIzQTI5MDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjFBMjcwMjNBNzYw
MDYxN0VCNiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxOTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFj
a0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCUNEMUY5QjFDMjcwMjRCQzIwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxQjI3
MDI0QkMxMDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjIxMjcwMjU2NUUwMDYx
N0VCNiAvKiBUZXh0VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJhY2tDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlD
RDIyNUMwQjFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzA5MUM0NkZCRjQw
MDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovOyB9OwogCQlDRDIyNUMwQzFDNDZG
QkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdl
YkNvcmVOU1VSTFNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDRDI3QUU1MDIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QyN0FFNEUyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ5NjIsNiAr
MTQ5NjgsMTIgQEAKIAkJQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQVZGT2JqQy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNv
ZGVyQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckFWRk9iakMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1
RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxNTI3
MDIzNjBFMDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJh
Y2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja0Ns
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxOTI3MDIzQTc2MDA2
MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjFCMjcwMjRCQzEwMDYx
N0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0QxRjlCMjAyNzAyNTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNz
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDIyNUMwQTFDNDZGQkY0MDAx
NDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI2MjY2LDYgKzI2Mjc4LDcgQEAKIAkJCQlCRTg4RTBDQzE3MTVEMkEy
MDA2NThEOTggLyogQXVkaW9UcmFjay5jcHAgKi8sCiAJCQkJQkU4OEUwQ0QxNzE1RDJBMjAwNjU4
RDk4IC8qIEF1ZGlvVHJhY2suaCAqLywKIAkJCQlCRTg4RTBDRTE3MTVEMkEyMDA2NThEOTggLyog
QXVkaW9UcmFjay5pZGwgKi8sCisJCQkJQ0QxRjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlv
VHJhY2tDbGllbnQuaCAqLywKIAkJCQlCRTg4RTBDRjE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9U
cmFja0xpc3QuY3BwICovLAogCQkJCUJFODhFMEQwMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1Ry
YWNrTGlzdC5oICovLAogCQkJCUJFODhFMEQxMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNr
TGlzdC5pZGwgKi8sCkBAIC0yNjI4Nyw2ICsyNjMwMCw3IEBACiAJCQkJOTc1OUU5MzUxNEVGMUNG
ODAwMjZBMkREIC8qIFRleHRUcmFjay5jcHAgKi8sCiAJCQkJOTc1OUU5MzYxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFjay5oICovLAogCQkJCTk3NTlFOTM3MTRFRjFDRjgwMDI2QTJERCAvKiBU
ZXh0VHJhY2suaWRsICovLAorCQkJCUNEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJh
Y2tDbGllbnQuaCAqLywKIAkJCQk5NzU5RTkzODE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNr
Q3VlLmNwcCAqLywKIAkJCQk5NzU5RTkzOTE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3Vl
LmggKi8sCiAJCQkJOTc1OUU5M0ExNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5pZGwg
Ki8sCkBAIC0yNjMwOSw2ICsyNjMyMyw3IEBACiAJCQkJQkU4OEUwRDIxNzE1RDJBMjAwNjU4RDk4
IC8qIFZpZGVvVHJhY2suY3BwICovLAogCQkJCUJFODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBW
aWRlb1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwRDQxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJh
Y2suaWRsICovLAorCQkJCUNEMUY5QjE3MjcwMjNBMjkwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xp
ZW50LmggKi8sCiAJCQkJQkU4OEUwRDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0
LmNwcCAqLywKIAkJCQlCRTg4RTBENjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3Qu
aCAqLywKIAkJCQlCRTg4RTBENzE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaWRs
ICovLApAQCAtMjY5MDcsNiArMjY5MjIsNyBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkw
OSAvKiBBbmltYXRpb25GcmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMw
MDU4MyAvKiBBbmltYXRpb25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBD
NEI0QzkgLyogQXVkaW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxNTI3MDIzNjBFMDA2
MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkyREQ4NzE0NzI2NUY0
MzY0MDA1Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJMkRE
ODcxNDkyNjVGNDM2NTAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywK
IAkJCQlBODk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLApAQCAt
MjcxNTUsMTIgKzI3MTcxLDE0IEBACiAJCQkJMUFGODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRp
bGVkQmFja2luZy5oICovLAogCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1By
aXZhdGVCYXNlLmNwcCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQ
cml2YXRlQmFzZS5oICovLAorCQkJCUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBUcmFja1By
aXZhdGVCYXNlQ2xpZW50LmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVu
aXRCZXppZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlE
YXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRh
LmggKi8sCiAJCQkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2Vy
LmggKi8sCiAJCQkJMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFs
aXR5TWV0cmljcy5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZS5oICovLAorCQkJCUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBW
UDlVdGlsaXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlV
dGlsaXRpZXMuaCAqLywKIAkJCQkxNDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNo
ZS5oICovLApAQCAtMzE0ODksMTEgKzMxNTA3LDEzIEBACiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAw
QjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzAw
NUY5RDI0RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJFODhFMEQ5MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDRDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwREMxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVk
aW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRUYyOUVFQjE3MTVERDA5
MDBDNEI0QzkgLyogQXVkaW9UcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNB
ODU0MTdGNUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RFM0E4NTgxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZG
T2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDU0QTc2MzE4MEY5
RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3RDZBNEY4MUJGMjMwN0QwMDE3NDE0NiAvKiBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4QjEyQjAyNkY3MDBD
MUEzNTkgLyogQXVkaW9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1MzEsNiArMzU1
NTEsNyBAQAogCQkJCUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NDhCMUI3QTBGM0EyRjlCMDA0N0E5RTIgLyogVGV4dFNpemVBZGp1c3Rt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0MDE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4
dFRyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIyMTI3MDI1NjVFMDA2MTdFQjYgLyog
VGV4dFRyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0MzE0RUYxQ0Y4MDAy
NkEyREQgLyogVGV4dFRyYWNrQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzFBOUVDMzE2OEZC
QzU1MDAyNjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTc1OUU5NDYxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzU1NzYsNiArMzU1OTcsNyBAQAogCQkJCTA3MDMzNEQ3MTQ1OUZGRDUwMDhEOEQ0
NSAvKiBUcmFja0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEMyMTcxNUNFMjYwMDY1
OEQ5OCAvKiBUcmFja0xpc3RCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTkxM0Q4MDE4MUVG
OTI0MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Qx
RjlCMUMyNzAyNEJDMjAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZGQUMzMEZFMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2Fj
dGlvbk9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2
M0JCIC8qIFRyYW5zZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzU2NjksMTEgKzM1
NjkxLDEzIEBACiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREM5MzlBODFFOUJERkIxMDBCQjc2OEQgLyogVmlkZW9Ub29s
Ym94U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERGMTcxNUQyQTIwMDY1OEQ5
OCAvKiBWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxODI3MDIzQTJBMDA2
MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwRTIx
NzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDhCNUE0NjE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCRUYyOUVFQzE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMzM2RjY0MTdGQTBBNEQwMERERENEMCAvKiBWaWRl
b1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjgxN0ZBMEFDNjAw
REREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0QxRjlCMTQyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDhCNUE0MzE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MEU4MUQxMUJG
Mjc2NTYwMDFGREE0OCAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRUY0MThDRjExNzk2NzhDMDA5RDExMkMgLyogVmlld3BvcnRBcmd1bWVudHMu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9w
ZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggY2JlNTNiYjU0Mzg5NjY2ZDJmZGFkNDIyN2YyOTY0ZTQ5
ZDU4NWVhNy4uNzIzNGZlZDE5Y2ZjOGI2YTk4ZTcxMjhkYjE5MGY1NzZlZjdjMzRmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBA
IC0zMTUsOSArMzE1LDkgQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVyYXRpb25zIGJsZW5kRmls
dGVyT3BlcmF0aW9ucyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm8KICAgICBzaXplX3QgdG9T
aXplID0gdG8ub3BlcmF0aW9ucygpLnNpemUoKTsKICAgICBzaXplX3Qgc2l6ZSA9IHN0ZDo6bWF4
KGZyb21TaXplLCB0b1NpemUpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsr
KSB7Ci0gICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21PcCA9IChpIDwgZnJvbVNp
emUpID8gZnJvbS5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwotICAgICAgICBSZWZQdHI8Rmls
dGVyT3BlcmF0aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3BlcmF0aW9ucygpW2ldLmdl
dCgpIDogMDsKLSAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRlZE9wID0gdG9P
cCA/IGJsZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCksIGNvbnRleHQpIDogKGZyb21P
cCA/IGJsZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQsIHRydWUpIDogMCk7CisgICAg
ICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21PcCA9IChpIDwgZnJvbVNpemUpID8gZnJv
bS5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRyOworICAgICAgICBSZWZQdHI8RmlsdGVy
T3BlcmF0aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3BlcmF0aW9ucygpW2ldLmdldCgp
IDogbnVsbHB0cjsKKyAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRlZE9wID0g
dG9PcCA/IGJsZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCksIGNvbnRleHQpIDogKGZy
b21PcCA/IGJsZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQsIHRydWUpIDogbnVsbHB0
cik7CiAgICAgICAgIGlmIChibGVuZGVkT3ApCiAgICAgICAgICAgICByZXN1bHQub3BlcmF0aW9u
cygpLmFwcGVuZChibGVuZGVkT3ApOwogICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggMzg3NzdjZjJhOTc4Yzdh
NmUyZGI1OTFkNWM1ZmY1MmMyNjU3ZWI5NS4uZWVmOWU4ZmU5MjQ4MGM0ZmUwYTdkOWRkMzZlNDBh
Y2Y4NWM2ZmU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKQEAgLTI2NzEsOCArMjY3MSw4IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQmFzaWNT
aGFwZUluc2V0PiBjb25zdW1lQmFzaWNTaGFwZUluc2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIGFy
CiAgICAgICAgIHNoYXBlLT51cGRhdGVTaGFwZVNpemUxVmFsdWUodG9wLnJlbGVhc2VOb25OdWxs
KCkpOwogCiAgICAgaWYgKGNvbnN1bWVJZGVudDxDU1NWYWx1ZVJvdW5kPihhcmdzKSkgewotICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGhvcml6b250YWxSYWRpaVs0XSA9IHsgMCB9
OwotICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRpY2FsUmFkaWlbNF0gPSB7
IDAgfTsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBob3Jpem9udGFsUmFkaWlb
NF0gPSB7IG51bGxwdHIgfTsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2ZXJ0
aWNhbFJhZGlpWzRdID0geyBudWxscHRyIH07CiAgICAgICAgIGlmICghY29uc3VtZVJhZGlpKGhv
cml6b250YWxSYWRpaSwgdmVydGljYWxSYWRpaSwgYXJncywgY29udGV4dC5tb2RlLCBmYWxzZSkp
CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgc2hhcGUtPnNldFRvcExlZnRS
YWRpdXMoY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKGhvcml6b250YWxSYWRpaVswXS5yZWxlYXNl
Tm9uTnVsbCgpLCB2ZXJ0aWNhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxsKCksIFBhaXI6OklkZW50
aWNhbFZhbHVlRW5jb2Rpbmc6OkNvYWxlc2NlKSk7CkBAIC0yODgxLDcgKzI4ODEsNyBAQCBzdGF0
aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VSZXBlYXQoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1h
Z2VTbGljZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSkKIHsKICAgICBib29sIGZpbGwgPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVGaWxsPihyYW5nZSk7
Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZXNbNF0gPSB7IDAgfTsKKyAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNsaWNlc1s0XSA9IHsgbnVsbHB0ciB9OwogCiAgICAg
Zm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKICAgICAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZSA9IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1
ZVJhbmdlOjpOb25OZWdhdGl2ZSk7CkBAIC0yOTE4LDcgKzI5MTgsNyBAQCBzdGF0aWMgUmVmUHRy
PENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VTbGljZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
LCBDU1NQYXJzZQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VP
dXRzZXQoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7Ci0gICAgUmVmUHRyPENTU1ByaW1p
dGl2ZVZhbHVlPiBvdXRzZXRzWzRdID0geyAwIH07CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBvdXRzZXRzWzRdID0geyBudWxscHRyIH07CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHZhbHVlOwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2lu
ZGV4KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2YwM2I4ZDU0NzlmMGY5ODY1Y2JlZGYy
ZTM5OTcxY2ZhZmY3N2ZhMC4uODM1NGYzMDZhN2RlMGI0NWIxYzJkN2VhOWIyNTJhZGFmODk2NzI1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjk5NSwxMiArMjk5NSwxMiBAQCBSZWZQdHI8
QXR0cj4gRWxlbWVudDo6Z2V0QXR0cmlidXRlTm9kZShjb25zdCBBdG9tU3RyaW5nJiBxdWFsaWZp
ZWROYW1lKQogUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGVOUyhjb25zdCBB
dG9tU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21TdHJpbmcmIGxvY2FsTmFtZSkKIHsK
ICAgICBpZiAoIWVsZW1lbnREYXRhKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBRdWFsaWZpZWROYW1lIHFOYW1lKG51bGxBdG9tKCksIGxvY2FsTmFt
ZSwgbmFtZXNwYWNlVVJJKTsKICAgICBzeW5jaHJvbml6ZUF0dHJpYnV0ZShxTmFtZSk7CiAgICAg
Y29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBlbGVtZW50RGF0YSgpLT5maW5kQXR0cmlidXRl
QnlOYW1lKHFOYW1lKTsKICAgICBpZiAoIWF0dHJpYnV0ZSkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBlbnN1cmVBdHRyKGF0dHJpYnV0ZS0+
bmFtZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCmluZGV4IDU1YjZkMzhlOTQ5YmQ0YTEyNTQ4YmVhYzEzY2U1YWE5ZjE2NTY3OTguLmJi
NGJjMTM2ZjdmMWE0YjlkNDVlOTZlNjAyZGM3YzMwM2YyZTlmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2
b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydFVuaGFuZGxlZFByb21pc2VSZWplY3Rp
b24oSlNDOjpKU0dsb2JhbE9iamVjdAogCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9iamVjdCog
c3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVzc2Fn
ZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgMCwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBu
dWxscHRyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBib29sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCBKU0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlw
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKaW5kZXggZDY4ODkwYjgzYjgzMjkwOWVmMWFmZmJh
OGE5NzA1MWMzOTBmYTU2OS4uMjU1M2EwYzczMmRkMjkyOTQzYmI3MzFlNzk3NDFlMTBhNmY2NDAw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFRleHRF
dmVudD4gVGV4dEV2ZW50OjpjcmVhdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0
IFN0cmluZyYgZGF0YSwKIAogUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFp
blRleHRQYXN0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgY29uc3QgU3RyaW5nJiBkYXRh
LCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBU
ZXh0RXZlbnQoV1RGTW92ZSh2aWV3KSwgZGF0YSwgMCwgc2hvdWxkU21hcnRSZXBsYWNlLCBmYWxz
ZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZlbnQoV1RGTW92ZSh2aWV3KSwgZGF0YSwgbnVsbHB0ciwg
c2hvdWxkU21hcnRSZXBsYWNlLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVj
dEJsb2NrcXVvdGUpKTsKIH0KIAogUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JG
cmFnbWVudFBhc3RlKFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4mJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRj
aFN0eWxlLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCmluZGV4IDg4Mzcz
Y2I0ZDYzMmYzYTk2MmQ3NTdlZDE3Y2M0ZDZhOWFjNmFmN2UuLjNiNTFiNmFiYzQxNjA5YmEwYmMz
NzUzZWY3OGIyZGM0NmU0MDFhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0TGlzdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCkBAIC0zNjQsNyArMzY0LDcgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBJ
bnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24m
IG8KICAgICBWaXNpYmxlUG9zaXRpb24gZW5kID0gZW5kT2ZQYXJhZ3JhcGgoc3RhcnQsIENhblNr
aXBPdmVyRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAKICAgICBpZiAoc3RhcnQuaXNOdWxsKCkgfHwg
ZW5kLmlzTnVsbCgpIHx8ICFzdGFydC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKS0+
aGFzRWRpdGFibGVTdHlsZSgpIHx8ICFlbmQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2Rl
KCktPmhhc0VkaXRhYmxlU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgLy8gQ2hlY2sgZm9yIGFkam9pbmluZyBsaXN0cy4KICAgICBhdXRv
IGxpc3RJdGVtRWxlbWVudCA9IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKQEAg
LTQwNSw3ICs0MDUsNyBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2VydExpc3RDb21tYW5kOjps
aXN0aWZ5UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwogICAgICAgICAgICAgaW5z
ZXJ0aW9uUG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUobGlzdENoaWxkLmdldCgpKTsK
IAogICAgICAgICBpZiAoIWlzRWRpdGFibGVQb3NpdGlvbihpbnNlcnRpb25Qb3MpKQotICAgICAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBp
bnNlcnROb2RlQXQoKmxpc3RFbGVtZW50LCBpbnNlcnRpb25Qb3MpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOGM5NzEyYWFmNzk0ZTYzZDJhOGEwN2Iw
YTA4YzkwMjc3ZDJmYWJkLi4yOTM3OWIyMGY1OTFmZmVmMGJkNTU3YzgwOGQ4YjQ5NDBhYWE1YTcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJB
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCkBAIC02OCw2ICs2OSw3IEBACiAjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQu
aCIKICNpbmNsdWRlICJKU01lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTG9hZGFibGVU
ZXh0VHJhY2suaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgpAQCAtODcsNiArODksNyBAQAog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBpY3R1cmVJblBpY3R1cmVTdXBwb3J0
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJRdWlya3MuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTExLDcg
KzExNCw5IEBACiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJWaWRlb1BsYXliYWNrUXVhbGl0eS5o
IgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgor
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2NyaXB0T2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgog
I2luY2x1ZGUgPGxpbWl0cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5k
ZXggYWQwOWU3YmUxZTIzMGRmZTZiYzc5OTViNWY1M2Q3NTc0Yzg4MWIzZi4uNDJkZGFjNzEyM2I5
ZTFjZThlNGFiNGRhNzAxOWRmODhkMTU2OGY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVk
ZSAiQXVkaW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkF1dG9wbGF5RXZlbnQuaCIKICNpbmNs
dWRlICJDYXB0aW9uVXNlclByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
QEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJNZWRpYVVuaXF1ZUlkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJUZXh0VHJhY2suaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCisjaW5jbHVkZSAiVGV4
dFRyYWNrQ2xpZW50LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUg
IlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmNwcAppbmRleCAwZjlmNDNiMDQ4ZjRlZDQxMTA5MjAxYmYzNTNkNThlYWE0NTIzMzcx
Li5jMmQwMzUzZWI4NzFjNTRkYTI5NmJlMjU5YzAwMzYxZmVkYmUyYjkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNjAsMTcgKzYxLDE3IEBAIHN0YXRpYyBTdHJpbmcgdXJs
Rm9yTG9nZ2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6
OkhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBB
Y3RpdmVET01PYmplY3QoZG9jdW1lbnQpCisgICAgLCBtX3RyYWNrKExvYWRhYmxlVGV4dFRyYWNr
OjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oa2luZEF0dHIp
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIGxhYmVsKCksIHNyY2xhbmcoKSkpCiB7CisgICAg
bV90cmFjay0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICBMT0coTWVkaWEsICJIVE1MVHJhY2tFbGVt
ZW50OjpIVE1MVHJhY2tFbGVtZW50IC0gJXAiLCB0aGlzKTsKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZSh0cmFja1RhZykpOwogfQogCiBIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNrRWxlbWVudCgp
CiB7Ci0gICAgaWYgKG1fdHJhY2spIHsKLSAgICAgICAgbV90cmFjay0+Y2xlYXJFbGVtZW50KCk7
Ci0gICAgICAgIG1fdHJhY2stPmNsZWFyQ2xpZW50KCp0aGlzKTsKLSAgICB9CisgICAgbV90cmFj
ay0+Y2xlYXJFbGVtZW50KCk7CisgICAgbV90cmFjay0+Y2xlYXJDbGllbnQoKnRoaXMpOwogfQog
CiBSZWY8SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTE0MiwyMSArMTQz
LDkgQEAgYm9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc0RlZmF1bHQoKSBjb25zdAogICAgIHJldHVy
biBoYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRlZmF1bHRBdHRyKTsKIH0KIAot
TG9hZGFibGVUZXh0VHJhY2smIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkKK1RleHRUcmFjayYg
SFRNTFRyYWNrRWxlbWVudDo6dHJhY2soKQogewotICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBubyBw
cmFjdGljYWwgdmFsdWUgaW4gbGF6aWx5IGluaXRpYWxpemluZyB0aGlzLgotICAgIC8vIEluc3Rl
YWQgdGhpcyBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgY29uc3RydWN0b3IuCi0gICAgaWYgKCFt
X3RyYWNrKSB7Ci0gICAgICAgIC8vIFRoZSBraW5kIGF0dHJpYnV0ZSBpcyBhbiBlbnVtZXJhdGVk
IGF0dHJpYnV0ZSwgbGltaXRlZCBvbmx5IHRvIGtub3duIHZhbHVlcy4gSXQgZGVmYXVsdHMgdG8g
J3N1YnRpdGxlcycgaWYgbWlzc2luZyBvciBpbnZhbGlkLgotICAgICAgICBTdHJpbmcga2luZCA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oa2luZEF0dHIpLmNvbnZlcnRUb0FTQ0lJ
TG93ZXJjYXNlKCk7Ci0gICAgICAgIGlmICghVGV4dFRyYWNrOjppc1ZhbGlkS2luZEtleXdvcmQo
a2luZCkpCi0gICAgICAgICAgICBraW5kID0gVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCk7
Ci0gICAgICAgIG1fdHJhY2sgPSBMb2FkYWJsZVRleHRUcmFjazo6Y3JlYXRlKCp0aGlzLCBraW5k
LCBsYWJlbCgpLCBzcmNsYW5nKCkpOwotICAgICAgICBtX3RyYWNrLT5hZGRDbGllbnQoKnRoaXMp
OwotICAgIH0KLSAgICBBU1NFUlQobV90cmFjay0+dHJhY2tFbGVtZW50KCkgPT0gdGhpcyk7Ci0K
LSAgICByZXR1cm4gKm1fdHJhY2s7CisgICAgcmV0dXJuIG1fdHJhY2s7CiB9CiAKIGJvb2wgSFRN
TFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUp
IGNvbnN0CkBAIC0yMDYsNyArMTk1LDcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzY2hlZHVs
ZUxvYWQoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdHJhY2so
KS5zY2hlZHVsZUxvYWQodHJhY2tVUkwpOworICAgICAgICBtX3RyYWNrLT5zY2hlZHVsZUxvYWQo
dHJhY2tVUkwpOwogICAgIH0pOwogfQogCkBAIC0yODMsMTMgKzI3MiwxMSBAQCB2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnNldFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSBzdGF0ZSkKIHsKICAgICB0cmFj
aygpLnNldFJlYWRpbmVzc1N0YXRlKHN0YXRpY19jYXN0PFRleHRUcmFjazo6UmVhZGluZXNzU3Rh
dGU+KHN0YXRlKSk7CiAgICAgaWYgKGF1dG8gcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCi0gICAg
ICAgIHBhcmVudC0+dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQobV90cmFjay5nZXQoKSk7Cisg
ICAgICAgIHBhcmVudC0+dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQobV90cmFjay5wdHIoKSk7
CiB9CiAKIEhUTUxUcmFja0VsZW1lbnQ6OlJlYWR5U3RhdGUgSFRNTFRyYWNrRWxlbWVudDo6cmVh
ZHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3RyYWNrKQotICAgICAgICByZXR1cm4gSFRN
TFRyYWNrRWxlbWVudDo6Tk9ORTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVhZHlTdGF0ZT4o
bV90cmFjay0+cmVhZGluZXNzU3RhdGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmgKaW5kZXggYjg2MmQ0OWE0YTkyYzMzNjczNTU4OTFjYjY0Njg1ZTY4MDE1ZTYw
Mi4uM2Y0NGUwYThlMTRhMWM3ZTVkZGZjMGFmODk1ZmEwYjQxNDdmNTYwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTMwLDExICszMCwxMiBAQAogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJMb2FkYWJsZVRleHRUcmFjay5oIgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CitjbGFzcyBMb2Fk
YWJsZVRleHRUcmFjazsKIAogY2xhc3MgSFRNTFRyYWNrRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBI
VE1MRWxlbWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFRleHRUcmFja0NsaWVu
dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MVHJhY2tFbGVtZW50KTsKQEAgLTUy
LDcgKzUzLDcgQEAgcHVibGljOgogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlKTsKIAotICAgIExvYWRhYmxlVGV4dFRy
YWNrJiB0cmFjaygpOworICAgIFRleHRUcmFjayYgdHJhY2soKTsKIAogICAgIHZvaWQgc2NoZWR1
bGVMb2FkKCk7CiAKQEAgLTg3LDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuTG9h
ZFVSTChjb25zdCBVUkwmKTsKIAotICAgIFJlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gbV90cmFj
azsKKyAgICBSZWY8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiAgICAgYm9vbCBtX2xvYWRQ
ZW5kaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzUmVsZXZhbnRMb2FkRXZlbnRzTGlzdGVu
ZXIgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
QXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3Bw
CmluZGV4IDNjYjcxOGQzZGMyN2U1ODNiNWE1ZGYxMDkzYTAzNjUyN2MwMmVjYjUuLjEyYjFmY2M1
Nzc2ZTA2Y2ZlOGRkZmE5MmM3M2M3NzIwZmI5M2RmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMzEsMTAgKzMxLDEyIEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3Qu
aCIKIAogI2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tDbGllbnQuaCIK
KyNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
LmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTgwLDEzICs4MiwxMyBAQCBBdWRpb1RyYWNrOjpBdWRpb1RyYWNrKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjawogICAgICwgbV9w
cml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZhdGUuZW5hYmxl
ZCgpKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KCp0aGlzKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIAogQXVk
aW9UcmFjazo6fkF1ZGlvVHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxw
dHIpOworICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNr
OjpzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCkBAIC05NCwxMCAr
OTYsMTAgQEAgdm9pZCBBdWRpb1RyYWNrOjpzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAg
ICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRl
OwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwotICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBtX3ByaXZhdGUtPnNldExvZ2dlcihsb2dnZXIoKSwg
bG9nSWRlbnRpZmllcigpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJh
Y2suaAppbmRleCAzNzUxMGE4Y2QyZjhmNDAxNTM1ODkyNWRmOTlkYWVjOThmMTk2MDVjLi5hMzM3
NzA1Mzg5ZTk4NjJiYmY4Y2ZmMTRjY2VjYzhmOTQ2YjFmMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtMjgsMjYgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoVklE
RU8pCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAjaW5jbHVkZSA8d3Rm
L1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9UcmFj
azsKK2NsYXNzIEF1ZGlvVHJhY2tDbGllbnQ7CiBjbGFzcyBBdWRpb1RyYWNrTGlzdDsKIAotY2xh
c3MgQXVkaW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1RyYWNrQ2xp
ZW50PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpID0gZGVmYXVs
dDsKLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sm
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0lkQ2hhbmdlZChBdWRpb1RyYWNrJikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tLaW5kQ2hhbmdlZChBdWRpb1RyYWNrJikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYWJlbENoYW5nZWQoQXVkaW9UcmFjayYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKEF1ZGlvVHJh
Y2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFj
ayYpIHsgfQotfTsKLQogY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNr
QmFzZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjN2RiNDQyNzA0MWZjNGMy
MGMyODY2MWZiM2YzMDExZTRjY2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9UcmFjazsKKwor
Y2xhc3MgQXVkaW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1RyYWNr
Q2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpID0gZGVm
YXVsdDsKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJh
Y2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0lkQ2hhbmdlZChBdWRpb1RyYWNr
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tLaW5kQ2hhbmdlZChBdWRpb1RyYWNr
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYWJlbENoYW5nZWQoQXVkaW9UcmFj
ayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKEF1ZGlv
VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9U
cmFjayYpIHsgfQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmNwcAppbmRleCBjNmZlYTM1ZWQzOGIwNDg2MDNkMmNlODFkZmFi
YjAyNjE4ODQyMGVkLi5kNDU5NjlmYmZjNzdkZTk3ZTA3ZjdiYThkOTk3NmE4MjRlOGU3NGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC01
OCwxMyArNTgsMTMgQEAgSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0VHJhY2soRG9jdW1lbnQm
IGRvY3VtZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmEKICAgICA6IFRleHRUcmFjaygm
ZG9jdW1lbnQsIGVtcHR5QXRvbSgpLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxh
YmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpLCBJbkJhbmQpCiAgICAgLCBtX3ByaXZhdGUo
dHJhY2tQcml2YXRlKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsK
IH0KIAogSW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRyYWNrKCkKIHsKLSAgICBtX3ByaXZh
dGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9
CiAKIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSkKQEAgLTcyLDkgKzcyLDkgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6
OnNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlm
IChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNs
aWVudCgpOwogICAgIG1fcHJpdmF0ZSA9IHRyYWNrUHJpdmF0ZTsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAKICAgICBz
ZXRNb2RlSW50ZXJuYWwobW9kZSgpKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRleCAwYTY0N2MyYzQ1NjY1NDdl
ZmFlZmI0NjYyNDUxMmYwNmZjMThhNmYyLi44NDljZDU5NGE3YjlhMzk4YjBjMzFmYTkwZmM2N2Q3
ZjZkNjc2YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIlNvdXJjZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgog
I2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0Lmgi
CiAjaW5jbHVkZSAiVlRUUmVnaW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
aAppbmRleCA4YjMxNmU3YWRhNDljMzAyODk1MjQ1YjBhNzE4ZWNkNGQ4OTI5ZTJkLi45NDBjMDI0
NjJlODY5M2NiODg4OWQwMjdiNmM5YTg2ZWYyZTkwY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTM5LDI1ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFRyYWNrOwogY2xhc3MgVGV4
dFRyYWNrTGlzdDsKK2NsYXNzIFRleHRUcmFja0NsaWVudDsKIGNsYXNzIFRleHRUcmFja0N1ZUxp
c3Q7CiBjbGFzcyBWVFRSZWdpb247CiBjbGFzcyBWVFRSZWdpb25MaXN0OwogCi1jbGFzcyBUZXh0
VHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VGV4dFRyYWNrQ2xpZW50PiB7Ci1w
dWJsaWM6Ci0gICAgdmlydHVhbCB+VGV4dFRyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tJZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrTGFiZWxDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tMYW5ndWFnZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNv
bnN0IFRleHRUcmFja0N1ZUxpc3QmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRk
Q3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxSZW1vdmVUZXh0VHJhY2soVGV4dFRyYWNrJikgeyB9Ci19OwotCiBjbGFzcyBU
ZXh0VHJhY2sgOiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChUZXh0VHJhY2spOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE4ZDAzN2RlZjc1OTRmZDAwYTUyYzgxYzkwMTQ5MGNk
NzBlYTQzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ2xpZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUZXh0VHJhY2s7CitjbGFzcyBUZXh0VHJhY2tDdWU7
CitjbGFzcyBUZXh0VHJhY2tDdWVMaXN0OworCitjbGFzcyBUZXh0VHJhY2tDbGllbnQgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8VGV4dFRyYWNrQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+VGV4dFRyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tJZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0tp
bmRDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2Rl
Q2hhbmdlZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTGFiZWxD
aGFuZ2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tMYW5ndWFn
ZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxp
c3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRl
eHRUcmFja0N1ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4
dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVU
ZXh0VHJhY2soVGV4dFRyYWNrJikgeyB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggOTdmMDFhY2M2NTlhMGRjMGU1MWQwZWUx
OGQwMzY0MDM2MTlhY2Y0MC4uMjMwMTk3ZGQ1MTIxMmFhYzgwYWFhNTlkYjI2OGZlYTNlZjAyY2Ex
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0zNCw3ICsz
NCw5IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJWaWRlb1RyYWNrQ2xpZW50
LmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJp
dmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkKQEAgLTg0LDEzICs4NiwxMyBAQCBWaWRlb1RyYWNrOjpWaWRlb1RyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFjawog
ICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fc2VsZWN0ZWQodHJhY2tQcml2
YXRlLnNlbGVjdGVkKCkpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAg
bV9wcml2YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgp
OwogfQogCiBWaWRlb1RyYWNrOjp+VmlkZW9UcmFjaygpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRD
bGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiB2b2lk
IFZpZGVvVHJhY2s6OnNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkK
QEAgLTk4LDkgKzEwMCw5IEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNr
UHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVs
bHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogICAgIG1fcHJpdmF0ZSA9IHRy
YWNrUHJpdmF0ZTsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZh
dGUtPnNldENsaWVudCgqdGhpcyk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9w
cml2YXRlLT5zZXRMb2dnZXIobG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKaW5kZXggZWY4NDg4ZTdiNTk4MWYxMzE3
MjJiZmJkNjc2ZDZmNGIxNmRmNTFhNi4uOGQ2Zjg4Y2ZiZmU5MjIxMDVmMjA3MTFkNWI3ZWViMzY1
ZWY5ZTZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTI5LDI1
ICsyOSwxNiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgot
I2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZh
dGVDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYURlc2NyaXB0aW9uOwogY2xhc3MgVmlkZW9UcmFjazsKK2Ns
YXNzIFZpZGVvVHJhY2tDbGllbnQ7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKLQotY2xhc3MgVmlk
ZW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxWaWRlb1RyYWNrQ2xpZW50PiB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0lkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHZpZGVvVHJhY2tLaW5kQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHZpZGVvVHJhY2tMYWJlbENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2smKSB7
IH0KLX07CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgVmlkZW9UcmFjayBmaW5h
bCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVv
VHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAppbmRl
eCAyYzYwYjJiMmU3MDY1MzM4OGQ5YTRlY2MwMDM5YTMyZjM2NjBiMmM4Li45OTEzNjczNjFlYWVi
MmZjZjQ5NGFkMTlmZmQ3YTUwMDU0NWQwZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5pZGwKQEAgLTM0LDQgKzM0LDUgQEAKICAgICBbU2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlPU1lZGlhU291cmNlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmd1YWdlOwog
CiAgICAgYXR0cmlidXRlIGJvb2xlYW4gc2VsZWN0ZWQ7CisKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NWM4NzZkN2Q3Yjk2
NDc2M2U3NzY0OGU5ZjM5ZGE1ZmExOWM4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVHJhY2s7
CisKK2NsYXNzIFZpZGVvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VmlkZW9U
cmFja0NsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQoKSA9
IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tJZENoYW5nZWQoVmlkZW9UcmFj
ayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrS2luZENoYW5nZWQoVmlkZW9UcmFj
ayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKFZpZGVvVHJh
Y2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZChWaWRl
b1RyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQo
VmlkZW9UcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFjayhW
aWRlb1RyYWNrJikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDU1M2ExY2Zk
NzllMjAxOTM2NmYzZWMzNzBjODNjOTgzOGQzMTE5NzMuLmJlNWE3MGRlZWY0NzMxM2ZlYWI4YThm
N2U0MDM0YTAxODQxMTc3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb24KICAgICBp
ZiAoZG9jdW1lbnQpCiAgICAgICAgIGRvY3VtZW50LT5nZXRQYXJzZXJMb2NhdGlvbih1cmwsIGxp
bmUsIGNvbHVtbik7CiAKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVy
bCwgbGluZSwgY29sdW1uLCAwLCBKU0V4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwg
bGluZSwgY29sdW1uLCBudWxscHRyLCBKU0V4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIHJlcXVl
c3RJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYgY2FsbFN0YWNrKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKaW5kZXggOTA3ODRiZTQw
MDZkZDAxMGU4MTA3YTNiNDAzN2MwZGVjNDY0ZWQ4Zi4uNTY4MTUyODE3MmEyYjE0YzcwNTk2ZmQw
MGFhYmMyNzA3OTVhNWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNy
eXB0ZWRtZWRpYS9DRE1Qcm94eS5oCkBAIC0zMiw3ICszMiw2IEBACiAKICNpbmNsdWRlICJDRE1J
bnN0YW5jZS5oIgogI2luY2x1ZGUgIkNETUluc3RhbmNlU2Vzc2lvbi5oIgotI2luY2x1ZGUgIk1l
ZGlhUGxheWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
PHd0Zi9Cb3hQdHIuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CkBAIC00NCw2ICs0Myw4
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVkaWFQbGF5ZXI7CisKIHVzaW5n
IEtleUlEVHlwZSA9IFZlY3Rvcjx1aW50OF90PjsKIHVzaW5nIEtleUhhbmRsZVZhbHVlVmFyaWFu
dCA9IFZhcmlhbnQ8CiAgICAgVmVjdG9yPHVpbnQ4X3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAppbmRleCBhOWY4MzZiZDEx
NzNlMjJlMGFlODE0YTE3NTQyYWEyM2E0NjE1YTRlLi5jNTIyN2U1YzcwNDQxOTc3OGQ1YjI4YTY5
MTFhMDQ5Y2U3OTRiNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtMzIsMTMg
KzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0
ZTsKLQotY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRl
QmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJv
b2wpID0gMDsKLX07Ci0KIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJp
dmF0ZUJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IGNy
ZWF0ZSgpCkBAIC00Niw4ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXVkaW9UcmFja1ByaXZhdGUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLSAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVu
dCYgY2xpZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQg
Y2xlYXJDbGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIEF1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQo
KTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHsK
QEAgLTc4LDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkgPSBk
ZWZhdWx0OwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVu
dCB7IG51bGxwdHIgfTsKKyAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2Ns
aWVudDsKICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgRW5hYmxlZENoYW5nZWRD
YWxsYmFjayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGFlMjA0NTE3OWUxNzljOTM3ZGJmNjYzZTA3NWE5NDRlODM2ZGNkOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIgorCisjaWYgRU5BQkxF
KFZJREVPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
OworCitjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVC
YXNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9v
bCkgPSAwOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAppbmRleCAwYjRkOWNm
ZTY3Y2U5NTdhN2I5NzMyNzk2NjA2YjBhZDI2ZmUxNzhkLi5kY2MzMjZhNTNjMDMxZWQ0ZmYzNGMx
NWIzNjM3MDQ2YThkMmI5YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCkBAIC00MSw4ICs0MSw5IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IGNyZWF0ZShD
dWVGb3JtYXQgZm9ybWF0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFRleHRUcmFja1By
aXZhdGUoZm9ybWF0KSk7IH0KICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlKCkg
PSBkZWZhdWx0OwogCi0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KLSAgICB2b2lkIHNldENsaWVudChJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KKyAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q2xpZW50KEluYmFu
ZFRleHRUcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9IG1ha2VXZWFrUHRy
KGNsaWVudCk7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgeyBtX2NsaWVudCA9IG51bGxwdHI7
IH0KIAogICAgIGVudW0gY2xhc3MgTW9kZSA6IHVpbnQ4X3QgewogICAgICAgICBEaXNhYmxlZCwK
QEAgLTg4LDcgKzg5LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIEN1ZUZvcm1hdCBt
X2Zvcm1hdDsKLSAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKKyAgICBXZWFrUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQ+IG1fY2xp
ZW50IHsgbnVsbHB0ciB9OwogICAgIE1vZGUgbV9tb2RlIHsgTW9kZTo6RGlzYWJsZWQgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAppbmRleCA3YTMyNjUwMzNiOTQ3YjViZTY4YzA2MjMwMjZmZjMwMTI4YzQyODE4Li4zN2I3NmZk
NDRkY2M1NDE1ZThlYjkzNGUxMDQxZGNmYWVkNzk2Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zMyw5ICszMywxMyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1UZXh0
VHJhY2suaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTg1LDggKzE4OSwx
MyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVu
dFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG51bGxDb250ZW50VHlwZVZlY3RvcigpOyB9Ci19OwogCisgICAgUmVm
UHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJj
ZUxvYWRlcigpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKworI2lmIEVOQUJMRShMRUdBQ1lf
RU5DUllQVEVEX01FRElBKQorICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNo
ZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9CisjZW5kaWYKK307CiAKIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIE1lZGlhUGxheWVy
Q2xpZW50OjptZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0
CiB7CkBAIC00MTIsNiArNDIxLDcgQEAgTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9yZWxv
YWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKQogICAgICwgbV9w
cml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCisgICAgLCBt
X3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUoRHluYW1pY1JhbmdlTW9kZTo6U3RhbmRhcmQpCiB7
CiB9CiAKQEAgLTQyMCw2ICs0MzAsNyBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJDbGllbnQmIGNsaWVudCwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbgogICAgICwg
bV9yZWxvYWRUaW1lcigqdGhpcywgJk1lZGlhUGxheWVyOjpyZWxvYWRUaW1lckZpcmVkKQogICAg
ICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8TnVsbE1lZGlhUGxheWVyUHJpdmF0ZT4odGhpcykpCiAg
ICAgLCBtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIobWVkaWFFbmdpbmVJZGVudGlmaWVyKQorICAg
ICwgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJk
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCBlMGI4NmQ4ZTZlNmE5OWY1YjA2YjZiNmZjYTlhMjg2ZDNjNDQ3ODkwLi5lN2Zk
YmFjYTBiNmQzNmIzMDM0YjhjMjFlM2Y1M2YxMWZkZWM4MjZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI3LDI0ICsyNywxNyBAQAog
CiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKLSNpbmNsdWRlICJMZWdh
Y3lDRE1TZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCi0jaW5jbHVkZSAiUGxh
dGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlZp
ZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLSNpbmNs
dWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KQEAgLTU2LDEwICs0OSw2IEBACiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBFTkFCTEUoQVZGX0NB
UFRJT05TKQotI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCi0jZW5kaWYKLQogT0JKQ19D
TEFTUyBBVlBsYXllcjsKIE9CSkNfQ0xBU1MgTlNBcnJheTsKIApAQCAtNjksMTMgKzU4LDE4IEBA
IHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBBdWRpb1Nlc3Npb25DYXRlZ29yeSA6IHVpbnQ4X3Q7
CitlbnVtIGNsYXNzIER5bmFtaWNSYW5nZU1vZGUgOiB1aW50OF90OworCiBjbGFzcyBBdWRpb1Nv
dXJjZVByb3ZpZGVyOworY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiBjbGFzcyBDRE1JbnN0YW5j
ZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0w7
CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOwog
Y2xhc3MgTGVnYWN5Q0RNOworY2xhc3MgTGVnYWN5Q0RNU2Vzc2lvbjsKIGNsYXNzIExlZ2FjeUNE
TVNlc3Npb25DbGllbnQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQ
bGF5ZXI7CkBAIC04NCw4ICs3OCwxMiBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U7CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFj
azsKIGNsYXNzIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudDsKIGNsYXNzIE1lZGlhU3RyZWFtUHJp
dmF0ZTsKK2NsYXNzIE5hdGl2ZUltYWdlOworY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyOworY2xhc3MgUGxhdGZvcm1UZXh0VHJhY2s7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7
CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRl
OwogCiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFwdGVyOwogc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKQEAgLTIwMyw3ICsyMDEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQotICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5QnVmZmVyPiBt
ZWRpYVBsYXllckNhY2hlZEtleUZvcktleUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJD
YWNoZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyS2V5TmVlZGVkKFVpbnQ4QXJyYXkqKSB7IH0KICAgICB2aXJ0dWFsIFN0
cmluZyBtZWRpYVBsYXllck1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVy
biBlbXB0eVN0cmluZygpOyB9CiAjZW5kaWYKQEAgLTIzMCw3ICsyMjgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyUGxhdGZvcm1Wb2x1bWVDb25maWd1cmF0aW9uUmVx
dWlyZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBs
YXllcklzTG9vcGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBDYWNo
ZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIHsgcmV0
dXJuIG51bGxwdHI7IH0KLSAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSB7IHJldHVybiBudWxscHRy
OyB9CisgICAgdmlydHVhbCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRp
YVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkb2Vz
SGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3Vs
ZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IGNvbnN0IFN0cmluZyYgbWVkaWFQbGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQpAQCAtNzEzLDcgKzcxMSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3Nob3VsZFByZXBhcmVUb1JlbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NvbnRl
bnRNSU1FVHlwZVdhc0luZmVycmVkRnJvbUV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2luaXRpYWxpemluZ01lZGlhRW5naW5lIHsgZmFsc2UgfTsKLSAgICBEeW5hbWljUmFuZ2VNb2Rl
IG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJk
IH07CisgICAgRHluYW1pY1JhbmdlTW9kZSBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7CiAg
ICAgUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtIG1fcGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtIHsg
UGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtOjpCZXN0QWxsQXJvdW5kIH07CiAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA4NzE2NzU3YTBkMmU1NjFlZmZlYTA4OTkyZWU3
YTg3MDJjN2NjMzkyLi43NzkxMDk4MTVkYThmODBiYzk5YmFmY2Y2N2I3MDI0ODNlY2U2MzM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaApAQCAtMzAsOSArMzAsMTQgQEAKICNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFu
Z2VzLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKKyNpZiBFTkFCTEUo
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Tb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0ZWI0ZTcwNjIxMTBlZmRhMzE0YzA4MzEw
YWM0NDQzOTQxNmNhMjc2Li5hOTRiMWMxOTM4ODQ5MWMwYzkwOTQ5NzNhYzNhZGJkOWE0Yjk4NDdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJNZWRpYVNh
bXBsZS5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvQ2hlY2tl
ZEFyaXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ1ByaW50U3RyZWFtLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKaW5kZXggMjc4ZjBjNmI3MmMyODUwOWQzMDJmNzdi
NDdkNjE5MmE3MTlkMDI4My4uNmRiZTQ5NWVmYmJhZWIxMmEzNDQ2YzIxZmY5YTk0ZTFkZTk2ODA5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2
YXRlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuaApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5j
bHVkZSAiVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxw
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CkBAIC0zNiwxNSArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwg
flRyYWNrUHJpdmF0ZUJhc2VDbGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGlk
Q2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENo
YW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VD
aGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1v
dmUoKSA9IDA7Ci19OwotCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBUcmFja1ByaXZhdGVCYXNlCiAg
ICAgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VHJhY2tQcml2YXRlQmFzZSwgV1RGOjpE
ZXN0cnVjdGlvblRocmVhZDo6TWFpbj4KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJh
c2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjZmNGVlOWQwY2MzNWQ3NzU3NjA5Y2I5M2NiZmIxMDk0
MTZhMDAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZh
dGVCYXNlQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoY29u
c3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0
IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25z
dCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCkgPSAwOwor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGVhNWEyOWNlYjVjZmU5ZjAyNDI3YzVlYWRk
YzE2NDI3NGNiNmQ2MDkuLjA5ZmNlOGI4NWRkZDQ2MDk0MWI0OWY3MGE5ODRkNjRkZWQ2ODAyZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGUuaApAQCAtMjgsMTkgKzI4LDE2IEBACiAjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5j
bHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFz
ZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChib29s
KSA9IDA7Ci19OwotCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZSA6IHB1YmxpYyBUcmFja1ByaXZh
dGVCYXNlIHsKIHB1YmxpYzoKLSAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0gICAgVmlkZW9UcmFja1ByaXZh
dGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9Cisg
ICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQmIGNsaWVudCkgeyBtX2Ns
aWVudCA9IG1ha2VXZWFrUHRyKGNsaWVudCk7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgeyBt
X2NsaWVudCA9IG51bGxwdHI7IH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRTZWxlY3RlZChib29sIHNlbGVjdGVkKQogICAgIHsKQEAgLTY4LDcgKzY1LDcg
QEAgcHJvdGVjdGVkOgogICAgIFZpZGVvVHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCiBwcml2
YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsK
KyAgICBXZWFrUHRyPFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudCB7IG51bGxwdHIg
fTsKICAgICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogICAgIFNlbGVjdGVkQ2hhbmdlZENh
bGxiYWNrIG1fc2VsZWN0ZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDg2NjI5YTdjMWMzZWE2ODhlZGFiMWEyZjQwMzQwNmJlZTJkZWUxZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUNs
aWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRl
Q2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOworfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCA1ZDU2YjFjNGY5M2I4N2RhNjYxNzY2MWQ2NTQ2Mjhk
NmEyZDk4OTBjLi5kNjMyMzU1YTEyM2QyOWViM2ZkMWM3MTlhMjZkN2JkY2EzZTVkYmM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zODUsNyArMzg1LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmIFBMQVRGT1JNKE1BQykKICAgICBSZXRh
aW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7Ci0gICAgUmVmUHRyPE1lZGlh
UGxheWJhY2tUYXJnZXQ+IG1fcGxheWJhY2tUYXJnZXQgeyBudWxscHRyIH07CisgICAgUmVmUHRy
PE1lZGlhUGxheWJhY2tUYXJnZXQ+IG1fcGxheWJhY2tUYXJnZXQ7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
MTZkZDAxNjhlNGNkZDA5OWI3YzhiYzM5MjZiZDFkMDdlZmI1MjljMy4uZGFlYTRjZmVkYWZkYWRh
YzNkZTJlNzRhNTI0YjBmY2VjMDhhMmFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Miw2ICs1Miw5IEBACiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBv
cnQgIk91dE9mQmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgor
I2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbXBvcnQgIlBsYXRmb3JtVGV4dFRyYWNrLmgi
CiAjaW1wb3J0ICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgogI2ltcG9ydCAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCkBAIC0xMDUs
NiArMTA4LDEwIEBACiAjaW1wb3J0ICJUZXh0VHJhY2suaCIKICNlbmRpZgogCisjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKKyNpbXBvcnQgIk1lZGlhUGxheWJhY2tUYXJnZXQu
aCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgIkF1ZGlvU2Vz
c2lvbklPUy5oIgogI2ltcG9ydCAiTG9jYWxpemVkRGV2aWNlTW9kZWwuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNv
cmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRleCBmZDJm
MGQzZWU1ZDA4ZGUwODAzNmZhYmIxNWMyYTM0NTA0MjhiYTNjLi5lYjI0MzY1YzcxYTdiMGEyZGI5
Y2Y4ZTUzNGIyNjhlNzg4MmE5ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
V2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJD
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbXBvcnQgIkRhdGFVUkxEZWNvZGVyLmgiCiAjaW1w
b3J0ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCisjaW1wb3J0ICJQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2Eu
Y3BwCmluZGV4IGEwYmFlZGU4OGE3NTU2ODFlYTJhNGExN2JhM2U2ZWQzZGZkYzdkOWUuLjk3NDk0
ZWU2YzVjOGI2OTkyMzRlYTdjOTY2ZGRkMWFjNmFhNDI0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3RvcnlDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcApAQCAtMzUsNiArMzUs
NyBAQAogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSA8cGFsL2F2Zm91
bmRhdGlvbi9PdXRwdXRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9PdXRw
dXREZXZpY2UuaD4KKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgogCiAjaW5jbHVkZSAiVmlk
ZW9Ub29sYm94U29mdExpbmsuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaApp
bmRleCBiZjlmZGUxZjM4MThhMDAyMjFkMjZkOTZhOWFhZTJhOGFlZjY2ZDhkLi45NGZmNThjYmI4
YWMzN2M1OGFkMTE3NDU0OTllYTY5Y2ZjODkzNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJj
ZVByaXZhdGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAK
ICNpbmNsdWRlICJNZWRpYVNvdXJjZVByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCA5NjMxN2RhZDYyYzQ1NDQ0NzZlOWUyMDVlNjdiZTRjZjEzMmZkMDA4Li42MDAwZWQ0
OWE0N2E5MDY0NjAyNmRjZjZhZTlhMmIwZmZlZGZkZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTMxMCw3ICszMTAsNyBA
QCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeShj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJp
bmdNb2RlKHNldHRpbmdzKCkuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0
aW9uLnNldENvbXB1dGVkU2l6ZSgxMik7CiAgICAgZm9udCA9IEZvbnRDYXNjYWRlKFdURk1vdmUo
Zm9udERlc2NyaXB0aW9uKSwgMCwgMCk7Ci0gICAgZm9udC51cGRhdGUoMCk7CisgICAgZm9udC51
cGRhdGUobnVsbHB0cik7CiAKICAgICBydW4gPSBUZXh0UnVuKG1fdW5hdmFpbGFibGVQbHVnaW5S
ZXBsYWNlbWVudFRleHQpOwogICAgIHRleHRXaWR0aCA9IGZvbnQud2lkdGgocnVuKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDhlMmRj
YjAzNTNlZDk0ZjYwYmQ0YzRhZGNlYjM1M2M2M2M3Nzc5NDAuLmZlMWQwYmViNmU5MjZjMjZiM2Ux
YTJiNTdlMTBhNGQyMjA5NzU2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNTQsNyArNTQsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoUmVuZGVyU2VhcmNoRmllbGQpOwogUmVuZGVyU2VhcmNoRmllbGQ6OlJlbmRlclNl
YXJjaEZpZWxkKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUp
CiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoZWxlbWVudCwgV1RGTW92ZShzdHls
ZSkpCiAgICAgLCBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlKGZhbHNlKQotICAgICwgbV9zZWFyY2hQ
b3B1cCgwKQorICAgICwgbV9zZWFyY2hQb3B1cChudWxscHRyKQogewogICAgIEFTU0VSVChlbGVt
ZW50LmlzU2VhcmNoRmllbGQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KaW5kZXggMWVlNzIxNDNmOTA0MmYwZjcxN2ZkMjcxODY0ZmMxOTU0ZjQzMzM1
ZS4uZDM1ZWQxNTJjNmU3NGI4MTVkZWU3YTI1NTAyNDk4ZTA0Y2VkOGQ2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtOTY1LDcgKzk2NSw3IEBAIHZv
aWQgUmVuZGVyVGhlbWVNYWM6OnNldEZvbnRGcm9tQ29udHJvbFNpemUoUmVuZGVyU3R5bGUmIHN0
eWxlLCBOU0NvbnRyb2xTaXplIGNvCiAgICAgc3R5bGUuc2V0TGluZUhlaWdodChSZW5kZXJTdHls
ZTo6aW5pdGlhbExpbmVIZWlnaHQoKSk7CiAKICAgICBpZiAoc3R5bGUuc2V0Rm9udERlc2NyaXB0
aW9uKFdURk1vdmUoZm9udERlc2NyaXB0aW9uKSkpCi0gICAgICAgIHN0eWxlLmZvbnRDYXNjYWRl
KCkudXBkYXRlKDApOworICAgICAgICBzdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZShudWxscHRy
KTsKIH0KIAogTlNDb250cm9sU2l6ZSBSZW5kZXJUaGVtZU1hYzo6Y29udHJvbFNpemVGb3JTeXN0
ZW1Gb250KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA4
MmNmNGQ1M2FhNzNjMDllYTJmNjg5Y2JjZTljMjIxNGQ2ZDA2ZDRjLi5hZjc2OTc2MjNjYzljZjQ0
NmNlOGRjZTNjZGQ0YzJiYTI3NDI3NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC01NjMsNyArNTYzLDcg
QEAgUmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IFhNTFBhcnNlckNvbnRleHQ6OmNyZWF0ZU1lbW9y
eVBhcnNlcih4bWxTQVhIYW5kbGVyUHRyIGgKICAgICB4bWxQYXJzZXJDdHh0UHRyIHBhcnNlciA9
IHhtbENyZWF0ZU1lbW9yeVBhcnNlckN0eHQoY2h1bmsuZGF0YSgpLCBjaHVuay5sZW5ndGgoKSk7
CiAKICAgICBpZiAoIXBhcnNlcikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgbWVtY3B5KHBhcnNlci0+c2F4LCBoYW5kbGVycywgc2l6ZW9mKHhtbFNB
WEhhbmRsZXIpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9UcmFja1Byb3h5LmNwcAppbmRleCBkOWE2ZTE0ZTFjMTIyZmMyOGNmNWZj
MWI5Nzk3ZGI4MTAwOGEyODlkLi42ZGNkZGRiNmYyMjY2ZGUyZTE4ZTQxNmU2MjhiMGFkNzMzOTMz
Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVk
aW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlQXVkaW9UcmFja1Byb3h5LmNwcApAQCAtNDUsMTIgKzQ1LDEzIEBAIFJlbW90ZUF1ZGlvVHJh
Y2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3RpCiAgICAgLCBtX3RyYWNrUHJpdmF0ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21l
ZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXllcklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFj
a1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50
KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkFkZFJlbW90ZUF1ZGlvVHJhY2so
bV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7
CiB9CiAKIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6flJlbW90ZUF1ZGlvVHJhY2tQcm94eSgpCiB7
CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRy
YWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRU
cmFja1Byb3h5LmNwcAppbmRleCBiNDFhMDI4MWY4NThhMTIyZTBmYWE2YmI3MTk0ZWU1MzBjYzlm
MWYyLi45OGQ2NjM1ZTlhNTA3MjRkZjllOWM4N2E4YjBiNTQ2NDgzM2I5NzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4dFRyYWNrUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVUZXh0VHJhY2tQcm94
eS5jcHAKQEAgLTQ5LDEyICs0OSwxMyBAQCBSZW1vdGVUZXh0VHJhY2tQcm94eTo6UmVtb3RlVGV4
dFRyYWNrUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbgogICAgICwg
bV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZp
ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGll
bnQodGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVUZXh0VHJhY2sobV9pZGVudGlmaWVyLCBjb25m
aWd1cmF0aW9uKCkpLCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90ZVRleHRU
cmFja1Byb3h5Ojp+UmVtb3RlVGV4dFRyYWNrUHJveHkoKQogeworICAgIG1fdHJhY2tQcml2YXRl
LT5jbGVhckNsaWVudCgpOwogfQogCiBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYgUmVtb3RlVGV4dFRyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApp
bmRleCBiMDlhYWMzMzY3ZjAzYTJhZmEzNzQzMDM3MWZhMGM4M2E3YzcwOWM5Li40OWM0N2EzNTUx
MzhiMjVhNTliODMxMjdiNWU2OWM2Y2ViMjk3OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9UcmFja1Byb3h5LmNwcApAQCAtNDUs
MTIgKzQ1LDEzIEBAIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6UmVtb3RlVmlkZW9UcmFja1Byb3h5
KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAgICAgLCBtX3RyYWNrUHJpdmF0
ZSh0cmFja1ByaXZhdGUpCiAgICAgLCBtX21lZGlhUGxheWVySWRlbnRpZmllcihtZWRpYVBsYXll
cklkZW50aWZpZXIpCiB7Ci0gICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAg
ICBtX3RyYWNrUHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MtPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OkFkZFJlbW90ZVZpZGVvVHJhY2sobV9pZGVudGlmaWVyLCBjb25maWd1cmF0aW9uKCkp
LCBtX21lZGlhUGxheWVySWRlbnRpZmllcik7CiB9CiAKIFJlbW90ZVZpZGVvVHJhY2tQcm94eTo6
flJlbW90ZVZpZGVvVHJhY2tQcm94eSgpCiB7CisgICAgbV90cmFja1ByaXZhdGUtPmNsZWFyQ2xp
ZW50KCk7CiB9CiAKIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mIFJlbW90ZVZpZGVv
VHJhY2tQcm94eTo6Y29uZmlndXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAppbmRleCA0ZDIwY2E1NjE4MDk1Yjll
MThiN2E5ZjdmY2Y1ZjVhNmVjYTU1ZmNjLi5hNzhkMWZmNWI4MjQ2M2I4MjdhYTc2MWY1YWUyYjk0
NzMxOGM2OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFn
ZU5hbWVzcGFjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlSW1wbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgUmVmPFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Z2V0T3JDcmVhdGVMb2NhbFN0b3JhZ2VOYW1l
c3BhY2UKIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdl
VHlwZSBzdG9yYWdlVHlwZSwgY29uc3QgU3RyaW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zdG9yYWdlVHlwZShzdG9yYWdlVHlwZSkK
ICAgICAsIG1fcGF0aChwYXRoLmlzb2xhdGVkQ29weSgpKQotICAgICwgbV9zeW5jTWFuYWdlcigw
KQorICAgICwgbV9zeW5jTWFuYWdlcihudWxscHRyKQogICAgICwgbV9xdW90YShxdW90YSkKICAg
ICAsIG1faXNTaHV0ZG93bihmYWxzZSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCmluZGV4IDVjZGRmNWY2ZDky
MGIxYTZmZjQxNDZhMjM1ODg0MzE4MTBiNzRiMTguLjQ0YmJlYjIxMzNmMGQyNDZiNGJiMzM4NjIz
YzgwYjJlOGEyNGJhZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0KKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbQpAQCAtMzAyLDEyICszMDIsMTIgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW4KIAogUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFG
bG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVk
IGluZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYURl
dGFpbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKQEAgLTMyOCwxMiArMzI4LDEyIEBA
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
cmlhRXJyb3JNZXNzYWdlRWxlbWVudEF0CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439622</attachid>
            <date>2021-09-29 10:34:15 -0700</date>
            <delta_ts>2021-09-29 11:19:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230853-20210929103414.patch</filename>
            <type>text/plain</type>
            <size>84702</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczZTJiY2UxY2Q1NTJi
MjU5YjY4OTQ2ZjFhNWNkMTc3YTIxZWEyYS4uOWQ0ZDRhOTRkZDUwZmRlYjdiZDMxYjVkNTRiM2Jj
MDJjMDMxOWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wOS0yNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBCdWlsZC10aW1lIG9wdGlt
aXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdzIGluIE1lZGlhUGxheWVyLmggYW5k
IEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBNZWRpYVBsYXllci5oLCBh
bmQgYnJlYWsgYXBhcnQgKlRyYWNrUHJpdmF0ZUNsaWVudCBpbnRvIGl0cworICAgICAgICBvd24g
ZmlsZSwgc28gdGhhdCBjbGllbnRzIGRvbid0IG5lZWQgdG8gaW5jbHVkZSB0aGUgZW50aXJlIGNs
YXNzJ3MgZmlsZS4gVGhpcyByZXF1aXJlcworICAgICAgICBvdGhlciBjbGFzc2VzIHdobyBnb3Qg
dGhvc2UgaW5jbHVkZXMgImZvciBmcmVlIiBwcmV2aW91c2x5IHRvIGV4cGxpY2l0bHkgaW5jbHVk
ZSBoZWFkZXJzIGluCisgICAgICAgIHRoZWlyIHNvdXJjZSBmaWxlcy4KKworICAgICAgICBEcml2
ZS1ieSBmaXhlczogRml4ZWQgYSBudW1iZXIgb2YgcGxhY2VzIHdoZXJlICcwJyB3YXMgYmVpbmcg
dXNlZCBmb3IgJ251bGwnLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdh
Y3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29yTm9kZTo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVu
ZEZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3VtZUJhc2ljU2hhcGVJbnNldCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdW1lQm9yZGVySW1hZ2VTbGljZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGVOUyk6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9U
ZXh0RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFp
blRleHRQYXN0ZSk6CisgICAgICAgICogZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb1RyYWNrOjp+QXVkaW9UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
OjpzZXRQcml2YXRlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrQ2xpZW50OjphdWRpb1RyYWNr
SWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6
OmF1ZGlvVHJhY2tLaW5kQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1RyYWNrQ2xpZW50OjphdWRpb1RyYWNrTGFiZWxDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6d2lsbFJlbW92ZUF1
ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9UcmFja0VuYWJs
ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1ZGlvVHJh
Y2tJZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVudDo6YXVkaW9U
cmFja0tpbmRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tDbGllbnQ6OmF1
ZGlvVHJhY2tMYWJlbENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja0NsaWVu
dDo6YXVkaW9UcmFja0xhbmd1YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrQ2xpZW50Ojp3aWxsUmVtb3ZlQXVkaW9UcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9J
bmJhbmRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJ
bmJhbmRUZXh0VHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp+SW5i
YW5kVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6c2V0UHJp
dmF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvVHJhY2s6OlZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9U
cmFjazo6flZpZGVvVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0UHJp
dmF0ZSk6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrSWRDaGFuZ2VkKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tLaW5kQ2hhbmdlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNr
TGFiZWxDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGll
bnQ6OnZpZGVvVHJhY2tMYW5ndWFnZUNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp3aWxsUmVtb3ZlVmlkZW9UcmFj
ayk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbDoKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tJZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0tpbmRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2tDbGllbnQ6OnZpZGVvVHJhY2tMYWJlbENoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UcmFja0NsaWVudDo6dmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrQ2xpZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tDbGllbnQ6OndpbGxSZW1vdmVWaWRl
b1RyYWNrKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xpZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGU6OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNr
UHJpdmF0ZTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZh
dGU6OmNsZWFyQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGU6
OnNldENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZTo6Y2xlYXJD
bGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW06Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tNZWRpYVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6Omdl
dFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6
OlJlbmRlclNlYXJjaEZpZWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c2V0Rm9udEZyb21Db250cm9s
U2l6ZSBjb25zdCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5
UGFyc2VyKToKKwogMjAyMS0wOS0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBBZGQgYSBNdWx0aXBsZSBBVkF1ZGlvU2Vzc2lvbiBFeHBlcmltZW50
YWwgRmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjYjNmNTIwOGMyNjRmNTI1NWU2NGI5OTEwM2ZjOWUzNTNi
ZDdiZGNkLi4zNjM0YWQwNWNmNTI2ZDdiZGM5NGFkZmM3YTAzODBjMzllZTkxYTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEJ1aWxkLXRpbWUgb3B0aW1pemF0aW9uOiBmb3J3YXJkIGRlY2xh
cmUgbW9yZSB0aGluZ3MgaW4gTWVkaWFQbGF5ZXIuaCBhbmQgSFRNTE1lZGlhRWxlbWVudC5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVXNlIG5ldyBXZWFr
UHRyIGJhc2VkIGNsaWVudCBzZXR0ZXJzIG9uIFRyYWNrUHJpdmF0ZXMuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eTo6UmVtb3RlQXVkaW9UcmFja1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9UcmFja1Byb3h5Ojp+UmVtb3RlQXVkaW9UcmFja1Byb3h5
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFja1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6OlJlbW90ZVRleHRUcmFja1By
b3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVGV4dFRyYWNrUHJveHk6On5SZW1vdGVUZXh0
VHJhY2tQcm94eSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNr
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90
ZVZpZGVvVHJhY2tQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvVHJhY2tQcm94
eTo6flJlbW90ZVZpZGVvVHJhY2tQcm94eSk6CisKIDIwMjEtMDktMjMgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGEgTXVsdGlwbGUgQVZBdWRp
b1Nlc3Npb24gRXhwZXJpbWVudGFsIEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggMTli
ZTFiOTc0OWZlN2NhMjgwZDkyMWIxOTZkN2ZlZTg4NjE5YTI2Zi4uNTRiMWMzZjhlYmIyODQ3MGI4
MjQ1NGM1NTc1MGM2MTlhYmNmNzJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBCdWlsZC10aW1lIG9wdGltaXphdGlvbjogZm9yd2FyZCBkZWNsYXJlIG1vcmUgdGhpbmdz
IGluIE1lZGlhUGxheWVyLmggYW5kIEhUTUxNZWRpYUVsZW1lbnQuaAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwODUzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVzZSBudWxscHRyIHJhdGhlciB0aGFuIHpl
cm8gZm9yIG51bGwgdmFsdWVzLgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpTdG9yYWdl
TmFtZXNwYWNlSW1wbCk6CisKIDIwMjEtMDktMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3N0bHkgZml4IE1hYyBDTWFrZSBidWlsZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggMzQ4ZTU2Mjg1MTdlNTVjNjNkNjY1ZGFiMTQ1ZTI4NjViMjMz
MDgzMC4uMWI4ZGEzNjFlYjFkNWYxZjY0M2E2MmRlOGM4OTY3ODBlNDgwNTFkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC03NjEsMTEgKzc2MSwxNCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xp
Y3kuaAogCiAgICAgaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKyAgICBodG1sL3RyYWNrL0F1ZGlv
VHJhY2tDbGllbnQuaAogICAgIGh0bWwvdHJhY2svVGV4dFRyYWNrLmgKKyAgICBodG1sL3RyYWNr
L1RleHRUcmFja0NsaWVudC5oCiAgICAgaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAogICAgIGh0
bWwvdHJhY2svVHJhY2tCYXNlLmgKICAgICBodG1sL3RyYWNrL1ZUVEN1ZS5oCiAgICAgaHRtbC90
cmFjay9WaWRlb1RyYWNrLmgKKyAgICBodG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaAogCiAg
ICAgaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaApAQCAtMTIyMCw2ICsxMjIzLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BbmltYXRpb25GcmFtZVJhdGUuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9BdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQmlmdXJjYXRlZEdy
YXBoaWNzQ29udGV4dC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKQEAgLTEzNjMsMTEgKzEzNjcsMTMgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tp
bmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1ZQOVV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRhLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoQ2FjaGUuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL1dpbmRSdWxlLmgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L0xlZ2Fj
eUNETVByaXZhdGVDbGVhcktleS5jcHAKaW5kZXggM2E4YzAwZjUyMzFmNTJhNmU4OWQxODNkMTUx
MWMzYWM4NzczYTFmZS4uMTdkNGZiNzI3NDBkNmUxYzNkZjZmZTZmNzY4NzViNGM5NGIyM2JiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kv
TGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9MZWdhY3lDRE1Qcml2YXRlQ2xlYXJLZXkuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmgiCiAjaW5j
bHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAKaW5kZXggYWJlOTIxMGZkNjU4MjA5M2IwMTcxYTgxYzZjMTNhYjMxZTZmNGI4Yi4uMGZkYmY5
ZjgwNDE3NmUwNjQxOGJlNWUwNWY4ODViZWE5OWQxMzk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNr
TGlzdC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrLmgi
CiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKaW5kZXggOGQ4MDdmYzI0MDkwZTgwZjViY2ZmM2EzYTFjOGIyYmM3MTEw
YTc5NC4uZjg2ZDZjMWRlMzdlNzZiZmZmOWFmY2U5NjJmMDdiMGZiOTc3ZDUzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApA
QCAtMzQsNyArMzQsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAorI2luY2x1ZGUg
IkF1ZGlvVHJhY2suaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkF1
ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC00OSw3ICs1MSw5IEBACiAjaW5j
bHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIK
ICNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogI2luY2x1
ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVk0uaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IGE3
MjMzZDIxZTA4MWFhNGE4ZDg0MjU0YjI5M2E3MzJmNjg0MTNlOGMuLjI4MDk5MjVmNWQyMWYzZTNm
MzQ3N2ExZTQ1MjQzODUwNzg1ZDRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMzQsMTQgKzM0LDE0IEBACiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1
ZGUgIkF1ZGlvVHJhY2suaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNv
dXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LmgiCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCisjaW5jbHVkZSAi
VmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggYzRhZGE3MmViZmZkNWVjNjM5NjJi
MTdjMDcwMDg0MWU5YTk1MGVkOS4uMTI0NzhiMDYzMTQyOGY4ZTg1NDhlZmJmNDhmZjY5NGQwZDk4
MmJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Nj
cmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC04OSw4ICs4OSw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vz
c29yTm9kZTo6aW5pdGlhbGl6ZSgpCiAgICAgLy8gVGhlc2UgQXVkaW9CdWZmZXJzIHdpbGwgYmUg
ZGlyZWN0bHkgYWNjZXNzZWQgaW4gdGhlIG1haW4gdGhyZWFkIGJ5IEphdmFTY3JpcHQuCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1ZmZlckNvdW50OyArK2kpIHsKICAgICAgICAgLy8g
V2UgcHJldmVudCBkZXRhY2hpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNpbmNlIHdlIHBhc3Mg
dGhvc2UgdG8gSlMgYW5kIHJldXNlIHRoZW0uCi0gICAgICAgIG1faW5wdXRCdWZmZXJzW2ldID0g
bV9udW1iZXJPZklucHV0Q2hhbm5lbHMgPyBBdWRpb0J1ZmZlcjo6Y3JlYXRlKG1fbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdh
Y3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsKLSAgICAgICAgbV9vdXRwdXRCdWZmZXJzW2ld
ID0gbV9udW1iZXJPZk91dHB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0ZShtX251bWJl
ck9mT3V0cHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6
OkxlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykgOiAwOworICAgICAgICBtX2lucHV0QnVmZmVy
c1tpXSA9IG1fbnVtYmVyT2ZJbnB1dENoYW5uZWxzID8gQXVkaW9CdWZmZXI6OmNyZWF0ZShtX251
bWJlck9mSW5wdXRDaGFubmVscywgYnVmZmVyU2l6ZSgpLCBzYW1wbGVSYXRlLCBBdWRpb0J1ZmZl
cjo6TGVnYWN5UHJldmVudERldGFjaGluZzo6WWVzKSA6IG51bGxwdHI7CisgICAgICAgIG1fb3V0
cHV0QnVmZmVyc1tpXSA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpj
cmVhdGUobV9udW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUs
IEF1ZGlvQnVmZmVyOjpMZWdhY3lQcmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogbnVsbHB0cjsKICAg
ICB9CiAKICAgICBBdWRpb05vZGU6OmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMjk3MzRkYmI4YmYyNmUy
ODI3MGZiNTk0OGY3ZWI1YWFhNTY4MWVlLi43OTdiNzAzMWM5N2JjZWM1OWUyMzQyZjRhODFkMmM2
NzczODAzYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00Mzc0LDYgKzQzNzQsMTIgQEAKIAkJQ0QxOUEyNjgxQTEzRTcwMDAw
OEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVB
NjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQUUxRjU3NEI2RDAwMEM0MkZCIC8q
IEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZP
YmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
Q0QxRjlCMTQyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxMjI3MDIz
NUY3MDA2MTdFQjYgLyogVmlkZW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDFGOUIxNjI3MDIzNjBGMDA2MTdF
QjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMUY5QjE1MjcwMjM2MEUwMDYxN0VCNiAvKiBBdWRpb1Ry
YWNrUHJpdmF0ZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUNEMUY5QjE4MjcwMjNBMkEwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIx
NzI3MDIzQTI5MDA2MTdFQjYgLyogVmlkZW9UcmFja0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjFBMjcwMjNBNzYwMDYxN0VC
NiAvKiBBdWRpb1RyYWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDFGOUIxOTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNE
MUY5QjFDMjcwMjRCQzIwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFGOUIxQjI3MDI0QkMx
MDA2MTdFQjYgLyogVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUY5QjIxMjcwMjU2NUUwMDYxN0VCNiAv
KiBUZXh0VHJhY2tDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJhY2tDbGllbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDIyNUMw
QjFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzA5MUM0NkZCRjQwMDE0MDc2
MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovOyB9OwogCQlDRDIyNUMwQzFDNDZGQkY0MDAx
NDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVO
U1VSTFNlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDRDI3QUU1MDIyQTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25W
VC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0FF
NEUyMkE5ODY4NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ5NzIsNiArMTQ5Nzgs
MTIgQEAKIAkJQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVyQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZG
T2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlRGVjb2RlckFWRk9iakMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJpdmF0ZUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxNTI3MDIzNjBF
MDA2MTdFQjYgLyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0QxRjlCMTcyNzAyM0EyOTAwNjE3RUI2IC8qIFZpZGVvVHJhY2tDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9UcmFja0NsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDFGOUIxOTI3MDIzQTc2MDA2MTdFQjYg
LyogQXVkaW9UcmFja0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAv
KiBUcmFja1ByaXZhdGVCYXNlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0QxRjlCMjAyNzAyNTY1RTAwNjE3RUI2IC8qIFRleHRUcmFja0NsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUZXh0VHJhY2tDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlTlNVUkxTZXNzaW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDIyNUMwQTFDNDZGQkY0MDAxNDA3NjEg
LyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb3JlTlNVUkxTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
MjdBRTRFMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFnZVJvdGF0aW9uU2Vzc2lvblZULmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEltYWdlUm90YXRpb25TZXNzaW9uVlQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI2MjgwLDYgKzI2MjkyLDcgQEAKIAkJCQlCRTg4RTBDQzE3MTVEMkEyMDA2NThE
OTggLyogQXVkaW9UcmFjay5jcHAgKi8sCiAJCQkJQkU4OEUwQ0QxNzE1RDJBMjAwNjU4RDk4IC8q
IEF1ZGlvVHJhY2suaCAqLywKIAkJCQlCRTg4RTBDRTE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9U
cmFjay5pZGwgKi8sCisJCQkJQ0QxRjlCMTkyNzAyM0E3NjAwNjE3RUI2IC8qIEF1ZGlvVHJhY2tD
bGllbnQuaCAqLywKIAkJCQlCRTg4RTBDRjE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFja0xp
c3QuY3BwICovLAogCQkJCUJFODhFMEQwMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlz
dC5oICovLAogCQkJCUJFODhFMEQxMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrTGlzdC5p
ZGwgKi8sCkBAIC0yNjMwMSw2ICsyNjMxNCw3IEBACiAJCQkJOTc1OUU5MzUxNEVGMUNGODAwMjZB
MkREIC8qIFRleHRUcmFjay5jcHAgKi8sCiAJCQkJOTc1OUU5MzYxNEVGMUNGODAwMjZBMkREIC8q
IFRleHRUcmFjay5oICovLAogCQkJCTk3NTlFOTM3MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJh
Y2suaWRsICovLAorCQkJCUNEMUY5QjIwMjcwMjU2NUUwMDYxN0VCNiAvKiBUZXh0VHJhY2tDbGll
bnQuaCAqLywKIAkJCQk5NzU5RTkzODE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3VlLmNw
cCAqLywKIAkJCQk5NzU5RTkzOTE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNrQ3VlLmggKi8s
CiAJCQkJOTc1OUU5M0ExNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZS5pZGwgKi8sCkBA
IC0yNjMyMyw2ICsyNjMzNyw3IEBACiAJCQkJQkU4OEUwRDIxNzE1RDJBMjAwNjU4RDk4IC8qIFZp
ZGVvVHJhY2suY3BwICovLAogCQkJCUJFODhFMEQzMTcxNUQyQTIwMDY1OEQ5OCAvKiBWaWRlb1Ry
YWNrLmggKi8sCiAJCQkJQkU4OEUwRDQxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2suaWRs
ICovLAorCQkJCUNEMUY5QjE3MjcwMjNBMjkwMDYxN0VCNiAvKiBWaWRlb1RyYWNrQ2xpZW50Lmgg
Ki8sCiAJCQkJQkU4OEUwRDUxNzE1RDJBMjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmNwcCAq
LywKIAkJCQlCRTg4RTBENjE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaCAqLywK
IAkJCQlCRTg4RTBENzE3MTVEMkEyMDA2NThEOTggLyogVmlkZW9UcmFja0xpc3QuaWRsICovLApA
QCAtMjY5MjEsNiArMjY5MzYsNyBAQAogCQkJCTBGN0U0NzUxMjVFRUI3OUEwMDEzRjkwOSAvKiBB
bmltYXRpb25GcmFtZVJhdGUuY3BwICovLAogCQkJCTcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAv
KiBBbmltYXRpb25GcmFtZVJhdGUuaCAqLywKIAkJCQlCRUYyOUVFOTE3MTVERDA5MDBDNEI0Qzkg
LyogQXVkaW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDFGOUIxNTI3MDIzNjBFMDA2MTdFQjYg
LyogQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkyREQ4NzE0NzI2NUY0MzY0MDA1
Rjk5N0MgLyogQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dC5jcHAgKi8sCiAJCQkJMkREODcxNDky
NjVGNDM2NTAwNUY5OTdDIC8qIEJpZnVyY2F0ZWRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQlB
ODk5NDMyNzBCNDIzMzg3MDBEN0M4MDIgLyogQml0bWFwSW1hZ2UuY3BwICovLApAQCAtMjcxNzAs
MTIgKzI3MTg2LDE0IEBACiAJCQkJMUFGODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFj
a2luZy5oICovLAogCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVC
YXNlLmNwcCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRl
QmFzZS5oICovLAorCQkJCUNEMUY5QjFCMjcwMjRCQzEwMDYxN0VCNiAvKiBUcmFja1ByaXZhdGVC
YXNlQ2xpZW50LmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8qIFVuaXRCZXpp
ZXIuaCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNw
cCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8s
CiAJCQkJMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi8s
CiAJCQkJMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0
cmljcy5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJp
dmF0ZS5oICovLAorCQkJCUNEMUY5QjEyMjcwMjM1RjcwMDYxN0VCNiAvKiBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudC5oICovLAogCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXMuY3BwICovLAogCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRp
ZXMuaCAqLywKIAkJCQkxNDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICov
LApAQCAtMzE1MTEsMTEgKzMxNTI5LDEzIEBACiAJCQkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2
IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzAwNUY5RDI0
RUIxRDQwMDA0ODBGOUIgLyogQXVkaW9UaW1lc3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJF
ODhFMEQ5MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDRDFGOUIxQTI3MDIzQTc2MDA2MTdFQjYgLyogQXVkaW9UcmFja0NsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkU4OEUwREMxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2tMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDhCNUE0QzE4MEUxN0MwMDA4QjhFNjUgLyogQXVkaW9UcmFj
a01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRUYyOUVFQjE3MTVERDA5MDBDNEI0
QzkgLyogQXVkaW9UcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERTNBODU0MTdG
NUZDRTYwMEM1QkUyMCAvKiBBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RFM0E4NTgxN0Y2MDIwNDAwQzVCRTIwIC8qIEF1ZGlvVHJhY2tQcml2YXRlQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMTYyNzAyMzYwRjAwNjE3RUI2IC8qIEF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDU0QTc2MzE4MEY5RjcwMDBC
MDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3RDZBNEY4MUJGMjMwN0QwMDE3NDE0NiAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA4QjEyQjAyNkY3MDBDMUEzNTkg
LyogQXVkaW9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1NTUsNiArMzU1NzUsNyBA
QAogCQkJCUE4MjRCNDY1MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NDhCMUI3QTBGM0EyRjlCMDA0N0E5RTIgLyogVGV4dFNpemVBZGp1c3RtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0MDE0RUYxQ0Y4MDAyNkEyREQgLyogVGV4dFRyYWNr
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIyMTI3MDI1NjVFMDA2MTdFQjYgLyogVGV4dFRy
YWNrQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzU5RTk0MzE0RUYxQ0Y4MDAyNkEyREQg
LyogVGV4dFRyYWNrQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzFBOUVDMzE2OEZCQzU1MDAy
NjI5RjkgLyogVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1OUU5
NDYxNEVGMUNGODAwMjZBMkREIC8qIFRleHRUcmFja0N1ZUxpc3QuaCBpbiBIZWFkZXJzICovLApA
QCAtMzU2MDAsNiArMzU2MjEsNyBAQAogCQkJCTA3MDMzNEQ3MTQ1OUZGRDUwMDhEOEQ0NSAvKiBU
cmFja0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMEMyMTcxNUNFMjYwMDY1OEQ5OCAv
KiBUcmFja0xpc3RCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTkxM0Q4MDE4MUVGOTI0MDBE
Q0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlCMUMy
NzAyNEJDMjAwNjE3RUI2IC8qIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZGQUMzMEZFMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09iamVjdHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNjA3MTMyMUJEODMwOEIwMERCQzRGMiAvKiBUcmFuc2FjdGlvbk9w
ZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGNDEyNTc5OUZEOTAwNjU2M0JCIC8q
IFRyYW5zZmVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzU2OTMsMTEgKzM1NzE1LDEz
IEBACiAJCQkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREM5MzlBODFFOUJERkIxMDBCQjc2OEQgLyogVmlkZW9Ub29sYm94U29m
dExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFODhFMERGMTcxNUQyQTIwMDY1OEQ5OCAvKiBW
aWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDFGOUIxODI3MDIzQTJBMDA2MTdFQjYg
LyogVmlkZW9UcmFja0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4OEUwRTIxNzE1RDJB
MjAwNjU4RDk4IC8qIFZpZGVvVHJhY2tMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDhCNUE0
NjE4MERGRjRFMDA4QjhFNjUgLyogVmlkZW9UcmFja01lZGlhU291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCRUYyOUVFQzE3MTVERDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMzM2RjY0MTdGQTBBNEQwMERERENEMCAvKiBWaWRlb1RyYWNr
UHJpdmF0ZUFWRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZGNjgxN0ZBMEFDNjAwREREQ0Qw
IC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QxRjlC
MTQyNzAyMzVGNzAwNjE3RUI2IC8qIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRDhCNUE0MzE4MEQxNDlBMDA4QjhFNjUgLyogVmlkZW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MEU4MUQxMUJGMjc2NTYw
MDFGREE0OCAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRUY0MThDRjExNzk2NzhDMDA5RDExMkMgLyogVmlld3BvcnRBcmd1bWVudHMuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFu
aW1hdGlvbi5jcHAKaW5kZXggY2JlNTNiYjU0Mzg5NjY2ZDJmZGFkNDIyN2YyOTY0ZTQ5ZDU4NWVh
Ny4uNzIzNGZlZDE5Y2ZjOGI2YTk4ZTcxMjhkYjE5MGY1NzZlZjdjMzRmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0zMTUs
OSArMzE1LDkgQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVyYXRpb25zIGJsZW5kRmlsdGVyT3Bl
cmF0aW9ucyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm8KICAgICBzaXplX3QgdG9TaXplID0g
dG8ub3BlcmF0aW9ucygpLnNpemUoKTsKICAgICBzaXplX3Qgc2l6ZSA9IHN0ZDo6bWF4KGZyb21T
aXplLCB0b1NpemUpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0g
ICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21PcCA9IChpIDwgZnJvbVNpemUpID8g
ZnJvbS5vcGVyYXRpb25zKClbaV0uZ2V0KCkgOiAwOwotICAgICAgICBSZWZQdHI8RmlsdGVyT3Bl
cmF0aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3BlcmF0aW9ucygpW2ldLmdldCgpIDog
MDsKLSAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRlZE9wID0gdG9PcCA/IGJs
ZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCksIGNvbnRleHQpIDogKGZyb21PcCA/IGJs
ZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQsIHRydWUpIDogMCk7CisgICAgICAgIFJl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZyb21PcCA9IChpIDwgZnJvbVNpemUpID8gZnJvbS5vcGVy
YXRpb25zKClbaV0uZ2V0KCkgOiBudWxscHRyOworICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0
aW9uPiB0b09wID0gKGkgPCB0b1NpemUpID8gdG8ub3BlcmF0aW9ucygpW2ldLmdldCgpIDogbnVs
bHB0cjsKKyAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRlZE9wID0gdG9PcCA/
IGJsZW5kRnVuYyhmcm9tT3AuZ2V0KCksIHRvT3AuZ2V0KCksIGNvbnRleHQpIDogKGZyb21PcCA/
IGJsZW5kRnVuYygwLCBmcm9tT3AuZ2V0KCksIGNvbnRleHQsIHRydWUpIDogbnVsbHB0cik7CiAg
ICAgICAgIGlmIChibGVuZGVkT3ApCiAgICAgICAgICAgICByZXN1bHQub3BlcmF0aW9ucygpLmFw
cGVuZChibGVuZGVkT3ApOwogICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggMmRmMGM0ZjViM2FiZTMyMTYwYTcw
MjJjZjFmODkzYzVjMWYxNjVkNi4uNWIyYmZkN2ZmNjEwYmIwOGMxYjc0NGRlZWMzNmZjY2FiNzgz
NzgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ci5jcHAKQEAgLTI2NzEsOCArMjY3MSw4IEBAIHN0YXRpYyBSZWZQdHI8Q1NTQmFzaWNTaGFwZUlu
c2V0PiBjb25zdW1lQmFzaWNTaGFwZUluc2V0KENTU1BhcnNlclRva2VuUmFuZ2UmIGFyCiAgICAg
ICAgIHNoYXBlLT51cGRhdGVTaGFwZVNpemUxVmFsdWUodG9wLnJlbGVhc2VOb25OdWxsKCkpOwog
CiAgICAgaWYgKGNvbnN1bWVJZGVudDxDU1NWYWx1ZVJvdW5kPihhcmdzKSkgewotICAgICAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGhvcml6b250YWxSYWRpaVs0XSA9IHsgMCB9OwotICAg
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHZlcnRpY2FsUmFkaWlbNF0gPSB7IDAgfTsK
KyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBob3Jpem9udGFsUmFkaWlbNF0gPSB7
IG51bGxwdHIgfTsKKyAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2ZXJ0aWNhbFJh
ZGlpWzRdID0geyBudWxscHRyIH07CiAgICAgICAgIGlmICghY29uc3VtZVJhZGlpKGhvcml6b250
YWxSYWRpaSwgdmVydGljYWxSYWRpaSwgYXJncywgY29udGV4dC5tb2RlLCBmYWxzZSkpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgc2hhcGUtPnNldFRvcExlZnRSYWRpdXMo
Y3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKGhvcml6b250YWxSYWRpaVswXS5yZWxlYXNlTm9uTnVs
bCgpLCB2ZXJ0aWNhbFJhZGlpWzBdLnJlbGVhc2VOb25OdWxsKCksIFBhaXI6OklkZW50aWNhbFZh
bHVlRW5jb2Rpbmc6OkNvYWxlc2NlKSk7CkBAIC0yODgxLDcgKzI4ODEsNyBAQCBzdGF0aWMgUmVm
UHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VSZXBlYXQoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UpCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VTbGlj
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkKIHsK
ICAgICBib29sIGZpbGwgPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVGaWxsPihyYW5nZSk7Ci0gICAg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzbGljZXNbNF0gPSB7IDAgfTsKKyAgICBSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IHNsaWNlc1s0XSA9IHsgbnVsbHB0ciB9OwogCiAgICAgZm9yIChz
aXplX3QgaW5kZXggPSAwOyBpbmRleCA8IDQ7ICsraW5kZXgpIHsKICAgICAgICAgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZSA9IGNvbnN1bWVQZXJjZW50KHJhbmdlLCBWYWx1ZVJhbmdl
OjpOb25OZWdhdGl2ZSk7CkBAIC0yOTE4LDcgKzI5MTgsNyBAQCBzdGF0aWMgUmVmUHRyPENTU1Zh
bHVlPiBjb25zdW1lQm9yZGVySW1hZ2VTbGljZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NQ
YXJzZQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQm9yZGVySW1hZ2VPdXRzZXQo
Q1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBvdXRzZXRzWzRdID0geyAwIH07CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBv
dXRzZXRzWzRdID0geyBudWxscHRyIH07CiAKICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHZhbHVlOwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCA0OyArK2luZGV4KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggY2YwM2I4ZDU0NzlmMGY5ODY1Y2JlZGYyZTM5OTcx
Y2ZhZmY3N2ZhMC4uODM1NGYzMDZhN2RlMGI0NWIxYzJkN2VhOWIyNTJhZGFmODk2NzI1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjk5NSwxMiArMjk5NSwxMiBAQCBSZWZQdHI8QXR0cj4g
RWxlbWVudDo6Z2V0QXR0cmlidXRlTm9kZShjb25zdCBBdG9tU3RyaW5nJiBxdWFsaWZpZWROYW1l
KQogUmVmUHRyPEF0dHI+IEVsZW1lbnQ6OmdldEF0dHJpYnV0ZU5vZGVOUyhjb25zdCBBdG9tU3Ry
aW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21TdHJpbmcmIGxvY2FsTmFtZSkKIHsKICAgICBp
ZiAoIWVsZW1lbnREYXRhKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBRdWFsaWZpZWROYW1lIHFOYW1lKG51bGxBdG9tKCksIGxvY2FsTmFtZSwgbmFt
ZXNwYWNlVVJJKTsKICAgICBzeW5jaHJvbml6ZUF0dHJpYnV0ZShxTmFtZSk7CiAgICAgY29uc3Qg
QXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBlbGVtZW50RGF0YSgpLT5maW5kQXR0cmlidXRlQnlOYW1l
KHFOYW1lKTsKICAgICBpZiAoIWF0dHJpYnV0ZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBlbnN1cmVBdHRyKGF0dHJpYnV0ZS0+bmFtZSgp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CmluZGV4IDU1YjZkMzhlOTQ5YmQ0YTEyNTQ4YmVhYzEzY2U1YWE5ZjE2NTY3OTguLmJiNGJjMTM2
ZjdmMWE0YjlkNDVlOTZlNjAyZGM3YzMwM2YyZTlmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydFVuaGFuZGxlZFByb21pc2VSZWplY3Rpb24oSlND
OjpKU0dsb2JhbE9iamVjdAogCiB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpKU0dsb2JhbE9iamVjdCogc3RhdGUs
IHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCiB7Ci0gICAgYWRkTWVzc2FnZShzb3Vy
Y2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
MCwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2
ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBudWxscHRy
LCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBib29sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBK
U0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RleHRFdmVudC5jcHAKaW5kZXggZDY4ODkwYjgzYjgzMjkwOWVmMWFmZmJhOGE5NzA1
MWMzOTBmYTU2OS4uMjU1M2EwYzczMmRkMjkyOTQzYmI3MzFlNzk3NDFlMTBhNmY2NDAwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RleHRFdmVudC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFRleHRFdmVudD4g
VGV4dEV2ZW50OjpjcmVhdGUoUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IFN0cmlu
ZyYgZGF0YSwKIAogUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQ
YXN0ZShSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgY29uc3QgU3RyaW5nJiBkYXRhLCBib29s
IHNob3VsZFNtYXJ0UmVwbGFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0RXZl
bnQoV1RGTW92ZSh2aWV3KSwgZGF0YSwgMCwgc2hvdWxkU21hcnRSZXBsYWNlLCBmYWxzZSwgTWFp
bEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0RXZlbnQoV1RGTW92ZSh2aWV3KSwgZGF0YSwgbnVsbHB0ciwgc2hvdWxk
U21hcnRSZXBsYWNlLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2Nr
cXVvdGUpKTsKIH0KIAogUmVmPFRleHRFdmVudD4gVGV4dEV2ZW50OjpjcmVhdGVGb3JGcmFnbWVu
dFBhc3RlKFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4mJiBkYXRhLCBib29sIHNob3VsZFNtYXJ0UmVwbGFjZSwgYm9vbCBzaG91bGRNYXRjaFN0eWxl
LCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCmluZGV4IDg4MzczY2I0ZDYz
MmYzYTk2MmQ3NTdlZDE3Y2M0ZDZhOWFjNmFmN2UuLjNiNTFiNmFiYzQxNjA5YmEwYmMzNzUzZWY3
OGIyZGM0NmU0MDFhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENv
bW1hbmQuY3BwCkBAIC0zNjQsNyArMzY0LDcgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBJbnNlcnRM
aXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIG8KICAg
ICBWaXNpYmxlUG9zaXRpb24gZW5kID0gZW5kT2ZQYXJhZ3JhcGgoc3RhcnQsIENhblNraXBPdmVy
RWRpdGluZ0JvdW5kYXJ5KTsKICAgICAKICAgICBpZiAoc3RhcnQuaXNOdWxsKCkgfHwgZW5kLmlz
TnVsbCgpIHx8ICFzdGFydC5kZWVwRXF1aXZhbGVudCgpLmNvbnRhaW5lck5vZGUoKS0+aGFzRWRp
dGFibGVTdHlsZSgpIHx8ICFlbmQuZGVlcEVxdWl2YWxlbnQoKS5jb250YWluZXJOb2RlKCktPmhh
c0VkaXRhYmxlU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgLy8gQ2hlY2sgZm9yIGFkam9pbmluZyBsaXN0cy4KICAgICBhdXRvIGxpc3RJ
dGVtRWxlbWVudCA9IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKQEAgLTQwNSw3
ICs0MDUsNyBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2VydExpc3RDb21tYW5kOjpsaXN0aWZ5
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwogICAgICAgICAgICAgaW5zZXJ0aW9u
UG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUobGlzdENoaWxkLmdldCgpKTsKIAogICAg
ICAgICBpZiAoIWlzRWRpdGFibGVQb3NpdGlvbihpbnNlcnRpb25Qb3MpKQotICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBpbnNlcnRO
b2RlQXQoKmxpc3RFbGVtZW50LCBpbnNlcnRpb25Qb3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAyOGM5NzEyYWFmNzk0ZTYzZDJhOGEwN2IwYTA4Yzkw
Mjc3ZDJmYWJkLi4yOTM3OWIyMGY1OTFmZmVmMGJkNTU3YzgwOGQ4YjQ5NDBhYWE1YTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJBdHRyaWJ1
dGUuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIKICNpbmNs
dWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCkBAIC02OCw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU0hUTUxNZWRpYUVsZW1lbnQuaCIKICNp
bmNsdWRlICJKU01lZGlhQ29udHJvbHNIb3N0LmgiCisjaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJh
Y2suaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlci5oIgpAQCAtODcsNiArODksNyBAQAogI2luY2x1
ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBpY3R1cmVJblBpY3R1cmVTdXBwb3J0LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJR
dWlya3MuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTExLDcgKzExNCw5
IEBACiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVXNlckdl
c3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJWaWRlb1BsYXliYWNrUXVhbGl0eS5oIgorI2lu
Y2x1ZGUgIlZpZGVvVHJhY2suaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrTGlzdC5oIgorI2luY2x1
ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhBcnJheS5oPgogI2luY2x1
ZGUgPGxpbWl0cz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYWQw
OWU3YmUxZTIzMGRmZTZiYzc5OTViNWY1M2Q3NTc0Yzg4MWIzZi4uNDJkZGFjNzEyM2I5ZTFjZThl
NGFiNGRhNzAxOWRmODhkMTU2OGY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCisjaW5jbHVkZSAiQXVk
aW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIkF1dG9wbGF5RXZlbnQuaCIKICNpbmNsdWRlICJD
YXB0aW9uVXNlclByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKQEAgLTM5
LDggKzM5LDggQEAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJv
ZHVjZXIuaCIKICNpbmNsdWRlICJNZWRpYVVuaXF1ZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJU
ZXh0VHJhY2suaCIKLSNpbmNsdWRlICJWaWRlb1RyYWNrLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNr
Q2xpZW50LmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlZpc2li
aWxpdHlDaGFuZ2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcAppbmRleCAwZjlmNDNiMDQ4ZjRlZDQxMTA5MjAxYmYzNTNkNThlYWE0NTIzMzcxLi5jMmQw
MzUzZWI4NzFjNTRkYTI5NmJlMjU5YzAwMzYxZmVkYmUyYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpAQCAtNjAsMTcgKzYxLDE3IEBAIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9n
Z2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxU
cmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBBY3RpdmVE
T01PYmplY3QoZG9jdW1lbnQpCisgICAgLCBtX3RyYWNrKExvYWRhYmxlVGV4dFRyYWNrOjpjcmVh
dGUoKnRoaXMsIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oa2luZEF0dHIpLmNvbnZl
cnRUb0FTQ0lJTG93ZXJjYXNlKCksIGxhYmVsKCksIHNyY2xhbmcoKSkpCiB7CisgICAgbV90cmFj
ay0+YWRkQ2xpZW50KCp0aGlzKTsKICAgICBMT0coTWVkaWEsICJIVE1MVHJhY2tFbGVtZW50OjpI
VE1MVHJhY2tFbGVtZW50IC0gJXAiLCB0aGlzKTsKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0cmFj
a1RhZykpOwogfQogCiBIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNrRWxlbWVudCgpCiB7Ci0g
ICAgaWYgKG1fdHJhY2spIHsKLSAgICAgICAgbV90cmFjay0+Y2xlYXJFbGVtZW50KCk7Ci0gICAg
ICAgIG1fdHJhY2stPmNsZWFyQ2xpZW50KCp0aGlzKTsKLSAgICB9CisgICAgbV90cmFjay0+Y2xl
YXJFbGVtZW50KCk7CisgICAgbV90cmFjay0+Y2xlYXJDbGllbnQoKnRoaXMpOwogfQogCiBSZWY8
SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTE0MiwyMSArMTQzLDkgQEAg
Ym9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc0RlZmF1bHQoKSBjb25zdAogICAgIHJldHVybiBoYXNB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRlZmF1bHRBdHRyKTsKIH0KIAotTG9hZGFi
bGVUZXh0VHJhY2smIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkKK1RleHRUcmFjayYgSFRNTFRy
YWNrRWxlbWVudDo6dHJhY2soKQogewotICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBubyBwcmFjdGlj
YWwgdmFsdWUgaW4gbGF6aWx5IGluaXRpYWxpemluZyB0aGlzLgotICAgIC8vIEluc3RlYWQgdGhp
cyBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgY29uc3RydWN0b3IuCi0gICAgaWYgKCFtX3RyYWNr
KSB7Ci0gICAgICAgIC8vIFRoZSBraW5kIGF0dHJpYnV0ZSBpcyBhbiBlbnVtZXJhdGVkIGF0dHJp
YnV0ZSwgbGltaXRlZCBvbmx5IHRvIGtub3duIHZhbHVlcy4gSXQgZGVmYXVsdHMgdG8gJ3N1YnRp
dGxlcycgaWYgbWlzc2luZyBvciBpbnZhbGlkLgotICAgICAgICBTdHJpbmcga2luZCA9IGF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oa2luZEF0dHIpLmNvbnZlcnRUb0FTQ0lJTG93ZXJj
YXNlKCk7Ci0gICAgICAgIGlmICghVGV4dFRyYWNrOjppc1ZhbGlkS2luZEtleXdvcmQoa2luZCkp
Ci0gICAgICAgICAgICBraW5kID0gVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCk7Ci0gICAg
ICAgIG1fdHJhY2sgPSBMb2FkYWJsZVRleHRUcmFjazo6Y3JlYXRlKCp0aGlzLCBraW5kLCBsYWJl
bCgpLCBzcmNsYW5nKCkpOwotICAgICAgICBtX3RyYWNrLT5hZGRDbGllbnQoKnRoaXMpOwotICAg
IH0KLSAgICBBU1NFUlQobV90cmFjay0+dHJhY2tFbGVtZW50KCkgPT0gdGhpcyk7Ci0KLSAgICBy
ZXR1cm4gKm1fdHJhY2s7CisgICAgcmV0dXJuIG1fdHJhY2s7CiB9CiAKIGJvb2wgSFRNTFRyYWNr
RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0
CkBAIC0yMDYsNyArMTk1LDcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzY2hlZHVsZUxvYWQo
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdHJhY2soKS5zY2hl
ZHVsZUxvYWQodHJhY2tVUkwpOworICAgICAgICBtX3RyYWNrLT5zY2hlZHVsZUxvYWQodHJhY2tV
UkwpOwogICAgIH0pOwogfQogCkBAIC0yODMsMTMgKzI3MiwxMSBAQCB2b2lkIEhUTUxUcmFja0Vs
ZW1lbnQ6OnNldFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSBzdGF0ZSkKIHsKICAgICB0cmFjaygpLnNl
dFJlYWRpbmVzc1N0YXRlKHN0YXRpY19jYXN0PFRleHRUcmFjazo6UmVhZGluZXNzU3RhdGU+KHN0
YXRlKSk7CiAgICAgaWYgKGF1dG8gcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCi0gICAgICAgIHBh
cmVudC0+dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQobV90cmFjay5nZXQoKSk7CisgICAgICAg
IHBhcmVudC0+dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQobV90cmFjay5wdHIoKSk7CiB9CiAK
IEhUTUxUcmFja0VsZW1lbnQ6OlJlYWR5U3RhdGUgSFRNTFRyYWNrRWxlbWVudDo6cmVhZHlTdGF0
ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3RyYWNrKQotICAgICAgICByZXR1cm4gSFRNTFRyYWNr
RWxlbWVudDo6Tk9ORTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVhZHlTdGF0ZT4obV90cmFj
ay0+cmVhZGluZXNzU3RhdGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmgKaW5kZXggYjg2MmQ0OWE0YTkyYzMzNjczNTU4OTFjYjY0Njg1ZTY4MDE1ZTYwMi4uM2Y0
NGUwYThlMTRhMWM3ZTVkZGZjMGFmODk1ZmEwYjQxNDdmNTYwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTMwLDExICszMCwxMiBAQAogCiAjaW5jbHVkZSAiQWN0
aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKLSNpbmNsdWRlICJMb2Fk
YWJsZVRleHRUcmFjay5oIgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CitjbGFzcyBMb2FkYWJsZVRl
eHRUcmFjazsKIAogY2xhc3MgSFRNTFRyYWNrRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxl
bWVudCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIFRleHRUcmFja0NsaWVudCB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MVHJhY2tFbGVtZW50KTsKQEAgLTUyLDcgKzUz
LDcgQEAgcHVibGljOgogICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwogICAgIHZv
aWQgc2V0UmVhZHlTdGF0ZShSZWFkeVN0YXRlKTsKIAotICAgIExvYWRhYmxlVGV4dFRyYWNrJiB0
cmFjaygpOworICAgIFRleHRUcmFjayYgdHJhY2soKTsKIAogICAgIHZvaWQgc2NoZWR1bGVMb2Fk
KCk7CiAKQEAgLTg3LDcgKzg4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuTG9hZFVSTChj
b25zdCBVUkwmKTsKIAotICAgIFJlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gbV90cmFjazsKKyAg
ICBSZWY8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiAgICAgYm9vbCBtX2xvYWRQZW5kaW5n
IHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzUmVsZXZhbnRMb2FkRXZlbnRzTGlzdGVuZXIgeyBm
YWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4
IDNjYjcxOGQzZGMyN2U1ODNiNWE1ZGYxMDkzYTAzNjUyN2MwMmVjYjUuLjEyYjFmY2M1Nzc2ZTA2
Y2ZlOGRkZmE5MmM3M2M3NzIwZmI5M2RmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmNwcApAQCAtMzEsMTAgKzMxLDEyIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKIAog
I2lmIEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIkF1ZGlvVHJhY2tDbGllbnQuaCIKKyNpbmNs
dWRlICJBdWRpb1RyYWNrTGlzdC5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTgwLDEzICs4MiwxMyBAQCBBdWRpb1RyYWNrOjpBdWRpb1RyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjawogICAgICwgbV9wcml2YXRl
KHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZhdGUuZW5hYmxlZCgpKQog
ewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KCp0aGlzKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIAogQXVkaW9UcmFj
azo6fkF1ZGlvVHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwor
ICAgIG1fcHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogdm9pZCBBdWRpb1RyYWNrOjpzZXRQ
cml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCkBAIC05NCwxMCArOTYsMTAg
QEAgdm9pZCBBdWRpb1RyYWNrOjpzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1By
aXZhdGUpCiAgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3By
aXZhdGUtPmNsZWFyQ2xpZW50KCk7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOwogICAg
IG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICBtX3ByaXZhdGUtPnNldExvZ2dlcihsb2dnZXIoKSwgbG9nSWRl
bnRpZmllcigpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApp
bmRleCAzNzUxMGE4Y2QyZjhmNDAxNTM1ODkyNWRmOTlkYWVjOThmMTk2MDVjLi5hMzM3NzA1Mzg5
ZTk4NjJiYmY4Y2ZmMTRjY2VjYzhmOTQ2YjFmMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0F1ZGlvVHJhY2suaApAQCAtMjgsMjYgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAK
LSNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtI
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXVkaW9UcmFjazsKK2Ns
YXNzIEF1ZGlvVHJhY2tDbGllbnQ7CiBjbGFzcyBBdWRpb1RyYWNrTGlzdDsKIAotY2xhc3MgQXVk
aW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1RyYWNrQ2xpZW50PiB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0lkQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tLaW5kQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYWJlbENoYW5nZWQoQXVkaW9UcmFjayYpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYpIHsg
fQotfTsKLQogY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwg
cHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQXVk
aW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFja0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjN2RiNDQyNzA0MWZjNGMyMGMyODY2
MWZiM2YzMDExZTRjY2Y4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFja0NsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9UcmFjazsKKworY2xhc3Mg
QXVkaW9UcmFja0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1RyYWNrQ2xpZW50
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsK
KyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0lkQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tLaW5kQ2hhbmdlZChBdWRpb1RyYWNrJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tMYWJlbENoYW5nZWQoQXVkaW9UcmFjayYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKEF1ZGlvVHJhY2sm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYp
IHsgfQorfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kVGV4dFRyYWNrLmNwcAppbmRleCBjNmZlYTM1ZWQzOGIwNDg2MDNkMmNlODFkZmFiYjAyNjE4
ODQyMGVkLi5kNDU5NjlmYmZjNzdkZTk3ZTA3ZjdiYThkOTk3NmE4MjRlOGU3NGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC01OCwxMyAr
NTgsMTMgQEAgSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0VHJhY2soRG9jdW1lbnQmIGRvY3Vt
ZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmEKICAgICA6IFRleHRUcmFjaygmZG9jdW1l
bnQsIGVtcHR5QXRvbSgpLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCks
IHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpLCBJbkJhbmQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQ
cml2YXRlKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KCp0aGlzKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIAog
SW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPmNsZWFyQ2xpZW50KCk7CiB9CiAKIHZv
aWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKQEAgLTcyLDkgKzcyLDkgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFBy
aXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3By
aXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgp
OwogICAgIG1fcHJpdmF0ZSA9IHRyYWNrUHJpdmF0ZTsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVu
dCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAKICAgICBzZXRNb2Rl
SW50ZXJuYWwobW9kZSgpKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRleCAwYTY0N2MyYzQ1NjY1NDdlZmFlZmI0
NjYyNDUxMmYwNmZjMThhNmYyLi44NDljZDU5NGE3YjlhMzk4YjBjMzFmYTkwZmM2N2Q3ZjZkNjc2
YTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIlNvdXJjZUJ1ZmZlci5oIgorI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgogI2luY2x1
ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5j
bHVkZSAiVlRUUmVnaW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRl
eCA4YjMxNmU3YWRhNDljMzAyODk1MjQ1YjBhNzE4ZWNkNGQ4OTI5ZTJkLi45NDBjMDI0NjJlODY5
M2NiODg4OWQwMjdiNmM5YTg2ZWYyZTkwY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmgKQEAgLTM5LDI1ICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFRyYWNrOwogY2xhc3MgVGV4dFRyYWNr
TGlzdDsKK2NsYXNzIFRleHRUcmFja0NsaWVudDsKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3Q7CiBj
bGFzcyBWVFRSZWdpb247CiBjbGFzcyBWVFRSZWdpb25MaXN0OwogCi1jbGFzcyBUZXh0VHJhY2tD
bGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VGV4dFRyYWNrQ2xpZW50PiB7Ci1wdWJsaWM6
Ci0gICAgdmlydHVhbCB+VGV4dFRyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tJZENoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrTGFiZWxDaGFuZ2VkKFRleHRUcmFjayYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tMYW5ndWFnZUNoYW5nZWQoVGV4dFRyYWNrJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRl
eHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tS
ZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmVUZXh0VHJhY2soVGV4dFRyYWNrJikgeyB9Ci19OwotCiBjbGFzcyBUZXh0VHJh
Y2sgOiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChUZXh0
VHJhY2spOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzE4ZDAzN2RlZjc1OTRmZDAwYTUyYzgxYzkwMTQ5MGNkNzBlYTQz
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q2xpZW50LmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBUZXh0VHJhY2s7CitjbGFzcyBUZXh0VHJhY2tDdWU7CitjbGFz
cyBUZXh0VHJhY2tDdWVMaXN0OworCitjbGFzcyBUZXh0VHJhY2tDbGllbnQgOiBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8VGV4dFRyYWNrQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGV4
dFRyYWNrQ2xpZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tJZENo
YW5nZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0tpbmRDaGFu
Z2VkKFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2smKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTGFiZWxDaGFuZ2Vk
KFRleHRUcmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tMYW5ndWFnZUNoYW5n
ZWQoVGV4dFRyYWNrJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0
ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFj
a0N1ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNr
JiwgVGV4dFRyYWNrQ3VlJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVUZXh0VHJh
Y2soVGV4dFRyYWNrJikgeyB9Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggOTdmMDFhY2M2NTlhMGRjMGU1MWQwZWUxOGQwMzY0
MDM2MTlhY2Y0MC4uMjMwMTk3ZGQ1MTIxMmFhYzgwYWFhNTlkYjI2OGZlYTNlZjAyY2ExNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0zNCw3ICszNCw5IEBA
CiAKICNpZiBFTkFCTEUoVklERU8pCiAKKyNpbmNsdWRlICJWaWRlb1RyYWNrQ2xpZW50LmgiCiAj
aW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5o
IgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKQEAgLTg0LDEzICs4NiwxMyBAQCBWaWRlb1RyYWNrOjpWaWRlb1RyYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFjawogICAgICwg
bV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fc2VsZWN0ZWQodHJhY2tQcml2YXRlLnNl
bGVjdGVkKCkpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2
YXRlLT5zZXRDbGllbnQoKnRoaXMpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogfQog
CiBWaWRlb1RyYWNrOjp+VmlkZW9UcmFjaygpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
bnVsbHB0cik7CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiB2b2lkIFZpZGVv
VHJhY2s6OnNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKQEAgLTk4
LDkgKzEwMCw5IEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQogICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7
CisgICAgbV9wcml2YXRlLT5jbGVhckNsaWVudCgpOwogICAgIG1fcHJpdmF0ZSA9IHRyYWNrUHJp
dmF0ZTsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX3ByaXZhdGUtPnNl
dENsaWVudCgqdGhpcyk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgbV9wcml2YXRl
LT5zZXRMb2dnZXIobG9nZ2VyKCksIGxvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKaW5kZXggZWY4NDg4ZTdiNTk4MWYxMzE3MjJiZmJk
Njc2ZDZmNGIxNmRmNTFhNi4uOGQ2Zjg4Y2ZiZmU5MjIxMDVmMjA3MTFkNWI3ZWViMzY1ZWY5ZTZl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTI5LDI1ICsyOSwx
NiBAQAogI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1
ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNZWRpYURlc2NyaXB0aW9uOwogY2xhc3MgVmlkZW9UcmFjazsKK2NsYXNzIFZp
ZGVvVHJhY2tDbGllbnQ7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKLQotY2xhc3MgVmlkZW9UcmFj
a0NsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxWaWRlb1RyYWNrQ2xpZW50PiB7Ci1wdWJs
aWM6Ci0gICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpID0gZGVmYXVsdDsKLSAgICB2aXJ0
dWFsIHZvaWQgdmlkZW9UcmFja0lkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHZpZGVvVHJhY2tLaW5kQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHZpZGVvVHJhY2tMYWJlbENoYW5nZWQoVmlkZW9UcmFjayYpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCB2aWRlb1RyYWNrTGFuZ3VhZ2VDaGFuZ2VkKFZpZGVvVHJhY2smKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2smKSB7IH0KLX07
CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgVmlkZW9UcmFjayBmaW5hbCA6IHB1
YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAppbmRleCAyYzYw
YjJiMmU3MDY1MzM4OGQ5YTRlY2MwMDM5YTMyZjM2NjBiMmM4Li45OTEzNjczNjFlYWViMmZjZjQ5
NGFkMTlmZmQ3YTUwMDU0NWQwZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5pZGwKQEAgLTM0LDQgKzM0LDUgQEAKICAgICBbU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlPU1lZGlhU291cmNlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmd1YWdlOwogCiAgICAg
YXR0cmlidXRlIGJvb2xlYW4gc2VsZWN0ZWQ7CisKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFja0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NWM4NzZkN2Q3Yjk2NDc2M2U3
NzY0OGU5ZjM5ZGE1ZmExOWM4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2tDbGllbnQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFZpZGVvVHJhY2s7CisKK2Ns
YXNzIFZpZGVvVHJhY2tDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8VmlkZW9UcmFja0Ns
aWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQoKSA9IGRlZmF1
bHQ7CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tJZENoYW5nZWQoVmlkZW9UcmFjayYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrS2luZENoYW5nZWQoVmlkZW9UcmFjayYpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrTGFiZWxDaGFuZ2VkKFZpZGVvVHJhY2smKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja0xhbmd1YWdlQ2hhbmdlZChWaWRlb1RyYWNr
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9U
cmFjayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlVmlkZW9UcmFjayhWaWRlb1Ry
YWNrJikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDU1M2ExY2ZkNzllMjAx
OTM2NmYzZWMzNzBjODNjOTgzOGQzMTE5NzMuLmJlNWE3MGRlZWY0NzMxM2ZlYWI4YThmN2U0MDM0
YTAxODQxMTc3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3Bw
CkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb24KICAgICBpZiAoZG9j
dW1lbnQpCiAgICAgICAgIGRvY3VtZW50LT5nZXRQYXJzZXJMb2NhdGlvbih1cmwsIGxpbmUsIGNv
bHVtbik7CiAKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGlu
ZSwgY29sdW1uLCAwLCBKU0V4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIHJlcXVlc3RJZGVudGlm
aWVyKTsKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwg
Y29sdW1uLCBudWxscHRyLCBKU0V4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIHJlcXVlc3RJZGVu
dGlmaWVyKTsKIH0KIAogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFJlZjxTY3JpcHRDYWxsU3RhY2s+JiYgY2FsbFN0YWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKaW5kZXggOTA3ODRiZTQwMDZkZDAx
MGU4MTA3YTNiNDAzN2MwZGVjNDY0ZWQ4Zi4uNTY4MTUyODE3MmEyYjE0YzcwNTk2ZmQwMGFhYmMy
NzA3OTVhNWNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvQ0RNUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRt
ZWRpYS9DRE1Qcm94eS5oCkBAIC0zMiw3ICszMiw2IEBACiAKICNpbmNsdWRlICJDRE1JbnN0YW5j
ZS5oIgogI2luY2x1ZGUgIkNETUluc3RhbmNlU2Vzc2lvbi5oIgotI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9C
b3hQdHIuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CkBAIC00NCw2ICs0Myw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTWVkaWFQbGF5ZXI7CisKIHVzaW5nIEtleUlE
VHlwZSA9IFZlY3Rvcjx1aW50OF90PjsKIHVzaW5nIEtleUhhbmRsZVZhbHVlVmFyaWFudCA9IFZh
cmlhbnQ8CiAgICAgVmVjdG9yPHVpbnQ4X3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAppbmRleCBhOWY4MzZiZDExNzNlMjJl
MGFlODE0YTE3NTQyYWEyM2E0NjE1YTRlLi5jNTIyN2U1YzcwNDQxOTc3OGQ1YjI4YTY5MTFhMDQ5
Y2U3OTRiNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9B
dWRpb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0F1ZGlvVHJhY2tQcml2YXRlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIApAQCAtMzIsMTMgKzMzLDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKLQot
Y2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNs
aWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0g
MDsKLX07Ci0KIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJh
c2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgp
CkBAIC00Niw4ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QXVkaW9UcmFja1ByaXZhdGUpOwogICAgIH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KEF1ZGlvVHJh
Y2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLSAgICBBdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9j
bGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCYgY2xp
ZW50KSB7IG1fY2xpZW50ID0gbWFrZVdlYWtQdHIoY2xpZW50KTsgfQorICAgIHZvaWQgY2xlYXJD
bGllbnQoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQog
CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHsKQEAgLTc4
LDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0
OwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKKyAgICBXZWFrUHRyPEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50PiBtX2NsaWVudDsK
ICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgRW5hYmxlZENoYW5nZWRDYWxsYmFj
ayBtX2VuYWJsZWRDaGFuZ2VkQ2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGFlMjA0NTE3OWUxNzljOTM3ZGJmNjYzZTA3NWE5NDRlODM2ZGNkOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlQ2xpZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUNsaWVudC5oIgorCisjaWYgRU5BQkxFKFZJREVP
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOworCitj
bGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAw
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaAppbmRleCBjNmQwYTE5MmMyZjc1
NTQ1MmViNTU5ZTEzOWRiOTQyNzM2OGNmZDFiLi5mN2NmZjdkNWNjMzRiODU5NWVkNWVmN2E1YTE5
YzNlMGZiYjA4N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCkBAIC00MSw4ICs0MSw5IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IGNyZWF0ZShDdWVGb3Jt
YXQgZm9ybWF0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFRleHRUcmFja1ByaXZhdGUo
Zm9ybWF0KSk7IH0KICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlKCkgPSBkZWZh
dWx0OwogCi0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50
KEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVu
dDsgfQorICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENs
aWVudChJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50JiBjbGllbnQpIHsgbV9jbGllbnQgPSBt
YWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIHsgbV9jbGllbnQg
PSBudWxscHRyOyB9CiAKICAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50OF90IHsKICAgICAgICAg
RGlzYWJsZWQsCkBAIC04OCw3ICs4OSw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBD
dWVGb3JtYXQgbV9mb3JtYXQ7Ci0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogbV9j
bGllbnQgeyBudWxscHRyIH07CisgICAgV2Vha1B0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xp
ZW50PiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICAgICBNb2RlIG1fbW9kZSB7IE1vZGU6OkRpc2Fi
bGVkIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKaW5kZXggN2EzMjY1MDMzYjk0N2I1YmU2OGMwNjIzMDI2ZmYzMDEyOGM0Mjgx
OC4uMzdiNzZmZDQ0ZGNjNTQxNWU4ZWI5MzRlMTA0MWRjZmFlZDc5NmNhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzMsOSAr
MzMsMTMgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTE4
NSw4ICsxODksMTMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkNvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsQ29udGVudFR5cGVWZWN0b3IoKTsgfQotfTsK
IAorICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3Jl
YXRlUmVzb3VyY2VMb2FkZXIoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CisKKyNpZiBFTkFC
TEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1lZGlh
UGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWwgeyByZXR1
cm4gbnVsbHB0cjsgfQorI2VuZGlmCit9OwogCiBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBN
ZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoKSBjb25zdAogewpAQCAtNDEyLDYgKzQyMSw3IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXll
cihNZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoJmNsaWVudCkKICAg
ICAsIG1fcmVsb2FkVGltZXIoKnRoaXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJGaXJlZCkK
ICAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+KHRoaXMp
KQorICAgICwgbV9wcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKER5bmFtaWNSYW5nZU1vZGU6OlN0
YW5kYXJkKQogewogfQogCkBAIC00MjAsNiArNDMwLDcgQEAgTWVkaWFQbGF5ZXI6Ok1lZGlhUGxh
eWVyKE1lZGlhUGxheWVyQ2xpZW50JiBjbGllbnQsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW4KICAgICAsIG1fcmVsb2FkVGltZXIoKnRoaXMsICZNZWRpYVBsYXllcjo6cmVsb2FkVGltZXJG
aXJlZCkKICAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPE51bGxNZWRpYVBsYXllclByaXZhdGU+
KHRoaXMpKQogICAgICwgbV9hY3RpdmVFbmdpbmVJZGVudGlmaWVyKG1lZGlhRW5naW5lSWRlbnRp
ZmllcikKKyAgICAsIG1fcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZShEeW5hbWljUmFuZ2VNb2Rl
OjpTdGFuZGFyZCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKaW5kZXggZTBiODZkOGU2ZTZhOTlmNWIwNmI2YjZmY2E5YTI4NmQzYzQ0
Nzg5MC4uZTdmZGJhY2EwYjZkMzZiMzAzNGI4YzIxZTNmNTNmMTFmZGVjODI2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yNywyNCAr
MjcsMTcgQEAKIAogI2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2
YXRlLmgiCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNp
bmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCi0jaW5j
bHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJOYXRpdmVJbWFn
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgi
CisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDx3dGYvVVJM
Lmg+Ci0jaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9VaW50OEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CkBAIC01NiwxMCArNDksNiBAQAogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0jaWYgRU5B
QkxFKEFWRl9DQVBUSU9OUykKLSNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgotI2VuZGlm
Ci0KIE9CSkNfQ0xBU1MgQVZQbGF5ZXI7CiBPQkpDX0NMQVNTIE5TQXJyYXk7CiAKQEAgLTY5LDEz
ICs1OCwxOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgQXVkaW9TZXNzaW9uQ2F0ZWdvcnkg
OiB1aW50OF90OworZW51bSBjbGFzcyBEeW5hbWljUmFuZ2VNb2RlIDogdWludDhfdDsKKwogY2xh
c3MgQXVkaW9Tb3VyY2VQcm92aWRlcjsKK2NsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3Mg
Q0RNSW5zdGFuY2U7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTsKIGNsYXNzIExlZ2FjeUNETTsKK2NsYXNzIExlZ2FjeUNETVNlc3Npb247CiBjbGFz
cyBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNs
YXNzIE1lZGlhUGxheWVyOwpAQCAtODQsOCArNzgsMTIgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlOwogY2xhc3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVn
aW5zQ2FsbGJhY2s7CiBjbGFzcyBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ7CiBjbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7CitjbGFzcyBOYXRpdmVJbWFnZTsKK2NsYXNzIFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFBsYXRmb3JtVGV4dFRyYWNrOwogY2xhc3MgUGxhdGZvcm1U
aW1lUmFuZ2VzOwogY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb247CitjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZTsKIAogc3RydWN0IEdyYXBoaWNzRGV2aWNlQWRhcHRlcjsKIHN0cnVjdCBTZWN1
cml0eU9yaWdpbkRhdGE7CkBAIC0yMDMsNyArMjAxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICB2aXJ0dWFsIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8QXJyYXlCdWZmZXI+IG1l
ZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleU5lZWRlZChVaW50OEFycmF5KikgeyB9CiAgICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29u
c3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogI2VuZGlmCkBAIC0yMzAsNyArMjI4LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclBsYXRmb3JtVm9sdW1lQ29uZmln
dXJhdGlvblJlcXVpcmVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgbWVkaWFQbGF5ZXJJc0xvb3BpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgdmlydHVhbCBSZWZQdHI8UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqID0g
bnVsbHB0cikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQ
bGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIG1lZGlhUGxheWVyTWVkaWFDYWNoZURpcmVjdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KQEAgLTcxMyw3ICs3MTEsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zaG91bGRQcmVwYXJlVG9SZW5kZXIgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9jb250ZW50TUlNRVR5cGVXYXNJbmZlcnJlZEZyb21FeHRlbnNpb24geyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pbml0aWFsaXppbmdNZWRpYUVuZ2luZSB7IGZhbHNlIH07Ci0gICAgRHluYW1p
Y1JhbmdlTW9kZSBtX3ByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2Rl
OjpTdGFuZGFyZCB9OworICAgIER5bmFtaWNSYW5nZU1vZGUgbV9wcmVmZXJyZWREeW5hbWljUmFu
Z2VNb2RlOwogICAgIFBpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSBtX3BpdGNoQ29ycmVjdGlvbkFs
Z29yaXRobSB7IFBpdGNoQ29ycmVjdGlvbkFsZ29yaXRobTo6QmVzdEFsbEFyb3VuZCB9OwogCiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggODcxNjc1N2EwZDJlNTYxZWZm
ZWEwODk5MmVlN2E4NzAyYzdjYzM5Mi4uNzc5MTA5ODE1ZGE4ZjgwYmM5OWJhZmNmNjdiNzAyNDgz
ZWNlNjMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMwLDkgKzMwLDE0IEBACiAjaW5jbHVkZSAiQXVkaW9T
ZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCisj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCisjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vz
c2lvbi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlSW50ZXJmYWNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXggNGViNGU3MDYyMTEwZWZk
YTMxNGMwODMxMGFjNDQ0Mzk0MTZjYTI3Ni4uYTk0YjFjMTkzODg0OTFjMGM5MDk0OTczYWMzYWRi
ZDlhNGI5ODQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCiAKKyNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYURlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTYW1wbGUuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8
d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDI3OGYwYzZiNzJjMjg1
MDlkMzAyZjc3YjQ3ZDYxOTJhNzE5ZDAyODMuLjZkYmU0OTVlZmJiYWViMTJhMzQ0NmMyMWZmOWE5
NGUxZGU5NjgwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIEVOQUJMRShWSURF
TykKIAorI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYv
TG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzYsMTUgKzM3LDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgPSBkZWZhdWx0OwotICAgIHZpcnR1
YWwgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsUmVtb3ZlKCkgPSAwOwotfTsKLQogY2xhc3MgV0VCQ09SRV9FWFBPUlQgVHJhY2tQcml2
YXRlQmFzZQogICAgIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRyYWNrUHJpdmF0ZUJh
c2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1By
aXZhdGVCYXNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFj
a1ByaXZhdGVCYXNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2ZjRlZTlkMGNjMzVkNzc1NzYwOWNi
OTNjYmZiMTA5NDE2YTAwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2VDbGllbnQuaApAQCAtMCwwICsxLDQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVHJhY2tQcml2YXRlQmFzZUNsaWVudCA6IHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxUcmFja1ByaXZhdGVCYXNlQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
VHJhY2tQcml2YXRlQmFzZUNsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21TdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxhYmVsQ2hh
bmdlZChjb25zdCBBdG9tU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNo
YW5nZWQoY29uc3QgQXRvbVN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92
ZSgpID0gMDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAppbmRleCBlYTVhMjljZWI1Y2ZlOWYw
MjQyN2M1ZWFkZGMxNjQyNzRjYjZkNjA5Li4wOWZjZThiODVkZGQ0NjA5NDFiNDlmNzBhOTg0ZDY0
ZGVkNjgwMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZpZGVvVHJhY2tQcml2YXRlLmgKQEAgLTI4LDE5ICsyOCwxNiBAQAogI2lmIEVOQUJMRShWSURF
TykKIAogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKKyNpbmNsdWRlICJWaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNr
UHJpdmF0ZUJhc2VDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENo
YW5nZWQoYm9vbCkgPSAwOwotfTsKLQogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGUgOiBwdWJsaWMg
VHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQotICAgIFZpZGVv
VHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Ns
aWVudDsgfQorICAgIHZvaWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50JiBjbGll
bnQpIHsgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOyB9CisgICAgdm9pZCBjbGVhckNs
aWVudCgpIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAgVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCBzZWxlY3RlZCkKICAgICB7CkBAIC02
OCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKICAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVs
dDsKIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBu
dWxscHRyIH07CisgICAgV2Vha1B0cjxWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQg
eyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbGVjdGVkIHsgZmFsc2UgfTsKICAgICBTZWxlY3Rl
ZENoYW5nZWRDYWxsYmFjayBtX3NlbGVjdGVkQ2hhbmdlZENhbGxiYWNrOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NjYyOWE3YzFjM2VhNjg4ZWRhYjFhMmY0MDM0MDZiZWUy
ZGVlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9WaWRlb1RyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZUJhc2VDbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKK307CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggZmUzZTU1ZjVkYTAzZDFjZmI1NjQ0
MTg5ZjBiNTgxODhiNTU3ODAyZS4uOWE1NGEzMzcyMWUxMjA1MjJjMjM4ZmY3YWM0NThmNGQxZjBm
OWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMzkwLDcgKzM5MCw3IEBAIHByaXZhdGU6
CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiBQTEFURk9STShNQUMp
CiAgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4gbV9vdXRwdXRDb250ZXh0OwotICAgIFJl
ZlB0cjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBtX3BsYXliYWNrVGFyZ2V0IHsgbnVsbHB0ciB9Owor
ICAgIFJlZlB0cjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBtX3BsYXliYWNrVGFyZ2V0OwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IDBiNTVmMTQ4Yjc1MDk4NTFlYTNmMDNhMjRjMzQ4MmMwZDk1MTY3YWUuLjU4ODUy
ZTcwMDYxZThjZDA3NjFhNzM4NWU0NDdkZGM5MWI5NmQwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtNTMsNiArNTMsOSBAQAogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmgiCiAjaW1wb3J0ICJPdXRPZkJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAjaW1wb3J0ICJQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWLmgiCisjaW1wb3J0ICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVRl
eHRUcmFjay5oIgogI2ltcG9ydCAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJSdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5o
IgpAQCAtMTA2LDYgKzEwOSwxMCBAQAogI2ltcG9ydCAiVGV4dFRyYWNrLmgiCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCisjaW1wb3J0ICJNZWRpYVBsYXli
YWNrVGFyZ2V0LmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0
ICJBdWRpb1Nlc3Npb25JT1MuaCIKICNpbXBvcnQgIkxvY2FsaXplZERldmljZU1vZGVsLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0K
aW5kZXggZmQyZjBkM2VlNWQwOGRlMDgwMzZmYWJiMTVjMmEzNDUwNDI4YmEzYy4uZWIyNDM2NWM3
MWE3YjBhMmRiOWNmOGU1MzRiMjY4ZTc4ODJhOWYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNl
TG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQpAQCAtMzMsNiArMzMsNyBAQAog
I2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW1wb3J0ICJEYXRhVVJMRGVjb2Rl
ci5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgorI2lt
cG9ydCAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiVVRJVXRp
bGl0aWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcAppbmRleCBhMGJhZWRlODhhNzU1NjgxZWEyYTRhMTdiYTNlNmVkM2RmZGM3
ZDllLi45NzQ5NGVlNmM1YzhiNjk5MjM0ZWE3Yzk2NmRkZDFhYzZhYTQyNGU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgogI2luY2x1ZGUg
PHBhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5oPgogI2luY2x1ZGUgPHBhbC9hdmZvdW5k
YXRpb24vT3V0cHV0RGV2aWNlLmg+CisjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KIAogI2lu
Y2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhU291cmNlUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQ
cml2YXRlLmgKaW5kZXggYmY5ZmRlMWYzODE4YTAwMjIxZDI2ZDk2YTlhYWUyYThhZWY2NmQ4ZC4u
OTRmZjU4Y2JiOGFjMzdjNThhZDExNzQ1NDk5ZWE2OWNmYzg5MzVlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
TWVkaWFTb3VyY2VQcml2YXRlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlLmgiCisjaW5jbHVkZSA8d3Rm
L0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5jcHAKaW5kZXggOTYzMTdkYWQ2MmM0NTQ0NDc2ZTllMjA1ZTY3YmU0Y2YxMzJmZDAw
OC4uNjAwMGVkNDlhNDdhOTA2NDYwMjZkY2Y2YWU5YTJiMGZmZWRmZGQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0zMTAs
NyArMzEwLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0UmVwbGFjZW1lbnRUZXh0
R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWwKICAgICBmb250RGVzY3JpcHRpb24u
c2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncygpLmZvbnRSZW5kZXJpbmdNb2RlKCkpOwogICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoMTIpOwogICAgIGZvbnQgPSBGb250Q2FzY2Fk
ZShXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbiksIDAsIDApOwotICAgIGZvbnQudXBkYXRlKDApOwor
ICAgIGZvbnQudXBkYXRlKG51bGxwdHIpOwogCiAgICAgcnVuID0gVGV4dFJ1bihtX3VuYXZhaWxh
YmxlUGx1Z2luUmVwbGFjZW1lbnRUZXh0KTsKICAgICB0ZXh0V2lkdGggPSBmb250LndpZHRoKHJ1
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApp
bmRleCA4ZTJkY2IwMzUzZWQ5NGY2MGJkNGM0YWRjZWIzNTNjNjNjNzc3OTQwLi5mZTFkMGJlYjZl
OTI2YzI2YjNlMWEyYjU3ZTEwYTRkMjIwOTc1NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlclNlYXJjaEZpZWxkKTsKIFJlbmRlclNlYXJjaEZpZWxk
OjpSZW5kZXJTZWFyY2hGaWVsZChIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHls
ZSYmIHN0eWxlKQogICAgIDogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGVsZW1lbnQsIFdU
Rk1vdmUoc3R5bGUpKQogICAgICwgbV9zZWFyY2hQb3B1cElzVmlzaWJsZShmYWxzZSkKLSAgICAs
IG1fc2VhcmNoUG9wdXAoMCkKKyAgICAsIG1fc2VhcmNoUG9wdXAobnVsbHB0cikKIHsKICAgICBB
U1NFUlQoZWxlbWVudC5pc1NlYXJjaEZpZWxkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDFlZTcyMTQzZjkwNDJmMGY3MTdmZDI3MTg2NGZj
MTk1NGY0MzMzNWUuLmQzNWVkMTUyYzZlNzRiODE1ZGVlN2EyNTUwMjQ5OGUwNGNlZDhkNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTk2NSw3ICs5
NjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjpzZXRGb250RnJvbUNvbnRyb2xTaXplKFJlbmRl
clN0eWxlJiBzdHlsZSwgTlNDb250cm9sU2l6ZSBjbwogICAgIHN0eWxlLnNldExpbmVIZWlnaHQo
UmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lSGVpZ2h0KCkpOwogCiAgICAgaWYgKHN0eWxlLnNldEZv
bnREZXNjcmlwdGlvbihXVEZNb3ZlKGZvbnREZXNjcmlwdGlvbikpKQotICAgICAgICBzdHlsZS5m
b250Q2FzY2FkZSgpLnVwZGF0ZSgwKTsKKyAgICAgICAgc3R5bGUuZm9udENhc2NhZGUoKS51cGRh
dGUobnVsbHB0cik7CiB9CiAKIE5TQ29udHJvbFNpemUgUmVuZGVyVGhlbWVNYWM6OmNvbnRyb2xT
aXplRm9yU3lzdGVtRm9udChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKaW5kZXggODJjZjRkNTNhYTczYzA5ZWEyZjY4OWNiY2U5YzIyMTRkNmQwNmQ0Yy4uYWY3Njk3
NjIzY2M5Y2Y0NDZjZThkY2UzY2RkNGMyYmEyNzQyNzc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNTYz
LDcgKzU2Myw3IEBAIFJlZlB0cjxYTUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJDb250ZXh0Ojpj
cmVhdGVNZW1vcnlQYXJzZXIoeG1sU0FYSGFuZGxlclB0ciBoCiAgICAgeG1sUGFyc2VyQ3R4dFB0
ciBwYXJzZXIgPSB4bWxDcmVhdGVNZW1vcnlQYXJzZXJDdHh0KGNodW5rLmRhdGEoKSwgY2h1bmsu
bGVuZ3RoKCkpOwogCiAgICAgaWYgKCFwYXJzZXIpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIG1lbWNweShwYXJzZXItPnNheCwgaGFuZGxlcnMsIHNp
emVvZih4bWxTQVhIYW5kbGVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1RyYWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKaW5kZXggZDlhNmUxNGUxYzEy
MmZjMjhjZjVmYzFiOTc5N2RiODEwMDhhMjg5ZC4uNmRjZGRkYjZmMjI2NmRlMmUxOGU0MTZlNjI4
YjBhZDczMzkzM2NkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUF1ZGlvVHJhY2tQcm94eS5jcHAKQEAgLTQ1LDEyICs0NSwxMyBAQCBSZW1v
dGVBdWRpb1RyYWNrUHJveHk6OlJlbW90ZUF1ZGlvVHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBjb25uZWN0aQogICAgICwgbV90cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQog
ICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewot
ICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUt
PnNldENsaWVudCgqdGhpcyk7CiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVB
dWRpb1RyYWNrKG1faWRlbnRpZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9tZWRpYVBsYXllcklk
ZW50aWZpZXIpOwogfQogCiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6On5SZW1vdGVBdWRpb1RyYWNr
UHJveHkoKQogeworICAgIG1fdHJhY2tQcml2YXRlLT5jbGVhckNsaWVudCgpOwogfQogCiBUcmFj
a1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBSZW1vdGVBdWRpb1RyYWNrUHJveHk6OmNvbmZp
Z3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZVRleHRUcmFja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVUZXh0VHJhY2tQcm94eS5jcHAKaW5kZXggYjQxYTAyODFmODU4YTEyMmUwZmFhNmJiNzE5
NGVlNTMwY2M5ZjFmMi4uOThkNjYzNWU5YTUwNzI0ZGY5ZTljODdhOGIwYjU0NjQ4MzNiOTc3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVRleHRUcmFj
a1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVGV4
dFRyYWNrUHJveHkuY3BwCkBAIC00OSwxMiArNDksMTMgQEAgUmVtb3RlVGV4dFRyYWNrUHJveHk6
OlJlbW90ZVRleHRUcmFja1Byb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24KICAgICAsIG1fdHJhY2tQcml2YXRlKHRyYWNrUHJpdmF0ZSkKICAgICAsIG1fbWVkaWFQbGF5
ZXJJZGVudGlmaWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikKIHsKLSAgICBtX3RyYWNrUHJpdmF0
ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQoKnRoaXMp
OwogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6QWRkUmVtb3RlVGV4dFRyYWNrKG1faWRlbnRp
ZmllciwgY29uZmlndXJhdGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiBS
ZW1vdGVUZXh0VHJhY2tQcm94eTo6flJlbW90ZVRleHRUcmFja1Byb3h5KCkKIHsKKyAgICBtX3Ry
YWNrUHJpdmF0ZS0+Y2xlYXJDbGllbnQoKTsKIH0KIAogVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNv
bmZpZ3VyYXRpb24mIFJlbW90ZVRleHRUcmFja1Byb3h5Ojpjb25maWd1cmF0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb1RyYWNrUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQ
cm94eS5jcHAKaW5kZXggYjA5YWFjMzM2N2YwM2EyYWZhMzc0MzAzNzFmYTBjODNhN2M3MDljOS4u
NDljNDdhMzU1MTM4YjI1YTU5YjgzMTI3YjVlNjljNmNlYjI5Nzk0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvVHJhY2tQcm94eS5j
cHAKQEAgLTQ1LDEyICs0NSwxMyBAQCBSZW1vdGVWaWRlb1RyYWNrUHJveHk6OlJlbW90ZVZpZGVv
VHJhY2tQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aQogICAgICwgbV90
cmFja1ByaXZhdGUodHJhY2tQcml2YXRlKQogICAgICwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIo
bWVkaWFQbGF5ZXJJZGVudGlmaWVyKQogewotICAgIG1fdHJhY2tQcml2YXRlLT5zZXRDbGllbnQo
dGhpcyk7CisgICAgbV90cmFja1ByaXZhdGUtPnNldENsaWVudCgqdGhpcyk7CiAgICAgbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpBZGRSZW1vdGVWaWRlb1RyYWNrKG1faWRlbnRpZmllciwgY29uZmln
dXJhdGlvbigpKSwgbV9tZWRpYVBsYXllcklkZW50aWZpZXIpOwogfQogCiBSZW1vdGVWaWRlb1Ry
YWNrUHJveHk6On5SZW1vdGVWaWRlb1RyYWNrUHJveHkoKQogeworICAgIG1fdHJhY2tQcml2YXRl
LT5jbGVhckNsaWVudCgpOwogfQogCiBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiBS
ZW1vdGVWaWRlb1RyYWNrUHJveHk6OmNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKaW5kZXggNGQyMGNh
NTYxODA5NWI5ZTE4YjdhOWY3ZmNmNWY1YTZlY2E1NWZjYy4uYTc4ZDFmZjViODI0NjNiODI3YWE3
NjFmNWFlMmI5NDczMThjNjljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9y
YWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZjxTdG9y
YWdlTmFtZXNwYWNlSW1wbD4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OmdldE9yQ3JlYXRlTG9jYWxT
dG9yYWdlTmFtZXNwYWNlCiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6U3RvcmFnZU5hbWVzcGFjZUlt
cGwoU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWduZWQg
cXVvdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fc3RvcmFnZVR5cGUoc3Rv
cmFnZVR5cGUpCiAgICAgLCBtX3BhdGgocGF0aC5pc29sYXRlZENvcHkoKSkKLSAgICAsIG1fc3lu
Y01hbmFnZXIoMCkKKyAgICAsIG1fc3luY01hbmFnZXIobnVsbHB0cikKICAgICAsIG1fcXVvdGEo
cXVvdGEpCiAgICAgLCBtX2lzU2h1dGRvd24oZmFsc2UpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQppbmRleCA1
Y2RkZjVmNmQ5MjBiMWE2ZmY0MTQ2YTIzNTg4NDMxODEwYjc0YjE4Li40NGJiZWIyMTMzZjBkMjQ2
YjRiYjMzODYyM2M4MGIyZThhMjRiYWZiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnRJT1MubW0KQEAgLTMwMiwxMiArMzAyLDEyIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4
KHVuCiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVtZW50QXRJbmRl
eCh1bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmFyaWFEZXRhaWxzRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCkBAIC0zMjgsMTIg
KzMyOCwxMiBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXJpYUVycm9yTWVzc2FnZUVsZW1lbnRBdAogCiBSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1
bnNpZ25lZCBpbmRleCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>