<?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>127833</bug_id>
          
          <creation_ts>2014-01-29 00:27:14 -0800</creation_ts>
          <short_desc>Remove the ACCELERATED_COMPOSITING flag</short_desc>
          <delta_ts>2014-01-30 02:18:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (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>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Andrei Bucur">abucur</assigned_to>
          <cc>alex.christensen</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>dstockwell</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973317</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-01-29 00:27:14 -0800</bug_when>
    <thetext>Accelerated compositing is enabled by default on the main platforms. Also, other major WebKit ports plan to enable it sometimes in the near future. Given this information, remove the flag and make AC mandatory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973356</commentid>
    <comment_count>1</comment_count>
      <attachid>222569</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-01-29 06:26:32 -0800</bug_when>
    <thetext>Created attachment 222569
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973357</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-29 06:28:46 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973359</commentid>
    <comment_count>3</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-01-29 06:35:24 -0800</bug_when>
    <thetext>I&apos;ll need some help from the port maintainers to take a look over it (and make sure this is safe to land). The patch doesn&apos;t change any build system configurations or scripts. Basically, if the flag is set, it&apos;s never used by the code. This gives freedom to the port maintainers to adjust their infrastructure as they see fit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973416</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2014-01-29 10:59:13 -0800</bug_when>
    <thetext>I&apos;d like https://bugs.webkit.org/show_bug.cgi?id=127843 landed before this patch.  https://bugs.webkit.org/show_bug.cgi?id=127844 won&apos;t be necessary any more after this patch, though.  I&apos;m in favor of this change, and I don&apos;t want WinCairo to break or hold back this development.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973648</commentid>
    <comment_count>5</comment_count>
      <attachid>222643</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-01-30 01:12:23 -0800</bug_when>
    <thetext>Created attachment 222643
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973649</commentid>
    <comment_count>6</comment_count>
      <attachid>222644</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2014-01-30 01:39:33 -0800</bug_when>
    <thetext>Created attachment 222644
Patch for landing with Cairo fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973653</commentid>
    <comment_count>7</comment_count>
      <attachid>222644</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-30 02:18:00 -0800</bug_when>
    <thetext>Comment on attachment 222644
Patch for landing with Cairo fix

Clearing flags on attachment: 222644

Committed r163079: &lt;http://trac.webkit.org/changeset/163079&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973654</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-30 02:18:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222569</attachid>
            <date>2014-01-29 06:26:32 -0800</date>
            <delta_ts>2014-01-30 01:12:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127833-20140129163006.patch</filename>
            <type>text/plain</type>
            <size>445282</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3M2UwMGI0MGQ0Y2FjOTMxYWU3ODE3
ZmU0NTJjODhhZTJhYTY1M2MuLmJjNDg2MWY4YzFhOTcxZWU0YTFlMzJlYmMzOTc1ZjViMmFkYTQ5
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1
ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20g
dGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAg
KiB3dGYvT3duUHRyQ29tbW9uLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOgorICAgICAgICAoV1RGOjpkZWxldGVPd25lZFB0cik6
CisKIDIwMTQtMDEtMjggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBY3R1YWxseSB0dXJuIHN0YWNrIHN0YXRzIGJhY2sgb2ZmLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGU5MzY3Yjk0ZmNjNjM0YzcwNDkwOGI1OTgyYzA3YzlkYWFkMGFhNjIuLmJmMjBhMGFkMzNhMzRh
NjdiYjk3ZWUzNGQxN2E3YzMwMTBiMjcxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MzQgQEAK
KzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBB
QworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAgVGVzdHM6IE5vIG5ldyB0ZXN0cywgbm8g
ZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VmlzdWFsVXBkYXRlc0FsbG93
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpkb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIGRvbS9Q
c2V1ZG9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6On5Qc2V1
ZG9FbGVtZW50KToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6Q2FjaGVkRnJhbWVCYXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRGcmFtZTo6Q2FjaGVkRnJhbWUpOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuaDoK
KyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUGFnZTo6cmVzdG9yZSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRQYWdlLmg6CisgICAg
ICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hl
OjpQYWdlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjptYXJrUGFnZXNGb3JE
ZXZpY2VTY2FsZUNoYW5nZWQpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmg6CisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFz
RWxlbWVudDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBh
aW50c0ludG9DYW52YXNCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1l
bnQ6OmNyZWF0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkaWREcmF3KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjptYXJr
Q29udGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGxh
dGZvcm1MYXllcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVu
dERlc3Ryb3llZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNl
dWRvRWxlbWVudERlc3Ryb3llZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVy
VHJlZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpJbnN0cnVtZW50aW5n
QWdlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmxheWVyVHJl
ZUFzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRGcmFtZVJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Ro
cm90dGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGVkQ29u
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50
SW5jbHVkaW5nRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXND
b21wb3NpdGluZ0FuY2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW50ZXJD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppc0VuY2xvc2Vk
SW5Db21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zmx1c2hD
b21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6aXNTb2Z0d2FyZVJlbmRlcmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb250ZW50c0luQ29t
cG9zaXRlZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVu
dHNGYXN0UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRz
U2xvd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0Fm
dGVyU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlzaWJsZUNvbnRl
bnRzUmVzaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFkZGVkT3JSZW1vdmVk
U2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVyRmx1
c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nSW5BbGxGcmFtZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0V4dGVuZGVkQmFja2dyb3VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmV4dGVuZGVkQmFja2dyb3VuZFJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnNldFRyYWNrc1JlcGFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6cmVzZXRUcmFja2VkUmVwYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0RXhwb3NlZFJlY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVW
aWV3Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VT
Y2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QW5pbWF0aW9uQmFzZTo6ZnJlZXplQXRUaW1lKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNv
bnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KToKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0
aW9uV3JhcHBlck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6
YmxlbmRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9u
OjphbmltYXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGFnZS9hbmlt
YXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0
aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFu
aW1hdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OnN0YXJ0QW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSk6
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5ZnJhbWVBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lQW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpL
ZXlmcmFtZUFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lQW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSk6CisgICAgICAgICogcGFnZS9pb3MvRnJh
bWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dmlld3BvcnRPZmZzZXRDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjb250YWluc1RpbGVkQmFja2luZ0xheWVycyk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp2ZXJ0aWNhbFNjcm9s
bGJhckxheWVyRm9yU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNjcm9sbExheWVyRm9yRnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoZWFkZXJMYXllckZvckZyYW1lVmlldyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6Zm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3JvbGxp
bmdMYXllckZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGlu
YXRvcjo6aGFzVmlzaWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvblNj
cm9sbENvcm5lckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBvc2l0aW9u
U2Nyb2xsYmFyTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50U2Ny
b2xsYmFycyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmludmFsaWRhdGVTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OmludmFsaWRhdGVTY3JvbGxDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6Omhvcml6b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aGFzTGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZv
clNjcm9sbENvcm5lcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlGYWxsYmFj
a0N1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5p
bWF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnBsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpj
dXJyZW50UmVuZGVyaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRv
d25WaWRlb1JlbmRlcmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxhdGZvcm1MYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0xheWVyRmx1c2hTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9M
YXllckZsdXNoU2NoZWR1bGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FGaWx0ZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL0xheWVy
Rmx1c2hTY2hlZHVsZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlv
bjo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FM
YXllck1hYzo6ZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVI
b3N0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxh
eWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUFuaW1hdGlvbldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5
VGltaW5nRnVuY3Rpb25zRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldp
bjo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcDoKKyAgICAgICAgKFBsYXRmb3Jt
Q0FMYXllcldpbkludGVybmFsOjpkcmF3VGlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHQzRENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0
Zm9ybUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwbGF0Zm9ybUxheWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQz
RFByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjp0cmlnZ2VyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OmNyZWF0ZVFUTW92aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6ZGVzdHJveVFUTW92aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpsYXllckhvc3RD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjphY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCk6CisgICAgICAgICgtW1dlYkNvcmVNb3ZpZU9i
c2VydmVyIGxheWVySG9zdENoYW5nZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1dlYkdMTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xM
YXllci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xEZWZzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1Db250ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybUNvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybVN1cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5n
U3RvcmUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OmNyZWF0ZVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9j
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVs
bHNjcmVlbldpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50Ojpw
bGF0Zm9ybUNBTGF5ZXJMYXlvdXRTdWJsYXllcnNPZkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNGdWxsc2NyZWVuKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
OnBsYXRmb3JtTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpuYXR1cmFsU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVDR0ltYWdlRnJvbVBpeGVsQnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQ6OnJldHJpZXZlQ3VycmVudEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmN1cnJlbnRSZW5kZXJpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQ6OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
Ojp0ZWFyRG93blZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Omhhc1NldFVwVmlkZW9SZW5kZXJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dDo6cmV0cmlldmVBbmRSZXNldE1vdmllVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmNyZWF0ZUxheWVyRm9yTW92
aWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dDo6ZGVzdHJveUxheWVyRm9yTW92aWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4v
V0tDQUltYWdlUXVldWUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NB
SW1hZ2VRdWV1ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVy
Ojp1cGRhdGVSZW5kZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZVdpbGxDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNDYW5kaWRhdGVGb3JPcGFxdWVuZXNzVGVzdCk6CisgICAgICAg
IChXZWJDb3JlOjpsYXllcnNVc2VJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmltYWdlQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpzdXNwZW5kQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zml4ZWRC
YWNrZ3JvdW5kUGFpbnRzSW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZl
cmVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2V0U3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0
ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZs
b3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjppbWFnZURpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckltYWdlOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjYW5SZW5kZXIzRFRyYW5zZm9ybXMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50c1dpdGhGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVy
UmVjdXJzaXZlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNm
b3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVw
ZW5kZW50RmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNoZWNrSWZEZXNj
ZW5kYW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpyZW1vdmVPbmx5VGhpc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29t
cG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpwb3NpdGlvbk92ZXJmbG93Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6
OnNob3VsZERvU29mdHdhcmVQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
cGFpbnRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xp
cFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5k
ZXJSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VmlkZW86OnVwZGF0ZVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6YWNj
ZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWRlby5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6cmVwYWludFJvb3RDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRM
YXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNvbXBvc2l0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0SXNJbldpbmRvdyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6c2V0V2lkZ2V0R2VvbWV0cnkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5
bGU6OmNoYW5nZVJlcXVpcmVzTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpjaGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6Y2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0SGVhZGVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0Rm9vdGVySGVpZ2h0KToKKwogMjAxNC0wMS0yOCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBIYW5kbGUgTlNVUkxBdXRo
ZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0IGNoYWxsZW5nZXMgZnJvbSAtcmVzb3VyY2VMb2Fk
ZXI6c2hvdWxkV2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwppbmRleCA3MWNmYzViY2Y1YmEwZGE5NDhlMzE0NmJhNzZkMzVlYjcwNDM1OGZiLi5j
NTU4MTZhMGIxZGExNDkzYjYxOGQzYjQ3YWI0NGZmYjUyODYzZmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9i
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFn
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
dGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNv
ZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAgQW5vdGhl
ciBwYXRjaCB3aWxsIGJlIHJlcWl1cmVkIHRvIHJlbW92ZSB0aGUgZmxhZyBzdXBwb3J0IGZyb20g
dGhlIEVGTCBidWlsZCBzeXN0ZW0uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsOjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVu
dEVmbC5jcHA6CisgICAgICAgIChQYWdlQ2xpZW50RWZsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5oOgorICAg
ICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoX2V3a192aWV3X3ByaXZfZGVs
KToKKyAgICAgICAgKGV3a192aWV3X21hcmtfZm9yX3N5bmMpOgorICAgICAgICAqIGV3ay9ld2tf
dmlld19wcml2YXRlLmg6CisKIDIwMTQtMDEtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBmb3J3YXJkIGRlY2xhcmF0
aW9ucyBvZiBNZXNzYWdlUG9ydENoYW5uZWwsIE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5IGluIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOTY3NmJhNGQxNWRl
M2E3MzUwNDBhZGUxMjg2OTViYWM3NDA2MWY4Ni4uOWY0NTBhYzY4Mzk3MzZjNWU4M2UzMjFmNTUx
NmUzZjE3Y2Q2OTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAx
LTI5ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFJlbW92ZSB0
aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpIGNvbmRpdGlvbmFscyBmcm9tIHRoZSBjb2RlIGJhc2UgYW5kIG1ha2UgQUMKKyAgICAg
ICAgbWFuZGF0b3J5LgorCisgICAgICAgIEFub3RoZXIgcGF0Y2ggd2lsbCBiZSByZXFpdXJlZCB0
byByZW1vdmUgdGhlIGZsYWcgc3VwcG9ydCBmcm9tIHRoZSBHVEsgYnVpbGQgc3lzdGVtLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdM
LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndpZGdldFNpemVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpmb3JjZVBhaW50KToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKKyAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoK
KwogMjAxNC0wMS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gTWFrZSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJf
dmlldygpIHdvcmsgd2l0aCBDdXN0b21Qcm90b2NvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCA4MTNi
ZDFjYjQzZTc4ZmM3M2Y4NzUyYzAxNmM4OWNiNmYxYWRiZTIwLi5kZWVhZjVmMWI1NWY2NTM4MDE1
NTg4NTQ4OGQ0ZGEyNjBjYTZlZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBB
QworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnRJT1MuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaDoKKwogMjAxNC0wMS0y
NyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgaU9TIGJ1aWxkIGZpeC4gRkFMTFRIUk9VR0hzIGZvciBpT1MuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNjYxODAxMmM4NThlOGYyODMwMmVhNWNkMjc5NWNkNTZkYzJhYzZkNy4uNjE2MTVkNmY3
YzJlMzRkYmVlMDRhYWU5NGVjZTBmN2QyOGMxMmRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU1IEBACisyMDE0LTAxLTI5ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgor
CisgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgZmxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODMzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGNvbmRpdGlvbmFscyBmcm9tIHRoZSBjb2RlIGJhc2Ug
YW5kIG1ha2UgQUMKKyAgICAgICAgbWFuZGF0b3J5LgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0
ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJIb3N0ZWRO
ZXRzY2FwZVBsdWdpblZpZXcgY3JlYXRlUGx1Z2luXSk6CisgICAgICAgICgtW1dlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldyBjcmVhdGVQbHVnaW5MYXllcl0pOgorICAgICAgICAqIFBsdWdpbnMv
V2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZp
ZXcgY3JlYXRlUGx1Z2luXSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBnZXRW
YXJpYWJsZTp2YWx1ZTpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW06CisgICAgICAgICgtW1dlYlBsdWdpbkNvbnRyb2xsZXIgc3VwZXJsYXllckZvclBsdWdpblZp
ZXc6XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChQbHVnaW5XaWRnZXRJ
T1M6OmRldGFjaFBsdWdpbkxheWVyKToKKyAgICAgICAgKE5ldHNjYXBlUGx1Z2luV2lkZ2V0Ojpw
bGF0Zm9ybUxheWVyKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkNsaXBWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJDbGlwVmlldyBfaW1tZWRpYXRlU2Nyb2xsVG9Qb2ludDpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoc2V0TmVlZHNEaXNwbGF5SW5SZWN0KToK
KyAgICAgICAgKCtbV2ViSFRNTFZpZXdQcml2YXRlIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1b
V2ViSFRNTFZpZXdQcml2YXRlIGNsZWFyXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IF9zZXRB
c2lkZVN1YnZpZXdzXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IGhpdFRlc3Q6XSk6CisgICAg
ICAgICgtW1dlYkhUTUxWaWV3IF9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ10pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBfY29tcG9zaXRpbmdMYXllcnNIb3N0aW5nVmlld10pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyB2aWV3RGlkTW92ZVRvU3VwZXJ2aWV3XSk6CisgICAgICAgICgt
W1dlYkhUTUxWaWV3IGRyYXdSZWN0Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJ
bnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVuZGVyTGF5ZXIubW06CisgICAgICAg
ICgrW1dlYlJlbmRlckxheWVyIGNvbXBvc2l0aW5nSW5mb0ZvckxheWVyOl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY2xvc2VdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfc2V0TWVkaWFMYXllcjpmb3JQbHVnaW5WaWV3Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IF9wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zXSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgX3NldFBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNh
dGlvbnM6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2lzU29mdHdhcmVSZW5kZXJhYmxlXSk6CisgICAg
ICAgICgtW1dlYlZpZXcgY2xvc2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKFdlYlZpZXdMYXll
ckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcik6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAxNC0wMS0yOCAgTWFyayBSb3dlICA8bXJv
d2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjc3Njc+IERp
c2FibGUgc29tZSBkZXByZWNhdGlvbiB3YXJuaW5ncyB0byBmaXggdGhlIGJ1aWxkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCmluZGV4IDQ2MTliYjdiZmMwNTE2ZTYyNjBiN2JiM2I2ZjMzMmMwMDcyNDdhNmIuLmI4
NWZhNzJkMGQ3NzQ3ZDdiNzUzOGE4MzYzMzA2OTM0NDFlMzYwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MyBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2Jl
LmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0
aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUgY29k
ZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICBBbm90aGVy
IHBhdGNoIHdpbGwgYmUgcmVxaXVyZWQgdG8gcmVtb3ZlIHRoZSBmbGFnIHN1cHBvcnQgZnJvbSB0
aGUgV2luIGJ1aWxkIHN5c3RlbS4KKworICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6TGF5ZXJDbGllbnQ6
OnBsYXRmb3JtQ0FMYXllckxheW91dFN1YmxheWVyc09mTGF5ZXIpOgorICAgICAgICAoRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlcjo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcik6CisgICAgICAg
IChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjp+RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcik6
CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToK
KyAgICAgICAgKFdlYlZpZXc6On5XZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OmNsb3NlKToK
KyAgICAgICAgKFdlYlZpZXc6OnJlcGFpbnQpOgorICAgICAgICAoV2ViVmlldzo6YWRkVG9EaXJ0
eVJlZ2lvbik6CisgICAgICAgIChXZWJWaWV3OjpzY3JvbGxCYWNraW5nU3RvcmUpOgorICAgICAg
ICAoV2ViVmlldzo6c2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViVmlldzo6dXBkYXRlQmFja2lu
Z1N0b3JlKToKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYlZpZXc6OnNl
dFNob3VsZEludmVydENvbG9ycyk6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3V25kUHJvYyk6
CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAgICAo
V2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgICogV2ViVmlldy5o
OgorCiAyMDE0LTAxLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRm9sbG93LXVwIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggNTAy
MDFlOGI3NDkyZmYyNTE4ZDM3Y2VhYmNjYmE2MDA4NDUxZDdiMS4uN2Y5YzYwNGJiZTM4ZDI0NmQz
Mzk4NTA0Y2M4YjQzZGI0NjY5NzM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgzMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBiYXNlIGFuZCBt
YWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICBBbm90aGVyIHBhdGNoIHdpbGwg
YmUgcmVxaXVyZWQgdG8gcmVtb3ZlIHRoZSBmbGFnIHN1cHBvcnQgZnJvbSB0aGUgV2luQ0UgYnVp
bGQgc3lzdGVtLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2gpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmg6CisKIDIwMTQtMDEtMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZW1vdmUgYW4gdW51c2VkIEZyYW1lTG9hZGVyQ2xpZW50IGZ1bmN0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggY2E1Y2JmYTc4Zjk2MGY1MjIxYjQzMWY1ZWY4OTUxNjBlYzE3NTI0Ni4u
NGU0MmMxNmE3NGQwYzQ4NjE5MDZjYzAyMDg3MzQzOGMwMTBlMGYxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzMSBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNv
bT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgzMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBi
YXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Q29udHJvbGxlclByb3h5OjpQbHVnaW5Db250cm9sbGVyUHJveHkpOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMpOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJSZW5kZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlbmRlckxheWVyOjpXZWJSZW5kZXJMYXllcik6
CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RXZhc0dMU3VyZmFjZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3Vy
ZmFjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAg
ICAoRXdrVmlldzo6RXdrVmlldyk6CisgICAgICAgIChFd2tWaWV3OjpkaXNwbGF5VGltZXJGaXJl
ZCk6CisgICAgICAgIChFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UpOgorICAgICAgICAoRXdrVmll
dzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZSk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVF
dmFzT2JqZWN0U2hvdyk6CisgICAgICAgIChFd2tWaWV3Ojp0YWtlU25hcHNob3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwOgorICAgICAgICAoZ2V0SW1hZ2VTdXJmYWNlRnJvbUZy
YW1lQnVmZmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJV
bml0VGVzdEJhc2UuY3BwOgorICAgICAgICAoRVdLMlVuaXRUZXN0OjpFV0syVW5pdFRlc3RCYXNl
OjpTZXRVcCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJh
d2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eTo6fkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6dmlzaWJpbGl0eURpZENoYW5nZSk6CisgICAg
ICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJv
eHk6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpD
b29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHk6OnNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckFuZERpc3BhdGNo
RGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0VmlzaWJsZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6fkRy
YXdpbmdBcmVhUHJveHlJbXBsKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUlt
cGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWFQcm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0ZUFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQ
cm94eUltcGw6OnNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhUHJveHlJbXBsOjp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlTG9h
ZENsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudEVmbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9WaWV3Q2xp
ZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6ZGlkQ2hhbmdlQ29u
dGVudHNQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZFJlbmRl
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0NsaWVudEVmbDo6ZGlkQ29tcGxldGVQYWdl
VHJhbnNpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENoYW5nZVZp
ZXdwb3J0QXR0cmlidXRlcyk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpzY3JlZW5SZWN0T2ZDb250ZW50cyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGx1Z2luUHJveHk6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhOjpsYXllckhvc3REaWRG
bHVzaExheWVycyk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWE6OnNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhSW1wbDo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMpOgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYUltcGw6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6Om1haW5GcmFtZURpZExheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6aG9zdGluZ0NvbnRl
eHRJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3Rl
Q3VzdG9tOjpob3N0aW5nQ29udGV4dElEKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHA6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldEJvcmRlckNvbG9yKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOgorCiAyMDE0LTAxLTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggR1RLKyBidWlsZCBhZnRlciByMTYy
OTgxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9Pd25QdHJDb21tb24uaAppbmRleCBjMzE4NDdiOGI4MWNiY2VlYmFhMGFiYTQ2Zjlk
NDY1YmQxMDZhYTdhLi5hMTk2MjFlMTNhOTYwYTMzY2FlZjBjYTY1MjNjN2MxMjY1ZDRkNDVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Pd25QdHJDb21tb24uaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Pd25QdHJDb21tb24uaApAQCAtMzksMTAgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX0Vv
X09wYXF1ZSBFdmFzX09iamVjdDsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3Qg
RXZhc19PYmplY3Q7CiAjZW5kaWYKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB0
eXBlZGVmIHN0cnVjdCBfRXZhc19HTCBFdmFzX0dMOwogI2VuZGlmCi0jZW5kaWYKIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTYwLDEwICs1OCw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfSGFzaCopOwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEVpbmFfTW9kdWxlKik7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZGVsZXRlT3duZWRQdHIoRXZhc19PYmplY3QqKTsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZGVsZXRlT3duZWRQdHIoRXZhc19HTCopOwogI2VuZGlmCi0jZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGFhMGFjNTczNDE0YjMyOGQ5YTU5YTc1OTEzOGZiZDQx
YzRmZjBiMmUuLjliODY1NzQ3N2E3OTk4MTM5YWM3N2NhNDIwZWY1NDAyYTEzZDQyNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaApAQCAtODYyLDExICs4NjIsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotLyogQWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcgKi8KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykg
fHwgKFBMQVRGT1JNKFdJTikgJiYgIVVTRShXSU5HREkpICYmICFQTEFURk9STShXSU5fQ0FJUk8p
KQotI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIDEKLSNlbmRpZgotCiAj
aWYgRU5BQkxFKFdFQkdMKSAmJiAhZGVmaW5lZChXVEZfVVNFXzNEX0dSQVBISUNTKQogI2RlZmlu
ZSBXVEZfVVNFXzNEX0dSQVBISUNTIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvZWZsL093blB0ckVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcApp
bmRleCA0YjI4OWY4NTk4YzEzZGU4YjUxN2M4MGMzNjIxMDNkZmMwM2M2MDJmLi4yNjM0YmNmYzlj
NTVhODE0MzRlMDU5NTdkNGZmZjhiYmY0MDZmN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9lZmwvT3duUHRyRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNw
cApAQCAtMzIsMTAgKzMyLDcgQEAKICNpbmNsdWRlIDxFY29yZV9JTUYuaD4KICNpbmNsdWRlIDxF
aW5hLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogI2luY2x1ZGUgPEV2YXNfR0wuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKIApA
QCAtNjksMTIgKzY2LDEwIEBAIHZvaWQgZGVsZXRlT3duZWRQdHIoRWNvcmVfSU1GX0NvbnRleHQq
IHB0cikKICAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRfZGVsKHB0cik7CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfR0wqIHB0
cikKIHsKICAgICBpZiAocHRyKQogICAgICAgICBldmFzX2dsX2ZyZWUocHRyKTsKIH0KLSNlbmRp
ZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXgg
MWQxNzZlZGYxNGNjYTM1OWNkYjIzNTMyZGNmZDIxYmVlMDM2NzQyOC4uZDM5NTYxNTVlNGQ3ZWQy
ZTNkNmRlZWM0ZDZjZTQ5NGFiNmMwNWZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTUsNyArNTUsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2
ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCi0jaWYgRU5BQkxFKDNEX1JFTkRFUklO
RykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIEVOQUJMRSgzRF9SRU5ERVJJ
TkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjZW5kaWYKIApAQCAtNTcx
LDEwICs1NzEsOCBAQCBzdGF0aWMgYm9vbCB0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZgogCiAjaWYgRU5BQkxFKDNEX1JF
TkRFUklORykKICAgICBib29sIHRocmVlREVuYWJsZWQgPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSBmcmFtZS0+Y29u
dGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHRocmVlREVuYWJsZWQgPSB2aWV3LT5jb21wb3NpdG9y
KCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCk7Ci0jZW5kaWYKIAogICAgIHJldHVyblZhbHVlSWZO
b1BhcmFtZXRlciA9IHRocmVlREVuYWJsZWQ7CiAgICAgaGF2ZTNkUmVuZGVyaW5nID0gdGhyZWVE
RW5hYmxlZCA/IDEgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDRi
Y2MwZWRlNmIxODRjZmM4YmU5OWQ0ZmJkNzQ5MzcxNDAxM2NjNGMuLmI2MjdhMWM4ZjhmZGFmMmQ2
NzBmZmYzNjhjOTgxOWIzMGU0OTRlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKQEAgLTY3OSw3ICs2NzksNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVX
aXRoRWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgIGlmIChzdHlsZS0+
dHJhbnNpdGlvbnMoKSB8fCBzdHlsZS0+YW5pbWF0aW9ucygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gVHVybiBvZmYg
c3R5bGUgc2hhcmluZyBmb3IgZWxlbWVudHMgdGhhdCBjYW4gZ2FpbiBsYXllcnMgZm9yIHJlYXNv
bnMgb3V0c2lkZSBvZiB0aGUgc3R5bGUgc3lzdGVtLgogICAgIC8vIFNlZSBjb21tZW50cyBpbiBS
ZW5kZXJPYmplY3Q6OnNldFN0eWxlKCkuCiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoaWZy
YW1lVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGZyYW1lVGFnKSB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxl
bWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2FudmFz
VGFnKSkKQEAgLTY5MSw4ICs2OTAsNiBAQCBib29sIFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5
bGVXaXRoRWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVtZW50KSBjb25zdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKIAotI2VuZGlmCi0KICAgICBpZiAoZWxlbWVudEhhc0RpcmVjdGlv
bkF1dG8oZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggOWMyOGM2YjJmNzBiOGVkNjcxNGY3MDUxYmRjZTdjMDQwMzIxNzQyYS4uN2Q3
MGRjYzNlZThlZDdhMDYyN2Q0ZTM4OWJmMDE0ZDkyMTIwYWE3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0xMTQsNiArMTE0LDcgQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJQb3BTdGF0ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZFNjaGVkdWxlci5oIgpAQCAtMTUyLDEwICsxNTMsNiBAQAogI2luY2x1ZGUgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4K
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJMYXll
ckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogI2lu
Y2x1ZGUgIlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKICNlbmRpZgpAQCAtMTI0MiwxMCArMTIz
OSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wgdmlzdWFs
VXBkYXRlc0FsbG93ZWQpCiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKHZpZXcoKSkKICAgICAgICAgdmlldygpLT51cGRhdGVDb21w
b3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7Ci0jZW5kaWYKIAogICAgIGlmIChSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQogICAgICAgICByZW5kZXJWaWV3LT5y
ZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMoKTsKQEAgLTE3NTEsOSArMTc0Niw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UgY2hhbmdlKQogCiAgICAgICAg
IFN0eWxlOjpyZXNvbHZlVHJlZSgqdGhpcywgY2hhbmdlKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAgICAgZnJhbWVWaWV3LnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
QWZ0ZXJTdHlsZUNoYW5nZSgpOwotI2VuZGlmCiAKICAgICAgICAgY2xlYXJOZWVkc1N0eWxlUmVj
YWxjKCk7CiAgICAgICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7CkBAIC0xOTU2LDkg
KzE5NDksNyBAQCB2b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKICAgICBtX3JlbmRl
clZpZXcgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJWaWV3PigqdGhpcywgUmVuZGVyU3R5bGU6OmNy
ZWF0ZSgpKTsKICAgICBOb2RlOjpzZXRSZW5kZXJlcihtX3JlbmRlclZpZXcuZ2V0KCkpOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJ
bldpbmRvdyh0cnVlKTsKLSNlbmRpZgogCiAgICAgcmVjYWxjU3R5bGUoU3R5bGU6OkZvcmNlKTsK
IH0KQEAgLTQwNzcsMTAgKzQwNjgsOCBAQCB2b2lkIERvY3VtZW50OjpzZXRJblBhZ2VDYWNoZShi
b29sIGZsYWcpCiAKIHZvaWQgRG9jdW1lbnQ6OmRvY3VtZW50V2lsbEJlY29tZUluYWN0aXZlKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHJlbmRlclZpZXco
KSkKICAgICAgICAgcmVuZGVyVmlldygpLT5zZXRJc0luV2luZG93KGZhbHNlKTsKLSNlbmRpZgog
fQogCiB2b2lkIERvY3VtZW50Ojpkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkKQEAg
LTQxMDYsMTAgKzQwOTUsOCBAQCB2b2lkIERvY3VtZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21Q
YWdlQ2FjaGUoKQogICAgIGZvciAoVmVjdG9yPEVsZW1lbnQqPjo6aXRlcmF0b3IgaSA9IGVsZW1l
bnRzLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCiAgICAgICAgICgqaSktPmRvY3VtZW50RGlkUmVz
dW1lRnJvbVBhZ2VDYWNoZSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRv
dyh0cnVlKTsKLSNlbmRpZgogCiAgICAgQVNTRVJUKHBhZ2UoKSk7CiAgICAgcGFnZSgpLT5sb2Nr
QWxsT3ZlcmxheVNjcm9sbGJhcnNUb0hpZGRlbihmYWxzZSk7CkBAIC01MDA4LDEyICs0OTk1LDEw
IEBAIHZvaWQgRG9jdW1lbnQ6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpCiAgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT53aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlEKTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gcmVuZGVyVmlldygp
KSB7CiAgICAgICAgIGlmICh2aWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHZp
ZXctPmNvbXBvc2l0b3IoKS53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlEKTsKICAgICB9
Ci0jZW5kaWYKIH0KIAogU3RyaW5nIERvY3VtZW50OjpkaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKGNvbnN0IFN0cmluZyYgc3RyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1l
bnQuY3BwCmluZGV4IDI5MjU5ZTJlYzgwZDQ2YThmNzQ5MjIyNzViZTUwYzAyYzA3MzE1NWYuLmNl
NWJmMmNmZTUyNGRjMDVjNGJmNjZmOWNmMGU0NWQyZDQ1Zjg2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UHNldWRvRWxlbWVudC5jcHAKQEAgLTY3LDkgKzY3LDcgQEAgUHNldWRvRWxlbWVudDo6UHNldWRv
RWxlbWVudChFbGVtZW50JiBob3N0LCBQc2V1ZG9JZCBwc2V1ZG9JZCkKIFBzZXVkb0VsZW1lbnQ6
On5Qc2V1ZG9FbGVtZW50KCkKIHsKICAgICBBU1NFUlQoIW1faG9zdEVsZW1lbnQpOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1lbnQoKS5wYWdlKCksIHRoaXMpOwotI2VuZGlm
CiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFBzZXVkb0VsZW1lbnQ6OmN1c3RvbVN0eWxl
Rm9yUmVuZGVyZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAx
ZjYxNjcxZDc1YjJjNmFjYzc5ZDBiY2UyMzg3ZWE1Mzc0NzI1ODNiLi43MjFlOWUzY2ZjMmYxODdh
ZWU1ZjNmYzJhMDBhZDRkZDY2NjdmN2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgi
CiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKQEAgLTU4LDEwICs1
OSw2IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKLSNlbmRpZgotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNv
dW50ZWRMZWFrQ291bnRlciwgY2FjaGVkRnJhbWVDb3VudGVyLCAoIkNhY2hlZEZyYW1lIikpOwpA
QCAtNzMsOSArNzAsNyBAQCBDYWNoZWRGcmFtZUJhc2U6OkNhY2hlZEZyYW1lQmFzZShGcmFtZSYg
ZnJhbWUpCiAgICAgLCBtX21vdXNlUHJlc3NOb2RlKGZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNl
UHJlc3NOb2RlKCkpCiAgICAgLCBtX3VybChmcmFtZS5kb2N1bWVudCgpLT51cmwoKSkKICAgICAs
IG1faXNNYWluRnJhbWUoIWZyYW1lLnRyZWUoKS5wYXJlbnQoKSkKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2lzQ29tcG9zaXRlZChmcmFtZS52aWV3KCktPmhhc0Nv
bXBvc2l0ZWRDb250ZW50KCkpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTEyLDEwICsxMDcsOCBAQCB2
b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAg
ZnJhbWUuc2NyaXB0KCkudXBkYXRlUGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1faXNDb21wb3NpdGVkKQogICAgICAg
ICBmcmFtZS52aWV3KCktPnJlc3RvcmVCYWNraW5nU3RvcmVzKCk7Ci0jZW5kaWYKIAogICAgIGZy
YW1lLmxvYWRlcigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCk7CiAKQEAgLTE4
OCwxMCArMTgxLDggQEAgQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKIAog
ICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1l
KHRoaXMpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lz
Q29tcG9zaXRlZCAmJiBwYWdlQ2FjaGUoKS0+c2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVzKCkpCiAg
ICAgICAgIGZyYW1lLnZpZXcoKS0+Y2xlYXJCYWNraW5nU3RvcmVzKCk7Ci0jZW5kaWYKIAogICAg
IC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjYW4gc2V0IHVwIGEgbGF5b3V0
IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRpbWVycyBhZnRlciB0aGF0LgogICAg
IGZyYW1lLmNsZWFyVGltZXJzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0NhY2hlZEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmgKaW5k
ZXggZTlmMzY3YmJkNDJmNTM4NGMwMjgyOTM4YmI3MDU4MmU3YjIwZmRkMi4uZmVhZTFkZjIwYjdi
NGRhOWI5ZGMxNDY3ZmNiYTcyYWVmYWM3ZTQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVk
RnJhbWUuaApAQCAtNjEsOSArNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNjcmlwdENhY2hlZEZyYW1lRGF0YT4gbV9jYWNoZWRGcmFtZVNjcmlwdERhdGE7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPENhY2hlZEZyYW1lUGxhdGZvcm1EYXRhPiBtX2NhY2hlZEZyYW1lUGxhdGZv
cm1EYXRhOwogICAgIGJvb2wgbV9pc01haW5GcmFtZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgYm9vbCBtX2lzQ29tcG9zaXRlZDsKLSNlbmRpZgogICAgIAogICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkRnJhbWU+PiBtX2NoaWxkRnJhbWVzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCmluZGV4IGNhZDE4NDk3ZWIyMjVjN2MxMzIz
M2Y2ZjE1ZWFjYTMxNDJlMzNmOTUuLjBiNDViNWZkYjI5NDNiZGU1ZDA0MzNlYTdkMTMzNjBmODRj
ODQ3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAtMTAxLDExICsx
MDEsOSBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSYgcGFnZSkKICAgICAgICAgICAg
IGZyYW1lLT5kb2N1bWVudCgpLT52aXNpdGVkTGlua1N0YXRlKCkuaW52YWxpZGF0ZVN0eWxlRm9y
QWxsTGlua3MoKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKG1fbmVlZHNEZXZpY2VTY2FsZUNoYW5nZWQpIHsKICAgICAgICAgcGFnZS5tYWluRnJh
bWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKICAgICB9Ci0jZW5kaWYKIAog
ICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVjYWxjKQogICAgICAgICBwYWdlLnNldE5lZWRzUmVj
YWxjU3R5bGVJbkFsbEZyYW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAppbmRl
eCBiYjgzZTBmZmY4ODEwMGZmMjAwYWExNjY3MTQ3ZjU0ZTdlNDc1Nzg3Li5jOTc3ZGRkZDRkMTlj
MmRlNjNkNzBhMTJlMWQ4NDhkZTQ3NGEzMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0NhY2hlZFBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBh
Z2UuaApAQCAtNTYsOSArNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrRm9yQ2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZCgpIHsgbV9uZWVkc0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQgPSB0
cnVlOyB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2
b2lkIG1hcmtGb3JEZXZpY2VTY2FsZUNoYW5nZWQoKSB7IG1fbmVlZHNEZXZpY2VTY2FsZUNoYW5n
ZWQgPSB0cnVlOyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCA1N2VjMjRlZmI2ZTkyYjhjNDRiYmM3
ZDE5Yjk5ZGQwODdmM2Y1M2EyLi5kNzhmYTEyOGQyODRjN2QxZjI5ZTU2MzYwYjNhZDk3NWI4YjIy
YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC0zMDYsOSArMzA2LDcg
QEAgUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2hlYWQo
MCkKICAgICAsIG1fdGFpbCgwKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAsIG1fc2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVzKGZhbHNlKQotI2VuZGlmCiB7CiB9CiAgICAg
CkBAIC00MzQsOCArNDMyLDYgQEAgdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckZ1bGxTdHls
ZVJlY2FsYyhQYWdlKiBwYWdlKQogICAgIH0KIH0KIAotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdl
ZChQYWdlKiBwYWdlKQogewogICAgIGZvciAoSGlzdG9yeUl0ZW0qIGN1cnJlbnQgPSBtX2hlYWQ7
IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5tX25leHQpIHsKQEAgLTQ0NCw3ICs0NDAsNiBA
QCB2b2lkIFBhZ2VDYWNoZTo6bWFya1BhZ2VzRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKFBhZ2UqIHBh
Z2UpCiAgICAgICAgICAgICBjYWNoZWRQYWdlLT5tYXJrRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKCk7
CiAgICAgfQogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiB2b2lkIFBhZ2VD
YWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuaAppbmRleCBlYmFiMTBjMWVjY2EwYTNjMjE1YTg5M2EzOGVhYWMzYTEy
OTEzMzhhLi4yODIxYTVhNzQzODY5MDA2OTE0MjRhOWQxNDUwNzViMmFjNjYzYzc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmgKQEAgLTY4LDExICs2OCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAg
Ym9vbCBzaG91bGRDbGVhckJhY2tpbmdTdG9yZXMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENs
ZWFyQmFja2luZ1N0b3JlczsgfQogICAgICAgICB2b2lkIHNldFNob3VsZENsZWFyQmFja2luZ1N0
b3Jlcyhib29sIGZsYWcpIHsgbV9zaG91bGRDbGVhckJhY2tpbmdTdG9yZXMgPSBmbGFnOyB9CiAg
ICAgICAgIHZvaWQgbWFya1BhZ2VzRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKFBhZ2UqKTsKLSNlbmRp
ZgogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFnZUNhY2hlKCk7IC8vIFVzZSBwYWdlQ2FjaGUo
KSBpbnN0ZWFkLgpAQCAtOTIsOSArOTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEhpc3RvcnlJdGVtKiBtX2hlYWQ7CiAgICAgICAgIEhpc3RvcnlJdGVtKiBtX3RhaWw7CiAgICAg
ICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgYm9vbCBtX3No
b3VsZENsZWFyQmFja2luZ1N0b3JlczsKLSNlbmRpZgogICAgICB9OwogCiAgICAgLy8gRnVuY3Rp
b24gdG8gb2J0YWluIHRoZSBnbG9iYWwgcGFnZSBjYWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNTE4YTM0MjMzMzBkMmQyOTY0Nzk0OGVjYjZmOWU4
MGNhYWEwYzRkNC4uNjAwZTI5MTllODBmMjhiYjc2YWUzNDk5YjU4NzRiMmM4MTgwZGU4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTIxMiw3ICsyMTIs
NyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4
dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZhcwogICAgICAgICAgICAgICAgIHVzZXNEYXNoYmFy
ZENvbXBhdGliaWxpdHlNb2RlID0gc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCk7CiAjZW5kaWYKICAgICAgICAgICAgIG1fY29udGV4dCA9IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCks
IHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlNb2RlKTsKLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZB
U19CQUNLSU5HX1NUT1JFKSB8fCAoRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSkKKyNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNL
SU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgICAgICAgICAg
Ly8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIg
Z2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKICAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNh
bGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwogI2VuZGlmCkBAIC0zNTYsMTAgKzM1Niw4IEBAIHZv
aWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkKICAgICAgICAgaWYgKG1fcmVuZGVyZXJJc0Nh
bnZhcykgewogICAgICAgICAgICAgaWYgKG9sZFNpemUgIT0gc2l6ZSgpKSB7CiAgICAgICAgICAg
ICAgICAgdG9SZW5kZXJIVE1MQ2FudmFzKHJlbmRlcmVyKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgICAgICAgICAgaWYgKHJl
bmRlckJveCgpICYmIHJlbmRlckJveCgpLT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJlbmRlckJveCgpLT5jb250ZW50Q2hhbmdlZChDYW52YXNDaGFu
Z2VkKTsKLSNlbmRpZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGhhZEltYWdlQnVm
ZmVyKQogICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CkBAIC0zODcsMTMgKzM4
NSwxMiBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyKCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoIW1fY29udGV4dC0+aXNBY2NlbGVyYXRlZCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChyZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+
aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MTYsNyArNjEzLDcgQEAgdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIHNpemVfdCBudW1C
eXRlcyA9IDQgKiBtX2ltYWdlQnVmZmVyLT5pbnRlcm5hbFNpemUoKS53aWR0aCgpICogbV9pbWFn
ZUJ1ZmZlci0+aW50ZXJuYWxTaXplKCkuaGVpZ2h0KCk7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT52bSgpLT5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5Q29zdChudW1CeXRlcyk7CiAKLSNp
ZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCAoRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSkKKyNpZiBVU0Uo
SU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQogICAgIGlmIChtX2NvbnRleHQgJiYgbV9jb250ZXh0LT5pczJkKCkpCiAgICAgICAg
IC8vIFJlY2FsY3VsYXRlIGNvbXBvc2l0aW5nIHJlcXVpcmVtZW50cyBpZiBhY2NlbGVyYXRpb24g
c3RhdGUgY2hhbmdlZC4KICAgICAgICAgY29uc3RfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KHRo
aXMpLT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDM1ZjAwNDc5ODUwNDkyNjJmYzky
ODJjMzQ3ODZjOTY5NDgxMTIyMjguLjlmOTk3YjA2YzJmZmJjOTBjNTlhZDJmZDUxNDhmMWNmZDQw
YWU0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjQs
NiArNjQsNyBAQAogI2luY2x1ZGUgIlBhZ2VBY3Rpdml0eUFzc2VydGlvblRva2VuLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlkZW8uaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAt
NzksMTAgKzgwLDYgQEAKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUg
IlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1
ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCkBAIC00MDE0LDcgKzQwMTEsNiBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyU2l6ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIGVuZFBy
b2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVuZGVyaW5n
Q2FuQmVBY2NlbGVyYXRlZChNZWRpYVBsYXllciopCiB7CiAgICAgaWYgKHJlbmRlcmVyKCkgJiYg
cmVuZGVyZXIoKS0+aXNWaWRlbygpKQpAQCAtNDAyOSw3ICs0MDI1LDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKE1lZGlhUGxheWVyKikK
ICAgICAvLyBLaWNrIG9mZiBhIGZha2UgcmVjYWxjU3R5bGUgdGhhdCB3aWxsIHVwZGF0ZSB0aGUg
Y29tcG9zaXRpbmcgdHJlZS4KICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxl
Q2hhbmdlKTsKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQogR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciopIGNvbnN0CkBAIC00MDYw
LDkgKzQwNTUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWaWRl
b0ZyYW1lQXZhaWxhYmxlKE1lZGlhUGxheWVyKikKICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBs
YXllckNhbGxiYWNrKCk7CiAgICAgaWYgKGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyV2FpdGluZ0Zv
clZpZGVvKSB7CiAgICAgICAgIHNldERpc3BsYXlNb2RlKFZpZGVvKTsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIG1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5n
ZWQobV9wbGF5ZXIuZ2V0KCkpOwotI2VuZGlmCiAgICAgfQogICAgIGVuZFByb2Nlc3NpbmdNZWRp
YVBsYXllckNhbGxiYWNrKCk7CiB9CkBAIC00OTIyLDcgKzQ5MTUsNiBAQCBQbGF0Zm9ybU1lZGlh
IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAogICAgIHJldHVybiBtX3Bs
YXllciA/IG1fcGxheWVyLT5wbGF0Zm9ybU1lZGlhKCkgOiBOb1BsYXRmb3JtTWVkaWE7CiB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBIVE1MTWVk
aWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCkBA
IC00OTUxLDcgKzQ5NDMsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJldHVyblBsYXRmb3Jt
TGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikKICAgICAgICAgcmVuZGVyZXIoKS0+
dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KICNlbmRpZgotI2VuZGlmCiAKIGJvb2wgSFRNTE1lZGlh
RWxlbWVudDo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCAwN2ZhYTIzY2MwM2E3YjVjODcwZTE3NDMwZjQzMTQ4MjJi
ZTVjNDUxLi5lYmUwZTZiN2M4ZjRjZDVhYzQzOTZlZWY4ZmRmZGI2Mzk2Y2QxMjMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTMwLDEzICsxMzAsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdDsKICNpZiBQTEFURk9STShJT1MpCiAgICAgUGxhdGZvcm1MYXllciogYm9ycm93
UGxhdGZvcm1MYXllcigpOwogICAgIHZvaWQgcmV0dXJuUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxh
eWVyKik7CiAjZW5kaWYKLSNlbmRpZgogCiAgICAgZW51bSBEZWxheWVkQWN0aW9uVHlwZSB7CiAg
ICAgICAgIExvYWRNZWRpYVJlc291cmNlID0gMSA8PCAwLApAQCAtNTA4LDEwICs1MDYsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlc291cmNlTm90U3VwcG9ydGVk
KE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVw
YWludChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clNpemVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclJlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwotI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRW5naW5lVXBkYXRlZChNZWRpYVBsYXll
ciopIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckZpcnN0Vmlk
ZW9GcmFtZUF2YWlsYWJsZShNZWRpYVBsYXllciopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGI1YjI3
ODFmNzA5NWJkNDI3MDgzZTgxNjVmZDVmNmRkZGE4ZjA1N2UuLmE5YWM1YjEyMTk3NjFhYjY3ZWE2
Y2I2OTAyZjhkNjYwZjI5YmJmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTU2LDEwICs1Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7fQot
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNlbmRpZgogCiBwcm90
ZWN0ZWQ6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKaW5kZXggMThhODdmNGFmMDFkZWNjNzRlMzgzNjcxYTBhYzc1YjRlZmY5Njkx
MS4uNDdkODdlZDU0ZDI1ZWE2NTMyOWE2M2NlN2E0OTMzODBhODc1NDk2MCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
U3Ryb2tlU3R5bGVBcHBsaWVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC01
NSwxMCArNTYsNiBAQAogI2luY2x1ZGUgIlRleHRNZXRyaWNzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1
bi5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgpAQCAtMTczOSw3ICsxNzM2LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNpZ25lZCBvcHRpb25zKQogICAgIGlm
ICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAot
I2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIC8vIElmIHdl
IGFyZSBkcmF3aW5nIHRvIGhhcmR3YXJlIGFuZCB3ZSBoYXZlIGEgY29tcG9zaXRlZCBsYXllciwg
anVzdCBjYWxsIGNvbnRlbnRDaGFuZ2VkKCkuCiAgICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSkgewog
ICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKQEAg
LTIzMjcsNyArMjMyNCw3IEBAIGNvbnN0IEZvbnQmIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
YWNjZXNzRm9udCgpCiAgICAgcmV0dXJuIHN0YXRlKCkubV9mb250OwogfQogCi0jaWYgRU5BQkxF
KEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
I2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBj
YW52YXMoKS0+YnVmZmVyKCkgPyBjYW52YXMoKS0+YnVmZmVyKCktPnBsYXRmb3JtTGF5ZXIoKSA6
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oCmluZGV4IDI3YjdlMzNjODE2Y2M4NzE4ZGU4OTk4Yjc4N2MyNDcwYTg1YzYz
MDEuLmJiMDczNmQwNzBmNmQyYTdiNTU5YmJkNjYyMjRhMzg0ZDE4NDg1ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CkBAIC0zNywxMyArMzcsMTAgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJQYXRoLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1M
YXllci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
YW52YXNHcmFkaWVudDsKQEAgLTMzMCw3ICszMjcsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCBib29sIGhhc0ludmVydGlibGVUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybTsgfQogCi0jaWYgRU5BQkxFKEFDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIEVOQUJM
RShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZmE1NTM3
YjBlYmI0Y2RlNGRkMmQzOTI0ZWJkMTI4YWJhZWUzZDc4Yi4uMzgxMDM5OTAyMmJmYTc4NjExYTdk
NjQyMmVmMjkyYTNhZmQ5N2I5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC02NDcsMjEgKzY0NywxNyBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWFya0NvbnRleHRDaGFuZ2VkKCkKICAgICAgICAgbV9k
cmF3aW5nQnVmZmVyLT5tYXJrQ29udGVudHNDaGFuZ2VkKCk7CiAKICAgICBtX2xheWVyQ2xlYXJl
ZCA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJC
b3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKICAgICBpZiAocmVuZGVyQm94
ICYmIHJlbmRlckJveC0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKSB7CiAgICAgICAgIG1f
bWFya2VkQ2FudmFzRGlydHkgPSB0cnVlOwogICAgICAgICBjYW52YXMoKS0+Y2xlYXJDb3BpZWRJ
bWFnZSgpOwogICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQp
OwogICAgIH0gZWxzZSB7Ci0jZW5kaWYKICAgICAgICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5
KSB7CiAgICAgICAgICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gdHJ1ZTsKICAgICAgICAgICAg
IGNhbnZhcygpLT5kaWREcmF3KEZsb2F0UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2Fu
dmFzU2l6ZSgpKSk7CiAgICAgICAgIH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGVhcklm
Q29tcG9zaXRlZChHQzNEYml0ZmllbGQgbWFzaykKQEAgLTgwMiwxMSArNzk4LDkgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAg
IGhlaWdodCA9IGNsYW1wKGhlaWdodCwgMSwgbWF4SGVpZ2h0KTsKIAogICAgIGlmIChtX25lZWRz
VXBkYXRlKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBSZW5k
ZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKICAgICAgICAgaWYgKHJl
bmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAg
ICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzQ2hhbmdlZCk7Ci0jZW5kaWYK
ICAgICAgICAgbV9uZWVkc1VwZGF0ZSA9IGZhbHNlOwogICAgIH0KIApAQCAtNDc3NiwxMiArNDc3
MCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Zm9yY2VSZXN0b3JlQ29udGV4dCgp
CiAgICAgICAgIG1fcmVzdG9yZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuICghaXNDb250ZXh0TG9z
dCgpKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKIH0KLSNlbmRpZgogCiB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDg4OTk5ZDgwZTlhMmMzZmM5NjcxNzYwMjc0OTc1YjFj
M2U2MTMxYWQuLjZhZGFjMGVmZTkyMmY0MTRhZmY2NWQ5MmQwMjUyZmNjMGRmODZmZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CkBAIC0zMDksOSArMzA5LDcgQEAgcHVibGljOgogCiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGdy
YXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAg
V2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4
dEdyb3VwLmdldCgpOyB9Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZp
cnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwotI2Vu
ZGlmCiAKICAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDQz
MWJhYWRlNTI0ZmE3Y2ExNGU1OWY5Y2JhMmM2NjViYmYxMTNkNGMuLmUzNGY3MGU2OTY5YThlN2Ni
OGM0MWQ1OTk3YzNjYmUwNTNkZGRjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE2Nyw5ICsxNjcsNyBAQCBJbnNwZWN0b3JD
b250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVu
dCogaW5zcGVjdG9yQwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5z
cGVjdG9ySW5wdXRBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCAmcGFnZSkpOwog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fYWdlbnRzLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckxheWVyVHJlZUFnZW50PihtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCkpKTsKLSNlbmRpZgogCiAgICAgQVNTRVJUKG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5jb21tYW5kTGluZUFQSUhvc3QoKSk7CiAgICAgaWYgKENvbW1hbmRMaW5lQVBJSG9zdCog
Y29tbWFuZExpbmVBUElIb3N0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmNvbW1hbmRMaW5l
QVBJSG9zdCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGY0NjVmNDFkMjk3YzI0MDM0YTljM2EwMDE1ZTY4
NmQ3MzViMjA3ODQuLmYzYzY0ZjA5N2QzMGI4MWNmNmIyNzdmMTdjNDZlOWEwMzlmOTBjYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC03OTEsMTAgKzc5MSw4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAj
ZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgICAgICBkb21BZ2VudC0+
c2V0RG9jdW1lbnQocGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQq
IGxheWVyVHJlZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQoKSkKICAgICAgICAgICAgIGxheWVyVHJlZUFnZW50LT5yZXNldCgpOwotI2VuZGlmCiAg
ICAgfQogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0
TG9hZChsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50KCkpOwpAQCAtMTIxOCw3ICsxMjE2LDYgQEAg
SW5zdHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50
aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnQKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMpCiB7CiAgICAgaWYgKEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckxheWVyVHJlZUFnZW50KCkpCkBA
IC0xMjM2LDcgKzEyMzMsNiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRv
RWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaQogICAgIGlmIChJbnNw
ZWN0b3JMYXllclRyZWVBZ2VudCogbGF5ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpKQogICAgICAgICBsYXllclRyZWVBZ2VudC0+cHNl
dWRvRWxlbWVudERlc3Ryb3llZChwc2V1ZG9FbGVtZW50KTsKIH0KLSNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlMjQ1ODhkNTNhODk4NWFlZDNkNDY4MTA0ZDI2
YjViYmZkMzc1Y2JmLi5kMWQ5MGU5MDZkOGI0NjQ4NWEyMDYwYjhiYzNlYmYzODFlMTBlZjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0yNzUsMTEgKzI3NSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdp
c3Rlckluc3RydW1lbnRpbmdBZ2VudHMoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRp
YyB2b2lkIHVucmVnaXN0ZXJJbnN0cnVtZW50aW5nQWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHMq
KTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBzdGF0aWMgdm9pZCBs
YXllclRyZWVEaWRDaGFuZ2UoUGFnZSopOwogICAgIHN0YXRpYyB2b2lkIHJlbmRlckxheWVyRGVz
dHJveWVkKFBhZ2UqLCBjb25zdCBSZW5kZXJMYXllciopOwogICAgIHN0YXRpYyB2b2lkIHBzZXVk
b0VsZW1lbnREZXN0cm95ZWQoUGFnZSosIFBzZXVkb0VsZW1lbnQqKTsKLSNlbmRpZgogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC00NDgsMTEgKzQ0Niw5IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgY2FuY2VsUGF1c2VPbk5hdGl2ZUV2ZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKICAgICBzdGF0aWMgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogcmV0cmlldmVUaW1l
bGluZUFnZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURp
ZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHJlbmRl
ckxheWVyRGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgUmVuZGVyTGF5
ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgUHNldWRvRWxlbWVudCopOwotI2VuZGlmCiAKICAgICBzdGF0aWMgaW50
IHNfZnJvbnRlbmRDb3VudGVyOwogI2VuZGlmCkBAIC0xODQ2LDcgKzE4NDIsNiBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVBbmltYXRpb25GcmFtZShjb25z
dCBJbnNwZWN0b3JJbnN0cgogI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURp
ZENoYW5nZShQYWdlKiBwYWdlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC0xODc4LDcg
KzE4NzMsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0Vs
ZW1lbnREZXN0cm95ZWQoUGFnZSogcGFnZSwgUHNldWRvRQogICAgIFVOVVNFRF9QQVJBTShwc2V1
ZG9FbGVtZW50KTsKICNlbmRpZgogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
aW5saW5lIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRy
ZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVl
QWdlbnQuY3BwCmluZGV4IDA4NmUzYzgwYzRmYTZmMTBiNTA3NjhhOGZlNTI0YWE3MTI0MjliYjIu
LjRjMWYwMDYwOTY4NmRlOTdiNWJjNDgzY2QwY2IzNjY0MzJkNWI2MzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAt
MzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkluc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmgiCkBAIC0zNTksNCArMzU4LDMgQEAgdm9pZCBJbnNwZWN0b3JM
YXllclRyZWVBZ2VudDo6dW5iaW5kUHNldWRvRWxlbWVudChQc2V1ZG9FbGVtZW50KiBwc2V1ZG9F
bGVtZW50KQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKaW5kZXggNmVlMjUx
M2E4NzU5NmMzYWNiNzhmNDcyODMzMGEwOWYxZWQzYTg3YS4uZjA2ZTlmOGRmN2VmMjcwOWYwNzYy
Y2Y5MzEyMTY3NWQzZTBiMzAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcApAQCAtNDgsOSArNDgsNyBAQCBJbnN0cnVtZW50aW5nQWdl
bnRzOjpJbnN0cnVtZW50aW5nQWdlbnRzKEluc3BlY3RvckVudmlyb25tZW50JiBlbnZpcm9ubWVu
dCkKICAgICAsIG1faW5zcGVjdG9yQWdlbnQobnVsbHB0cikKICAgICAsIG1faW5zcGVjdG9yUGFn
ZUFnZW50KG51bGxwdHIpCiAgICAgLCBtX2luc3BlY3RvckNTU0FnZW50KG51bGxwdHIpCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9pbnNwZWN0b3JMYXllclRyZWVB
Z2VudChudWxscHRyKQotI2VuZGlmCiAgICAgLCBtX2luc3BlY3RvckNvbnNvbGVBZ2VudChudWxs
cHRyKQogICAgICwgbV9pbnNwZWN0b3JET01BZ2VudChudWxscHRyKQogICAgICwgbV9pbnNwZWN0
b3JSZXNvdXJjZUFnZW50KG51bGxwdHIpCkBAIC03OCw5ICs3Niw3IEBAIHZvaWQgSW5zdHJ1bWVu
dGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1faW5zcGVjdG9yQWdlbnQgPSBudWxscHRyOwogICAg
IG1faW5zcGVjdG9yUGFnZUFnZW50ID0gbnVsbHB0cjsKICAgICBtX2luc3BlY3RvckNTU0FnZW50
ID0gbnVsbHB0cjsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9pbnNw
ZWN0b3JMYXllclRyZWVBZ2VudCA9IG51bGxwdHI7Ci0jZW5kaWYKICAgICBtX2luc3BlY3RvckNv
bnNvbGVBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JET01BZ2VudCA9IG51bGxwdHI7
CiAgICAgbV9pbnNwZWN0b3JSZXNvdXJjZUFnZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCmluZGV4IGFmYWJjZTY2MTJmMGJh
OTJkYTRmMDNkOGU0ZTU4YmZmYjBlNDFlZTMuLjQwMWE3MjRlZTQwMTBmODZmYTYyYWRiMDllOWFk
ZDU1NTUyYWI4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaApAQCAtMTM5LDEwICsxMzksOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQqIGluc3BlY3RvckNhbnZhc0FnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0
b3JDYW52YXNBZ2VudDsgfQogICAgIHZvaWQgc2V0SW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zcGVj
dG9yQ2FudmFzQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBhZ2VudDsg
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEluc3BlY3RvckxheWVy
VHJlZUFnZW50KiBpbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvckxheWVyVHJlZUFn
ZW50KEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckxheWVyVHJl
ZUFnZW50ID0gYWdlbnQ7IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIEluc3RydW1lbnRpbmdB
Z2VudHMoSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCYpOwpAQCAtMTUyLDkgKzE1MCw3
IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JB
Z2VudDsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1faW5zcGVjdG9yUGFnZUFnZW50OwogICAg
IEluc3BlY3RvckNTU0FnZW50KiBtX2luc3BlY3RvckNTU0FnZW50OwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbV9pbnNwZWN0
b3JMYXllclRyZWVBZ2VudDsKLSNlbmRpZgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9p
bnNwZWN0b3JDb25zb2xlQWdlbnQ7CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIG1faW5zcGVjdG9y
RE9NQWdlbnQ7CiAgICAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogbV9pbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDE5OWM5Y2M0YTFi
NDY5NzBlMjEwMDI3MmUwZTljZmRhYzAyZDk4MTAuLjhmMTRmNWFmMzU1ZTE2YTQ0MTI0MDAxYTk1
MzQyNzBmYTkxMTAxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE4
MywxMSArMTgzLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRv
Vmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGUgeyB9CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgb3ZlcnJpZGUgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGUg
eyB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFz
dFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggZDdmZTBmODhiNDlkOWM2ZmEyZDRhOWE0NzgwZDFkMzg4YWNmYzcw
Ni4uYWU1YjZkMTRhZDYxN2NkMTE0ZDEyMmU2MDU3OWRhM2UwZjY0MTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yODcsNyArMjg3LDYgQEAgcHVibGljOgogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBBbGxv
d3MgcG9ydHMgdG8gY3VzdG9taXplIHRoZSB0eXBlIG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVk
IGJ5IHRoaXMgcGFnZS4KICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGlj
c0xheWVyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIApAQCAtMzIxLDcgKzMyMCw2IEBA
IHB1YmxpYzoKICAgICAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgbGF5ZXIgdHJlZSB1cGRhdGVz
IGFyZSBkaXNhYmxlZC4KICAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSop
IGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA0NDU2
YzBkNWExM2IxMWIwODA1NGRhNzBiMWRiNjlkNzIwNmExZDgzLi41YTk1OThlMWE3ZjlhODVjYmZm
NjhhZjY4NDYwMGE0NWUxMTRjYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzUsNiArNzUs
NyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNs
dWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKQEAgLTEwOSwxMCArMTEwLDYgQEAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oPgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVy
Q29tcG9zaXRvci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0Rv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnRFeHRlbnNpb25zLmgiCkBAIC05OTksMTcg
Kzk5NiwxMiBAQCBDb2xvciBGcmFtZTo6dGlsZWRCYWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdAogCiBTdHJpbmcgRnJhbWU6OmxheWVyVHJlZUFzVGV4dChMYXllclRyZWVGbGFncyBm
bGFncykgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZG9j
dW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAKICAgICBpZiAoIWNvbnRlbnRSZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICByZXR1cm4gY29udGVudFJlbmRlcmVyKCkt
PmNvbXBvc2l0b3IoKS5sYXllclRyZWVBc1RleHQoZmxhZ3MpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oZmxhZ3MpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLSNlbmRpZgogfQogCiBTdHJpbmcg
RnJhbWU6OnRyYWNrZWRSZXBhaW50UmVjdHNBc1RleHQoKSBjb25zdApAQCAtMTEyMyw3ICsxMTE1
LDYgQEAgdm9pZCBGcmFtZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQog
ICAgIH0KIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgRnJhbWU6
OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8RnJh
bWU+IGNoaWxkID0gdHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRy
ZWUoKS5uZXh0U2libGluZygpKQpAQCAtMTEzMiw3ICsxMTIzLDYgQEAgdm9pZCBGcmFtZTo6ZGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKICAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9
IGNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByb290LT5jb21wb3NpdG9yKCkuZGV2aWNlT3JQ
YWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiB9Ci0jZW5kaWYKIAogYm9vbCBGcmFtZTo6aXNVUkxB
bGxvd2VkKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGVmZjhl
MTQxZDViNTk5YzMxNjFiMmYxMmNjODBhODk4YzVkODI4YzEuLjNlODkyMDc5ZDk3MzZiYzg1Y2Jk
NzNlZmNlZDliNDkwOTU2MTBlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE5NSw5ICsxOTUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFNjYWxlIGZhY3RvciBvZiB0aGlzIGZy
YW1lIHdpdGggcmVzcGVjdCB0byB0aGUgY29udGFpbmVyLgogICAgICAgICBmbG9hdCBmcmFtZVNj
YWxlRmFjdG9yKCkgY29uc3Q7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgICAgIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdw
b3J0QXJndW1lbnRzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYTAy
MWQ5NzAyZWM0YWZjMDk5MDVmNDcxNmRkNjM5NWJkMzAxYzRjYy4uNzBlNTliMWNkY2MxMGNiZTVm
NmNjNDQyZjdjZWM4MTgwM2ZkNDBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAt
NjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklGcmFtZS5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCkBA
IC03NSwxNiArNzYsMTIgQEAKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKKyNpbmNsdWRl
ICJUaWxlZEJhY2tpbmcuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgiCi0jaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50Lmgi
CkBAIC00MzMsMTIgKzQzMCwxMCBAQCB2b2lkIEZyYW1lVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0
IEludFJlY3QmIG5ld1JlY3QpCiAKICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5k
ZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51
c2VzQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5m
cmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoIWZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQoKSkKICAgICAgICAgc2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQoKTsK
QEAgLTcxMyw3ICs3MDgsNiBAQCB2b2lkIEZyYW1lVmlldzo6Y2FsY3VsYXRlU2Nyb2xsYmFyTW9k
ZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1vZGUsIFNjcm9sbGJhcgogICAgIH0gICAgCiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIEZyYW1lVmlldzo6dXBk
YXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclN0eWxlQ2hhbmdlKCkKIHsKICAgICBSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwpAQCAtOTIzLDcgKzkxNyw2IEBAIHZv
aWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcoKQogICAg
ICAgICByZXR1cm47CiAgICAgdmlldy0+Y29tcG9zaXRvcigpLnNjaGVkdWxlTGF5ZXJGbHVzaCh0
cnVlIC8qIGNhblRocm90dGxlICovKTsKIH0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRIZWFkZXJIZWlnaHQoaW50IGhlYWRlckhl
aWdodCkKIHsKQEAgLTk0NywxNiArOTQwLDEzIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRGb290ZXJI
ZWlnaHQoaW50IGZvb3RlckhlaWdodCkKIAogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRD
b250ZW50KCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpCiAgICAgICAg
IHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01vZGUoKTsKLSNl
bmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0
ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fZnJhbWUuZ2V0KCk7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUuZ2V0KCkp
KSB7CiAgICAgICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRl
cmVyKCk7CiAgICAgICAgIGlmIChSZW5kZXJMYXllckNvbXBvc2l0b3IqIGNvbXBvc2l0b3IgPSBy
ZW5kZXJWaWV3ID8gJnJlbmRlclZpZXctPmNvbXBvc2l0b3IoKSA6IDApIHsKQEAgLTk2Nyw1MSAr
OTU3LDQzIEBAIGJvb2wgRnJhbWVWaWV3OjpoYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rl
c2NlbmRhbnRzKCkgY29uc3QKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0KLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6Omhhc0Nv
bXBvc2l0aW5nQW5jZXN0b3IoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkudHJlZSgpLnBhcmVu
dCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnBhcmVudCgpKSB7CiAgICAgICAgIGlm
IChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpKSB7CiAgICAgICAgICAgICBpZiAodmll
dy0+aGFzQ29tcG9zaXRlZENvbnRlbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAogLy8gU29t
ZXRpbWVzIChmb3IgcGx1Zy1pbnMpIHdlIG5lZWQgdG8gZWFnZXJseSBnbyBpbnRvIGNvbXBvc2l0
aW5nIG1vZGUuCiB2b2lkIEZyYW1lVmlldzo6ZW50ZXJDb21wb3NpdGluZ01vZGUoKQogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVy
VmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkgewogICAgICAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCkuZW5hYmxlQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgICAgIGlmICghbmVlZHNMYXlvdXQo
KSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJVcGRhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogYm9vbCBGcmFtZVZpZXc6Omlz
RW5jbG9zZWRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBhdXRvIGZyYW1lT3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3du
ZXJSZW5kZXJlcigpOwogICAgIGlmIChmcmFtZU93bmVyUmVuZGVyZXIgJiYgZnJhbWVPd25lclJl
bmRlcmVyLT5jb250YWluZXJGb3JSZXBhaW50KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgaWYgKEZyYW1lVmlldyogcGFyZW50VmlldyA9IHBhcmVudEZyYW1lVmlldygpKQogICAgICAg
ICByZXR1cm4gcGFyZW50Vmlldy0+aXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigpOwotI2Vu
ZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEZyYW1lVmlldzo6Zmx1c2hDb21wb3Np
dGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgYm9vbCBhbGxGcmFtZXNGbHVzaGVkID0gZmx1c2hDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0ZyYW1lKCZmcmFtZSgpKTsKICAgICAKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9
IGZyYW1lKCkudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUo
KS50cmF2ZXJzZU5leHQoJmZyYW1lKCkpKSB7CkBAIC0xMDE5LDE5ICsxMDAxLDEyIEBAIGJvb2wg
RnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKQogICAg
ICAgICBhbGxGcmFtZXNGbHVzaGVkICY9IGZsdXNoZWQ7CiAgICAgfQogICAgIHJldHVybiBhbGxG
cmFtZXNGbHVzaGVkOwotI2Vsc2UgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
IHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc1NvZnR3YXJlUmVu
ZGVyYWJsZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgcmV0dXJu
ICFyZW5kZXJWaWV3IHx8ICFyZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuaGFzM0RDb250ZW50KCk7
Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpk
aWRNb3ZlT25zY3JlZW4oKQpAQCAtMTMyOCw5ICsxMzAzLDcgQEAgdm9pZCBGcmFtZVZpZXc6Omxh
eW91dChib29sIGFsbG93U3VidHJlZSkKIAogICAgIGxheWVyLT51cGRhdGVMYXllclBvc2l0aW9u
c0FmdGVyTGF5b3V0KHJlbmRlclZpZXcoKS0+bGF5ZXIoKSwgdXBkYXRlTGF5ZXJQb3NpdGlvbkZs
YWdzKGxheWVyLCBzdWJ0cmVlLCBtX25lZWRzRnVsbFJlcGFpbnQpKTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5
b3V0KCk7Ci0jZW5kaWYKICAgICAKICAgICBtX2xheW91dENvdW50Kys7CiAKQEAgLTE0OTQsMTQg
KzE0NjcsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNhbkJsaXRPblNjcm9sbFJlY3Vyc2l2
ZWx5KCkKIAogYm9vbCBGcmFtZVZpZXc6OmNvbnRlbnRzSW5Db21wb3NpdGVkTGF5ZXIoKSBjb25z
dAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJWaWV3KiBy
ZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmIChyZW5kZXJWaWV3ICYmIHJl
bmRlclZpZXctPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVy
ID0gcmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCk7CiAgICAg
ICAgIGlmIChsYXllciAmJiBsYXllci0+ZHJhd3NDb250ZW50KCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTY3
NSwyMiArMTY0NywxOCBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAogICAgIGZvciAoYXV0byYg
cmVuZGVyZXIgOiAqbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykgewogICAgICAgICBpZiAo
IXJlbmRlcmVyLT5zdHlsZSgpLmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQb3NpdGlvbigpKQogICAg
ICAgICAgICAgY29udGludWU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
ICAgICBpZiAocmVuZGVyZXItPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICAgICAgY29udGludWU7
Ci0jZW5kaWYKIAogICAgICAgICAvLyBGaXhlZCBpdGVtcyBzaG91bGQgYWx3YXlzIGhhdmUgbGF5
ZXJzLgogICAgICAgICBBU1NFUlQocmVuZGVyZXItPmhhc0xheWVyKCkpOwogICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KHJlbmRlcmVyKS0+bGF5ZXIo
KTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKGxheWVy
LT52aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IFJlbmRlckxheWVy
OjpOb3RDb21wb3NpdGVkRm9yQm91bmRzT3V0T2ZWaWV3CiAgICAgICAgICAgICB8fCBsYXllci0+
dmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6
Tm90Q29tcG9zaXRlZEZvck5vVmlzaWJsZUNvbnRlbnQpIHsKICAgICAgICAgICAgIC8vIERvbid0
IGludmFsaWRhdGUgZm9yIGludmlzaWJsZSBmaXhlZCBsYXllcnMuCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAg
ICAgIGlmIChsYXllci0+aGFzQW5jZXN0b3JXaXRoRmlsdGVyT3V0c2V0cygpKSB7CkBAIC0xNzE4
LDE0ICsxNjg2LDEyIEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAgICAgICAgIEludFJlY3Qg
c2Nyb2xsZWRSZWN0ID0gdXBkYXRlUmVjdDsKICAgICAgICAgc2Nyb2xsZWRSZWN0Lm1vdmUoc2Ny
b2xsRGVsdGEpOwogICAgICAgICB1cGRhdGVSZWN0LnVuaXRlKHNjcm9sbGVkUmVjdCk7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAoaXNDb21wb3NpdGVkQ29u
dGVudExheWVyKSB7CiAgICAgICAgICAgICB1cGRhdGVSZWN0ID0gcm9vdFZpZXdUb0NvbnRlbnRz
KHVwZGF0ZVJlY3QpOwogICAgICAgICAgICAgQVNTRVJUKHJlbmRlclZpZXcoKSk7CiAgICAgICAg
ICAgICByZW5kZXJWaWV3KCktPmxheWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3Qo
dXBkYXRlUmVjdCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotI2VuZGlmCiAg
ICAgICAgIGlmIChjbGlwc1JlcGFpbnRzKCkpCiAgICAgICAgICAgICB1cGRhdGVSZWN0LmludGVy
c2VjdChyZWN0VG9TY3JvbGwpOwogICAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIGZhbHNlKTsKQEAgLTE3MzYsNyArMTcwMiw2IEBA
IGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50
c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb250ZW50c0luQ29tcG9zaXRlZExheWVyKCkpIHsK
ICAgICAgICAgLy8gRklYTUU6IHJlc3BlY3QgcGFpbnRzRW50aXJlQ29udGVudHMoKT8KICAgICAg
ICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gdmlzaWJsZUNvbnRlbnRSZWN0KExlZ2FjeUlPU0RvY3Vt
ZW50VmlzaWJsZVJlY3QpOwpAQCAtMTc2MCw3ICsxNzI1LDYgQEAgdm9pZCBGcmFtZVZpZXc6OnNj
cm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogCiAgICAgU2Nyb2xsVmlldzo6
c2Nyb2xsQ29udGVudHNTbG93UGF0aCh1cGRhdGVSZWN0KTsKIH0KQEAgLTE3ODQsOCArMTc0OCw3
IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQoYm9vbCBpc092ZXJsYXBwZWQpCiAK
ICAgICBtX2lzT3ZlcmxhcHBlZCA9IGlzT3ZlcmxhcHBlZDsKICAgICB1cGRhdGVDYW5CbGl0T25T
Y3JvbGxSZWN1cnNpdmVseSgpOwotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKwogICAgIGlmIChoYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCkp
IHsKICAgICAgICAgLy8gT3ZlcmxhcCBjYW4gYWZmZWN0IGNvbXBvc2l0aW5nIHRlc3RzLCBzbyBp
ZiBpdCBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHRyaWdnZXIKICAgICAgICAgLy8gYSBsYXllciB1cGRh
dGUgaW4gdGhlIHBhcmVudCBkb2N1bWVudC4KQEAgLTE4MDksNyArMTc3Miw2IEBAIHZvaWQgRnJh
bWVWaWV3OjpzZXRJc092ZXJsYXBwZWQoYm9vbCBpc092ZXJsYXBwZWQpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzT3Zlcmxh
cHBlZEluY2x1ZGluZ0FuY2VzdG9ycygpIGNvbnN0CkBAIC0xOTM0LDExICsxODk2LDkgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2lu
dCkKIAogdm9pZCBGcmFtZVZpZXc6OmRlbGVnYXRlc1Njcm9sbGluZ0RpZENoYW5nZSgpCiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFdoZW4gd2Ugc3dpdGNoIHRv
IGRlbGdhdGVzU2Nyb2xsaW5nIG1vZGUsIHdlIHNob3VsZCBkZXN0cm95IHRoZSBzY3JvbGxpbmcv
Y2xpcHBpbmcgbGF5ZXJzIGluIFJlbmRlckxheWVyQ29tcG9zaXRvci4KICAgICBpZiAoaGFzQ29t
cG9zaXRlZENvbnRlbnQoKSkKICAgICAgICAgY2xlYXJCYWNraW5nU3RvcmVzKCk7Ci0jZW5kaWYK
IH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpAQCAtMTk5MSwxMiArMTk1MSwxMCBA
QCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKICAgICBmcmFtZSgpLmV2
ZW50SGFuZGxlcigpLnNlbmRTY3JvbGxFdmVudCgpOwogICAgIGZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5y
ZW5kZXJWaWV3KCkpIHsKICAgICAgICAgaWYgKHJlbmRlclZpZXctPnVzZXNDb21wb3NpdGluZygp
KQogICAgICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLmZyYW1lVmlld0RpZFNjcm9s
bCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJQb3Np
dGlvbnNBZnRlclNjcm9sbGluZygpCkBAIC0yMDQ1LDcgKzIwMDMsNiBAQCBib29sIEZyYW1lVmll
dzo6c2hvdWxkVXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpIGNvbnN0CiAK
IHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFzaG91bGRVcGRh
dGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjA1Myw3ICsyMDEwLDYgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzQWZ0ZXJTY3JvbGxpbmcoKQogICAgICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9
IHRoaXMtPnJlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uU2Nyb2xsKTsKICAg
ICB9Ci0jZW5kaWYKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KSBjb25zdApAQCAtMjE5Myw0MSArMjE0OSwzMyBAQCB2b2lkIEZyYW1lVmlldzo6dmlzaWJsZUNv
bnRlbnRzUmVzaXplZCgpCiAgICAgaWYgKCF1c2VGaXhlZExheW91dCgpICYmIG5lZWRzTGF5b3V0
KCkpCiAgICAgICAgIGxheW91dCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7
CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAg
IHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAgICAg
fQotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3OjphZGRlZE9yUmVtb3ZlZFNjcm9sbGJhcigp
CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJW
aWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0
b3IoKS5mcmFtZVZpZXdEaWRBZGRPclJlbW92ZVNjcm9sbGJhcnMoKTsKICAgICB9Ci0jZW5kaWYK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFy
aWx5Rm9ySW50ZXJhY3Rpb24oKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHJlbmRlclZpZXcoKSkKICAgICAgICAgdmlldy0+
Y29tcG9zaXRvcigpLmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50
ZXJhY3Rpb24oKTsKLSNlbmRpZgogfQogCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVz
aFRocm90dGxpbmdJbkFsbEZyYW1lcygpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGJvb2wgaXNNYWluTG9hZFByb2dyZXNzaW5nID0gZnJhbWUoKS5wYWdlKCktPnBy
b2dyZXNzKCkuaXNNYWluTG9hZFByb2dyZXNzaW5nKCk7CiAgICAgZm9yIChGcmFtZSogZnJhbWUg
PSBtX2ZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4
dChtX2ZyYW1lLmdldCgpKSkgewogICAgICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9
IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBv
c2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoaXNNYWluTG9hZFByb2dyZXNz
aW5nKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFj
a2luZ0NvdmVyYWdlKCkKQEAgLTIyMzUsMTEgKzIxODMsOSBAQCB2b2lkIEZyYW1lVmlldzo6YWRq
dXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKQogICAgIGlmICghbV9zcGVjdWxhdGl2ZVRpbGluZ0Vu
YWJsZWQpCiAgICAgICAgIGVuYWJsZVNwZWN1bGF0aXZlVGlsaW5nSWZOZWVkZWQoKTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3
ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlmIChyZW5kZXJWaWV3ICYmIHJlbmRlclZpZXct
PmxheWVyKCktPmJhY2tpbmcoKSkKICAgICAgICAgcmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2lu
ZygpLT5hZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSgpOwotI2VuZGlmCiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGlmIChUaWxlQ2FjaGUqIHRpbGVDYWNoZSA9IHRoaXMtPnRpbGVDYWNoZSgpKQog
ICAgICAgICB0aWxlQ2FjaGUtPnNldFNwZWN1bGF0aXZlVGlsZUNyZWF0aW9uRW5hYmxlZChtX3Nw
ZWN1bGF0aXZlVGlsaW5nRW5hYmxlZCk7CkBAIC0yNDg5LDcgKzI0MzUsNiBAQCB2b2lkIEZyYW1l
Vmlldzo6dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2ZWx5KGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5k
Q29sb3IsIGJvb2wgdAogCiBib29sIEZyYW1lVmlldzo6aGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKCkg
Y29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFmcmFt
ZSgpLnNldHRpbmdzKCkuYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yNDk4LDI5ICsyNDQzLDE3IEBAIGJvb2wgRnJhbWVWaWV3
OjpoYXNFeHRlbmRlZEJhY2tncm91bmQoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gdGlsZWRCYWNraW5nLT5oYXNNYXJnaW5zKCk7Ci0jZWxzZQotICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgogfQogCiBJbnRSZWN0IEZyYW1lVmlldzo6ZXh0ZW5kZWRCYWNrZ3Jv
dW5kUmVjdCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCk7CiAgICAg
aWYgKCF0aWxlZEJhY2tpbmcpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKICAgICByZXR1
cm4gdGlsZWRCYWNraW5nLT5ib3VuZHMoKTsKLSNlbHNlCi0gICAgUmVuZGVyVmlldyogcmVuZGVy
VmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKLSAgICBpZiAoIXJlbmRlclZpZXcpCi0gICAgICAg
IHJldHVybiBJbnRSZWN0KCk7Ci0KLSAgICByZXR1cm4gcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1
bWVudFJlY3QoKTsKLSNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogdm9pZCBGcmFtZVZpZXc6OnNldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZShib29sIGV4
dGVuZEJhY2tncm91bmQpCiB7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJl
bmRlclZpZXcoKTsKQEAgLTI1MzMsNyArMjQ2Niw2IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRCYWNr
Z3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UoYm9vbCBleHRlbmRCYWNrZ3JvdW5kKQogCiAgICAgYmFj
a2luZy0+c2V0VGlsZWRCYWNraW5nSGFzTWFyZ2lucyhleHRlbmRCYWNrZ3JvdW5kKTsKIH0KLSNl
bmRpZgogCiBib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSBjb25z
dAogewpAQCAtMjcxOCwxMiArMjY1MCwxMCBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RM
YXlvdXRUYXNrcygpCiAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
TGF5b3V0VXBkYXRlZCh0aGlzKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3
KCkpIHsKICAgICAgICAgaWYgKHJlbmRlclZpZXctPnVzZXNDb21wb3NpdGluZygpKQogICAgICAg
ICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLmZyYW1lVmlld0RpZExheW91dCgpOwogICAg
IH0KLSNlbmRpZgogCiAgICAgc2Nyb2xsVG9BbmNob3IoKTsKIApAQCAtMzQ2MSwxMCArMzM5MSw4
IEBAIHZvaWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIAogICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNo
ZVB1cmdlUHJldmVudGVyOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmICghcC0+cGFpbnRpbmdEaXNhYmxlZCgpICYmICFkb2N1bWVudC0+cHJpbnRpbmcoKSkKICAg
ICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0ZyYW1lKCZmcmFtZSgpKTsKLSNlbmRp
ZgogCiAgICAgUGFpbnRCZWhhdmlvciBvbGRQYWludEJlaGF2aW9yID0gbV9wYWludEJlaGF2aW9y
OwogICAgIApAQCAtMzkyOSwxMiArMzg1NywxMCBAQCB2b2lkIEZyYW1lVmlldzo6c2V0VHJhY2tz
UmVwYWludHMoYm9vbCB0cmFja1JlcGFpbnRzKQogICAgICAgICAgICAgZnJhbWUoKS5kb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXQoKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV9mcmFtZS0+dHJlZSgpLnRvcCgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlm
IChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAg
ICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnNldFRyYWNrc1JlcGFpbnRzKHRyYWNr
UmVwYWludHMpOwogICAgIH0KLSNlbmRpZgogCiAgICAgcmVzZXRUcmFja2VkUmVwYWludHMoKTsK
ICAgICBtX2lzVHJhY2tpbmdSZXBhaW50cyA9IHRyYWNrUmVwYWludHM7CkBAIC0zOTQzLDEwICsz
ODY5LDggQEAgdm9pZCBGcmFtZVZpZXc6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBh
aW50cykKIHZvaWQgRnJhbWVWaWV3OjpyZXNldFRyYWNrZWRSZXBhaW50cygpCiB7CiAgICAgbV90
cmFja2VkUmVwYWludFJlY3RzLmNsZWFyKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygp
KQogICAgICAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkucmVzZXRUcmFja2VkUmVwYWludFJl
Y3RzKCk7Ci0jZW5kaWYKIH0KIAogU3RyaW5nIEZyYW1lVmlldzo6dHJhY2tlZFJlcGFpbnRSZWN0
c0FzVGV4dCgpIGNvbnN0CkBAIC00MTAxLDEyICs0MDI1LDggQEAgYm9vbCBGcmFtZVZpZXc6OnVw
ZGF0ZUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCkKIAogdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9s
bGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoYm9vbCBmbGFnKQogewotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcg
PSB0aGlzLT50aWxlZEJhY2tpbmcoKSkKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRTY3JvbGxp
bmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZsYWcpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oZmxhZyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmRpZEFkZFNjcm9sbGJhcihT
Y3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCkBA
IC00MjQyLDEzICs0MTYyLDExIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRFeHBvc2VkUmVjdChGbG9h
dFJlY3QgZXhwb3NlZFJlY3QpCiAKICAgICBtX2V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBzdXBwb3J0IGNsaXBwaW5nIHRvIHRoZSBleHBvc2VkIHJlY3QgZm9yIHN1YmZyYW1lcyBhcyB3
ZWxsLgogICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgIGlmIChUaWxl
ZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKQogICAgICAgICAg
ICAgdGlsZWRCYWNraW5nLT5zZXRFeHBvc2VkUmVjdChleHBvc2VkUmVjdCk7CiAgICAgfQotI2Vu
ZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmlu
ZGV4IGIxMzI2ODQ0ZjI4ZjdkYzg0ZGU3YjBhZjJlZTgzMTVhMzZhYTc1YzAuLmVkMjBiZDI2MzI4
MWU5NmQ2ZWRiZDJjOWIwNTg4ZDJlYzEzMDFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApA
QCAtMTM1LDcgKzEzNSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlcnZpY2VTY3JpcHRlZEFuaW1h
dGlvbnMoZG91YmxlIG1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk7CiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpOwogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXll
cnNBZnRlckxheW91dCgpOwogICAgIGJvb2wgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0Zy
YW1lKEZyYW1lKiByb290RnJhbWVGb3JGbHVzaCk7CkBAIC0xNTUsNyArMTU0LDYgQEAgcHVibGlj
OgogICAgIC8vIEluIHRoZSBmdXR1cmUgd2hlbiBhbnkgU2Nyb2xsYWJsZUFyZWEgY2FuIGhhdmUg
YSBub2RlIGluIHRoIFNjcm9sbGluZ1RyZWUsIHRoaXMgc2hvdWxkCiAgICAgLy8gYmVjb21lIGEg
dmlydHVhbCBmdW5jdGlvbiBvbiBTY3JvbGxhYmxlQXJlYS4KICAgICB1aW50NjRfdCBzY3JvbGxM
YXllcklEKCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFzQ29tcG9zaXRlZENvbnRlbnQo
KSBjb25zdDsKICAgICBib29sIGhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFu
dHMoKSBjb25zdDsKQEAgLTE5Nyw5ICsxOTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFeHRl
bmRlZEJhY2tncm91bmQoKSBjb25zdDsKICAgICBJbnRSZWN0IGV4dGVuZGVkQmFja2dyb3VuZFJl
Y3QoKSBjb25zdDsKICAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dm9pZCBzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UoYm9vbCk7Ci0jZW5kaWYKIAogICAg
IGJvb2wgc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSBjb25zdDsKICAgICB2b2lkIHNldFNo
b3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKGJvb2wpOwpAQCAtNTE2LDcgKzUxMiw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3Vu
ZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxBbmltYXRv
ckVuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbGluZygpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JIb3Jpem9u
dGFsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MjUsNyArNTIwLDYgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVy
KiBsYXllckZvck92ZXJoYW5nQXJlYXMoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgotI2VuZGlm
CiAKICAgICAvLyBPdmVycmlkZSBzY3JvbGxiYXIgbm90aWZpY2F0aW9ucyB0byB1cGRhdGUgdGhl
IEFYT2JqZWN0IGNhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRTY3JvbGxiYXIoU2Nyb2xs
YmFyKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggZDQ2MzhlOWQwY2UzNTczNmRmMzcyYzM0ODIxNzFlNzZhOWI4Y2YyNS4uYTY5ZjU1NTM2ZGRl
OTM1NGJhMGE0ZjdkMTAwZDhkMGE0ZGMxY2IxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC03MjMs
OSArNzIzLDcgQEAgdm9pZCBQYWdlOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNv
bnN0IEludFBvaW50JiBvcmlnaW4pCiAgICAgICAgIG1haW5GcmFtZSgpLnZpZXcoKS0+aW52YWxp
ZGF0ZVJlY3QoSW50UmVjdChMYXlvdXRSZWN0OjppbmZpbml0ZVJlY3QoKSkpOwogICAgIH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBtYWluRnJhbWUoKS5kZXZpY2VP
clBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNlbmRpZgogCiAgICAgaWYgKHZpZXcgJiYgdmll
dy0+Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpKQogICAgICAgICB2aWV3LT5z
ZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c05lZWRMYXlvdXQoKTsKQEAgLTc0NiwxMCArNzQ0
LDggQEAgdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikK
ICAgICBtX2RldmljZVNjYWxlRmFjdG9yID0gc2NhbGVGYWN0b3I7CiAgICAgc2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgbWFpbkZyYW1lKCkuZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAg
cGFnZUNhY2hlKCktPm1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdlZCh0aGlzKTsKLSNlbmRp
ZgogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5k
ZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXgg
NjdhN2NiY2MzM2NkM2Y3NjFiMzcwNTYxNDFmZmY3NDgxOWVhZDZmMy4uYWFkODE0OTYyMDhiMjNh
YzhhOGVjNGY5MTJmNGYxYmQxZTA5MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAg
LTYwNCw5ICs2MDQsNyBAQCB2b2lkIFNldHRpbmdzOjpzZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5k
QmV5b25kUGFnZShib29sIHNob3VsZEV4dGVuZCkKIAogICAgIG1fYmFja2dyb3VuZFNob3VsZEV4
dGVuZEJleW9uZFBhZ2UgPSBzaG91bGRFeHRlbmQ7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCktPnNldEJhY2tncm91bmRF
eHRlbmRzQmV5b25kUGFnZShzaG91bGRFeHRlbmQpOwotI2VuZGlmCiB9CiAKICNpZiBVU0UoQVZG
T1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmNwcAppbmRleCBkZDMzMTVlYmIwNjk2MTRkOGMwMTFhNGI1OWU1ZTU1N2E5NTEwNTExLi5m
NTA0NGI4NTJkMTQ2OWJiMjZjNGZjMGQxYTZkYmVhYTM0NzYwY2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtNjU5LDEwICs2NTks
OCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OmZyZWV6ZUF0VGltZShkb3VibGUgdCkKICAgICBlbHNl
CiAgICAgICAgIG1fcGF1c2VUaW1lID0gbV9zdGFydFRpbWUgKyB0IC0gbV9hbmltYXRpb24tPmRl
bGF5KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2Jq
ZWN0ICYmIG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgdG9SZW5kZXJCb3hNb2Rl
bE9iamVjdChtX29iamVjdCktPnN1c3BlbmRBbmltYXRpb25zKG1fcGF1c2VUaW1lKTsKLSNlbmRp
ZgogfQogCiBkb3VibGUgQW5pbWF0aW9uQmFzZTo6YmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggNWI4YzkwYjhhYjE3MDIyMjNmZDlhMzgwZTg1ZDJjZjQxZmZm
MjgwOS4uYjdjOTRlZDY2ZTU3MmFjOTMwNDIwMWJhNzRlZjA0NDJmYTc4ODRiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTYzNCwxMiArNjM0LDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyOjplbmRBbmlt
YXRpb25VcGRhdGUoKQogCiBib29sIEFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxl
cmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiB7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVybiBDU1NQcm9wZXJ0eUFuaW1h
dGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQocHJvcGVydHkpOwotI2Vsc2UK
LSAgICBVTlVTRURfUEFSQU0ocHJvcGVydHkpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggMjkxMTI5ZTkzMmMx
MmU2ODY4ZTliNGE1NjRkNGYwZTVkNTBlZDcwNS4uY2ZiMzIwZmI5ZDc1MzIwM2QxODllZjhlYTZl
M2MxYzZiNWM4NjY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMzg5LDkgKzM4OSw3IEBAIHB1YmxpYzoK
IAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3A7IH0K
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgYW5p
bWF0aW9uSXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBDU1NQcm9wZXJ0eUlEIG1fcHJvcDsKQEAgLTUzMyw3ICs1MzEsNiBAQCBw
cm90ZWN0ZWQ6CiB9OwogCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFz
cyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZE9wYWNpdHkgOiBwdWJsaWMgUHJvcGVydHlXcmFw
cGVyPGZsb2F0PiB7CiBwdWJsaWM6CiAgICAgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRPcGFj
aXR5KCkKQEAgLTU4Myw3ICs1ODAsNiBAQCBwdWJsaWM6CiAgICAgfQogfTsKICNlbmRpZgotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogc3RhdGljIGlubGluZSBzaXpl
X3Qgc2hhZG93TGlzdExlbmd0aChjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCiB7CkBAIC0xMjMy
LDE5ICsxMjI4LDExIEBAIENTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVy
dHlBbmltYXRpb25XcmFwcGVyTWFwKCkKIAogICAgICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFw
cGVyPExlbmd0aEJveD4oQ1NTUHJvcGVydHlDbGlwLCAmUmVuZGVyU3R5bGU6OmNsaXAsICZSZW5k
ZXJTdHlsZTo6c2V0Q2xpcCksCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZE9wYWNpdHkoKSwKICAgICAgICAg
bmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkVHJhbnNmb3JtKCksCiAjaWYgRU5BQkxFKENT
U19GSUxURVJTKQogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRGaWx0ZXIo
KSwKICNlbmRpZgotI2Vsc2UKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NT
UHJvcGVydHlPcGFjaXR5LCAmUmVuZGVyU3R5bGU6Om9wYWNpdHksICZSZW5kZXJTdHlsZTo6c2V0
T3BhY2l0eSksCi0gICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9ucyY+KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtLCAmUmVuZGVyU3R5bGU6OnRyYW5z
Zm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUcmFuc2Zvcm0pLAotI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlcjxjb25zdCBGaWx0ZXJPcGVyYXRpb25zJj4o
Q1NTUHJvcGVydHlXZWJraXRGaWx0ZXIsICZSZW5kZXJTdHlsZTo6ZmlsdGVyLCAmUmVuZGVyU3R5
bGU6OnNldEZpbHRlciksCi0jZW5kaWYKLSNlbmRpZgogCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdy
YXBwZXJDbGlwUGF0aChDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OmNs
aXBQYXRoLCAmUmVuZGVyU3R5bGU6OnNldENsaXBQYXRoKSwKIApAQCAtMTM5MywyMyArMTM4MSwx
NyBAQCBib29sIENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXMoY29uc3QgQW5p
bWF0aW9uQmFzZSogYW5pbSwgQ1NTUHJvcGVydAogICAgIEFuaW1hdGlvblByb3BlcnR5V3JhcHBl
ckJhc2UqIHdyYXBwZXIgPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6Omluc3RhbmNl
KCkud3JhcHBlckZvclByb3BlcnR5KHByb3ApOwogICAgIGlmICh3cmFwcGVyKSB7CiAgICAgICAg
IHdyYXBwZXItPmJsZW5kKGFuaW0sIGRzdCwgYSwgYiwgcHJvZ3Jlc3MpOwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgcmV0dXJuICF3cmFwcGVyLT5hbmltYXRpb25J
c0FjY2VsZXJhdGVkKCkgfHwgIWFuaW0tPmlzQWNjZWxlcmF0ZWQoKTsKLSNlbHNlCi0gICAgICAg
IHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBDU1NQcm9wZXJ0eUFuaW1hdGlv
bjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxlcmF0ZWQoQ1NTUHJvcGVydHlJRCBwcm9wKQog
ewogICAgIEFuaW1hdGlvblByb3BlcnR5V3JhcHBlckJhc2UqIHdyYXBwZXIgPSBDU1NQcm9wZXJ0
eUFuaW1hdGlvbldyYXBwZXJNYXA6Omluc3RhbmNlKCkud3JhcHBlckZvclByb3BlcnR5KHByb3Ap
OwogICAgIHJldHVybiB3cmFwcGVyID8gd3JhcHBlci0+YW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgp
IDogZmFsc2U7CiB9Ci0jZW5kaWYKIAogLy8gTm90ZTogdGhpcyBpcyBpbmVmZmljaWVudC4gSXQn
cyBvbmx5IGNhbGxlZCBmcm9tIHBhdXNlVHJhbnNpdGlvbkF0VGltZSgpLgogSGFzaFNldDxDU1NQ
cm9wZXJ0eUlEPiBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0YWJsZVNob3J0aGFuZHNBZmZl
Y3RpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmgKaW5kZXggYzQxYzdk
ZDkwYzM5MjdjYTRlMjhhYWI1YzMzZjU1MDMzN2M4YzQ0MS4uYjIxNDY2ZjBmOGZlZTM2NWM4N2Qy
MjkyNWU4NThkYzdhN2FjMDFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5oCkBAIC00MCw5ICs0MCw3IEBAIGNsYXNzIFJl
bmRlclN0eWxlOwogCiBjbGFzcyBDU1NQcm9wZXJ0eUFuaW1hdGlvbiB7CiBwdWJsaWM6Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHN0YXRpYyBib29sIGFuaW1hdGlvbk9m
UHJvcGVydHlJc0FjY2VsZXJhdGVkKENTU1Byb3BlcnR5SUQpOwotI2VuZGlmCiAgICAgc3RhdGlj
IGJvb2wgcHJvcGVydGllc0VxdWFsKENTU1Byb3BlcnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYik7CiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ2V0UHJv
cGVydHlBdEluZGV4KGludCwgYm9vbCYgaXNTaG9ydGhhbmQpOwogICAgIHN0YXRpYyBpbnQgZ2V0
TnVtUHJvcGVydGllcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggZTE4Nzc5ZWE3MTRiNWQzNDcyMWVjMDIyOTcz
NTAyZDZiZTA2MzllMi4uMWM5NWQ5MDE5N2UzNzgwZGUwZTk3OGRlNGMwZDc4YzVhZjc1NDM4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uY3BwCkBAIC0xNDgsNyArMTQ4LDYgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVw
ZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBSZW5kZXJTdHlsZSoKICAg
ICAgICAgICAgICAgICAgICAgLy8gbGlzdC4gSW4gdGhpcyBjYXNlLCB0aGUgbGF0dGVyIG9uZSBv
dmVycmlkZXMgdGhlIGVhcmxpZXIgb25lLCBzbyB3ZQogICAgICAgICAgICAgICAgICAgICAvLyBi
ZWhhdmUgYXMgdGhvdWdoIHRoaXMgaXMgYSBydW5uaW5nIGFuaW1hdGlvbiBiZWluZyByZXBsYWNl
ZC4KICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbXBsQW5pbS0+aXNUYXJnZXRQcm9wZXJ0eUVx
dWFsKHByb3AsIHRhcmdldFN0eWxlKSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBhY2NlbGVyYXRlZCBhbmltYXRpb25z
IHdlIG5lZWQgdG8gcmV0dXJuIGEgbmV3IFJlbmRlclN0eWxlIHdpdGggdGhlIF9jdXJyZW50XyB2
YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHByb3BlcnR5LCBzbyB0aGF0
IHJlc3RhcnRlZCB0cmFuc2l0aW9ucyB1c2UgdGhlIGNvcnJlY3Qgc3RhcnRpbmcgcG9pbnQuCiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ1NTUHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlv
bk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKHByb3ApICYmIGltcGxBbmltLT5pc0FjY2VsZXJhdGVk
KCkpIHsKQEAgLTE1Nyw3ICsxNTYsNiBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
VHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFJlbmRlclN0eWxlKgogCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW1wbEFuaW0tPmJsZW5kUHJvcGVydHlWYWx1ZUluU3R5
bGUocHJvcCwgbW9kaWZpZWRDdXJyZW50U3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgfQotI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywg
IlJlbW92aW5nIGV4aXN0aW5nIEltcGxpY2l0QW5pbWF0aW9uICVwIGZvciBwcm9wZXJ0eSAlcyIs
IGltcGxBbmltLCBnZXRQcm9wZXJ0eU5hbWUocHJvcCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYW5pbWF0aW9uQ29udHJvbGxlcigpLT5hbmltYXRpb25XaWxsQmVSZW1vdmVkKGltcGxBbmlt
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fdHJhbnNpdGlvbnMucmVtb3ZlKHByb3ApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwCmluZGV4IGFmMWQ3ODgxOTA2Yzc2MDQ4ODk3NTI5NDk0MTM2ODZjZWQyMDJhZWQuLmZlZTZj
MDc1MDA2NWI4MTIyNjJhZWI3MzVlMzVkMjI0YmYyNTU4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTc3LDcgKzc3
LDYgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24q
LCBSZW5kZXJFbGVtZW50KiwgY29uc3QgUmVuZGUKICAgICBpZiAoIWFuaW1hdGVkU3R5bGUpCiAg
ICAgICAgIGFuaW1hdGVkU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUodGFyZ2V0U3R5bGUpOwog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgbmVlZHNBbmltID0g
Q1NTUHJvcGVydHlBbmltYXRpb246OmJsZW5kUHJvcGVydGllcyh0aGlzLCBtX2FuaW1hdGluZ1By
b3BlcnR5LCBhbmltYXRlZFN0eWxlLmdldCgpLCBtX2Zyb21TdHlsZS5nZXQoKSwgbV90b1N0eWxl
LmdldCgpLCBwcm9ncmVzcygxLCAwLCAwKSk7CiAgICAgLy8gRklYTUU6IHdlIGFsc28gbmVlZCB0
byBkZXRlY3QgY2FzZXMgd2hlcmUgd2UgaGF2ZSB0byBzb2Z0d2FyZSBhbmltYXRlIGZvciBvdGhl
ciByZWFzb25zLAogICAgIC8vIHN1Y2ggYXMgYSBjaGlsZCB1c2luZyBpbmhlcml0aW5nIHRoZSB0
cmFuc2Zvcm0uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwMgpA
QCAtODcsNyArODYsNiBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0
ZUFuaW1hdGlvbiosIFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZQogICAgICAgICAvLyB0aGF0
IGlzIGFuaW1hdGluZyBhcmUgY29ycmVjdGx5IGRldGVjdGVkIGR1cmluZyB0aGUgYW5pbWF0aW9u
IChlLmcuIHdoZW4gYSB0cmFuc2l0aW9uCiAgICAgICAgIC8vIGdldHMgaW50ZXJydXB0ZWQpLgog
ICAgICAgICBhbmltYXRlZFN0eWxlLT5zZXRJc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbigp
OwotI2VuZGlmCiAKICAgICAvLyBGaXJlIHRoZSBzdGFydCB0aW1lb3V0IGlmIG5lZWRlZAogICAg
IGZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgpOwpAQCAtMTAzLDEyICsxMDEsOCBAQCB2b2lk
IEltcGxpY2l0QW5pbWF0aW9uOjpnZXRBbmltYXRlZFN0eWxlKFJlZlB0cjxSZW5kZXJTdHlsZT4m
IGFuaW1hdGVkU3R5bGUpCiAKIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9u
KGRvdWJsZSB0aW1lT2Zmc2V0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAobV9vYmplY3QgJiYgbV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICBy
ZXR1cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29iamVjdCktPnN0YXJ0VHJhbnNpdGlvbih0
aW1lT2Zmc2V0LCBtX2FuaW1hdGluZ1Byb3BlcnR5LCBtX2Zyb21TdHlsZS5nZXQoKSwgbV90b1N0
eWxlLmdldCgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQpOwotI2VuZGlm
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0xMTcsMTIgKzExMSw4IEBAIHZvaWQgSW1wbGlj
aXRBbmltYXRpb246OnBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KQogICAgIGlmICgh
bV9vYmplY3QpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAobV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICB0b1JlbmRl
ckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+dHJhbnNpdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBt
X2FuaW1hdGluZ1Byb3BlcnR5KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQp
OwotI2VuZGlmCiAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxl
CiAgICAgaWYgKCFwYXVzZWQoKSkKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhtX29iamVj
dC0+ZWxlbWVudCgpKTsKQEAgLTEzMCwxMCArMTIwLDggQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlv
bjo6cGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiAKIHZvaWQgSW1wbGljaXRBbmlt
YXRpb246OmVuZEFuaW1hdGlvbigpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChtX29iamVjdCAmJiBtX29iamVjdC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAg
IHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT50cmFuc2l0aW9uRmluaXNoZWQobV9h
bmltYXRpbmdQcm9wZXJ0eSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6
b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQpAQCAtMjg1LDcgKzI3Myw2IEBAIHZv
aWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3Rz
KCkKIGRvdWJsZSBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQogewogICAg
IGRvdWJsZSB0ID0gQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZpY2UoKTsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHQgIT0gMCB8fCBwcmVBY3RpdmUoKSkK
ICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgIApAQCAtMjk1LDcgKzI4Miw2IEBAIGRvdWJsZSBJ
bXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKQogICAgICAgICBib29sIGlzTG9v
cGluZzsKICAgICAgICAgZ2V0VGltZVRvTmV4dEV2ZW50KHQsIGlzTG9vcGluZyk7CiAgICAgfQot
I2VuZGlmCiAgICAgcmV0dXJuIHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCA4ZjY2MWM2YzMxOGNjOGMzMTI5
NmNiY2RjMTk0ZGU4MDZjODY0OGQ4Li5iZjEwYzI3Njk3ZGY5YTRkMTU5ZDM1YjYxNjIyMTY2M2Ri
NzY5M2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJh
bWVBbmltYXRpb24uY3BwCkBAIC0xODMsMTQgKzE4MywxMiBAQCB2b2lkIEtleWZyYW1lQW5pbWF0
aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5k
ZXJFbAogICAgICAgICBkb3VibGUgcHJvZ3Jlc3MgPSAwLjA7CiAgICAgICAgIGZldGNoSW50ZXJ2
YWxFbmRwb2ludHNGb3JQcm9wZXJ0eSgqaXQsIGZyb21TdHlsZSwgdG9TdHlsZSwgcHJvZ3Jlc3Mp
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBib29sIG5lZWRz
QW5pbSA9IENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXModGhpcywgKml0LCBh
bmltYXRlZFN0eWxlLmdldCgpLCBmcm9tU3R5bGUsIHRvU3R5bGUsIHByb2dyZXNzKTsKICAgICAg
ICAgaWYgKCFuZWVkc0FuaW0pCiAgICAgICAgICAgICAvLyBJZiB3ZSBhcmUgcnVubmluZyBhbiBh
Y2NlbGVyYXRlZCBhbmltYXRpb24sIHNldCBhIGZsYWcgaW4gdGhlIHN0eWxlCiAgICAgICAgICAg
ICAvLyB0byBpbmRpY2F0ZSBpdC4gVGhpcyBjYW4gYmUgdXNlZCB0byBtYWtlIHN1cmUgd2UgZ2V0
IGFuIHVwZGF0ZWQKICAgICAgICAgICAgIC8vIHN0eWxlIGZvciBoaXQgdGVzdGluZywgZXRjLgog
ICAgICAgICAgICAgYW5pbWF0ZWRTdHlsZS0+c2V0SXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRp
b24oKTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAtMjI2LDEzICsyMjQsOSBAQCBib29sIEtleWZy
YW1lQW5pbWF0aW9uOjpoYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5KSBjb25zdAogCiBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzdGFydEFuaW1hdGlvbihkb3Vi
bGUgdGltZU9mZnNldCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICByZXR1
cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29iamVjdCktPnN0YXJ0QW5pbWF0aW9uKHRpbWVP
ZmZzZXQsIG1fYW5pbWF0aW9uLmdldCgpLCBtX2tleWZyYW1lcyk7CiAgICAgfQotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0odGltZU9mZnNldCk7Ci0jZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKQEAgLTI0MSwxMiArMjM1LDkgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6cGF1c2VBbmlt
YXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiAgICAgaWYgKCFtX29iamVjdCkKICAgICAgICAgcmV0
dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX29iamVj
dC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmpl
Y3QpLT5hbmltYXRpb25QYXVzZWQodGltZU9mZnNldCwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFt
ZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQpOwotI2VuZGlmCisKICAg
ICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAgICBpZiAoIXBh
dXNlZCgpKQogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKG1fb2JqZWN0LT5lbGVtZW50KCkp
OwpAQCAtMjU3LDEwICsyNDgsOSBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjplbmRBbmltYXRp
b24oKQogICAgIGlmICghbV9vYmplY3QpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQog
ICAgICAgICB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+YW5pbWF0aW9uRmluaXNo
ZWQobV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKLSNlbmRpZgorCiAgICAgLy8gUmVzdG9y
ZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCiAgICAgaWYgKCFwYXVzZWQoKSkKICAg
ICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhtX29iamVjdC0+ZWxlbWVudCgpKTsKQEAgLTQzMiw3
ICs0MjIsNiBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVy
RnVuY3Rpb25MaXN0cygpCiBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2
aWNlKCkKIHsKICAgICBkb3VibGUgdCA9IEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNl
KCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICh0ICE9IDAgfHwg
cHJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybiB0OwogICAgICAgICAKQEAgLTQ1Miw3ICs0NDEs
NyBAQCBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKICAgICAg
ICAgYm9vbCBpc0xvb3Bpbmc7CiAgICAgICAgIGdldFRpbWVUb05leHRFdmVudCh0LCBpc0xvb3Bp
bmcpOwogICAgIH0KLSNlbmRpZgorCiAgICAgcmV0dXJuIHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRnJhbWVJT1MubW0KaW5kZXggMTQ5NjhiNmM4MzUzZjMyNmMwMmU2Mzk1YmEzZDI1ZGYyMjc4
NjEzYy4uYjRlM2MzYzJhN2ViZjE2MTIwMjE3ZmNlMWZlYzIwYTQxMTVhYzZkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KQEAgLTg3Niw3ICs4NzYsNiBAQCBzdGF0aWMgYm9vbCBh
bnlGcmFtZUhhc1RpbGVkTGF5ZXJzKEZyYW1lKiByb290RnJhbWUpCiAKIHZvaWQgRnJhbWU6OnZp
ZXdwb3J0T2Zmc2V0Q2hhbmdlZChWaWV3cG9ydE9mZnNldENoYW5nZVR5cGUgY2hhbmdlVHlwZSkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGNoYW5nZVR5cGUg
PT0gSW5jcmVtZW50YWxTY3JvbGxPZmZzZXQpIHsKICAgICAgICAgaWYgKGFueUZyYW1lSGFzVGls
ZWRMYXllcnModGhpcykpIHsKICAgICAgICAgICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gY29u
dGVudFJlbmRlcmVyKCkpCkBAIC04ODgsMTUgKzg4NywxMyBAQCB2b2lkIEZyYW1lOjp2aWV3cG9y
dE9mZnNldENoYW5nZWQoVmlld3BvcnRPZmZzZXRDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCiAgICAg
ICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgICAg
ICByb290LT5jb21wb3NpdG9yKCkudXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdV
cGRhdGVPblNjcm9sbCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wgRnJhbWU6OmNvbnRhaW5z
VGlsZWRCYWNraW5nTGF5ZXJzKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSBjb250ZW50UmVuZGVyZXIoKSkKICAg
ICAgICAgcmV0dXJuIHJvb3QtPmNvbXBvc2l0b3IoKS5oYXNOb25NYWluTGF5ZXJzV2l0aFRpbGVk
QmFja2luZygpOwotI2VuZGlmCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggNzdjNTBiODQyY2JhNTE5ZmQwZjAxNDhhOTljYTEyNGYyZTBhZDU5Ni4u
MjczODYxYzEzNTQyYjk0MzUzZGMxNTdiMzk4OTQ4MGQ4OTMxNzZlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHAKQEAgLTE5Nyw3ICsxOTcsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdObwogCiAg
ICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChvbGRQcm9ncmFtbWF0aWNTY3Jv
bGwpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChzY3JvbGxp
bmdOb2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxMYXllcklEKCkpIHsKICAgICAgICAgaWYgKEdy
YXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyID0gc2Nyb2xsTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVW
aWV3KSkgewogICAgICAgICAgICAgR3JhcGhpY3NMYXllciogY291bnRlclNjcm9sbGluZ0xheWVy
ID0gY291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CkBAIC0yMjgs
OSArMjI3LDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQ
b3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm8KICAgICAgICAgfQogICAgIH0KICAg
ICAvLyBGSVhNRTogaGFuZGxlIG5vbi1tYWluIHNjcm9sbGluZyBub2Rlcy4KLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwotI2VuZGlmCiB9CiAK
IHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJM
YXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDkzZGZiMGNlYzRiOWUxOGVj
OThiMzFhYzliZTFiYzBmYTMzN2VmNWQuLjhlMzI1NmViMzNiZmRjOTNiYzBkNjMyMjk4MzRkM2Y1
NWIyYWFiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTM2LDE1ICszNiwxMiBAQAogI2luY2x1ZGUgIlBs
YXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVk
ZSAiUmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCi0jZW5kaWYKLQogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICNp
bmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCIKICNlbmRp
ZgpAQCAtODksMTQgKzg2LDEwIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvb3JkaW5h
dGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWV3CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnQgY29tcG9zaXRl
ZCBtb2RlLgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gbV9wYWdlLT5tYWluRnJhbWUoKS5jb250ZW50UmVuZGVyZXIoKTsKICAg
ICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gcmVu
ZGVyVmlldy0+dXNlc0NvbXBvc2l0aW5nKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgogfQogCiBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvbXB1dGVOb25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbihjb25zdCBGcmFtZSogZnJhbWUsIGNvbnN0IEludFBvaW50JiBmcmFtZUxv
Y2F0aW9uKSBjb25zdApAQCAtMTEyLDExICsxMDUsOSBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBGcmFtZSogZnJhbWUs
CiAgICAgaWYgKGNvbnN0IEZyYW1lVmlldzo6U2Nyb2xsYWJsZUFyZWFTZXQqIHNjcm9sbGFibGVB
cmVhcyA9IGZyYW1lVmlldy0+c2Nyb2xsYWJsZUFyZWFzKCkpIHsKICAgICAgICAgZm9yIChGcmFt
ZVZpZXc6OlNjcm9sbGFibGVBcmVhU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IHNjcm9sbGFibGVB
cmVhcy0+YmVnaW4oKSwgZW5kID0gc2Nyb2xsYWJsZUFyZWFzLT5lbmQoKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CiAgICAgICAgICAgICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEgPSAqaXQ7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAgICAgLy8gQ29tcG9z
aXRlZCBzY3JvbGxhYmxlIGFyZWFzIGNhbiBiZSBzY3JvbGxlZCBvZmYgdGhlIG1haW4gdGhyZWFk
LgogICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVhLT51c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotI2VuZGlmCiAgICAgICAgICAgICBJbnRS
ZWN0IGJveCA9IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCk7CiAg
ICAgICAgICAgICBib3gubW92ZUJ5KG9mZnNldCk7CiAgICAgICAgICAgICBub25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbi51bml0ZShib3gpOwpAQCAtMTc5LDcgKzE3MCw2IEBAIHZvaWQgU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmZyYW1lVmlld0ZpeGVkT2JqZWN0c0RpZENoYW5nZShGcmFtZVZpZXcqIGZy
YW1lVmlldykKICAgICB1cGRhdGVTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKTsKIH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpzY3JvbGxMYXllckZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
KiBzY3JvbGxhYmxlQXJlYSkKIHsKICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPmxheWVyRm9y
U2Nyb2xsaW5nKCk7CkBAIC0xOTQsMjMgKzE4NCwxNyBAQCBHcmFwaGljc0xheWVyKiBTY3JvbGxp
bmdDb29yZGluYXRvcjo6dmVydGljYWxTY3JvbGxiYXJMYXllckZvclNjcm9sbGFibGVBcmVhKFNj
cgogewogICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJh
cigpOwogfQotI2VuZGlmCiAKIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpz
Y3JvbGxMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcg
PSBmcmFtZVZpZXctPmZyYW1lKCkuY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBy
ZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuc2Nyb2xsTGF5ZXIoKTsKICAgICByZXR1cm4gMDsKLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1lVmlldyk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYK
IH0KIAogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9y
RnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWV3KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJf
QkFORElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+ZnJh
bWUoKS5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigp
LmhlYWRlckxheWVyKCk7CiAgICAgcmV0dXJuIDA7CkBAIC0yMjIsNyArMjA2LDcgQEAgR3JhcGhp
Y3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KEZy
YW1lVmlldyogZnJhbWVWaWUKIAogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmZvb3RlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWV3KQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lm
IEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9
IGZyYW1lVmlldy0+ZnJhbWUoKS5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJl
bmRlclZpZXctPmNvbXBvc2l0b3IoKS5mb290ZXJMYXllcigpOwogICAgIHJldHVybiAwOwpAQCAt
MjM0LDE0ICsyMTgsOSBAQCBHcmFwaGljc0xheWVyKiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Zm9v
dGVyTGF5ZXJGb3JGcmFtZVZpZXcoRnJhbWVWaWV3KiBmcmFtZVZpZQogCiBHcmFwaGljc0xheWVy
KiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3
KEZyYW1lVmlldyogZnJhbWVWaWV3KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+ZnJhbWUoKS5j
b250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS5maXhlZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKTsKICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGZyYW1lVmlldyk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKEZyYW1l
VmlldyogZnJhbWVWaWV3KQpAQCAtMjc5LDcgKzI1OCw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKEZy
YW1lCiAgICAgaWYgKCF2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGZvciAoRnJh
bWVWaWV3OjpWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0U2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9
IHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5iZWdpbigpLCBlbmQgPSB2aWV3cG9ydENvbnN0
cmFpbmVkT2JqZWN0cy0+ZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBSZW5kZXJP
YmplY3QqIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QgPSAqaXQ7CiAgICAgICAgIGlmICghdmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdC0+aXNCb3hNb2RlbE9iamVjdCgpIHx8ICF2aWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0LT5oYXNMYXllcigpKQpAQCAtMjkwLDkgKzI2OCw2IEBAIGJvb2wgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RzKEZyYW1lCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIGZhbHNlOwotI2Vsc2UKLSAgICByZXR1cm4gdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMt
PnNpemUoKTsKLSNlbmRpZgogfQogCiBTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCAwZTA1ZDY5ZmRkOGM4YjhkNmVlMDcyMzIyMWE5N2YxYzVmNzI2YjAzLi45MjQ3YmEz
OWFmN2U4M2IyZDZmYjFjOWZiMDJkNmJjMjEyNjlkYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTE4MiwxMSAr
MTgyLDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKFBhZ2UqKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBz
dGF0aWMgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXJGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxh
YmxlQXJlYSopOwogICAgIHN0YXRpYyBHcmFwaGljc0xheWVyKiBob3Jpem9udGFsU2Nyb2xsYmFy
TGF5ZXJGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSopOwogICAgIHN0YXRpYyBHcmFw
aGljc0xheWVyKiB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xs
YWJsZUFyZWEqKTsKLSNlbmRpZgogCiAgICAgdW5zaWduZWQgY29tcHV0ZUN1cnJlbnRXaGVlbEV2
ZW50SGFuZGxlckNvdW50KCk7CiAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXJGb3JGcmFt
ZVZpZXcoRnJhbWVWaWV3Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmlu
ZGV4IDJlODFkMjJjOWZmNDM3NzFiNDZlOGIxNjE4YjlhMmY1NTYxNzQ2NjEuLjU5NzRmODQxMzVm
Y2QyYzU3MTg5YTJhYzQ2Mjc3OThlMmZmNDhhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCkBAIC05NzYsNyArOTc2LDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpjbGlwUmVj
dENoYW5nZWQoKQogICAgICAgICAoKmN1cnJlbnQpLT5jbGlwUmVjdENoYW5nZWQoKTsKIH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHN0YXRpYyB2b2lkIHBvc2l0aW9uU2Ny
b2xsYmFyTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIpCiB7CiAgICAgaWYgKCFncmFwaGljc0xheWVyIHx8ICFzY3JvbGxiYXIpCkBAIC0xMDA5
LDE2ICsxMDA4LDEyIEBAIHN0YXRpYyB2b2lkIHBvc2l0aW9uU2Nyb2xsQ29ybmVyTGF5ZXIoR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgY29uc3QgSW50UmVjCiAgICAgICAgIGdyYXBoaWNz
TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAgIGdyYXBoaWNzTGF5ZXItPnNldFNpemUoY29y
bmVyUmVjdC5zaXplKCkpOwogfQotI2VuZGlmCi0KIAogdm9pZCBTY3JvbGxWaWV3Ojpwb3NpdGlv
blNjcm9sbGJhckxheWVycygpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXIobGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCks
IGhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAgcG9zaXRpb25TY3JvbGxiYXJMYXllcihsYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKCksIHZlcnRpY2FsU2Nyb2xsYmFyKCkpOwogICAgIHBvc2l0
aW9uU2Nyb2xsQ29ybmVyTGF5ZXIobGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSwgc2Nyb2xsQ29ybmVy
UmVjdCgpKTsKLSNlbmRpZgogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVj
dGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93KQpAQCAtMTA5OSwyMyArMTA5NCwx
NCBAQCB2b2lkIFNjcm9sbFZpZXc6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAKIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnRTY3JvbGxiYXJzKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAobV9ob3Jp
em9udGFsU2Nyb2xsYmFyCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAg
ICAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkKLSNlbmRpZgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJh
ciAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCiAgICAgICAgIHBhaW50U2Nyb2xs
YmFyKGNvbnRleHQsIG1faG9yaXpvbnRhbFNjcm9sbGJhci5nZXQoKSwgcmVjdCk7Ci0gICAgaWYg
KG1fdmVydGljYWxTY3JvbGxiYXIKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0g
ICAgICAgICYmICFsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkKLSNlbmRpZgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFy
ICYmICFsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgIHBhaW50U2Nyb2xsYmFy
KGNvbnRleHQsIG1fdmVydGljYWxTY3JvbGxiYXIuZ2V0KCksIHJlY3QpOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChsYXllckZvclNjcm9sbENvcm5lcigpKQog
ICAgICAgICByZXR1cm47Ci0jZW5kaWYKKwogICAgIHBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQs
IHNjcm9sbENvcm5lclJlY3QoKSk7CiB9CiAKQEAgLTExNjIsNyArMTE0OCw3IEBAIHZvaWQgU2Ny
b2xsVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgICAgICBwYWludENvbnRlbnRzKGNvbnRleHQsIGRvY3VtZW50RGlydHlSZWN0KTsK
ICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJC
RVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKCFsYXllckZv
ck92ZXJoYW5nQXJlYXMoKSkKICAgICAgICAgY2FsY3VsYXRlQW5kUGFpbnRPdmVyaGFuZ0FyZWFz
KGNvbnRleHQsIHJlY3QpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcAppbmRleCA4OGQwMjkzOGY2NTFmM2NkYTgwMzk5NTcxNmEyMDMyMjVjMjRlMTcz
Li44NWY1ODUyOWI2NWIyYTBjMWYwZDQ0ZDc2NDVmNWNjZjNkYmNmYWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0zMjIsNyArMzIyLDYgQEAgdm9p
ZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJs
YXlTdHlsZSBvdmVybGF5U3R5bGUKIAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNj
cm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHNjcm9sbGJhciA9PSBob3Jp
em9udGFsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIgPSBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICAgICAgZ3Jh
cGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0zMzYsMjIgKzMzNSwyMCBAQCB2b2lk
IFNjcm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFy
LCBjb25zdCBJbnRSZWN0JiByZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
fQotI2VuZGlmCisKICAgICBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChzY3JvbGxiYXIsIHJlY3Qp
OwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Nyb2xsQ29ybmVyKGNvbnN0
IEludFJlY3QmIHJlY3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyID0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIo
KSkgewogICAgICAgICBncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSNlbmRpZgorCiAgICAgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3Qo
cmVjdCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFNjcm9s
bGFibGVBcmVhOjp2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKIHsKICAgICBzY3Jv
bGxBbmltYXRvcigpLT52ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7CkBAIC0zNjEs
MzMgKzM1OCwyMCBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjpob3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXJEaWRDaGFuZ2UoKQogewogICAgIHNjcm9sbEFuaW1hdG9yKCktPmhvcml6b250YWxTY3JvbGxi
YXJMYXllckRpZENoYW5nZSgpOwogfQotI2VuZGlmCiAKIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhh
c0xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVybiBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIo
KTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsYWJs
ZUFyZWE6Omhhc0xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdAogewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9s
bGJhcigpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogYm9vbCBTY3Jv
bGxhYmxlQXJlYTo6aGFzTGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdAogewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gbGF5ZXJGb3JTY3JvbGxDb3JuZXIo
KTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsYWJs
ZUFyZWE6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCmluZGV4IDhkNmY0MGNhMmZlZWM0Y2MxNTI2NGNiOTg0YmRhYTA1ZDZm
YzYzZmQuLjdiNDA3NzBmMTI5NWJkZGY5YTRiNTQxNzQ4ZDY3ZDFkYjIwYzM3YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzYsMTAgKzM2LDggQEAgY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUGxhdGZvcm1Ub3VjaEV2ZW50OwogY2xhc3MgUGxh
dGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgU2Nyb2xsQW5pbWF0b3I7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIFRpbGVkQmFja2lu
ZzsKLSNlbmRpZgogCiBjbGFzcyBTY3JvbGxhYmxlQXJlYSB7CiBwdWJsaWM6CkBAIC0yMjEsNyAr
MjE5LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24o
aW50IHZlcnRpY2FsU2Nyb2xsRGVsdGEpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2lu
ZygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRT
Y3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC0yMzAsNyArMjI3LDYgQEAg
cHVibGljOgogCiAgICAgdm9pZCB2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7CiAg
ICAgdm9pZCBob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoKTsKLSNlbmRpZgogCiBw
cm90ZWN0ZWQ6CiAgICAgU2Nyb2xsYWJsZUFyZWEoKTsKQEAgLTI0MiwxNCArMjM4LDEzIEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xs
YmFyKiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNj
cm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYpID0gMDsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBmcmllbmQgY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbGluZygpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsQ29ybmVy
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2
aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yT3ZlcmhhbmdBcmVhcygpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICNlbmRpZgotI2VuZGlmCisKICAgICBib29sIGhhc0xheWVyRm9ySG9yaXpvbnRh
bFNjcm9sbGJhcigpIGNvbnN0OwogICAgIGJvb2wgaGFzTGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJh
cigpIGNvbnN0OwogICAgIGJvb2wgaGFzTGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCmluZGV4IGQ2OGUwNjI4ODM4MDNi
NGVmYTU5NmYzNTg0ZGI4YmZlODNmYmFmYzkuLjU4OThiZDhhOGVlMzY4YzZiZGRlNjdjYWY0ZWFi
YzJmNTgwN2E3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJh
clRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaApA
QCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBTY3JvbGxi
YXJUaGVtZUNsaWVudDsKIGNsYXNzIFNjcm9sbFZpZXc7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiBjbGFzcyBHcmFwaGljc0xheWVyOwogI2VuZGlmCiAKQEAgLTkwLDcgKzkwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludFRpY2ttYXJrcyhHcmFwaGljc0NvbnRl
eHQqLCBTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0IEludFJlY3QmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRPdmVyaGFuZ0FyZWFzKFNjcm9sbFZpZXcqLCBHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5H
KQorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVy
aGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3ImKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NMYXllciop
IHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZs
U2NyZWVuVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3Jl
ZW5VdGlsaXRpZXMuY3BwCmluZGV4IDEzM2ExYWNmZDRlZDA4OWY3MzBkMTkwN2JiMjJhOGJjNGU2
MzQ0ZDMuLjVkYzA5MWFiZmVmZTU2MzhlZmE1ZDkxYmY4YTIxMWZlZDAyMjg5MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBA
IC0xMTQsMTIgKzExNCwxMCBAQCB2b2lkIGFwcGx5RmFsbGJhY2tDdXJzb3IoRWNvcmVfRXZhcyog
ZWNvcmVFdmFzLCBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmcpCiAgICAgfQogCiAgICAgRWNvcmVf
WF9XaW5kb3cgd2luZG93OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB3
aW5kb3cgPSBlY29yZV9ldmFzX2dsX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CiAgICAgLy8g
RmFsbGJhY2sgdG8gc29mdHdhcmUgbW9kZSBpZiBuZWNlc3NhcnkuCiAgICAgaWYgKCF3aW5kb3cp
Ci0jZW5kaWYKLSAgICB3aW5kb3cgPSBlY29yZV9ldmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0
KGVjb3JlRXZhcyk7CisgICAgICAgIHdpbmRvdyA9IGVjb3JlX2V2YXNfc29mdHdhcmVfeDExX3dp
bmRvd19nZXQoZWNvcmVFdmFzKTsKIAogICAgIEVjb3JlX1hfQ3Vyc29yIGN1cnNvciA9IGVjb3Jl
X3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7CiAgICAgZWNvcmVfeF93aW5kb3dfY3Vyc29yX3Nl
dCh3aW5kb3csIGN1cnNvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCA3MDVjMzI3MmJiN2Q1Y2NiMmI5MGNjYWRk
ZTU1ZmM0YWJlNGFlMTQwLi5jM2YzZTc5YmZjZDI2MjllNjQ0OTY3ODM1NTAxNzAwMTUwMDI5YTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKQEAgLTQ5MSwxMCArNDkxLDggQEAgcHVibGljOgogI2Vsc2UKICAgICBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKTsKICAgICBQ
bGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0OwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0OwogI2VuZGlmCi0jZW5kaWYKIAogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDA0OWZkZDJkMTJmMWRlMjVhMTI0NjgyOTlj
OWQ5MjRmZWU0YTQ1N2YuLjk1NjE2NmRhY2JlMzE2ZjFiYjc3YWQ4MzhlZWJjNzI5ODQ3NTNhMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUg
Ik9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYg
VVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaW5jbHVkZSA8
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oPgogI2VuZGlmCiAKQEAgLTY4LDcgKzY4LDcgQEAgR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQsIEcKIAogR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgaWYg
KGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+cGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3ll
ZCgpOwogI2VuZGlmCkBAIC04NCw3ICs4NCw3IEBAIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwbGF0Zm9ybUNvbnRleHQoKQogICAgIHJldHVybiBt
X2dsQ29udGV4dCA/IG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSA6IEdMQ29udGV4dDo6
Z2V0Q3VycmVudCgpLT5wbGF0Zm9ybUNvbnRleHQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01B
UFBFUikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4dHVyZU1hcHBl
cihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJl
Y3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHkpCiB7
CiAgICAgaWYgKCFtX2dsQ29udGV4dCkKQEAgLTE1MCw5ICsxNTAsOSBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlcgogICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFw
cGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlIHwgKG1fY29udGV4dC0+bV9hdHRycy5hbHBoYSA/IFRl
eHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwKTsKICAgICBJbnRTaXplIHRleHR1cmVTaXpl
KG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KTsK
ICAgICB0ZXhtYXBHTC0+ZHJhd1RleHR1cmUobV9jb250ZXh0LT5tX3RleHR1cmUsIGZsYWdzLCB0
ZXh0dXJlU2l6ZSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5KTsKLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkdfR0wpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogfQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNlbmRpZiAv
LyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuaAppbmRleCA0MmViNmMyZTcwNTFjOTAyNzUwYjI4ODBkZWM0ZmEzNzQzYjIx
MGZkLi5iNmZkNDQ4Mjc2NDJlMWY5MmY5Nzc3ZjU5OWRkZWQ2ZDQzZThiMmE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuaApAQCAtMjQsMTQgKzI0LDE0IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVf
TUFQUEVSKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgiCiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikK
KyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgOiBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIKICNlbmRpZgogewpAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUoKSB7IHJldHVybiBtX3JlbmRl
clN0eWxlOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgdmlydHVhbCB2b2lkIHBh
aW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5KTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IDNkNDEwYjcwMWNjZjAxMmI5NjkzMDM3ZjMyMjJiNTUyMjE3NGRhMmQuLjkzNDRh
Mzg3M2U4ZTA1ODExYTQyMzU1OWNhOGMxMzRiN2QxMzg0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC0yNSw4ICsyNSw2
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKIAogI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKQEAgLTc5Myw1ICs3OTEsMyBAQCB2b2lkIHNob3dHcmFwaGljc0xheWVyVHJlZShjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBmcHJpbnRmKHN0ZGVyciwgIiVz
XG4iLCBvdXRwdXQudXRmOCgpLmRhdGEoKSk7CiB9CiAjZW5kaWYKLQotI2VuZGlmIC8vIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAzZDU3ZTgwNGFlZWUxYWY2Yjk2NzIzMWM4YTFk
Y2IzODMxNGU5OTJiLi5mZjBjMTU5ZDhiZTcxYWMzYTRhZGEzN2E1ZGFlMWM0YmY4ODc1OTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJfaAogI2RlZmluZSBHcmFw
aGljc0xheWVyX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1
ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2lu
dC5oIgpAQCAtNjI1LDYgKzYyMyw0IEBAIHByb3RlY3RlZDoKIHZvaWQgc2hvd0dyYXBoaWNzTGF5
ZXJUcmVlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKTsKICNlbmRpZgogCi0j
ZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gR3JhcGhp
Y3NMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCmluZGV4IGFkZDY4NmY2NjE1MmVjMTViNGIz
NTUyYmRiODJjYTUyNDQzZjg2YzAuLjY0NTA2NmU5ZWJjN2E3NTJlZTJiZDFjYjdlNDUwMTc1NGZm
MDFlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCkBAIC0xOSw3ICsxOSw2IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNs
dWRlICJHcmFwaGljc0xheWVyQW5pbWF0aW9uLmgiCiAKICNpbmNsdWRlICJMYXlvdXRTaXplLmgi
CkBAIC00MDEsNSArNDAwLDMgQEAgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMgR3JhcGhpY3NMYXll
ckFuaW1hdGlvbnM6OmdldEFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBhY3Rp
dmU7CiB9CiB9Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oCmluZGV4IDJkMmY2ODU3MzU0NDIz
ZmY4MWVmMTYxNDlmMTY2YjgzYzE1NjEzNjQuLjhmMzdmZTQxMzdlMjhkNjFmOGUzODc5YjY3Y2M0
ZGFkZjUzMmU4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmgKQEAgLTIwLDggKzIwLDYgQEAKICNpZm5k
ZWYgR3JhcGhpY3NMYXllckFuaW1hdGlvbl9oCiAjZGVmaW5lIEdyYXBoaWNzTGF5ZXJBbmltYXRp
b25faAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllci5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTEwNSw2ICsxMDMsNSBAQCBwcml2YXRlOgogfTsKIAogfQot
I2VuZGlmCiAKICNlbmRpZiAvLyBHcmFwaGljc0xheWVyQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApp
bmRleCA5MGY5ZTgyM2I0YTk3ZWQ3ZDkwNDA2ZTVmZGVmZjRmMDEzYzAzOTljLi4zZDUxM2NkMWUy
Mzg0OGQ2YTI0YzhlZjQ0Y2I1ZGFjZjNmZGE4NmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC0yNiw4ICsy
Niw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJDbGllbnRfaAogI2RlZmluZSBHcmFwaGljc0xh
eWVyQ2xpZW50X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFBvaW50OwpAQCAtMTA3LDYgKzEwNSw0IEBAIHB1
YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gR3JhcGhpY3NMYXllckNsaWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFj
dG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZh
Y3RvcnkuaAppbmRleCA2NDEzZTkzY2I0MmExZjFhZWM1MmY1ZmE5MDI1OTUwZjk5OGY5ODM2Li43
MDhjOGM2OTlhOTFlNTZlZmJjMThiN2UxYmI1YTUxMjJmNjI5ZTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgK
QEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR3JhcGhpY3NMYXllckZhY3RvcnlfaAogI2RlZmlu
ZSBHcmFwaGljc0xheWVyRmFjdG9yeV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC00NCw2ICs0Miw0IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gR3JhcGhpY3NM
YXllckZhY3RvcnlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCmluZGV4IGIzYzk0MzY0NDYxNTIxNWFhYWVh
YmM3MmIwYjM2ZDM3ZDI4YTM0MjcuLjA1Njk5MmQxZTZmOGUyYWU0NmYyMDBkOTliNTM3ZTIzY2Fi
OWE4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVk
ZSAiR3JhcGhpY3NMYXllclVwZGF0ZXIuaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
QEAgLTgxLDUgKzc5LDMgQEAgdm9pZCBHcmFwaGljc0xheWVyVXBkYXRlcjo6ZGlzcGxheVJlZnJl
c2hGaXJlZChkb3VibGUgdGltZXN0YW1wKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuaAppbmRl
eCAxMDgwOTlhZTZhOTVlYTIzNDM0ZTM0YmY0ODQwNjZmNWUyOWIzMWY1Li5mNDI0NmRmNTk3YWI2
ZGMxYWMxNmUyOTMxYTlmMDJlNGZiZWE4MGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmgKQEAgLTI2LDggKzI2
LDYgQEAKICNpZm5kZWYgR3JhcGhpY3NMYXllclVwZGF0ZXJfaAogI2RlZmluZSBHcmFwaGljc0xh
eWVyVXBkYXRlcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5o
IgogCkBAIC02Miw2ICs2MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIEdy
YXBoaWNzTGF5ZXJVcGRhdGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA4MzM1MzRjNmM2YjhkOWNhNTIzMmJlNmI3YWNhZTIz
YmZlZjViOWE0Li5lNmZhY2RhODBkYzMwNWJmOGJjZjM2MjVmM2JiYmE4Mzc1YjllZWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCkBA
IC05OCw3ICs5OCw3IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2so
KQogICAgIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiB9CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFVU0UoQ0FJUk8pCisjaWYgIVVTRShDQUlSTykKIFBs
YXRmb3JtTGF5ZXIqIEltYWdlQnVmZmVyOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCmluZGV4IGI2MmU1MDY5ZjQ2OWMzZjU4ZTY2YzI3NWViMTc2OTFiMTI3MmNkNDEuLjVhNGRm
MjE2OTc5ZThhODUzNzE4NDk0NTIxN2M3YTY3M2RlOTcxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaApAQCAtMzIsMTMgKzMyLDExIEBACiAj
aW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jZW5kaWYKICNpbmNsdWRlICJHcmFwaGljc1R5cGVz
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgog
I2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIK
ICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMTksOSArMTE3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2Vsc2UKICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFu
c2Zvcm0oKSBjb25zdCB7IHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oMSwgMCwgMCwgLTEsIDAsIG1f
ZGF0YS5tX2JhY2tpbmdTdG9yZVNpemUuaGVpZ2h0KCkpOyB9CiAjZW5kaWYKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxlbWVu
dGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkgb25s
eSB3b3JrCiAgICAgICAgIC8vIHdpdGggdGV4dHVyZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9y
bWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDMxYjRjMTBlZWNkZTlmNzYzOWM0NjY5
MjMzNjE4MDcyYmI4NGViYWMuLmU3OWMxNjE5N2E5NWM4YThmYjlhZjQ0MWViZGVlNDhhN2Q3ZGY0
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTk2LDkgKzk2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgp
IHsgfSAgICAKIAogICAgIHZpcnR1YWwgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29u
c3QgeyByZXR1cm4gTm9QbGF0Zm9ybU1lZGlhOyB9Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KLSNlbmRpZgogCiAgICAgdmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXpl
KCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZSgwLCAwKTsgfQogCkBAIC02MTQsMTIgKzYxMiwxMCBA
QCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyOjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5wbGF0Zm9ybU1lZGlhKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllcjo6cGxhdGZvcm1MYXll
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGxhdGZvcm1MYXllcigpOwogfQot
I2VuZGlmCiAKIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgTWVkaWFQbGF5ZXI6Om5ldHdvcmtT
dGF0ZSgpCiB7CkBAIC04OTIsNyArODg4LDYgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y2FuRW50ZXJG
dWxsc2NyZWVuKCkgY29uc3QKIH0KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogdm9pZCBNZWRpYVBsYXllcjo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5n
ZWQoKQogewogICAgIG1fcHJpdmF0ZS0+YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
KTsKQEAgLTkwMiw3ICs4OTcsNiBAQCBib29sIE1lZGlhUGxheWVyOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c0Fj
Y2VsZXJhdGVkUmVuZGVyaW5nKCk7CiB9Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogCiBib29sIE1lZGlhUGxheWVyOjpzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCmluZGV4IGM2NDgwZTRiMGZkMDg4MjUwZjU2ZmRiYjU4NDdlNzYzOGU1NTA2MjQuLjQ3MTg5
MWNkZjdhZjZiMjhjMmJmYmJmZWZlZTQ5N2E2OGY5ZDgxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZVB0ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9VaW50
OEFycmF5Lmg+CkBAIC00OSwxMCArNTAsNiBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNlbmRpZgotCiAjaWYg
VVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tfTUVOVSkKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFj
a01lbnUuaCIKICNlbmRpZgpAQCAtMTk5LDE0ICsxOTYsMTIgQEAgcHVibGljOgogICAgIC8vIEEg
Y2hhcmFjdGVyaXN0aWMgb2YgdGhlIG1lZGlhIGZpbGUsIGVnLiB2aWRlbywgYXVkaW8sIGNsb3Nl
ZCBjYXB0aW9ucywgZXRjLCBoYXMgY2hhbmdlZC4KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5
ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KICAgICAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gd2hldGhlciB0aGUgcmVuZGVyaW5nIHN5
c3RlbSBjYW4gYWNjZWxlcmF0ZSB0aGUgZGlzcGxheSBvZiB0aGlzIE1lZGlhUGxheWVyLgogICAg
IHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVkaWFQ
bGF5ZXIqKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIG1lZGlh
IHBsYXllcidzIHJlbmRlcmluZyBtb2RlIGNoYW5nZWQsIHdoaWNoIGluZGljYXRlcyBhIGNoYW5n
ZSBpbiB0aGUKICAgICAvLyBhdmFpbGFiaWxpdHkgb2YgdGhlIHBsYXRmb3JtTGF5ZXIoKS4KICAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChNZWRpYVBsYXll
ciopIHsgfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04p
CiAgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NE
ZXZpY2VBZGFwdGVyKGNvbnN0IE1lZGlhUGxheWVyKikgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAt
Mjk0LDkgKzI4OSw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25z
dDsKICAgICBib29sIHJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdDsKICAgICBQ
bGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdDsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0Owot
I2VuZGlmCiAKICAgICBJbnRTaXplIG5hdHVyYWxTaXplKCk7CiAgICAgYm9vbCBoYXNWaWRlbygp
IGNvbnN0OwpAQCAtNDU3LDEyICs0NTAsMTAgQEAgcHVibGljOgogICAgIGJvb2wgY2FuRW50ZXJG
dWxsc2NyZWVuKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICAvLyB3aGV0aGVyIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBpcyBzdXBwb3J0ZWQg
YnkgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIGN1cnJlbnQgbWVkaWEuCiAgICAgYm9vbCBzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAgICAgLy8gY2FsbGVkIHdoZW4gdGhl
IHJlbmRlcmluZyBzeXN0ZW0gZmxpcHMgdGhlIGludG8gb3Igb3V0IG9mIGFjY2VsZXJhdGVkIHJl
bmRlcmluZyBtb2RlLgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQo
KTsKLSNlbmRpZgogCiAgICAgYm9vbCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApp
bmRleCBmYmFmZDcwY2Q5ZWYzNGEwNzgwNGEyNWE3OTI5M2I4NzgyMzliMzUwLi41NTM3ODhjMzg1
MjUxYTViYTI4NzIwMTk5OTZhMTZhMDhmNjUxNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtNTIsOSArNTIs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1BsYXkoKSB7IH0K
ICAgICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0IHsgcmV0dXJu
IE5vUGxhdGZvcm1NZWRpYTsgfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiAw
OyB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBwYXVzZSgpID0gMDsgICAgCkBAIC0xNjAsMTIgKzE1OCwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGNhbkVudGVyRnVsbHNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyB3aGV0
aGVyIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBpcyBzdXBwb3J0ZWQgYnkgdGhlIG1lZGlhIGVuZ2lu
ZSBmb3IgdGhlIGN1cnJlbnQgbWVkaWEuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIC8vIGNhbGxlZCB3
aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBzIHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVy
YXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJp
bmdTdGF0ZUNoYW5nZWQoKSB7IH0KLSNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZE1h
aW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oYm9vbCkgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKaW5kZXggYTE4ZjliOWMz
ZjQ5NzQ3ZjFkZDdlMmM2YTk2OGE1NTY3ODgyYTRlYS4uMmM3ZDI2YjJiNDA3YmE1NzkwZDM0ZjM5
OWQyMmQxN2JlMjY2MTcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtTGF5ZXIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUxh
eWVyX2gKICNkZWZpbmUgUGxhdGZvcm1MYXllcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0KICNpZiBQTEFURk9STShNQUMpCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiB0eXBl
ZGVmIENBTGF5ZXIgUGxhdGZvcm1MYXllcjsKQEAgLTU2LDYgKzU0LDQgQEAgdHlwZWRlZiBUZXh0
dXJlTWFwcGVyUGxhdGZvcm1MYXllciBQbGF0Zm9ybUxheWVyOwogdHlwZWRlZiB2b2lkKiBQbGF0
Zm9ybUxheWVyOwogI2VuZGlmCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNlbmRpZiAvLyBQbGF0Zm9ybUxheWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcApp
bmRleCBkMTc4ZTU4NmY3OGYyMDE2OTBlZWMzM2YyMmEyNjM0OTNiYTFhZGU5Li5mY2Y1OGI4YzI5
NmNhYjQ5YTJkZDg3OWI0NDY1MDBmMzU3NDQ3Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
CkBAIC0zNSw5ICszNSw3IEBAIGNsYXNzIE51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA6IHB1
YmxpYyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TnVs
bFRleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZSgp
IHsgfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSB7IHJldHVybiAwOyB9Ci0jZW5kaWYKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSB7IH0KICAgICB2aXJ0dWFsIEludFJlY3Qg
Ym91bmRzKCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9u
LmgKaW5kZXggNWY4NDQ0ODNkYTZiZDIwZDllNzViNDhmMjUzMzQwNzY5NGMyMjg4Mi4uOWUxYzgz
YmQ4YTk4NjdmYmE5OWQ4NTVjYzIwZmIwOWQyODQ0MTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5o
CkBAIC01Myw5ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZSgpID0gMDsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgPSAwOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRTY2Fs
ZShmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCA9IDA7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmNwcAppbmRleCBkMDcyMGM1ZDFkNGJkNjBmY2Y5MDE0MGMyZWJjY2M2M2MxNWQwOTNmLi41
OGEyNDY4MWFlMjI1NzBjNDlhODZmNTBkMDFkMjhmNmVjZTlmMjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtOTEs
MTAgKzkxLDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp+TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uKCkKIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpN
ZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50
UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChwbGF0Zm9ybUxheWVyKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXI7Ci0jZW5kaWYKIAogICAgIGlmIChoYXNDb250ZXh0UmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OwpAQCAtMTA3LDEwICsxMDUsOCBAQCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpbwogICAgIGlmICghbV9wbGF5ZXItPnZpc2libGUoKSB8fCAh
bV9wbGF5ZXItPmZyYW1lVmlldygpIHx8IGFzc2V0U3RhdHVzKCkgPT0gTWVkaWFQbGF5ZXJBVkFz
c2V0U3RhdHVzVW5rbm93bikKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVy
YXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBs
YXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdUb0xheWVyOwotI2VuZGlmCiAKICAgICByZXR1cm4gTWVkaWFSZW5kZXJp
bmdUb0NvbnRleHQ7CiB9CkBAIC0xNDAsMjEgKzEzNiwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAgICAgY2FzZSBNZWRpYVJl
bmRlcmluZ1RvQ29udGV4dDoKICAgICAgICAgY3JlYXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKTsK
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKwogICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0xheWVyOgogICAgICAgICBjcmVhdGVWaWRl
b0xheWVyKCk7CiAgICAgICAgIGJyZWFrOwotI2VuZGlmCiAgICAgfQogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIElmIHVzaW5nIGEgbW92aWUgbGF5ZXIsIGluZm9y
bSB0aGUgY2xpZW50IHNvIHRoZSBjb21wb3NpdGluZyB0cmVlIGlzIHVwZGF0ZWQuCiAgICAgaWYg
KGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJyZWRNb2RlID09
IE1lZGlhUmVuZGVyaW5nVG9MYXllcikgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJpbmcoJXApIC0gY2FsbGluZyBt
ZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKCkiLCB0aGlzKTsKICAgICAgICAgbV9wbGF5
ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQo
bV9wbGF5ZXIpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1JlbmRlcmluZygpCkBAIC0xNjMsMTAgKzE1NSw4IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp0ZWFyRG93blZpZGVvUmVuZGVy
aW5nKCkKIAogICAgIGRlc3Ryb3lDb250ZXh0VmlkZW9SZW5kZXJlcigpOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChwbGF0Zm9ybUxheWVyKCkpCiAgICAgICAg
IGRlc3Ryb3lWaWRlb0xheWVyKCk7Ci0jZW5kaWYKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246Omhhc1NldFVwVmlkZW9SZW5kZXJpbmcoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDE5
MmVjMzlmYjI2ZWIwZjllYTYyZDM1NmNiNTQ2MDlmMjZhNmU3OTEuLjBjZmE1MWY3MDM5MmU2NmJh
M2QzMWRhZTRjODczZjZjMjI4OGIxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE4MCwxMSArMTgwLDkgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRS
ZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkKSBvdmVycmlkZTsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2Vs
ZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRl
ZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW87IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxk
TWFpbnRhaW5Bc3BlY3RSYXRpbyhib29sKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuaAppbmRleCAxZjIwNjIxNTMyZjk5Y2FkNjc3ODI0YTBiNGY3NzE3YzdkMDU1N2RjLi5mNWE4
YjExMzE0MDE2NjYyNzdhNzQwNDhiMWE4OTczMWRjZTdiMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaApAQCAtODAsOSArODAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHBy
ZXBhcmVUb1BsYXkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxhdGZv
cm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVy
cmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHBsYXkoKSBvdmVycmlkZTsKICAgICB2
b2lkIHBsYXlJbnRlcm5hbCgpOwpAQCAtMTI4LDExICsxMjYsOSBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdCBvdmVycmlkZTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIC8vIGNhbGxlZCB3
aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBzIHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVy
YXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJp
bmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCBNZWRpYVBs
YXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA1MjA4Nzk5MjBiMjU5MzcwYWQyNDhhZmYwZWFh
MGRmNGM4ZmIyNzJhLi42YzQ2NTY4N2Y2OWU3MjA0MzAwM2I1MDM2ODRiZDhiOWFkYWNjOTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0yNTgsMTIgKzI1OCwxMCBAQCBQbGF0Zm9y
bU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxhdGZvcm1NZWRp
YSgpIGNvbnN0CiAgICAgcmV0dXJuIHBtOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIuZ2V0KCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnBsYXkoKQogewpAQCAtNDM3LDcgKzQzNSw2IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1l
KCkgY29uc3QKICAgICByZXR1cm4gbV9oYXNBdmFpbGFibGVWaWRlb0ZyYW1lOwogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewog
ICAgIHJldHVybiB0cnVlOwpAQCAtNDUwLDcgKzQ0Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgp
CiAgICAgZWxzZQogICAgICAgICBkZXN0cm95TGF5ZXIoKTsKIH0KLSNlbmRpZgogCiBNZWRpYVBs
YXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
Om1vdmllTG9hZFR5cGUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggYWI0NGM3YzY1M2Ni
YzBjNDk4MmI5Y2ZlYWNkNzI0MDIxNGFjYTFmOC4uMDgyZDllYzI4YzFiZWYyM2Y4YmYxZTI2NDZh
MzMxMmY5YzhhZmNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCkBAIC0z
NTA4LDUgKzM1MDYsMyBAQCBkb3VibGUgR3JhcGhpY3NMYXllckNBOjpiYWNraW5nU3RvcmVNZW1v
cnlFc3RpbWF0ZSgpIGNvbnN0CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggZTNlNzkyODc3
NGU1YWZjNWIxMDk4ODdhNDRiMDNmOTAwOWUyYWEyOC4uMGVmNWQ5OTEyNTQ0Y2I2MGM2YjBjZDI2
YTliN2Y3OTk1NDk0MWMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYg
R3JhcGhpY3NMYXllckNBX2gKICNkZWZpbmUgR3JhcGhpY3NMYXllckNBX2gKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNp
bmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKQEAgLTU1
MSw3ICs1NDksNCBAQCBHUkFQSElDU0xBWUVSX1RZUEVfQ0FTVFMoR3JhcGhpY3NMYXllckNBLCBp
c0dyYXBoaWNzTGF5ZXJDQSgpKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0KLSNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBHcmFwaGljc0xh
eWVyQ0FfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
TGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAppbmRleCBmYzhkZTczODRlNTgzYjRhOWIzMTVk
ODA4MWY1NjdlMzliYzM2OWUzLi45OWNlNjkzOGIzZTRhNmRkN2M4ODE4YzRiOWE1NmQzZWVjMTA3
YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXll
ckZsdXNoU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcApAQCAtMjUsOCArMjUsNiBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJMYXllckZsdXNoU2NoZWR1bGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUw
LDUgKzQ4LDMgQEAgdm9pZCBMYXllckZsdXNoU2NoZWR1bGVyOjpyZXN1bWUoKQogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXll
ckZsdXNoU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9M
YXllckZsdXNoU2NoZWR1bGVyLmgKaW5kZXggZmUwYjUyZDg4YzFlMDYzNmMwYjU5MTlhNzdlYzY0
NjBmNDczMjQ1Zi4uNjAxODhmMzY3MDQ1MGE3Y2RkMDQ1YTVhYzIyZjE1Y2UzOWZiZDM5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNj
aGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVy
Rmx1c2hTY2hlZHVsZXIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBMYXllckZsdXNoU2No
ZWR1bGVyX2gKICNkZWZpbmUgTGF5ZXJGbHVzaFNjaGVkdWxlcl9oCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgpAQCAtNjMsNiArNjEsNCBAQCBwcm90ZWN0ZWQ6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8v
IExheWVyRmx1c2hTY2hlZHVsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oCmluZGV4
IGY3OWNiMzgyN2E3NzVlYmQzZmRkOGFkMzIxMTM5NWIyYjE1ZmQ2ODkuLmViMGI5NmMxYmEyOGE5
ODJlOWU4ZTY4Y2M1OGU4MTBlOGUxNjEzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudF9o
CiAjZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaAogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExheWVyRmx1
c2hTY2hlZHVsZXJDbGllbnQgewpAQCAtNDEsNiArMzksNCBAQCBwdWJsaWM6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogI2VuZGlmIC8vIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5o
CmluZGV4IGNlMzIzNmY0OGY1NDI3YjVlZmFiNGMyMmE3ZjQ1ZTY5M2JmYjBkZjYuLmFjYmFlYTIw
MTcwZjY5M2M4M2Q4NzY0MDY0ZmNkYTQwODBkN2ZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKQEAg
LTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1DQUFuaW1hdGlvbl9oCiAjZGVmaW5lIFBs
YXRmb3JtQ0FBbmltYXRpb25faAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNs
dWRlICJGbG9hdFBvaW50M0QuaCIKQEAgLTE2NSw2ICsxNjMsNCBAQCBwcml2YXRlOgogCiB9CiAK
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBQbGF0
Zm9ybUNBQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5oCmluZGV4IDljMzUwN2IyMzk0NDk1MTU1NTc2
MjkzOWNkYjFiMmZmNDBhNzQ2MjcuLjc5N2QzYjYwMjdhZjg2OTNkMTc4ZTFiOGYxMDFjMGEwNmE3
NTk3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1Bs
YXRmb3JtQ0FGaWx0ZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUZpbHRlcnMuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9y
bUNBRmlsdGVyc19oCiAjZGVmaW5lIFBsYXRmb3JtQ0FGaWx0ZXJzX2gKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKICNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb25zLmgiCkBAIC02NSw2ICs2NCw1IEBAIHB1YmxpYzoKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAKICNlbmRpZiAvLyBQbGF0Zm9ybUNBRmlsdGVyc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4
IDM3YTQ5NWYwOGNkZThiYWQyOGY0NDc3YTlhNmMxOWVkZTJhMTNkNTguLmU0NzQ0YjA4NGQwYmEw
ODYzMGQ4Mzc3MWFmNzRiZGYwNzQ3Nzk5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oCkBAIC0yNiw4ICsyNiw2IEBA
CiAjaWZuZGVmIFBsYXRmb3JtQ0FMYXllcl9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllcl9oCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1D
QUFuaW1hdGlvbi5oIgpAQCAtMjM4LDYgKzIzNiw0IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKaW5kZXgg
YTIyM2YxNmRjODhjMjM2ZjM0YzlhNWE3MDgzN2Q4MGE1MzZhNjhkMi4uMzZiOGIwZjY0YzM1NDIw
OTk0ODZmYWZjNmNhNWVjNmYxZGJhNGZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgKQEAgLTI2
LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1DQUxheWVyQ2xpZW50X2gKICNkZWZpbmUgUGxh
dGZvcm1DQUxheWVyQ2xpZW50X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCkBAIC03MSw2ICs2OSw0IEBAIHBy
b3RlY3RlZDoKIAogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9MYXllckZsdXNoU2No
ZWR1bGVyTWFjLmNwcAppbmRleCBiZmMzZTVhZjZjMzA2ZmJkNWVjYTY4MTBjM2IwNDcxMTk4ZWFj
NzA3Li5hZGU5ZThjZTVmODhmYTYxMDNiOTBkZWExZjBjYzkzMmE0MzhjZTZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvTGF5ZXJGbHVzaFNjaGVk
dWxlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1
ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5lZFBv
b2wuaD4KQEAgLTExMSw1ICsxMDksMyBAQCB2b2lkIExheWVyRmx1c2hTY2hlZHVsZXI6OmludmFs
aWRhdGUoKQogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5t
bQppbmRleCBlNmU1OWYzYWJkZjhhOTVmOWMxNzM4NWE4YzYyNTRkYTdhZThjYWY1Li5kMWY4YmU1
NmUyYTJkMDdmZWMzNjM3YmU3NzU1Nzk4ZWY5MDJjM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFu
aW1hdGlvbk1hYy5tbQpAQCAtMjUsOCArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBsYXRmb3JtQ0FB
bmltYXRpb24uaCIKIAogI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCkBAIC01ODMsNSArNTgx
LDMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShj
b25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWwKICAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBv
dGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVBbmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRp
b24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmlt
YXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9uczpbb3RoZXIgdGltaW5nRnVuY3Rpb25zXV07
CiB9Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRl
cnNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUZpbHRlcnNNYWMubW0KaW5kZXggNmZmNjQ4NTZiY2E3ZTY0OWNmY2ZiYzc4NGYwODYzZmUx
N2UyZGZmYS4uOTZlZGFjMWQwOTc5YjJiY2YzZjg5NTc5MTkyY2Q3YTA2MTAyYzE0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FG
aWx0ZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQpAQCAtMjUsNyArMjUsNiBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaWYgRU5BQkxF
KENTU19GSUxURVJTKQogCiAjaW1wb3J0ICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAtNzExLDQg
KzcxMCwzIEBAIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclBy
b3BlcnR5TmFtZShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IDZmYzRkMzhmNWFkOTdlODhlNjIzZTIyNGIyODc5ZGFk
YjNhYmVhMjguLmI5OWRjZWVlMzIzOTQ0YmJkZmQ4YTIwNGFjZTkzODYyNTMyMjg1ODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1D
QUxheWVyTWFjX2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyTWFjX2gKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogCiBP
QkpDX0NMQVNTIE5TT2JqZWN0OwpAQCAtMTY1LDYgKzE2Myw0IEBAIFBMQVRGT1JNX0NBTEFZRVJf
VFlQRV9DQVNUUyhQbGF0Zm9ybUNBTGF5ZXJNYWMsIGlzUGxhdGZvcm1DQUxheWVyTWFjKCkpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllck1hY19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbQppbmRleCA1NjdkYzJhMzc4ZmQ0NTJjNDJjZmZkZjczMWI2YTk4Mjg5OWZhZmI1
Li45YWRkZDcyNjYzNWZlZWU2YTAyNmVjZWU2ZGE1NzAxNzY4OTQ4NjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9y
bUNBTGF5ZXJNYWMubW0KQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJQbGF0Zm9ybUNB
TGF5ZXJNYWMuaCIKIAogI2ltcG9ydCAiQW5pbWF0aW9uVXRpbGl0aWVzLmgiCkBAIC04MzEsNSAr
ODI5LDMgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJNYWM6OmVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3
bihDR0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCAoXmIKIHsKICAgICB3a0NBTGF5ZXJFbnVtZXJh
dGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2sobV9sYXllci5nZXQoKSwgY29udGV4dCwgYmxvY2sp
OwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0Fic3RyYWN0Q0FDRkxh
eWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9B
YnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgKaW5kZXggMTNjNjc0NjQwZGJmNzAyNjk1M2FhMWEw
MWMxZmEyMjg0MzRmYjY2My4uMDFmMjNjM2U5YzM2MWQ3YWYzMTNlOWY5NWM4MzA0ZTA0YzAzZDU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0Fi
c3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNiw4ICsyNiw2
IEBACiAjaWZuZGVmIEFic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3RfaAogI2RlZmluZSBBYnN0cmFj
dENBQ0ZMYXllclRyZWVIb3N0X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3
LDYgKzQ1LDQgQEAgcHJvdGVjdGVkOgogCiB9CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5
ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4v
Q0FDRkxheWVyVHJlZUhvc3QuY3BwCmluZGV4IDVkMGMzNDY4NmNkZWQ5ODJjOTVjODM3ZDI5Y2Qw
ZDYwZjU4Zjc1MWMuLjVlNTQxMWE0OWQ2NjIwZjIyYmZiMWYzMjQ4Njk1M2I3NjlhYTg4YzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5
ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkNBQ0ZMYXllclRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJDQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5o
IgogI2luY2x1ZGUgIkRlZlduZFByb2NXaW5kb3dDbGFzcy5oIgogI2luY2x1ZGUgIkxheWVyQ2hh
bmdlc0ZsdXNoZXIuaCIKQEAgLTMyOCw1ICszMjYsMyBAQCBDR1JlY3QgQ0FDRkxheWVyVHJlZUhv
c3Q6OmJvdW5kcygpIGNvbnN0CiB9CiAKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKaW5kZXggOWNlYTFjMDFkZTY3YmRkNDA0
YWE1YmE1YWVkODU0MmQ0YmJmZGExOS4uMjRmMzIwODc5ODQzMjU3Y2FiZGU4NDkyZTFmM2EyNDk2
ZTA1OWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5k
ZWYgQ0FDRkxheWVyVHJlZUhvc3RfaAogI2RlZmluZSBDQUNGTGF5ZXJUcmVlSG9zdF9oCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJBYnN0cmFjdENBQ0ZM
YXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiQ09NUHRyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
QEAgLTEyMCw2ICsxMTgsNCBAQCBwcml2YXRlOgogCiB9CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBDQUNGTGF5ZXJUcmVlSG9zdF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVy
VHJlZUhvc3RDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oCmluZGV4IDg0NWY5MzRkYzA3MGU4YTI0ZjFjMGI2
OWRjMjcxNjg4OTc1YjJhNGIuLmY5ZWVjMGRhOThhNGE1MzU2ODhhYWM2MzlkMzk4ODhhNmE4OGQx
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9D
QUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oCkBAIC0yNiw4ICsyNiw2IEBA
CiAjaWZuZGVmIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50X2gKICNkZWZpbmUgQ0FDRkxheWVyVHJl
ZUhvc3RDbGllbnRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50IHsKQEAgLTM4
LDYgKzM2LDQgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBDQUNGTGF5ZXJUcmVl
SG9zdENsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5jcHAKaW5kZXggMWIxOWVhNGI3
Yzc5ZjE0NWVlZjRmODQ4NjMyNjIxNWFjNTM0MjE1Mi4uZmQ0NGFhMDYzYTI5YzA0MGZhOWMwMDk1
MmYxOWQ4YWI1MWFkYjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcApAQCAtMjYs
OCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxheWVyQ2hhbmdlc0Zs
dXNoZXIuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUg
IkFic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVkRXhjZXB0
aW9uSGFuZGxlclN1cHByZXNzb3IuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBA
IC0xMzEsNSArMTI5LDMgQEAgdm9pZCBMYXllckNoYW5nZXNGbHVzaGVyOjpyZW1vdmVIb29rKCkK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmgKaW5kZXggMWU3YWIzMTQ3MTlh
ZjZhMjFkMDc0YmRlMmJiNTk1NjlkYWMyZTkyOC4uMzdjMzE0MDIwY2M3ODZjN2JmYzBlOTkwYzU5
ZGNlZDUxZjZkYTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5oCkBAIC0yNiw4ICsyNiw2
IEBACiAjaWZuZGVmIExheWVyQ2hhbmdlc0ZsdXNoZXJfaAogI2RlZmluZSBMYXllckNoYW5nZXNG
bHVzaGVyX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUg
PHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtNjAsNiArNTgsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRp
ZiAvLyBMYXllckNoYW5nZXNGbHVzaGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhv
c3QuY3BwCmluZGV4IDIyOGUxNmU1NzdmMTlmYjgyNDc4ODZkMDgxYjE0NjU1ZDU0OTExNmQuLjhm
MzQ1YmQzMWZjZGFkNmYzNjNjZmU2MWQ2OWYxNWY3NTk0NzZlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2Fj
eUNBQ0ZMYXllclRyZWVIb3N0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkxlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNp
bmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVy
ZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KQEAgLTM5OCw1ICszOTYsMyBAQCBib29sIExl
Z2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpyZXNldERldmljZShSZXNldFJlYXNvbiByZWFzb24pCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgKaW5kZXggNWE2Nzhj
NjhmMTdlMTZjNjhjZmY5ZDNjZTU2MzdhNDkxYTgzM2Y1OS4uMzMxZGE3ODM4OGQ3YmFiZDA2YjM1
ZTYyNTg2NjU3NzdkY2MyNTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgK
QEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3RfaAogI2Rl
ZmluZSBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0KICNpbmNsdWRlICJDQUNGTGF5ZXJUcmVlSG9zdC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC04MSw2ICs3OSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlm
IC8vIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9u
V2luLmNwcAppbmRleCBjNTg0Yjk2Zjc2OTNkZjc5ZDMyMGExNTFjZDY4MzkxNzY0YzA3Mjc4Li5k
MjQ1NDAxNGQ3OWY1NzRmYjU1M2FjZWE3OGQ3M2M2N2UzM2NjODdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FBbmltYXRpb25XaW4uY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBs
YXRmb3JtQ0FBbmltYXRpb24uaCIKIAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgpAQCAt
NTU5LDUgKzU1NywzIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0
aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsCiB7CiAgICAgQ0FDRkFuaW1h
dGlvblNldFRpbWluZ0Z1bmN0aW9ucyhtX2FuaW1hdGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdl
dFRpbWluZ0Z1bmN0aW9ucyh2YWx1ZS0+cGxhdGZvcm1BbmltYXRpb24oKSkpOwogfQotCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBRmlsdGVy
c1dpbi5jcHAKaW5kZXggMzBjNDBhN2UzOWI0MDY3NjM1MzVmNjA2OGYwYTQ5Y2UxMTc5NmYyOC4u
M2EwZDA1Y2ZhNTY0M2Y0YzVkMzBlYTBkYmZkNTIwMTViOWIyNGI0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FGaWx0ZXJzV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUZpbHRlcnNXaW4uY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAKICNpbmNsdWRlICJQbGF0Zm9ybUNBRmlsdGVycy5oIgpAQCAtNTAsNCArNDksMyBA
QCBjb25zdCBjaGFyKiBQbGF0Zm9ybUNBRmlsdGVyczo6YW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0eU5h
bWUoRmlsdGVyT3BlcmF0aW9uOjpPcGVyYQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKENTU19GSUxU
RVJTKQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJX
aW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbi5jcHAKaW5kZXggMThiZTg2N2MzNTdhMzg0NDJkN2JiOGRkNTdkM2U1ZTdjZmU2
MDdmMy4uZTgwYzI0NDMxMjRjMjBiNmM1NGEzZWEwNGU3Y2E3ZTA0NzliY2QzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbi5jcHAKQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiUGxh
dGZvcm1DQUxheWVyV2luLmgiCiAKICNpbmNsdWRlICJBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0
LmgiCkBAIC02NzUsNSArNjczLDMgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRm
b3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0EKIHsKICAgICBy
ZXR1cm4gUGxhdGZvcm1DQUxheWVyV2luOjpjcmVhdGUobGF5ZXJUeXBlLCBjbGllbnQpOwogfQot
Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXll
cldpbi5oCmluZGV4IDI2MmFhMmNkOTZmMTM1NjM0Y2YxZDg5MjZjMTIyM2M0MmUxZTZiNzcuLjAx
YjA1NmUyN2U2YmQ2YTBkMzVjNDgyOTgwZGNiZDA0YjllOWRiNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxh
eWVyV2luLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1DQUxheWVyV2luX2gK
ICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyV2luX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xNTQsNiArMTUyLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyV2lu
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwCmluZGV4IGYwMTIx
YWE5YjExM2EzMDM4M2I3ODRiOTQ3MGRmNTI2NjZjODcyYjMuLmY2ODM1ZDY5ODgzMmJhMDJlZDdm
MWJiNzQ5YjJiMjJiNGY5MDVjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsLmNwcApAQCAtMjUsOCArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5
ZXJXaW5JbnRlcm5hbC5oIgogCiAjaW5jbHVkZSAiRm9udC5oIgpAQCAtNDg4LDUgKzQ4NiwzIEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OmRyYXdUaWxlKENBQ0ZMYXllclJlZiB0
aWxlLCBDR0NvbnRleHRSZWYgY29udGV4CiAKICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNv
bnRleHQpOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbkludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuaAppbmRleCAzOWVmM2IzNTc2ZjJmY2Zh
MDZlN2Y5MzdiMzUyNzA0MzJhYzhkNjg2Li45ZWRiYmE0NmI3NjRjNGZlODgxMmY3Mjg2MTVmNWMw
MzBjMGI3MjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuaApAQCAt
MjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbF9oCiAjZGVm
aW5lIFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFsX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0dlb21ldHJ5Lmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg0LDYg
KzgyLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWxfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdM
YXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMmY2NGFiMTYwY2Y4OGMwZjBmNDM2
YmQ2ZGUyNGU1NTE2NDMwZDFmYi4uNGEyNWM2ZGQ3ZDM1ZjQ5MzIyMjJjMDdmZWE5OGY1MDU5MzFl
YWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yNiw4ICsy
Niw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3QuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUg
IlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xODcsNSArMTg1LDMgQEAgR3JhcGhpY3NEZXZpY2VBZGFw
dGVyKiBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29u
c3QKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCmlu
ZGV4IGM2ZjRhOTAyYzA3OTZmMTJjOGRmYzM3NDA3YjIzYzlkYjlmNzc4NjAuLjBkZDE4Y2EzMzky
ZDEwMTQ1MWUwNTVhNzA2YmMxODNkMjZiZmE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJU
cmVlSG9zdC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdLQ0FDRlZpZXdMYXllclRyZWVI
b3N0X2gKICNkZWZpbmUgV0tDQUNGVmlld0xheWVyVHJlZUhvc3RfaAogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiQ0FDRkxheWVyVHJlZUhvc3QuaCIKIAog
dHlwZWRlZiBzdHJ1Y3QgX1dLQ0FDRlZpZXcqIFdLQ0FDRlZpZXdSZWY7CkBAIC02NSw2ICs2Myw0
IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFdLQ0FDRlZpZXdMYXllclRyZWVI
b3N0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0RyYXdpbmdCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDczOGU0OTM4MTUzODkzZDBlMmY1
YTE1ZTcyZDY0M2YxMWY1MmRiYTguLmQ3MTA0MDAxMjhlYTg3OGNhNDQ5NjYwNGEwMGQ0NmQzZTU1
NjA3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0RyYXdpbmdCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcApAQCAtMzMsOCArMzMsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
IHVuc2lnbmVkIERyYXdpbmdCdWZmZXI6OmZyb250Q29sb3JCdWZmZXIoKSBjb25zdAogewogICAg
IHJldHVybiBjb2xvckJ1ZmZlcigpOwpAQCAtNDMsNyArNDEsNiBAQCB1bnNpZ25lZCBEcmF3aW5n
QnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKCkgY29uc3QKIHZvaWQgRHJhd2luZ0J1ZmZlcjo6cGFp
bnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKikKIHsKIH0KLSNlbmRpZgog
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggODY0MWZkNDgzOWZh
MjlhY2M1ZDE1MmE2NjdhOGMxNTZkMjRkYzE1Ny4uODBiOTFlNDZhMGE1ZDQ0ZGZiNTFmMGMxYmM4
ZmNiOGYzOWZiNjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTMw
NiwxMiArMzA2LDEwIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQo
KSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQ
bGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggMDA0ODJhZDZkNDY5MTAzYjA0
ZjIxMDUzZjg4MTJiOWE2NmNmYTdhYi4uODZkODI2OWNmY2ZkMDg5ODY4ODlhM2EwYmFkZmVhOTI2
Nzk0MjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTQwNiw3ICs0MDYsNiBAQCB2b2lk
IEltYWdlQnVmZmVyRGF0YTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4
dHVyZU1hcHBlciwgY29uc3QgRgogfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKQEAgLTQxNSw2ICs0MTQs
NSBAQCBQbGF0Zm9ybUxheWVyKiBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAj
ZW5kaWYKICAgICByZXR1cm4gMDsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhp
Y3NDb250ZXh0M0RFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAppbmRleCAxMmNhNzI2NjRjMzI5MGZlYTI3NGM5NjMx
ODFiMWZmMTIzM2YyODhmLi45NDYxODI1NGFlZTI4ZGZkYTQ5NDE1YjU3Mjk2YjI2NGFmOWIwMTA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhp
Y3NDb250ZXh0M0RFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKQEAgLTIxLDggKzIxLDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaWYgVVNFKDNE
X0dSQVBISUNTKSB8fCBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJH
TERlZnMuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgpAQCAtMTc1LDcgKzE3Myw2IEBAIFBsYXRmb3JtM0RPYmplY3QgR3JhcGhpY3ND
b250ZXh0M0Q6OnBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGV4dHVyZTsK
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIEdy
YXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCkBAIC0xODUsNyArMTgyLDYgQEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3ND
b250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAwOwogI2VuZGlmCiB9
Ci0jZW5kaWYKIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bWFrZUNvbnRleHRDdXJyZW50KCkK
IHsKQEAgLTMxMCw1ICszMDYsMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJh
Y3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoM0RfR1JBUEhJQ1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IGMxYjdiNmNhMDZlODY5MGY5NDNmZTk1ZDk4
NmVhODlkNTUyNDJmNWMuLjM0M2RhYjZhOWEzMGYxYzg1YWVlZmE4NTRjNmFmNjNiMzc1MDc2ODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCkBAIC0yMSw4ICsyMSw2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgi
CiAKLSNpZiBVU0UoM0RfR1JBUEhJQ1MpIHx8IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
CkBAIC0yNzUsNSArMjczLDMgQEAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGU6OmdyYXBoaWNzU3VyZmFjZUZsYWdzKCkgY29uc3QKICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoM0RfR1JBUEhJQ1MpIHx8IFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRl
eCBjYzQxZGMzMGQzNmZiOTE3NDU1ZTkzNDZmNDU0MGY3N2I2ODc3MmY1Li4xMzMyYTQ4YjhmY2Mz
MjhmNzRhZjUyNjE5MzA0ZTc0YTBiZGNjNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5oCkBAIC0yMSw4ICsyMSw2IEBACiAjaWZuZGVmIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9o
CiAjZGVmaW5lIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9oCiAKLSNpZiBVU0UoM0RfR1JBUEhJ
Q1MpIHx8IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC05Niw1ICs5NCwz
IEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5n
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1
ZmZlci5oCmluZGV4IGUyMzRlNDIwY2RmNDk2OTc0NDQzNzBmNDM4YjM1MmRmMTM5MDAwNjMuLjBi
NzVmNzY4Njk5OWUxZjAwYTEwMTFjM2M2MTY2MGRiNThiOGIxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaApAQCAtMTE3
LDExICsxMTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1hcmtDb250ZW50c0NoYW5nZWQoKSB7
IG1fY29udGVudHNDaGFuZ2VkID0gdHJ1ZTsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKTsKICAgICB1bnNpZ25l
ZCBmcm9udENvbG9yQnVmZmVyKCkgY29uc3Q7CiAgICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1
bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXIqKTsKLSNlbmRpZgogCiAgICAgR3JhcGhpY3NDb250ZXh0
M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29w
Qmxpbm5NYXRoVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKaW5kZXggMzJhNTRmYjkwZGJiNzUyNGU5OWJhMzA5ODRi
ZWMxYjIxN2NkN2I0Yy4uODdkNzJkZmY0OThkODk1NWU5NDhmMzJmYjc0NmZmYThlZTJkYjM1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlu
bk1hdGhVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSB8fCBFTkFCTEUoQUND
RUxFUkFURURfMkRfQ0FOVkFTKQotCiAjaW5jbHVkZSAiTG9vcEJsaW5uTWF0aFV0aWxzLmgiCiAK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCkBAIC02NjYsNSArNjY0LDMgQEAgYm9vbCBpc0NvbnZl
eChjb25zdCBGbG9hdFBvaW50KiB2ZXJ0aWNlcywgaW50IG5WZXJ0aWNlcykKIAogfSAvLyBuYW1l
c3BhY2UgTG9vcEJsaW5uTWF0aFV0aWxzCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGlu
Z0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0Rh
dGEuY3BwCmluZGV4IDIzZGYzN2RhMGE4ZTI2Mzk1NTUxMjQ3MWViZmUwYWIwNjgyNGUzMWEuLjZh
M2QwNGM0ZDllMWEyM2IwZDY2NTM3NDM5ZDJkMTJkZDNhZTFlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKQEAgLTMwLDgg
KzMwLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotCiAjaW5jbHVkZSAi
VGlsaW5nRGF0YS5oIgogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCkBAIC0yMDMsNSArMjAxLDMg
QEAgdm9pZCBUaWxpbmdEYXRhOjpyZWNvbXB1dGVOdW1UaWxlcygpCiB9CiAKIH0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0Ry
YXdpbmdCdWZmZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
bWFjL0RyYXdpbmdCdWZmZXJNYWMubW0KaW5kZXggNTFjMjY1N2YxZDE5NzZjOWQzMjg3NThiMzhh
ZThkN2JmZmEwZWEyOS4uNDJjMGUwZTUyYTBjNjU1ZTEyNjY5NjNkZjdiYTEzMTI2MTMyZWM1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3
aW5nQnVmZmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5tbQpAQCAtOTQsNyArOTQsNiBAQCBEcmF3aW5nQnVmZmVy
Ojp+RHJhd2luZ0J1ZmZlcigpCiAgICAgY2xlYXIoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5
ZXIoKQogewogICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7CkBAIC0xMDQsNyArMTAz
LDYgQEAgdW5zaWduZWQgRHJhd2luZ0J1ZmZlcjo6ZnJvbnRDb2xvckJ1ZmZlcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGNvbG9yQnVmZmVyKCk7CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMzc2
M2EwMDZmYjJlYzc0YjE4M2ZmMTE5ZDZmZTQ3Y2QzNDg4MmMxMS4uMmJjYzYzNjk4MDU1OWViZTNi
YTc2OWZiY2JjMzNkODY3ZjA5MDE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNDMsNyArNDMsNyBAQAogCiAjaW5jbHVk
ZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgogCi0jaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwg
MSwgMCkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCisjaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMSwgMCkgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgogI2VuZGlmCiAKQEAgLTMwNCw3
ICszMDQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVDaGFu
Z2VkKCkKIH0KIAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogUGFzc1JlZlB0
cjxCaXRtYXBUZXh0dXJlPiBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVU
ZXh0dXJlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiB7CiAgICAgR011dGV4TG9ja2Vy
IGxvY2sobV9idWZmZXJNdXRleCk7CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2VyUmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikK
ICAgICAgICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZtX2J1ZmZlciwgYnVmZmVyKTsKICAgICB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgaWYgKHN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSAmJiBjbGllbnQoKSkgewog
ICAgICAgICBjbGllbnQoKS0+c2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgpOwogICAgICAg
ICByZXR1cm47CkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQor
I2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpAQCAtNDAxLDcgKzQw
MSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSCiAgICAgICAgIHJlY3QsIGdzdEltYWdlLT5y
ZWN0KCksIENvbXBvc2l0ZUNvcHksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBmYWxz
ZSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSkKIHsKICAgICBpZiAodGV4
dHVyZU1hcHBlci0+YWNjZWxlcmF0aW9uTW9kZSgpICE9IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
aAppbmRleCAwZjY1MDk0NGE1ZWJhNDlkYzIzMmE5YjU3NjJmMzVlMDQ2YWUyODRkLi5jYjdiYjBi
MmViOWVjNTZjNDNjZGJjMzAyNGFhYTVkN2RkMDQzOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKICNlbmRpZgogCkBA
IC00OCw3ICs0OCw3IEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBJbnRSZWN0OwogCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICAsIHB1Ymxp
YyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgogI2VuZGlmCiB7CkBAIC05NSw3ICs5NSw3IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAg
ICB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UqPih0aGlzKTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCk7CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJvdGVj
dGVkOgogICAgIHVuc2lnbmVkIGxvbmcgbV92b2x1bWVTaWduYWxIYW5kbGVyOwogICAgIHVuc2ln
bmVkIGxvbmcgbV9tdXRlU2lnbmFsSGFuZGxlcjsKICAgICBtdXRhYmxlIEludFNpemUgbV92aWRl
b1NpemU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKFRFWFRVUkVf
TUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFBhc3NSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gdXBkYXRlVGV4dHVyZShUZXh0dXJlTWFwcGVyKik7CiAjZW5kaWYKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQ
bGF5ZXJQcml2YXRlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
TWVkaWFQbGF5ZXJQcml2YXRlSU9TLmgKaW5kZXggODExNmY4M2RkZjFiOTNkNzM2ZmY5MTZlNDg0
M2YwYjU0NTQ4MjAwMS4uMTYyNzRiMjViZTUxNGViOTU0NjU5N2I2NjU3ZjdhMzBjZDUxN2UxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxh
eWVyUHJpdmF0ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9NZWRpYVBsYXllclByaXZhdGVJT1MuaApAQCAtMTQyLDkgKzE0Miw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHNldEhhc1BsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJz
KGJvb2wpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25z
dCBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhUGxheWVyUHJv
eHkoV2ViTWVkaWFQbGF5ZXJQcm94eSopIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvY2Vzc1BlbmRp
bmdSZXF1ZXN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW0KaW5kZXggOWVlYTcyNzlkYWVj
ZjAxY2QwOTExZTExZTUwNDdjNDkwMThkZDYwYy4uNTJiYjAxOTAxNzg1NDQxNTI0MDNhZmM1MTUy
ZDhlYmI5MDM4MGE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLm1tCkBAIC02NjMsMTIgKzY2
MywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c2V0SGFzUGxheWJhY2tUYXJnZXRB
dmFpbGFiaWxpdHlMaXN0ZW5lcnMoYm9vbCBoYXNMaQogfQogI2VuZGlmCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVJT1M6OmVudGVyRnVsbHNjcmVlbigpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDllYTQzOGMzOWRkZGE4NzIwNmQzMWM4
MWYyZWM3OGZjZjczZjcwMzYuLjI1ZTY3OTIwNmQ2NWE4YmUxM2ZjZDNhYjIyZDU4NGI2MWQyODdj
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC02NSw5ICs2NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNpemVDaGFuZ2VkKCk7CiAgICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAg
IHZvaWQgZGlkRW5kKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZv
aWQgbGF5ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpOwotI2VuZGlmCiAK
IHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKQEAg
LTgzLDkgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwog
CiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdDsKLSNlbmRpZgogCiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogICAgIGJv
b2wgaGFzVmlkZW8oKSBjb25zdDsKQEAgLTEzOCwxMSArMTM0LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IElu
dFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpOwogCi0KLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRl
Q2hhbmdlZCgpOwotI2VuZGlmCiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkg
Y29uc3Q7CiAgICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IGQ5MjJjZWQzNTc4NWU1NTM3
ZGE5NDBiMzU4MTcxYTMxYjM1MTIwYjMuLjc4OWI5ZWY5N2EyNzYzNjllNTI4MTQ0YTI0YzVjNmFk
YzVlNjRjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTM4LDYgKzM4LDcg
QEAKICNpbXBvcnQgIlVSTC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTUlNRVR5
cGVSZWdpc3RyeS5oIgorI2ltcG9ydCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJUaW1lUmFuZ2Vz
LmgiCkBAIC00NSwxMCArNDYsNiBAQAogI2ltcG9ydCA8UVRLaXQvUVRLaXQuaD4KICNpbXBvcnQg
PG9iamMvcnVudGltZS5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2lu
Y2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNlbmRpZgotCiAjaWYgRFJBV19GUkFNRV9SQVRFCiAj
aW1wb3J0ICJGb250LmgiCiAjaW1wb3J0ICJEb2N1bWVudC5oIgpAQCAtNTA4LDcgKzUwNSw2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRlc3Ryb3lRVFZpZGVvUmVuZGVyZXIoKQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVyKCkKIHsKICAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVy
KCVwKSIsIHRoaXMpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAo
IW1fcXRNb3ZpZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MjUsMjAgKzUyMSwxNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVhdGVRVE1vdmllTGF5ZXIoKQogI2VuZGlmCiAg
ICAgICAgIC8vIFRoZSBsYXllciB3aWxsIGdldCBob29rZWQgdXAgdmlhIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKS4KICAgICB9Ci0jZW5kaWYK
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGVzdHJveVFUTW92aWVMYXllcigp
CiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRlc3Ryb3lRVE1v
dmllTGF5ZXIoJXApIiwgdGhpcyk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmICghbV9xdFZpZGVvTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGRpc2Fz
c29jaWF0ZSBvdXIgbW92aWUgZnJvbSBvdXIgaW5zdGFuY2Ugb2YgUVRNb3ZpZUxheWVyCiAgICAg
W21fcXRWaWRlb0xheWVyLmdldCgpIHNldE1vdmllOm5pbF07ICAgIAogICAgIG1fcXRWaWRlb0xh
eWVyID0gbmlsOwotI2VuZGlmCiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVJl
bmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmN1cnJlbnRSZW5kZXJpbmdNb2Rl
KCkgY29uc3QKQEAgLTU2MCwxMCArNTUzLDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1l
ZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cHJlZmVycmVkUmUKICAg
ICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8fCAhbV9xdE1vdmllKQogICAgICAgICByZXR1
cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPm1l
ZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCht
X3BsYXllcikpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXI7Ci0jZW5k
aWYKIAogICAgIGlmICghUVRWaWRlb1JlbmRlcmVyQ2xhc3MoKSkKICAgICAgICAgcmV0dXJuIE1l
ZGlhUmVuZGVyaW5nTW92aWVWaWV3OwpAQCAtNjkxLDEyICs2ODIsMTAgQEAgUGxhdGZvcm1NZWRp
YSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAgICAgcmV0
dXJuIHBtOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1M
YXllciogTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3F0VmlkZW9MYXllci5nZXQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0OjpwbGF5KCkKIHsKQEAgLTg5NywxMiArODg2LDEwIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNs
b3NlZENhcHRpb25zVmlzaWJsCiAgICAgaWYgKG1ldGFEYXRhQXZhaWxhYmxlKCkpIHsKICAgICAg
ICAgd2tRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRpb25zKG1fcXRNb3ZpZS5nZXQoKSwgY2xvc2Vk
Q2FwdGlvbnNWaXNpYmxlKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAgICAgaWYgKGNsb3NlZENhcHRpb25zVmlzaWJsZSAmJiBtX3F0VmlkZW9MYXllcikgewogICAg
ICAgICAgICAgLy8gQ2FwdGlvbnMgd2lsbCBiZSByZW5kZXJlZCB1cHNpZGUgZG93biB1bmxlc3Mg
d2UgZmxhZyB0aGUgbW92aWUgYXMgZmxpcHBlZCAoYWdhaW4pLiBTZWUgPHJkYXI6Ly83NDA4NDQw
Pi4KICAgICAgICAgICAgIFttX3F0VmlkZW9MYXllci5nZXQoKSBzZXRHZW9tZXRyeUZsaXBwZWQ6
WUVTXTsKICAgICAgICAgfQotI2VuZGlmCiAgICAgfQogfQogCkBAIC0xMjI1LDEyICsxMjEyLDEw
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRpZEVuZCgpCiAgICAgbV9wbGF5ZXIt
PnRpbWVDaGFuZ2VkKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpsYXllckhvc3RDaGFuZ2VkKFBsYXRmb3JtTGF5
ZXIqIHJvb3RMYXllcikKIHsKICAgICBVTlVTRURfUEFSQU0ocm9vdExheWVyKTsKIH0KLSNlbmRp
ZgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRTaXplKGNvbnN0IEludFNpemUm
KSAKIHsgCkBAIC0xNjE3LDcgKzE2MDIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpzYXdVbnN1cHBvcnRlZFRyYWNrcygpCiAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3MobV9wbGF5ZXIpOwogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
UmVhZHlGb3JWaWRlb1NldHVwKCkgJiYgZ2V0UVRNb3ZpZUxheWVyQ2xhc3MoKSAhPSBOaWw7CkBA
IC0xNjI4LDcgKzE2MTIsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjphY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgLy8gU2V0IHVwIG9yIGNoYW5nZSB0aGUg
cmVuZGVyaW5nIHBhdGggaWYgbmVjZXNzYXJ5LgogICAgIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsK
IH0KLSNlbmRpZgogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbigpIGNvbnN0CiB7CkBAIC0xNzgwLDEyICsxNzYzLDggQEAgLSAodm9pZCluZXdJ
bWFnZUF2YWlsYWJsZTooTlNOb3RpZmljYXRpb24gKil1bnVzZWROb3RpZmljYXRpb24KIAogLSAo
dm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBDQUxheWVyKiByb290TGF5ZXIg
PSBzdGF0aWNfY2FzdDxDQUxheWVyKj4oW25vdGlmaWNhdGlvbiBvYmplY3RdKTsKICAgICBtX2Nh
bGxiYWNrLT5sYXllckhvc3RDaGFuZ2VkKHJvb3RMYXllcik7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb24pOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpc2V0RGVsYXlDYWxsYmFj
a3M6KEJPT0wpc2hvdWxkRGVsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViR0xMYXllci5oCmluZGV4IGVhZGU1MjAzNGNkZDgxMGE2MDJmZTgxZmRhMjg0
MmIyMzE4NmEwOWUuLjAwYzgxZjZhYWUwOWE2NTNmMjczNDVkNmIzMWFmNjMzM2VjMjI4MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIu
aApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBXZWJHTExheWVyX2gKICNkZWZpbmUgV2ViR0xM
YXllcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgPFF1
YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MSw2ICs0
OSw0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQGVuZAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gV2ViR0xMYXllcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1tCmluZGV4IDY0
ODI5OWU3NTk2YzM0NTYyZTE1NDQ1MGU3N2VhMjRhNzgyYjIxZWMuLjcxZjgxZmNhNmMzYTM3ZDJl
YTQwOTNkMjU2MGVjMDkzNmVmNjQ2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1tCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpZiBF
TkFCTEUoV0VCR0wpCiAKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKQEAgLTE3Nyw0ICsxNzYsMyBA
QCAtKEdyYXBoaWNzTGF5ZXIqKWxheWVyT3duZXIKIEBlbmQKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJHTCkKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCmluZGV4IDUyZGNiMjM4
OGUxMjBiYmJkOTc5NjlkZjhiYTcwOTY3NDcxOTYyN2UuLjEyMjJhNjMzN2VjZDU5NGJhMjAwNzFk
MWVjOWQyZmVkZjA0YmM4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9XZWJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9XZWJMYXllci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYkxheWVyX2gK
ICNkZWZpbmUgV2ViTGF5ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxv
YXRSZWN0Lmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CkBAIC01NCw2ICs1Miw0IEBAIHZvaWQg
ZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVmLCBQbGF0Zm9ybUNBTGF5ZXIqLCBSZXBhaW50
UmVjdExpc3QmIGRpcnR5UmVjCiB2b2lkIGRyYXdSZXBhaW50SW5kaWNhdG9yKENHQ29udGV4dFJl
ZiwgUGxhdGZvcm1DQUxheWVyKiwgaW50IHJlcGFpbnRDb3VudCwgQ0dDb2xvclJlZiBjdXN0b21C
YWNrZ3JvdW5kQ29sb3IpOwogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjZW5kaWYgLy8gV2ViTGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCmluZGV4IGQ5OWRmMmViMDNhY2Y0NWY4MWJhYjMy
N2NhM2I3YzJjMTNlMGQ2NDEuLjlmMjE3OWQ2MDkyZmU1YTQ4ZmY2MGRmMjEzNDI2OTNlMjliMmZk
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJM
YXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5
ZXIubW0KQEAgLTI0LDkgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIldlYkxheWVyLmgiCiAK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgpAQCAtMzMwLDUgKzMyNywzIEBAIC0gKE5TU3Ry
aW5nKilleHRlbmRlZERlc2NyaXB0aW9uCiBAZW5kICAvLyBpbXBsZW1lbnRhdGlvbiBXZWJMYXll
cihFeHRlbmRlZERlc2NyaXB0aW9uKQogCiAjZW5kaWYgLy8gTkRFQlVHCi0KLSNlbmRpZiAvLyBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIuaAppbmRleCA2ZjU1OWUzZDMyMDFmMmEz
NGMyMjc2ZTExMDc0MzJkNTdhOWQwZmI4Li40NmQ1OGE5ZGFiNDBjMDY3MWI1MDBjNjY3MThiOGRi
ZTE5YTI3NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvV2ViVGlsZWRMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJUaWxlZExheWVyLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV2ViVGlsZWRM
YXllcl9oCiAjZGVmaW5lIFdlYlRpbGVkTGF5ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiAjaW1wb3J0ICJXZWJMYXllci5oIgogCiBAaW50ZXJmYWNlIFdlYlRpbGVk
TGF5ZXIgOiBDQVRpbGVkTGF5ZXIgCkBAIC0zOCw3ICszNiw1IEBACiAKIEBlbmQKIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFdlYlRpbGVkTGF5
ZXJfaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViVGlsZWRMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9X
ZWJUaWxlZExheWVyLm1tCmluZGV4IGM4NmFmYTY4ODRiZWNkMmYzNjg0N2YzYmQyMGQ3OGQwOTRj
YTIxZWYuLjcxMzg2MDQzZTM1ODYzNjZlODdjMTY0M2JjNWYwYjI1MWZlMTQ2YjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVy
Lm1tCkBAIC0yNCw5ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJXZWJUaWxlZExheWVyLmgi
CiAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgpAQCAtMTQxLDUgKzEzOCwzIEBAIC0gKHZv
aWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKIH0KIAogQGVuZCAvLyBpbXBs
ZW1lbnRhdGlvbiBXZWJUaWxlZExheWVyCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xEZWZzLmgKaW5kZXggNjU5ZDI0OTc0OWM3MzExODJkNWQ4YTU3MWExYTI1MmYzOTMxY2Q3MS4u
YTA5MWYxMzU4MjllZjhmYzc1ZWZmNDA1ZDhkYjc2MmYzYWY0MmM3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApAQCAtMjYsOCArMjYs
NiBAQAogI2lmbmRlZiBHTERlZnNfaAogI2RlZmluZSBHTERlZnNfaAogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZGVmaW5lIEdMX0dMRVhUX1BST1RPVFlQRVMgMQogCiAj
aWYgVVNFKE9QRU5HTF9FU18yKQpAQCAtODIsNSArODAsMyBAQCB0eXBlZGVmIHZvaWQqIFBsYXRm
b3JtRHJhd2FibGU7CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQu
Y3BwCmluZGV4IDlhYjNkZWE5NTM4ZmNiNWY2YTM5MDUxYTBjOTc4ZmI4NTY3MDk0NWEuLjA2ZjYx
YzRlN2EwODkyZTk0OGEyNzFiYjYyY2M2MTFjZjQ5MjFjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250
ZXh0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkdMUGxhdGZvcm1Db250ZXh0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpZiBVU0UoR0xYKQogI2luY2x1ZGUgIkdMWENvbnRleHQuaCIKICNlbGlmIFVTRShFR0wp
CkBAIC0yODUsNSArMjgzLDMgQEAgdm9pZCBHTFBsYXRmb3JtQ29udGV4dDo6ZGVzdHJveSgpCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5o
CmluZGV4IDJlNDFkYjNkYTJjNDkwZDU2OTZjNDMzNmQ4NmJjYzQ3ZjUwYzFiNDcuLjAzMTQ3Yzg4
YmViYzYyNjVhY2MxYTFmNGIxYWRkZWUwYzlmMmNjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdMUGxhdGZvcm1Db250ZXh0X2gKICNkZWZpbmUg
R0xQbGF0Zm9ybUNvbnRleHRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW5jbHVkZSAiR0xEZWZzLmgiCiAjaW5jbHVkZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgpAQCAtOTYsNiArOTQsNCBAQCBwcm90ZWN0ZWQ6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmCi0KICNlbmRpZiAvLyBHTE5hdGl2
ZUNvbnRleHRfSApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKaW5kZXggNDNiNjUzMDhkMGFmZmFh
MGI4OTEyZDg4OTgzODJhZGQ5MDhlMDM4Ni4uZGQyN2Y3Njk5MmI3NTM4ZjdkYzZmZTIxMzQxMDAy
M2E5YTI1MDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC0yNiw4ICsyNiw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2lmIFVTRShHTFgpCiAjaW5jbHVk
ZSAiR0xYU3VyZmFjZS5oIgogI2VuZGlmCkBAIC0xMzMsNSArMTMxLDMgQEAgR0xQbGF0Zm9ybVN1
cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIEdMUGxhdGZvcm1TdXJmYWNlOjphdHRyaWJ1dGVzKCkg
Y29uc3QKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggZDI3NmZh
NWU4ZTBiNjcyZjVhYTMwYzliZTJhZTM1ZTMyODhiN2YxMS4uYWY3ZjdiY2I3Mzg5ZjNiYmQ0Y2Q5
NjBiYjM5YjI2YzBiNTZmODcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKQEAgLTI2LDggKzI2
LDYgQEAKICNpZm5kZWYgR0xQbGF0Zm9ybVN1cmZhY2VfaAogI2RlZmluZSBHTFBsYXRmb3JtU3Vy
ZmFjZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJH
TERlZnMuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CkBAIC05NSw2ICs5MywzIEBAIHByb3RlY3RlZDoKIH0KIAogI2VuZGlmCi0KLSNlbmRpZgot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
TFRyYW5zcG9ydFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcAppbmRleCA4MTk5ZDZiYTZiNjdkNTEzMDdi
M2JlYzU3NjlhNDY5OGZhNTcyNTU3Li4yNWQ2Y2U5ZjFlNWViYWE5NGIwZGI2MjY2YWUzZjUwNzhm
MTI4NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHAKQEAgLTI2LDggKzI2LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHTFRyYW5zcG9ydFN1cmZhY2UuaCIK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogCiAjaWYgVVNFKEdMWCkKQEAgLTI1OSw1ICsyNTcsMyBAQCB2b2lkIEdMVHJhbnNwb3J0
U3VyZmFjZUNsaWVudDo6Y3JlYXRlVGV4dHVyZSgpCiB9CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9y
dFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dM
VHJhbnNwb3J0U3VyZmFjZS5oCmluZGV4IDJmZGQxZjhkZmIxNTlmMjc2ZjcyNTk5OTdkYmVhZDhl
ZTBhNDhkMWEuLmI1NzljODU5YWY0MzBkY2QyMmIzYjZlMjA2ZjQyYjNjZTFjZjIzMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNw
b3J0U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdMVHJh
bnNwb3J0U3VyZmFjZV9oCiAjZGVmaW5lIEdMVHJhbnNwb3J0U3VyZmFjZV9oCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHTFBsYXRmb3JtU3VyZmFjZS5o
IgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTc3LDUgKzc1LDMgQEAgcHJvdGVj
dGVkOgogfQogCiAjZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rv
ci5oCmluZGV4IDJmZWE3YjAwNDQ3MWY2YmNmNGRjMzA3YTIzZmZjMTcxOTE3OTdmYjUuLjhhNjEw
OWEyZmM0ZTEwNTNmMmZlYWQxYzhlZjE5YWNlYjA2ZjM4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhD
b25maWdTZWxlY3Rvci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdMWENvbmZpZ1NlbGVj
dG9yX2gKICNkZWZpbmUgR0xYQ29uZmlnU2VsZWN0b3JfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQorI2lmIFVTRShHTFgpCiAKICNpbmNsdWRlICJYMTFI
ZWxwZXIuaCIKICNpbmNsdWRlIDxvcGVuZ2wvR0xEZWZzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5j
cHAKaW5kZXggMTBkNDRmODgyZWNhYjg5MGYxNTc2OTgwOWEwOTBkNDNmMDM4N2U3Yi4uZjQyZDNh
ZmEzM2M2YjQ4NzMxMDBiMzA3OGUwMzMyOWQ4ZjJiYjY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdM
WENvbnRleHQuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdM
WCkKKyNpZiBVU0UoR0xYKQogCiAjaW5jbHVkZSAiWDExSGVscGVyLmgiCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
dGV4dC5oCmluZGV4IGIwOGI1M2U4M2MwY2Q5ZDYwMzk5MTcyNWI5OTJmZGI0M2UxY2RhOTMuLjk1
ZTk2OTIzOWQ0MDJiMzIyNzU3MDY1ZmQwYTNlOTg4MTFjMjE3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRl
eHQuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBHTFhDb250ZXh0X2gKICNkZWZpbmUgR0xY
Q29udGV4dF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgp
CisjaWYgVVNFKEdMWCkKIAogI2luY2x1ZGUgIkdMUGxhdGZvcm1Db250ZXh0LmgiCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhT
dXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhTdXJmYWNlLmNwcAppbmRleCA0ZGI5Yzg5ODc1YjhlZmQ3ZDgwMjI2OWY1MDdiNjJmZjBi
OTQ5NjI0Li4xNmY1NmMxNzA3MGJjZmY1NjM3OTlkNTgxMzJkOGY1ZWNjYjE1NDZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiR0xYU3VyZmFjZS5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoR0xYKQorI2lmIFVTRShHTFgpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhTdXJmYWNlLmgKaW5kZXggYmI3NmZjMDFmZmI0OWYxMDZhNzA3NWFhZDEzZTE4MTc4
ZWM0ZGFhNy4uMGIxOWZlMzk2ODhjOGNjNzEwNjU4M2FkYmY1Y2RiMWVmYTI0MjAxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYU3VyZmFjZS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdMWFN1cmZhY2VfaAog
I2RlZmluZSBHTFhTdXJmYWNlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKEdMWCkKKyNpZiBVU0UoR0xYKQogCiAjaW5jbHVkZSAiR0xUcmFuc3BvcnRTdXJmYWNl
LmgiCiAjaW5jbHVkZSAiR0xYQ29uZmlnU2VsZWN0b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcAppbmRl
eCA0YzhlZTZhMmI3OGQxY2QzYWYwZDk1ZjhlZTUwNThmMTcyYTBmZWI0Li40Y2Y0NDYyODJhMTRk
YzJkMDNkY2YxY2EwMDk1ODU5MTIyZGZjZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCkBAIC0yNiw3
ICsyNiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaAppbmRleCBhMGExNzFlMDU2NWM1MzZjNWZlOWM3NTljOWMyOWEyM2ZhMDJjNTU3
Li4yYzg2ZDcyN2M2OWY2MzdlZGJkMDgzZmVlMDkzN2M2ODA2YTZhMWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1hcHBlcl9oCiAjZGVmaW5lIFRl
eHR1cmVNYXBwZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjaWYgKFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oRUZMKSkgJiYgVVNFKE9QRU5HTF9FU18yKQogI2RlZmluZSBURVhN
QVBfT1BFTkdMX0VTXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcApp
bmRleCBlNjhiYzA5MTQxNDVjNjY4NDhiM2RlNWFiMjQ0ODdkMzU4NDJkZDgzLi43YTAwZTIyYWU1
YWM3ZTU1ZjEzZDdjMWI3YmE4NDZiMGNlZDZmZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmUuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlLmgiCiAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJCYWNraW5nU3RvcmUuaAppbmRleCA0YmFlNDViNGYxODA2NTgyMzVhNjRjYTk0NjVk
MDMyZWUyNDVlMDk1Li43OTI3YTQ5YjQzODUzZGNjMTMxZTdiNzU2NzgyYTQwMjc0ZmIzNTQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKQEAgLTIwLDcgKzIwLDcgQEAK
ICNpZm5kZWYgVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZV9oCiAjZGVmaW5lIFRleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQ
U0NvdW50ZXIuY3BwCmluZGV4IGQ3NDQ3NzAxMGEzOGIzYjEwOGZkYzk3ODk2ZDY5YjBjN2M5NzUz
NTkuLjJkMzMzYWYzOTBlNTM4MmUxYWVjOGU1MzY0YmI0MmZmZTBlMTg2ZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBT
Q291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApAQCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyRlBTQ291bnRlci5oIgogCkBAIC02NCw0ICs2NCw0IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckZQU0NvdW50ZXI6OnVwZGF0ZUZQU0FuZERpc3BsYXkoVGV4dHVyZU1hcHBlciogdGV4dHVy
ZU1hcHBlciwKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyRlBTQ291bnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgKaW5kZXggMDA2MjM3MzgzNWI3NmVjY2ZkZTFiNzBh
NTljMWM0ZWM2OTFiZjBmYy4uNjQ5OTg5Yzc2YzQxODM5YTlkY2ZiMGQ5ZDk2OWY3Mzg2NDU0ZWUz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJGUFNDb3VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgKQEAgLTIyLDcgKzIyLDcgQEAK
ICNpZm5kZWYgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXJfaAogI2RlZmluZSBUZXh0dXJlTWFwcGVy
RlBTQ291bnRlcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNl
bmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKICNlbmRpZiAvLyBUZXh0dXJlTWFwcGVyRlBT
Q291bnRlcl9oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMDViODg0YmQ1ZDQyNzE4Zjhl
ZWE0MWNlYmY0MTRkMWRjNTQyYmE0NS4uZjA5YmJhNTExOGY0YjljMGEzZTM0NTk5MzhmOThlZjNj
N2RmNWZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAKICNkZWZp
bmUgR0xfVU5QQUNLX1NLSVBfUk9XUyAweDBDRjMKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVf
TUFQUEVSKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgVGV4dHVyZU1hcHBlckdMRGF0
YSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXggMDgxNDAzZjAwM2EyYzQ3NjJiZjU5MWRmY2IzNTU5
OWE3ZDg4ODYwYy4uZjBmZDFiMWI0ZTEyZTVkOWMwMTNhNjI0N2VlM2I1NGY0ZTJiZDBjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuaApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVy
R0xfaAogI2RlZmluZSBUZXh0dXJlTWFwcGVyR0xfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
KQogCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDdlN2JhYmJjZDBjOTFkZTRiMjcyMjYz
ODI1NWU2NDU1OWE3OWNiNzMuLjg2NTkyYzZhN2M3Yjc3NDM5NTMwZTMxZTdlZWE5OGI5ZmNhZWM5
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5j
bHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmgKaW5kZXggODdmZjNmNGE3YWUyMDZiZWM0MGQ1NjZkMDY2MWMxNWQ0ZGU5ZmZlZC4uOTA0
NmFhNTM3MDhhNDBiZDQ3NWE1Zjg5MWJkOTIwNzg1MTZlZDNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuaApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVyTGF5ZXJfaAog
I2RlZmluZSBUZXh0dXJlTWFwcGVyTGF5ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQog
CiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAKaW5kZXggZjRiOWE3ZTk4
MzAyNWNlYzk0MjhjM2JkMDA3ZGU0MzFlOTA5MjMwNC4uNzI0NzUwMjlhODQ4NDI1MmY3Zjk4Zjhl
ZDZkYmE0YWQ1ZDY2NTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0uY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikK
ICNpbmNsdWRlICJMZW5ndGhGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
dXJmYWNlQmFja2luZ1N0b3JlLmNwcAppbmRleCA4ZDM4Nzc2ZTliNWY1MzNhNjA1ZTczY2E3NmUz
M2NhYmZkOThiN2M5Li5iMzNiYmI2MjkzMDA1ZWZmNmFmMzc2YzQxNDE4ZWRhYzU1MDhhMTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5jcHAK
QEAgLTE5LDcgKzE5LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9y
ZS5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJmYWNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5oCmluZGV4IDc5M2M2MWRjMzQyZmYwMjYzNTI3
ODc0YzcxMjBkMzVlYjI4MGM1NzguLjMxZDE4MTkyY2QzZWYwYWI0Njg2ODFjYmZlNWFkZmU5Njgz
NTM4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9y
ZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2lu
Z1N0b3JlX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmVfaAogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
KyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKIAogI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGUuY3BwCmluZGV4IDJlYTdmYjZlZDg4NjU2NGM5NTk5OWViNWNkYjhhNTQ2MTVhZDVlOWQu
LmU2ZjNmZTgwZWU2ODIyYmMwYTQ1MDZmNzA3ZjUxOTc4ZTQ2NTZhYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJUaWxlLmNwcApAQCAtMTgsNyArMTgsNyBAQAogICovCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBF
UikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclRpbGUu
aCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oCmluZGV4IGVlNjgw
OWYyMDQ0MzQ2ODVmMDliZThlNGEzZTBmZjE0ZGVlOWEwNTQuLjY0OGU3MWYwMGEwOWFhZjdiYmZl
MzkyODBlYzBlYTc3ZWIxNDg2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oCkBAIC0yMCw3ICsy
MCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJUaWxlX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBl
clRpbGVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWY1NjQwMjNkNjhlZjg3NmYyYTMzYjRlYTQyMWE4MGFm
ZDk5MGEzNS4uYjgxYjg5ZjBjMDQ3NjkzMzc0N2YyYzgxOTJiZmI1NzNhYWRiM2Q0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTE5LDcg
KzE5LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
KQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5oIgogCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5n
U3RvcmUuaAppbmRleCAzODE2MWM0NzUzYzBkNzI2NWJkZDMwZWVjZDBlYjdlOWM1NzkyMDI4Li4y
Zjc5MmRjZjk0ODQ4ZDRiOGFiYjBhMjlmMTBkODMxODRlMzBmNTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFj
a2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZu
ZGVmIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZV9oCiAjZGVmaW5lIFRleHR1cmVNYXBw
ZXJUaWxlZEJhY2tpbmdTdG9yZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbWFnZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdp
bi5jcHAKaW5kZXggMDVlMTUwODQ4ZjcwYTAwZTc4Njg2MGViMjNmN2JhYjA5MWYzYWY2OC4uMmYz
NWVmNTQwYzg3MDNkMmQxN2I4ZGU0NDU0ZGJhZTVhNWY3OGI2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
M0RXaW4uY3BwCkBAIC0xOTcsMTIgKzE5NywxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpp
c0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3dlYkdMTGF5ZXItPnBsYXRmb3JtTGF5ZXIo
KTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxs
c2NyZWVuV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcAppbmRleCA2MDc3ZjJkZjM2MTg3
YzQ4ZjI2Njg4OWIwMGE3MWE4MTI1MWFjM2NjLi4wZDA5OGJkZjNmMjNjODk5ZTRhZWIyN2I0ZjIw
NTVmZTJiNjY2Y2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3Jl
ZW5XaW5kb3cuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NH
Q29sb3IuaD4KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0EpCisjaWYgVVNFKENBKQogI2luY2x1ZGUgIkNBQ0ZMYXllclRyZWVIb3N0LmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1DQUxheWVyLmgiCiAjZW5kaWYKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93OjpjcmVhdGVXaW5kb3coSFdORCBwYXJl
bnRId25kKQogICAgICAgICBwYXJlbnRId25kLCAwLCBpbnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsK
ICAgICBBU1NFUlQoSXNXaW5kb3cobV9od25kKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9z
dCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRXaW5kb3cobV9od25kKTsKICNlbmRpZgpA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6
OmNyZWF0ZVdpbmRvdyhIV05EIHBhcmVudEh3bmQpCiAgICAgOjpTZXRGb2N1cyhtX2h3bmQpOwog
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNF
KENBKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93OjpzZXRSb290Q2hp
bGRMYXllcihQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gcm9vdENoaWxkKQogewogICAgIGlm
IChtX3Jvb3RDaGlsZCA9PSByb290Q2hpbGQpCkBAIC0xNTYsNyArMTU2LDcgQEAgTFJFU1VMVCBN
ZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEEKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXTV9ERVNUUk9ZOgogICAg
ICAgICBtX2h3bmQgPSAwOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KENBKQorI2lmIFVTRShDQSkKICAgICAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0V2luZG93KDApOwogI2VuZGlmCkBAIC0xNjYsNyArMTY2
LDcgQEAgTFJFU1VMVCBNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9j
KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEEKICAgICAgICAgICAgIExQV0lORE9XUE9TIHdw
ID0gcmVpbnRlcnByZXRfY2FzdDxMUFdJTkRPV1BPUz4obFBhcmFtKTsKICAgICAgICAgICAgIGlm
ICh3cC0+ZmxhZ3MgJiBTV1BfTk9TSVpFKQogICAgICAgICAgICAgICAgIGJyZWFrOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICAg
ICAgICAgIGlmIChtX2xheWVyVHJlZUhvc3QpIHsKICAgICAgICAgICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnJlc2l6ZSgpOwogICAgICAgICAgICAgICAgIFBsYXRmb3JtQ0FMYXllciogcm9vdExh
eWVyID0gbV9yb290Q2hpbGQtPnJvb3RMYXllcigpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIExSRVNV
TFQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6d25kUHJvYyhIV05EIGhXbmQs
IFVJTlQgbWVzc2FnZSwgV1BBCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
TV9QQUlOVDoKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNp
ZiBVU0UoQ0EpCiAgICAgICAgIGlmIChtX2xheWVyVHJlZUhvc3QpIHsKICAgICAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+cGFpbnQoKTsKICAgICAgICAgICAgIDo6VmFsaWRhdGVSZWN0KG1faHdu
ZCwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaApp
bmRleCA5ZjJkNjNhODM1MjhhMzZkZmNhMDE3NmExNDZhOTgyZjc3NmU0ZjRhLi5jZGQwY2EzMDQx
MGJhNGE2YzkyOGRmYjllOWZmNmE5YzU1ZThkMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVGdWxsc2NyZWVuV2luZG93LmgKQEAgLTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvV2luZG93c0V4dHJhcy5oPgogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogI2luY2x1
ZGUgIkNBQ0ZMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYg
VVNFKENBKQogY2xhc3MgQ0FDRkxheWVyVHJlZUhvc3Q7CiBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXI7
CiAjZW5kaWYKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIAogICAgIEhXTkQgaHduZCgp
IGNvbnN0IHsgcmV0dXJuIG1faHduZDsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogICAgIFBsYXRmb3JtQ0FMYXllciogcm9vdENo
aWxkTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RDaGlsZC5nZXQoKTsgfQogICAgIHZvaWQg
c2V0Um9vdENoaWxkTGF5ZXIoUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+KTsKICNlbmRpZgpA
QCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAgIExSRVNVTFQgd25kUHJvYyhIV05ELCBVSU5U
IG1lc3NhZ2UsIFdQQVJBTSwgTFBBUkFNKTsKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxz
Y3JlZW5DbGllbnQqIG1fY2xpZW50OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICBSZWZQdHI8Q0FDRkxheWVyVHJlZUhvc3Q+IG1f
bGF5ZXJUcmVlSG9zdDsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX3Jvb3RDaGlsZDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuY3BwCmluZGV4IGQxMmNjMGRiMjBkYzgyYzI5YTQ0YjRhMDM1MjA3NjcxNGI3
Mjg2NGMuLjMxODVlNWI5Yjc3NTI0NjI5ZjY4OTM4NjUzMWViOGU5MmM3YzM0YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGVUYXNrVGltZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAjaW5jbHVkZSAiUVRDRkRpY3Rpb25hcnku
aCIKICNpbmNsdWRlICJRVERlY29tcHJlc3Npb25TZXNzaW9uLmgiCiAjaW5jbHVkZSAiUVRNb3Zp
ZS5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgIldLQ0FJbWFnZVF1ZXVlLmgi
CiAjaW5jbHVkZSA8QXNzZXJ0TWFjcm9zLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQWZm
aW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgpAQCAt
NjEsMTEgKzYzLDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllcldpbi5oIgotI2luY2x1ZGUgIldLQ0FJ
bWFnZVF1ZXVlLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtODgsNyArODUsNiBAQCBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQqIG1fcGFyZW50OwogfTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6OkxheWVyQ2xpZW50IDogcHVibGljIFBsYXRmb3JtQ0FMYXllckNsaWVudCB7
CiBwdWJsaWM6CiAgICAgTGF5ZXJDbGllbnQoTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dCogcGFyZW50KSA6IG1fcGFyZW50KHBhcmVudCkge30KQEAgLTEzNyw3ICsxMzMs
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVy
Q2xpZW50OjpwbGF0Zm9ybUNBTGF5ZXJMYXlvdQogICAgIG1fcGFyZW50LT5tX3F0VmlkZW9MYXll
ci0+c2V0Qm91bmRzKHZpZGVvQm91bmRzKTsKICAgICBtX3BhcmVudC0+bV9xdFZpZGVvTGF5ZXIt
PnNldFBvc2l0aW9uKHBvc2l0aW9uKTsKIH0KLSNlbmRpZgogCiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpWaXN1YWxDb250ZXh0Q2xpZW50IDogcHVibGlj
IFFUTW92aWVWaXN1YWxDb250ZXh0Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTE3NSwxMCArMTcwLDgg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGUKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKICAgICAs
IG1fbmV3RnJhbWVBdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX21vdmllQ2xpZW50KGFkb3B0UHRy
KG5ldyBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpNb3ZpZUNsaWVu
dCh0aGlzKSkpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXll
ckNsaWVudChhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29u
dGV4dDo6TGF5ZXJDbGllbnQodGhpcykpKQogICAgICwgbV9tb3ZpZVRyYW5zZm9ybShDR0FmZmlu
ZVRyYW5zZm9ybUlkZW50aXR5KQotI2VuZGlmCiAgICAgLCBtX3Zpc3VhbENvbnRleHRDbGllbnQo
YWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OlZp
c3VhbENvbnRleHRDbGllbnQodGhpcykpKQogICAgICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAg
ICAgLCBtX3ByaXZhdGVCcm93c2luZyhmYWxzZSkKQEAgLTE5NSwxMSArMTg4LDEwIEBAIE1lZGlh
UGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6On5NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wbGF5ZXItPm1l
ZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyT3duaW5nRG9jdW1lbnQoKTsgCiAgICAgaWYg
KGRvY3VtZW50KQogICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnNldHRpbmdzKCktPmFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7Ci0jZW5kaWYKKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApAQCAtMjEwLDEzICsyMDIsMTEgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0OjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKICAgICBwLm1lZGlh
LnF0TW92aWVWaXN1YWxDb250ZXh0ID0gbV92aXN1YWxDb250ZXh0LmdldCgpOwogICAgIHJldHVy
biBwOwogfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogUGxhdGZvcm1MYXll
ciogTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cGxhdGZvcm1MYXll
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdHJhbnNmb3JtTGF5ZXIgPyBtX3RyYW5zZm9ybUxh
eWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAwOwogfQotI2VuZGlmCiAKIFN0cmluZyBNZWRpYVBsYXll
clByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpyZmMyNjE2RGF0ZVN0cmluZ0Zyb21UaW1l
KENGQWJzb2x1dGVUaW1lIHRpbWUpCiB7CkBAIC00OTgsMTMgKzQ4OCw5IEBAIEludFNpemUgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6bmF0dXJhbFNpemUoKSBjb25z
dAogICAgIGludCB3aWR0aDsKICAgICBpbnQgaGVpZ2h0OwogICAgIG1fbW92aWUtPmdldE5hdHVy
YWxTaXplKHdpZHRoLCBoZWlnaHQpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBDR1NpemUgb3JpZ2luYWxTaXplID0ge3dpZHRoLCBoZWlnaHR9OwogICAgIENHU2l6ZSB0
cmFuc2Zvcm1lZFNpemUgPSBDR1NpemVBcHBseUFmZmluZVRyYW5zZm9ybShvcmlnaW5hbFNpemUs
IG1fbW92aWVUcmFuc2Zvcm0pOwogICAgIHJldHVybiBJbnRTaXplKGFicyh0cmFuc2Zvcm1lZFNp
emUud2lkdGgpLCBhYnModHJhbnNmb3JtZWRTaXplLmhlaWdodCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSNlbmRpZgogfQogCiBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Omhhc1ZpZGVvKCkgY29uc3QKQEAgLTc0MCw3
ICs3MjYsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSQogCiAgICAgUVRQaXhlbEJ1ZmZlciBi
dWZmZXIgPSBtX3Zpc3VhbENvbnRleHQtPmltYWdlRm9yVGltZSgwKTsKICAgICBpZiAoYnVmZmVy
LnBpeGVsQnVmZmVyUmVmKCkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgICAgIGlmIChtX3F0VmlkZW9MYXllcikgewogICAgICAgICAgICAgLy8gV2UgYXJlIHByb2Jh
Ymx5IGJlaW5nIGFza2VkIHRvIHJlbmRlciB0aGUgdmlkZW8gaW50byBhIGNhbnZhcywgYnV0IAog
ICAgICAgICAgICAgLy8gdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoZSBRVFBpeGVsQnVmZmVyIGlz
IG5vdCBBUkdCIGFuZCB0aHVzIGNhbid0IGJlCkBAIC03NTUsNyArNzQwLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIHAsIGNvbnN0IEkKICAgICAgICAgICAgICAgICBidWZmZXIgPSBtX2RlY29tcHJlc3Npb25T
ZXNzaW9uLT5kZWNvbXByZXNzKGJ1ZmZlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSNl
bmRpZgorCiAgICAgICAgIENHSW1hZ2VSZWYgaW1hZ2UgPSBDcmVhdGVDR0ltYWdlRnJvbVBpeGVs
QnVmZmVyKGJ1ZmZlcik7CiAgICAgICAgIAogICAgICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHAtPnBsYXRmb3JtQ29udGV4dCgpOwpAQCAtODA3LDcgKzc5Miw2IEBAIHN0YXRpYyBDRkRpY3Rp
b25hcnlSZWYgUVRDRkRpY3Rpb25hcnlDcmVhdGVXaXRoRGF0YUNhbGxiYWNrKENGQWxsb2NhdG9y
UmVmIGFsbG9jCiAKIHN0YXRpYyBDR0ltYWdlUmVmIENyZWF0ZUNHSW1hZ2VGcm9tUGl4ZWxCdWZm
ZXIoUVRQaXhlbEJ1ZmZlciBidWZmZXIpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIENHRGF0YVByb3ZpZGVyUmVmIHByb3ZpZGVyID0gMDsKICAgICBDR0NvbG9yU3Bh
Y2VSZWYgY29sb3JTcGFjZSA9IDA7CiAgICAgQ0dJbWFnZVJlZiBpbWFnZSA9IDA7CkBAIC04NTYs
OSArODQwLDYgQEAgQmFpbDoKICAgICAgICAgQ0dDb2xvclNwYWNlUmVsZWFzZShjb2xvclNwYWNl
KTsKICAKICAgICByZXR1cm4gaW1hZ2U7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9
CiAKIApAQCAtODY3LDcgKzg0OCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6cmV0cmlldmVDdXJyZW50SW1hZ2UoKQogICAgIGlmICghbV92aXN1YWxD
b250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgaWYgKG1fcXRWaWRlb0xheWVyKSB7CiAKICAgICAgICAgUVRQaXhlbEJ1ZmZlciBi
dWZmZXIgPSBtX3Zpc3VhbENvbnRleHQtPmltYWdlRm9yVGltZSgwKTsKQEAgLTkxMSw3ICs4OTEs
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJp
ZXZlQ3VycmVudEltYWdlKCkKICAgICAgICAgICAgIGxheWVyLT5zZXROZWVkc0NvbW1pdCgpOwog
ICAgICAgICB9CiAgICAgfSBlbHNlCi0jZW5kaWYKICAgICAgICAgbV9wbGF5ZXItPnJlcGFpbnQo
KTsKIAogICAgIG1fdmlzdWFsQ29udGV4dC0+dGFzaygpOwpAQCAtMTA4MSwxMCArMTA2MCw4IEBA
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUmVuZGVyaW5n
TW9kZSBNZWRpYVBsYXllclByaXZhdGVRCiAgICAgaWYgKCFtX21vdmllKQogICAgICAgICByZXR1
cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChtX3F0VmlkZW9MYXllcikKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5n
TW92aWVMYXllcjsKLSNlbmRpZgogCiAgICAgcmV0dXJuIG1fdmlzdWFsQ29udGV4dCA/IE1lZGlh
UmVuZGVyaW5nU29mdHdhcmVSZW5kZXJlciA6IE1lZGlhUmVuZGVyaW5nTm9uZTsKIH0KQEAgLTEw
OTQsMTAgKzEwNzEsOCBAQCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUQogICAgIGlmICghbV9wbGF5
ZXItPmZyYW1lVmlldygpIHx8ICFtX21vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJp
bmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChzdXBw
b3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAg
ICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXI7Ci0jZW5kaWYKIAogICAgIHJldHVy
biBNZWRpYVJlbmRlcmluZ1NvZnR3YXJlUmVuZGVyZXI7CiB9CkBAIC0xMTA3LDEwICsxMDgyLDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpzZXRVcFZp
ZGVvUmVuZGVyaW5nKCkKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudE1vZGUgPSBjdXJy
ZW50UmVuZGVyaW5nTW9kZSgpOwogICAgIE1lZGlhUmVuZGVyaW5nTW9kZSBwcmVmZXJyZWRNb2Rl
ID0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpOwogCi0jaWYgIVVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBBU1NFUlQocHJlZmVycmVkTW9kZSAhPSBNZWRpYVJlbmRlcmluZ01vdmll
TGF5ZXIpOwotI2VuZGlmCi0KICAgICBpZiAoY3VycmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSAm
JiBjdXJyZW50TW9kZSAhPSBNZWRpYVJlbmRlcmluZ05vbmUpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMTEyMCwxMCArMTA5MSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAgICAgaWYgKHByZWZlcnJlZE1vZGUg
PT0gTWVkaWFSZW5kZXJpbmdNb3ZpZUxheWVyKQogICAgICAgICBjcmVhdGVMYXllckZvck1vdmll
KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGN1cnJlbnRN
b2RlID09IE1lZGlhUmVuZGVyaW5nTW92aWVMYXllciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlh
UmVuZGVyaW5nTW92aWVMYXllcikKICAgICAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50
KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOwotI2VuZGlmCiAK
ICAgICBRVFBpeGVsQnVmZmVyOjpUeXBlIGNvbnRleHRUeXBlID0gcmVxdWlyZWREbGxzQXZhaWxh
YmxlKCkgJiYgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIgPyBRVFBp
eGVsQnVmZmVyOjpDb25maWd1cmVGb3JDQUltYWdlUXVldWUgOiBRVFBpeGVsQnVmZmVyOjpDb25m
aWd1cmVGb3JDR0ltYWdlOwogICAgIG1fdmlzdWFsQ29udGV4dCA9IFFUTW92aWVWaXN1YWxDb250
ZXh0OjpjcmVhdGUobV92aXN1YWxDb250ZXh0Q2xpZW50LmdldCgpLCBjb250ZXh0VHlwZSk7CkBA
IC0xMTMyLDI2ICsxMTAxLDE5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6dGVhckRvd25WaWRlb1JlbmRlcmluZygpCiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3F0VmlkZW9MYXllcikK
ICAgICAgICAgZGVzdHJveUxheWVyRm9yTW92aWUoKTsKLSNlbmRpZgogCiAgICAgbV92aXN1YWxD
b250ZXh0ID0gMDsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0OjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJuIG1fcXRWaWRlb0xheWVyIHx8IChjdXJyZW50
UmVuZGVyaW5nTW9kZSgpICE9IE1lZGlhUmVuZGVyaW5nTW92aWVMYXllciAmJiBtX3Zpc3VhbENv
bnRleHQpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJpZXZlQW5kUmVzZXRNb3Zp
ZVRyYW5zZm9ybSgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8v
IEZpcnN0IHRoaW5ncyBmaXJzdCwgcmVzZXQgdGhlIHRvdGFsIG1vdmllIHRyYW5zZm9ybSBzbyB0
aGF0CiAgICAgLy8gd2UgY2FuIGJhaWwgb3V0IGVhcmx5OgogICAgIG1fbW92aWVUcmFuc2Zvcm0g
PSBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OwpAQCAtMTE4MCwxMiArMTE0MiwxMCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJpZXZlQW5kUmVz
ZXRNb3ZpZVRyYW5zZm9ybSgpCiAgICAgLy8gTXVsdGlwbHkgdGhlIHR3byB0cmFuc2Zvcm1zIHRv
Z2V0aGVyLCB0YWtpbmcgY2FyZSB0byAKICAgICAvLyBkbyBzbyBpbiB0aGUgY29ycmVjdCBvcmRl
ciwgdHJhY2sgKiBtb3ZpZSA9IGZpbmFsOgogICAgIG1fbW92aWVUcmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybUNvbmNhdCh0cmFja1RyYW5zZm9ybSwgbW92aWVUcmFuc2Zvcm0pOwotI2VuZGlm
CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3Jl
YXRlTGF5ZXJGb3JNb3ZpZSgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIEFTU0VSVChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkpOwogCiAgICAgaWYgKCFt
X21vdmllIHx8IG1fcXRWaWRlb0xheWVyKQpAQCAtMTIyMCw3ICsxMTgwLDYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpjcmVhdGVMYXllckZvck1vdmll
KCkKICAgICBtX3RyYW5zZm9ybUxheWVyLT5hcHBlbmRTdWJsYXllcihtX3F0VmlkZW9MYXllci5n
ZXQoKSk7CiAgICAgbV90cmFuc2Zvcm1MYXllci0+c2V0TmVlZHNMYXlvdXQoKTsKICAgICAvLyBU
aGUgbGF5ZXIgd2lsbCBnZXQgaG9va2VkIHVwIHZpYSBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkuCi0jZW5kaWYKIAogICAgIC8vIEZpbGwgdGhl
IG5ld2x5IGNyZWF0ZWQgbGF5ZXIgd2l0aCBpbWFnZSBkYXRhLCBzbyB3ZSdyZSBub3QgbG9va2lu
ZyBhdCAKICAgICAvLyBhbiBlbXB0eSBsYXllciB1bnRpbCB0aGUgbmV4dCB0aW1lIGEgbmV3IGlt
YWdlIGlzIGF2YWlsYWJsZSwgd2hpY2ggY291bGQKQEAgLTEyMzEsNyArMTE5MCw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3JlYXRlTGF5ZXJGb3JN
b3ZpZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6
ZGVzdHJveUxheWVyRm9yTW92aWUoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAobV9xdFZpZGVvTGF5ZXIpIHsKICAgICAgICAgbV9xdFZpZGVvTGF5ZXItPnJl
bW92ZUZyb21TdXBlcmxheWVyKCk7CiAgICAgICAgIG1fcXRWaWRlb0xheWVyID0gMDsKQEAgLTEy
NDIsMTAgKzEyMDAsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQ6OmRlc3Ryb3lMYXllckZvck1vdmllKCkKIAogICAgIGlmIChtX2ltYWdlUXVldWUpCiAg
ICAgICAgIG1faW1hZ2VRdWV1ZSA9IG51bGxwdHI7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGlzUmVhZHlGb3JSZW5kZXJpbmcoKTsKQEAgLTEyNjMsOSArMTIxOSw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dz
aW5nTW9kZShib29sIHByaXZhCiAgICAgaWYgKG1fbW92aWUpCiAgICAgICAgIG1fbW92aWUtPnNl
dFByaXZhdGVCcm93c2luZ01vZGUobV9wcml2YXRlQnJvd3NpbmcpOwogfQotICAgIAotI2VuZGlm
Ci0KIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuaAppbmRleCAyY2FlOTE3MWRjOTM1YzBjOGE3ZWQzZjI3YzJhMWJiODg4MTc2
NzA3Li5jOTJiNDk2YmM0NmYxNmE3YWJmZGY4ODg0YjNkMGJmNjNmNDlmZmI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKQEAg
LTQ5LDExICs0OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBJbnRSZWN0OwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogY2xhc3MgUGxhdGZvcm1DQUxheWVyOwogY2xhc3MgV0tDQUltYWdlUXVl
dWU7Ci0jZW5kaWYKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29u
dGV4dCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgpAQCAt
NjYsOSArNjMsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNj
cmVlbigpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkg
Y29uc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwotI2VuZGlmCiAKICAgICBJbnRTaXpl
IG5hdHVyYWxTaXplKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0OwpAQCAtMTMx
LDEwICsxMjYsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAg
ICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdl
ZCgpOwotI2VuZGlmCiAKICAgICBlbnVtIE1lZGlhUmVuZGVyaW5nTW9kZSB7IE1lZGlhUmVuZGVy
aW5nTm9uZSwgTWVkaWFSZW5kZXJpbmdTb2Z0d2FyZVJlbmRlcmVyLCBNZWRpYVJlbmRlcmluZ01v
dmllTGF5ZXIgfTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudFJlbmRlcmluZ01vZGUo
KSBjb25zdDsKQEAgLTE2MiwxMSArMTU1LDkgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
TW92aWVDbGllbnQ7CiAgICAgT3duUHRyPE1vdmllQ2xpZW50PiBtX21vdmllQ2xpZW50OwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGNsYXNzIExheWVyQ2xpZW50Owog
ICAgIGZyaWVuZCBjbGFzcyBMYXllckNsaWVudDsKICAgICBPd25QdHI8TGF5ZXJDbGllbnQ+IG1f
bGF5ZXJDbGllbnQ7Ci0jZW5kaWYKIAogICAgIGNsYXNzIFZpc3VhbENvbnRleHRDbGllbnQ7CiAg
ICAgZnJpZW5kIGNsYXNzIFZpc3VhbENvbnRleHRDbGllbnQ7CkBAIC0xNzgsMTMgKzE2OSwxMSBA
QCBwcml2YXRlOgogCiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwogICAgIFJlZlB0cjxRVE1v
dmllPiBtX21vdmllOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiBtX3F0VmlkZW9MYXllcjsKICAgICBSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBtX3RyYW5zZm9ybUxheWVyOwogICAgIE93blB0cjxXS0NBSW1hZ2VRdWV1ZT4gbV9p
bWFnZVF1ZXVlOwogICAgIE93blB0cjxRVERlY29tcHJlc3Npb25TZXNzaW9uPiBtX2RlY29tcHJl
c3Npb25TZXNzaW9uOwogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1fbW92aWVUcmFuc2Zvcm07IAot
I2VuZGlmCiAgICAgUmVmUHRyPFFUTW92aWVWaXN1YWxDb250ZXh0PiBtX3Zpc3VhbENvbnRleHQ7
CiAgICAgZmxvYXQgbV9zZWVrVG87CiAgICAgVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dD4gbV9zZWVrVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcAppbmRleCBlZjhhMWM1
NzNjYTVjOTc3OTVhM2JiNGEyMWI2M2UwODcxN2YxYzNjLi42MjJhMzY0MmZlOWRiY2RkNWRkODgy
ZGFkM2UxMDYwYWNjOTQ5YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXS0NBSW1hZ2VRdWV1ZS5oIgogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29y
ZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTEwMSw1ICs5
OSwzIEBAIENGVHlwZVJlZiBXS0NBSW1hZ2VRdWV1ZTo6Z2V0KCkKIH0KIAogfQotCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1h
Z2VRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFn
ZVF1ZXVlLmgKaW5kZXggM2QyNWI0OGE5NmY5ZDUwOWQ1MWY1NjZhM2VjYjc2YWIxNDQ1ZTE2ZS4u
MjU2MDc2NTBmZmQyZTMzMmZjMTQyYWIwYmRhNTQwYWY3ZjUwMDI0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmgKQEAg
LTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV0tDQUltYWdlUXVldWVfaAogI2RlZmluZSBXS0NBSW1h
Z2VRdWV1ZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIHR5cGVkZWYg
Y29uc3Qgdm9pZCAqIENGVHlwZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ0ZEaWN0aW9u
YXJ5ICogQ0ZEaWN0aW9uYXJ5UmVmOwogCkBAIC04OCw1ICs4NiwzIEBAIHByaXZhdGU6CiB9CiAK
ICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLmgKaW5kZXggZGNlYzQ5YzUzMzJhMjFmMzUwZWZhN2E1YTYzMzNkNmE1NDdi
ODU2MC4uMjEzNDlhMGE4NWYzN2VlNTNkYWZhMjBiOGEyYjQxNWIxZTMyZWM1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKQEAgLTY0LDcg
KzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzQ3VycmVudGx5RHJhd2luZ0ludG9M
YXllcigpOwogICAgIHN0YXRpYyB2b2lkIHNldElzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllcihi
b29sKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBzdGF0aWMgdm9pZCBz
ZXRVcE92ZXJoYW5nQXJlYUJhY2tncm91bmQoQ0FMYXllciAqLCBjb25zdCBDb2xvciYgY3VzdG9t
QmFja2dyb3VuZENvbG9yID0gQ29sb3IoKSk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlT3Zlcmhh
bmdBcmVhQmFja2dyb3VuZChDQUxheWVyICopOwogCkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHJhZ0RvY3VtZW50SW5zdGVhZE9mVGh1bWIoU2Ny
b2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBpbnQg
c2Nyb2xsYmFyUGFydFRvSElQcmVzc2VkU3RhdGUoU2Nyb2xsYmFyUGFydCk7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgdmlydHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVh
c0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciosIGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVudFNoYWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tCmluZGV4IDllYWMxNWU4ZjQ0OTg1Y2Q2MjEzMTIxMjgzMzdlY2Q2NjIx
NWEwZGEuLjc3Yjk2YTYxZWFlMWJkYzMxNjNmZTU0N2M4OWY3MGY4NTZlMzRkY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTUz
MCw3ICs1MzAsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lTWFjOjpwYWludChTY3JvbGxiYXJUaGVt
ZUNsaWVudCogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQqCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBzdGF0aWMgUmV0YWluUHRyPENHQ29s
b3JSZWY+IGxpbmVuQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBOU0ltYWdlICppbWFnZSA9IFtO
U0NvbG9yIF9saW5lblBhdHRlcm5JbWFnZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXdCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXdCYXNlLmgKaW5kZXggODRjZDVmODFiMWQ1OWMxYTg1ZTRhODk4NTMzMjQ0YWUwMTY4YjE1Ni4u
YjQyZDE0NGFkOWM5NjA1ODVjNTg3ZmFlNDVlYWNlZDBhZTY2NmY4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaApAQCAtNDQsMTQgKzQ0LDEyIEBAIGNsYXNzIFNjcm9s
bGJhcjsKIC8vIEl0J3MgaW50ZW5kZWQgYXMgYSBzdG9wZ2FwIG1lYXN1cmUgdW50aWwgd2UgY2Fu
IG1lcmdlIGFsbCBwbHVnLWluIHZpZXdzIGludG8gYSBzaW5nbGUgcGx1Zy1pbiB2aWV3LgogY2xh
c3MgUGx1Z2luVmlld0Jhc2UgOiBwdWJsaWMgV2lkZ2V0IHsKIHB1YmxpYzoKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0
dWFsIGJvb2wgd2lsbFByb3ZpZGVQbHVnaW5MYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFBsdWdpbkxheWVyKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRldGFjaFBsdWdpbkxheWVyKCkgeyB9CiAjZW5kaWYKLSNlbmRpZgogCiAgICAgdmlydHVh
bCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcAppbmRleCBmNjlkMzI0NGMxYTk4MTgxMjRkZmJkNmI5OGEyMGMyYTMyYTI1M2RlLi5hMDBm
ODg4YmUxZjBmYmQyNjVjZGI2N2Y0YWZkOWRmNjQxODRhM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMs
NiBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc0ludG9GaW5h
bFBoYXNlKCkKICAgICB9CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2
b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVSZW5kZXJGbG93VGhyZWFkTGF5ZXJzSWZO
ZWVkZWQoKQogewogICAgIC8vIFdhbGsgdGhlIGZsb3cgY2hhaW4gaW4gcmV2ZXJzZSBvcmRlciBi
ZWNhdXNlIFJlbmRlclJlZ2lvbnMgbWlnaHQgYmVjb21lIFJlbmRlckxheWVycyBmb3IgdGhlIGZv
bGxvd2luZyBmbG93IHRocmVhZHMuCkBAIC0yNzIsNyArMjcxLDYgQEAgdm9pZCBGbG93VGhyZWFk
Q29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lmTmVlZGVkKCkKICAgICAg
ICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgp
OwogICAgIH0KIH0KLSNlbmRpZgogCiBib29sIEZsb3dUaHJlYWRDb250cm9sbGVyOjppc0NvbnRl
bnRFbGVtZW50UmVnaXN0ZXJlZFdpdGhBbnlOYW1lZEZsb3coY29uc3QgRWxlbWVudCYgY29udGVu
dEVsZW1lbnQpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Rmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oCmluZGV4IGUwMDQ2OTk1NTQ4OGI3NWZiOWY5ZjExMmI1ZWFjZmRlNDMy
Y2VlOWYuLmViNGRhYzgzM2I4YmE5NGJkZTFmMmU5NTM5ZjE5ZGQzYTNiYTQwZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCkBAIC04NSw5
ICs4NSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSBsYXllcnMgYXJlIHBhaW50ZWQgYW5kIGhp
dC10ZXN0ZWQgYnkgUmVuZGVyVmlldwogICAgIHZvaWQgY29sbGVjdEZpeGVkUG9zaXRpb25lZExh
eWVycyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiYgZml4ZWRQb3NMYXllcnMpIGNvbnN0OwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgdXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKCk7Ci0jZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKICAgICBib29s
IGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGNiOTA1YTY1ZWJiMDI1ZDc1MGEy
ZTY1ZGI2MWZkMTAyMGQzZWVjMjQuLmMwY2RkYjllZTlhM2ZmMmM3NTExOTFlYTY1NmQ3YWJjNTUz
YWE4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00OSw2ICs0
OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0
b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29t
cG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRh
YmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC01OSwxMCArNjAsNiBAQAog
I2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRv
ci5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNlbmRpZgpAQCAtMjc1LDEwICsyNzIsOCBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bAogICAg
ICAgICAvLyB0aGUgY2FudmFzLiBJc3N1ZSBmdWxsIHJlcGFpbnQsIHdoZW4gb3VyIHN0eWxlIGNo
YW5nZXMgc3Vic3RhbnRpYWxseS4KICAgICAgICAgaWYgKGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNl
UmVwYWludCAmJiAoaXNSb290KCkgfHwgaXNCb2R5KCkpKSB7CiAgICAgICAgICAgICB2aWV3KCku
cmVwYWludFJvb3RDb250ZW50cygpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgICAgIGlmIChvbGRTdHlsZS0+aGFzRW50aXJlbHlGaXhlZEJhY2tncm91bmQoKSAh
PSBuZXdTdHlsZS5oYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpKQogICAgICAgICAgICAgICAg
IHZpZXcoKS5jb21wb3NpdG9yKCkucm9vdEZpeGVkQmFja2dyb3VuZHNDaGFuZ2VkKCk7Ci0jZW5k
aWYKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gV2hlbiBhIGxheW91dCBoaW50IGhh
cHBlbnMgYW5kIGFuIG9iamVjdCdzIHBvc2l0aW9uIHN0eWxlIGNoYW5nZXMsIHdlIGhhdmUgdG8g
ZG8gYSBsYXlvdXQKQEAgLTEzMTYsMTAgKzEzMTEsOCBAQCBzdGF0aWMgYm9vbCBpc0NhbmRpZGF0
ZUZvck9wYXF1ZW5lc3NUZXN0KGNvbnN0IFJlbmRlckJveCYgY2hpbGRCb3gpCiAgICAgaWYgKCFj
aGlsZEJveC53aWR0aCgpIHx8ICFjaGlsZEJveC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmIChSZW5kZXJMYXllciogY2hpbGRMYXllciA9IGNoaWxkQm94LmxheWVyKCkp
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChjaGlsZExh
eWVyLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgog
ICAgICAgICAvLyBGSVhNRTogRGVhbCB3aXRoIHotaW5kZXguCiAgICAgICAgIGlmICghY2hpbGRT
dHlsZS5oYXNBdXRvWkluZGV4KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTEw
LDcgKzE1MDMsNiBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IENvbG9yJiBjLCBjb25zdAogICAgIHBhaW50RmlsbExheWVy
RXh0ZW5kZWQocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXIsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCAw
LCBMYXlvdXRTaXplKCksIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIHN0YXRpYyBib29sIGxheWVyc1VzZUltYWdlKFdyYXBwZWRJ
bWFnZVB0ciBpbWFnZSwgY29uc3QgRmlsbExheWVyKiBsYXllcnMpCiB7CiAgICAgZm9yIChjb25z
dCBGaWxsTGF5ZXIqIGN1ckxheWVyID0gbGF5ZXJzOyBjdXJMYXllcjsgY3VyTGF5ZXIgPSBjdXJM
YXllci0+bmV4dCgpKSB7CkBAIC0xNTIwLDcgKzE1MTIsNiBAQCBzdGF0aWMgYm9vbCBsYXllcnNV
c2VJbWFnZShXcmFwcGVkSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzKQog
CiAgICAgcmV0dXJuIGZhbHNlOwogfQotI2VuZGlmCiAKIHZvaWQgUmVuZGVyQm94OjppbWFnZUNo
YW5nZWQoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBJbnRSZWN0KikKIHsKQEAgLTE1Mzcs
OCArMTUyOCw2IEBAIHZvaWQgUmVuZGVyQm94OjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRy
IGltYWdlLCBjb25zdCBJbnRSZWN0KikKICAgICBpZiAoIWRpZEZ1bGxSZXBhaW50KQogICAgICAg
ICByZXBhaW50TGF5ZXJSZWN0c0ZvckltYWdlKGltYWdlLCBzdHlsZSgpLm1hc2tMYXllcnMoKSwg
ZmFsc2UpOwogCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFp
c0NvbXBvc2l0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNTQ2LDcgKzE1MzUsNiBAQCB2
b2lkIFJlbmRlckJveDo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3Qg
SW50UmVjdCopCiAgICAgICAgIGxheWVyKCktPmNvbnRlbnRDaGFuZ2VkKE1hc2tJbWFnZUNoYW5n
ZWQpOwogICAgIGlmIChsYXllcnNVc2VJbWFnZShpbWFnZSwgc3R5bGUoKS5iYWNrZ3JvdW5kTGF5
ZXJzKCkpKQogICAgICAgICBsYXllcigpLT5jb250ZW50Q2hhbmdlZChCYWNrZ3JvdW5kSW1hZ2VD
aGFuZ2VkKTsKLSNlbmRpZgogfQogCiBib29sIFJlbmRlckJveDo6cmVwYWludExheWVyUmVjdHNG
b3JJbWFnZShXcmFwcGVkSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzLCBi
b29sIGRyYXdpbmdCYWNrZ3JvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNzY3ZmE5MTliYjQxNjBkZmE0NTMwNDQyMjJj
YWIxMDFjZjdiMGI5YS4uYTM4ODcyZWVjOTQ2N2JiYTJlY2IzMDVlMmUxZDAzYjIxY2QyYThhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRl
ICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJl
bmRlckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgog
I2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCkBAIC00NiwxMSArNDgs
NiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJMYXll
ckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC04
OSw3ICs4Niw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnNldFNlbGVjdGlvblN0YXRl
KFNlbGVjdGlvblN0YXRlIHN0YXRlKQogICAgICAgICBjb250YWluaW5nQmxvY2stPnNldFNlbGVj
dGlvblN0YXRlKHN0YXRlKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnRlbnRDaGFuZ2VkKENvbnRlbnRDaGFuZ2VU
eXBlIGNoYW5nZVR5cGUpCiB7CiAgICAgaWYgKCFoYXNMYXllcigpKQpAQCAtMTUxLDcgKzE0Nyw2
IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0
aW1lKQogICAgIEFTU0VSVChpc0NvbXBvc2l0ZWQoKSk7CiAgICAgbGF5ZXIoKS0+YmFja2luZygp
LT5zdXNwZW5kQW5pbWF0aW9ucyh0aW1lKTsKIH0KLSNlbmRpZgogCiBib29sIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIEltYWdlKiBpbWFnZSwgY29uc3Qgdm9pZCogbGF5ZXIsIGNvbnN0IExheW91dFNpemUmIHNp
emUpCiB7CkBAIC0xMDI4LDcgKzEwMjMsNiBAQCBJbnRQb2ludCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnJlbGF0aXZlUGhhc2UoKSBjb25zdAogCiBib29s
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpmaXhlZEJhY2tncm91bmRQYWludHNJbkxvY2FsQ29vcmRp
bmF0ZXMoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBp
ZiAoIWlzUm9vdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTEwNDAsOSArMTAzNCw2
IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmZpeGVkQmFja2dyb3VuZFBhaW50c0luTG9j
YWxDb29yZGluYXRlcygpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biByb290TGF5ZXItPmJhY2tpbmcoKS0+YmFja2dyb3VuZExheWVyUGFpbnRzRml4ZWRSb290QmFj
a2dyb3VuZCgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogc3RhdGlj
IGlubGluZSBpbnQgZ2V0U3BhY2UoaW50IGFyZWFTaXplLCBpbnQgdGlsZVNpemUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDZlZDIy
Njk5MTM2NjBmNmZlODE5MWViM2YzNjdjODAxNmMyZDdiMDcuLjU3MmIzNTcxYmM5N2Q1NDQyNWNk
YWQyNDEzM2U3MTQ5NjMxOGQ5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0xODIsNyArMTgyLDYgQEAgcHVibGljOgogICAgIGJv
b2wgY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkg
JiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmUoKSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1Rh
YmxlQ2VsbCgpICYmIGlzUmVuZGVyQmxvY2soKSAmJiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9CiAK
ICAgICB2b2lkIGdldEdlb21ldHJ5Rm9yQmFja2dyb3VuZEltYWdlKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiBkZXN0UmVjdCwgSW50UG9pbnQm
IHBoYXNlLCBJbnRTaXplJiB0aWxlU2l6ZSkgY29uc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZvaWQgY29udGVudENoYW5nZWQoQ29udGVudENoYW5nZVR5cGUpOwog
ICAgIGJvb2wgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwogCkBAIC0xOTUsNyAr
MTk0LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5pbWF0aW9uRmluaXNoZWQoY29uc3QgU3RyaW5n
JiBuYW1lKTsKIAogICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUgPSAwKTsK
LSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYs
IFBhc3NSZWY8UmVuZGVyU3R5bGU+LCB1bnNpZ25lZCBiYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCAxMDg3OTFkYjM2NjliOGE2
ZjQ3MzdhNjRiNjU2MWFiZWZjZjljNDFlLi4zMThjNjYwNTBlNzA5MmY4NGIyNjQzZGI3YzRmNDQ5
ZTMwMDgzODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1h
Z2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGluZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5k
ZXJSZWdpb24uaCIKQEAgLTU2LDEwICs1Nyw2IEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIFJlbmRlckVsZW1lbnQ6OnNfYWZmZWN0c1BhcmVu
dEJsb2NrID0gZmFsc2U7CkBAIC0yMzcsNyArMjM0LDYgQEAgUmVuZGVyU3R5bGUqIFJlbmRlckVs
ZW1lbnQ6OmNhY2hlZEZpcnN0TGluZVN0eWxlKCkgY29uc3QKIAogU3R5bGVEaWZmZXJlbmNlIFJl
bmRlckVsZW1lbnQ6OmFkanVzdFN0eWxlRGlmZmVyZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
dW5zaWduZWQgY29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNvbnN0CiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIElmIHRyYW5zZm9ybSBjaGFuZ2VkLCBhbmQg
d2UgYXJlIG5vdCBjb21wb3NpdGVkLCBuZWVkIHRvIGRvIGEgbGF5b3V0LgogICAgIGlmIChjb250
ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyAmIENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0eVRyYW5zZm9y
bSkgewogICAgICAgICAvLyBUZXh0IG5vZGVzIHNoYXJlIHN0eWxlIHdpdGggdGhlaXIgcGFyZW50
cyBidXQgdHJhbnNmb3JtcyBkb24ndCBhcHBseSB0byB0aGVtLApAQCAtMjgyLDkgKzI3OCw2IEBA
IFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIHVuc2lnCiAgICAgICAgIGlmIChoYXNMYXllcigpICE9IHRvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCh0aGlzKS0+cmVxdWlyZXNMYXllcigpKQogICAgICAgICAgICAg
ZGlmZiA9IFN0eWxlRGlmZmVyZW5jZUxheW91dDsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyk7Ci0jZW5kaWYKIAogICAgIC8vIElmIHdl
IGhhdmUgbm8gbGF5ZXIoKSwganVzdCB0cmVhdCBhIFJlcGFpbnRMYXllciBoaW50IGFzIGEgbm9y
bWFsIFJlcGFpbnQuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlUmVwYWludExheWVy
ICYmICFoYXNMYXllcigpKQpAQCAtMzg1LDEzICszNzgsMTEgQEAgdm9pZCBSZW5kZXJFbGVtZW50
OjpzZXRTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKIAogICAgIGlmICgmbV9zdHls
ZS5nZXQoKSA9PSAmc3R5bGUuZ2V0KCkpIHsKICAgICAgICAgLy8gRklYTUU6IENhbiB3ZSBjaGFu
Z2UgdGhpbmdzIHNvIHdlIG5ldmVyIGhpdCB0aGlzIGNvZGUgcGF0aD8KLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRocm91Z2ggYWRq
dXN0U3R5bGVEaWZmZXJlbmNlKCkgZm9yIGlmcmFtZXMsIHBsdWdpbnMsIGFuZCBjYW52YXMgc28K
ICAgICAgICAgLy8gc3R5bGUgc2hhcmluZyBpcyBkaXNhYmxlZCBmb3IgdGhlbS4gVGhhdCBzaG91
bGQgZW5zdXJlIHRoYXQgd2UgbmV2ZXIgaGl0IHRoaXMgY29kZSBwYXRoLgogICAgICAgICBBU1NF
UlQoIWlzUmVuZGVySUZyYW1lKCkpOwogICAgICAgICBBU1NFUlQoIWlzRW1iZWRkZWRPYmplY3Qo
KSk7CiAgICAgICAgIEFTU0VSVCghaXNDYW52YXMoKSk7Ci0jZW5kaWYKICAgICAgICAgc3R5bGUu
ZHJvcFJlZigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODg4LDggKzg3OSw2IEBAIHZv
aWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmV3CiAKICAgICBib29sIG5ld1N0eWxlU2xvd1Njcm9sbCA9IHJl
cGFpbnRGaXhlZEJhY2tncm91bmRzT25TY3JvbGwgJiYgbmV3U3R5bGUuaGFzRml4ZWRCYWNrZ3Jv
dW5kSW1hZ2UoKTsKICAgICBib29sIG9sZFN0eWxlU2xvd1Njcm9sbCA9IG9sZFN0eWxlICYmIHJl
cGFpbnRGaXhlZEJhY2tncm91bmRzT25TY3JvbGwgJiYgbV9zdHlsZS0+aGFzRml4ZWRCYWNrZ3Jv
dW5kSW1hZ2UoKTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29s
IGRyYXdzUm9vdEJhY2tncm91bmQgPSBpc1Jvb3QoKSB8fCAoaXNCb2R5KCkgJiYgIXJlbmRlcmVy
SGFzQmFja2dyb3VuZChkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpKSk7
CiAgICAgaWYgKGRyYXdzUm9vdEJhY2tncm91bmQgJiYgcmVwYWludEZpeGVkQmFja2dyb3VuZHNP
blNjcm9sbCkgewogICAgICAgICBpZiAodmlldygpLmNvbXBvc2l0b3IoKS5zdXBwb3J0c0ZpeGVk
Um9vdEJhY2tncm91bmRDb21wb3NpdGluZygpKSB7CkBAIC05MDAsNyArODg5LDcgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgICAgICBvbGRTdHlsZVNsb3dTY3JvbGwgPSBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgorCiAgICAgaWYgKG9sZFN0eWxlU2xvd1Nj
cm9sbCAhPSBuZXdTdHlsZVNsb3dTY3JvbGwpIHsKICAgICAgICAgaWYgKG9sZFN0eWxlU2xvd1Nj
cm9sbCkKICAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5yZW1vdmVTbG93UmVwYWludE9i
amVjdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwCmluZGV4IGNmOTAzOTAxMDY5NGJjMWFlNGQ0MjUxOTcxYjY0ZmI0MGEwNmZh
ODYuLjA0ZWQzZDJhNjM1MmJhODZlM2IwOGJmOTBhMThmM2QwNmQwODVkNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMTIz
LDcgKzEyMyw2IEBAIFJlbmRlclB0cjxSZW5kZXJFbWJlZGRlZE9iamVjdD4gUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldChIVE1MQXBwbGV0CiAgICAgcmV0dXJuIHJlbmRlcmVy
OwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6cmVxdWlyZXNMYXllcigpIGNvbnN0CiB7CiAgICAgaWYgKFJlbmRlcldpZGdl
dDo6cmVxdWlyZXNMYXllcigpKQpAQCAtMTQxLDcgKzE0MCw2IEBAIGJvb2wgUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdAogICAgIHJldHVy
biB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpICYmIHRvUGx1Z2luVmll
d0Jhc2Uod2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVyKCk7CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAj
aWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBTdHJpbmcgdW5hdmFpbGFibGVQbHVnaW5SZXBsYWNl
bWVudFRleHQoUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRleCBiNTVkMjEzNzBhNWYyNmM3YzZiM2JiYWY5
ZDVmOGUwZTA2MjJiYmVmLi41MzhjNzczYWRhOWExYTgyZjI5ZjFlMTNiYmIwZmY3OTIzYTI5OThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
aApAQCAtNTgsOSArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUmVwbGFjZW1lbnRPYnNj
dXJlZCgpIGNvbnN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJv
b2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwotI2VuZGlmCiAKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIG92ZXJyaWRlIGZpbmFsOwpAQCAtNzgsOSArNzYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGFpbnRTbmFwc2hvdEltYWdlKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
JiwgSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhQYWludEluZm8mLCBj
b25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIGZpbmFsOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3Zl
cnJpZGUgZmluYWw7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24m
IGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGUgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCA4ZDU1MmU3YThhYWQyMTk2OTJmYWIz
NzY3M2U3NDIyYjBkNTRjYjRlLi41MWZmMTUyY2Y1YjEwOWY3YjY0ZjA0YjI1YzJkNjhhODY2ODdi
MGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3Bw
CkBAIC02Miw5ICs2Miw3IEBAIFJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoRG9j
dW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsCiAgICAgLCBtX3BhZ2VM
b2dpY2FsU2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2xheW91dFBoYXNlKExheW91dFBoYXNl
TWVhc3VyZUNvbnRlbnQpCiAgICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZhbHNlKQotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fbGF5ZXJzVG9SZWdpb25NYXBw
aW5nc0RpcnR5KHRydWUpCi0jZW5kaWYKIHsKICAgICBzZXRGbG93VGhyZWFkU3RhdGUoSW5zaWRl
T3V0T2ZGbG93VGhyZWFkKTsKIH0KQEAgLTIyNiw3ICsyMjQsNiBAQCB2b2lkIFJlbmRlckZsb3dU
aHJlYWQ6OmxheW91dCgpCiAgICAgaWYgKGxhc3RSZWdpb24oKSkKICAgICAgICAgbGFzdFJlZ2lv
bigpLT5leHBhbmRUb0VuY29tcGFzc0Zsb3dUaHJlYWRDb250ZW50c0lmTmVlZGVkKCk7CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gSWYgdGhlcmUgYXJlIGNoaWxk
cmVuIGxheWVycyBpbiB0aGUgUmVuZGVyRmxvd1RocmVhZCB0aGVuIHdlIG5lZWQgdG8gbWFrZSBz
dXJlIHRoYXQgdGhlCiAgICAgLy8gY29tcG9zaXRlZCBjaGlsZHJlbiBsYXllcnMgd2lsbCBsYW5k
IGluIHRoZSByaWdodCBSZW5kZXJSZWdpb25zLiBBbHNvLCB0aGUgcGFyZW50IFJlbmRlclJlZ2lv
bnMKICAgICAvLyB3aWxsIGdldCBSZW5kZXJMYXllcnMgYW5kIGJlY29tZSBjb21wb3NpdGVkIGFz
IG5lZWRlZC4KQEAgLTIzOCw3ICsyMzUsNiBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91
dCgpCiAgICAgICAgIGlmICh1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFwcGluZ3MoKSkKICAgICAg
ICAgICAgIGxheWVyKCktPmNvbXBvc2l0b3IoKS5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1
aWxkKCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCgpKQogICAgICAgICBkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50
KCk7CkBAIC0yNDcsNyArMjQzLDYgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQog
ICAgICAgICBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRDaGFuZ2VFdmVudCgpOwogfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpoYXNDb21w
b3NpdGluZ1JlZ2lvbkRlc2NlbmRhbnQoKSBjb25zdAogewogICAgIGZvciAoYXV0byYgcmVnaW9u
IDogbV9yZWdpb25MaXN0KQpAQCAtMzUwLDcgKzM0NSw2IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVh
ZDo6dXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCkKIAogICAgIHJldHVybiBuZWVkc0xh
eWVyVXBkYXRlOwogfQotI2VuZGlmCiAKIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6Y29sbGVjdHNH
cmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBmY2VkNjQ1ZTFjMjhiM2EzYTE1ZjE3OGI1
MzZjYmMwM2M5OTI2NmQ0Li4yZWE4MWY5ODlmNTcwM2ExZDYzMmFhMmVhYjQ4ZTMzNjZhZjExYWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTQ3
LDEwICs0Nyw4IEBAIGNsYXNzIFJlbmRlclJlZ2lvbjsKIAogdHlwZWRlZiBMaXN0SGFzaFNldDxS
ZW5kZXJSZWdpb24qPiBSZW5kZXJSZWdpb25MaXN0OwogdHlwZWRlZiBWZWN0b3I8UmVuZGVyTGF5
ZXIqPiBSZW5kZXJMYXllckxpc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
dHlwZWRlZiBIYXNoTWFwPFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiwgUmVuZGVyTGF5ZXJMaXN0
PiBSZWdpb25Ub0xheWVyTGlzdE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJl
bmRlck5hbWVkRmxvd0ZyYWdtZW50Kj4gTGF5ZXJUb1JlZ2lvbk1hcDsKLSNlbmRpZgogCiAvLyBS
ZW5kZXJGbG93VGhyZWFkIGlzIHVzZWQgdG8gY29sbGVjdCBhbGwgdGhlIHJlbmRlciBvYmplY3Rz
IHRoYXQgcGFydGljaXBhdGUgaW4gYQogLy8gZmxvdyB0aHJlYWQuIEl0IHdpbGwgYWxzbyBoZWxw
IGluIGRvaW5nIHRoZSBsYXlvdXQuIEhvd2V2ZXIsIGl0IHdpbGwgbm90IHJlbmRlcgpAQCAtMTc3
LDcgKzE3NSw2IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzVHdvUGhhc2VzTGF5b3V0KCkgY29u
c3QgeyByZXR1cm4gbV9uZWVkc1R3b1BoYXNlc0xheW91dDsgfQogICAgIHZvaWQgY2xlYXJOZWVk
c1R3b1BoYXNlc0xheW91dCgpIHsgbV9uZWVkc1R3b1BoYXNlc0xheW91dCA9IGZhbHNlOyB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gV2hldGhlciBhbnkgb2Yg
dGhlIHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRpbmcgZGVzY2VuZGFudC4KICAgICBib29sIGhhc0Nv
bXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNvbnN0OwogCkBAIC0xOTMsNyArMTkwLDYgQEAg
cHVibGljOgogICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZWdpb25Gb3JDb21wb3NpdGVk
TGF5ZXIoUmVuZGVyTGF5ZXImKTsgLy8gQnkgbWVhbnMgb2YgZ2V0UmVnaW9uUmFuZ2VGb3JCb3gg
b3IgcmVnaW9uQXRCbG9ja09mZnNldC4KICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogY2Fj
aGVkUmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyJik7CiAKLSNlbmRpZgogICAg
IHZpcnR1YWwgYm9vbCBjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Q7
CiAKICAgICB2b2lkIHB1c2hGbG93VGhyZWFkTGF5b3V0U3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0
Jik7CkBAIC0yMzQsNyArMjMwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgTGF5b3V0UmVjdCBjb21w
dXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVj
dCYsIGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBib29sIHVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpOwogCiAg
ICAgLy8gVHJpZ2dlcnMgYSBsYXllcnMnIHVwZGF0ZSBpZiBhIGxheWVyIGhhcyBtb3ZlZCBmcm9t
IGEgcmVnaW9uIHRvIGFub3RoZXIgc2luY2UgdGhlIGxhc3QgdXBkYXRlLgpAQCAtMjQyLDcgKzIz
Nyw2IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9uRm9y
Q29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyKik7CiAgICAgYm9vbCB1cGRhdGVMYXllclRvUmVn
aW9uTWFwcGluZ3MoKTsKICAgICB2b2lkIHVwZGF0ZVJlZ2lvbkZvclJlbmRlckxheWVyKFJlbmRl
ckxheWVyKiwgTGF5ZXJUb1JlZ2lvbk1hcCYsIFJlZ2lvblRvTGF5ZXJMaXN0TWFwJiwgYm9vbCYg
bmVlZHNMYXllclVwZGF0ZSk7Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25M
YXlvdXRVcGRhdGVFdmVudChib29sIHZhbHVlKSB7IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRh
dGVFdmVudCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGREaXNwYXRjaFJlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OyB9
CkBAIC0zMjAsMTMgKzMxNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFJlbmRlclJlZ2lvbiog
bV9yZXN1bHQ7CiAgICAgfTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAvLyBUbyBlYXNpbHkgZmluZCB0aGUgcmVnaW9uIHdoZXJlIGEgbGF5ZXIgc2hvdWxkIGJlIHBh
aW50ZWQuCiAgICAgT3duUHRyPExheWVyVG9SZWdpb25NYXA+IG1fbGF5ZXJUb1JlZ2lvbk1hcDsK
IAogICAgIC8vIFRvIGVhc2lseSBmaW5kIHRoZSBsaXN0IG9mIGxheWVycyB0aGF0IHBhaW50IGlu
IGEgcmVnaW9uLgogICAgIE93blB0cjxSZWdpb25Ub0xheWVyTGlzdE1hcD4gbV9yZWdpb25Ub0xh
eWVyTGlzdE1hcDsKLSNlbmRpZgogCiAgICAgLy8gTWFwIGEgYm94IHRvIHRoZSBsaXN0IG9mIHJl
Z2lvbnMgaW4gd2hpY2ggdGhlIGJveCBpcyByZW5kZXJlZC4KICAgICB0eXBlZGVmIEhhc2hNYXA8
Y29uc3QgUmVuZGVyQm94KiwgUmVuZGVyUmVnaW9uUmFuZ2U+IFJlbmRlclJlZ2lvblJhbmdlTWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4
IGUyNjc1NmJjNWUzYWUzM2YyOTEwMTU5OTIwYzk0ODA0NzY4ZDQxYWUuLjk3ZThlZmQzNWI0NTBi
M2UyODQzNzA1OWFjNGRlYzc5YjBiYTNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTMwLDEwICszMCw3IEBACiAKICNpbmNsdWRlICJS
ZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgotCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5o
IgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggODZlMzg3ZWNlYzk1ZDZmYTRhZjYzZjkwYzQxNmE5ZTlh
M2ZjZDJmNy4uNTI2NDM3NWVmYzFlMDAzODZiNTg0MjIzZDViZDQ4MTQyNWQxZmQ5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zNTIsMTAgKzM1Miw4IEBA
IHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlRGltZW5zaW9uc0NoYW5nZWQoYm9vbCBpbWFnZVNpemVD
aGFuZ2VkLCBjb25zdCBJbnRSZWN0KiByCiAgICAgICAgIAogICAgICAgICByZXBhaW50UmVjdGFu
Z2xlKHJlcGFpbnRSZWN0KTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAgICAgLy8gVGVsbCBhbnkgcG90ZW50aWFsIGNvbXBvc2l0aW5nIGxheWVycyB0aGF0IHRoZSBp
bWFnZSBuZWVkcyB1cGRhdGluZy4KICAgICAgICAgY29udGVudENoYW5nZWQoSW1hZ2VDaGFuZ2Vk
KTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAtMzY2LDE1ICszNjQsMTEgQEAgdm9pZCBSZW5kZXJJ
bWFnZTo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIG5ld0ltYWdlKQogCiAgICAgaW52
YWxpZGF0ZUJhY2tncm91bmRPYnNjdXJhdGlvblN0YXR1cygpOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChuZXdJbWFnZSA9PSBpbWFnZVJlc291cmNlKCkuY2Fj
aGVkSW1hZ2UoKSkgewogICAgICAgICAvLyB0ZWxsIGFueSBwb3RlbnRpYWwgY29tcG9zaXRpbmcg
bGF5ZXJzCiAgICAgICAgIC8vIHRoYXQgdGhlIGltYWdlIGlzIGRvbmUgYW5kIHRoZXkgY2FuIHJl
ZmVyZW5jZSBpdCBkaXJlY3RseS4KICAgICAgICAgY29udGVudENoYW5nZWQoSW1hZ2VDaGFuZ2Vk
KTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShuZXdJbWFnZSk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggNjVlMGQyMzFkZmYzZDBlNTg1ZGM5Y2Y2NWVlZjQ4OGY0YzZk
OWJkMy4uMGRjMzI2NWMxMGVmOTgzMjE4NTVjNzUwZDJlMDQ2ODFjNTYzZDA4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5j
bHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgi
CiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5n
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TWFycXVlZS5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCkBAIC0xMTcsMTEgKzExOSw2IEBACiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRl
ICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNWRykKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgogI2VuZGlmCkBAIC0xNzAsMTEgKzE2Nyw5IEBAIFJlbmRlckxh
eWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXJlckxheWVyTW9k
ZWxPYmplY3QpCiAgICAgLCBtX2lzUGFnaW5hdGVkKGZhbHNlKQogICAgICwgbV8zRFRyYW5zZm9y
bWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5KHRydWUpCiAgICAgLCBtX2hhczNEVHJhbnNmb3JtZWRE
ZXNjZW5kYW50KGZhbHNlKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAs
IG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGZhbHNlKQogICAgICwgbV9pbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uKE5vSW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbikKICAgICAsIG1fdmlld3Bv
cnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oTm9Ob3RDb21wb3NpdGVkUmVhc29uKQot
I2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICwgbV9hZGp1c3RGb3JJT1NDYXJldFdoZW5T
Y3JvbGxpbmcoZmFsc2UpCiAgICAgLCBtX3JlZ2lzdGVyZWRBc1RvdWNoRXZlbnRMaXN0ZW5lckZv
clNjcm9sbGluZyhmYWxzZSkKQEAgLTI1OCw5ICsyNTMsNyBAQCBSZW5kZXJMYXllcjo6flJlbmRl
ckxheWVyKCkKICAgICAvLyBDaGlsZCBsYXllcnMgd2lsbCBiZSBkZWxldGVkIGJ5IHRoZWlyIGNv
cnJlc3BvbmRpbmcgcmVuZGVyIG9iamVjdHMsIHNvCiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBk
ZWxldGUgdGhlbSBvdXJzZWx2ZXMuCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgY2xlYXJCYWNraW5nKHRydWUpOwotI2VuZGlmCiB9CiAKIFN0cmluZyBSZW5kZXJMYXll
cjo6bmFtZSgpIGNvbnN0CkBAIC0yOTUsOCArMjg4LDYgQEAgU3RyaW5nIFJlbmRlckxheWVyOjpu
YW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS50b1N0cmluZygpOwogfQogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlckxh
eWVyOjpjb21wb3NpdG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gcmVuZGVyZXIoKS52aWV3KCku
Y29tcG9zaXRvcigpOwpAQCAtMzEyLDE1ICszMDMsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpjb250
ZW50Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogICAgICAgICBtX2JhY2tp
bmctPmNvbnRlbnRDaGFuZ2VkKGNoYW5nZVR5cGUpOwogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiBib29sIFJlbmRlckxheWVyOjpjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBy
ZXR1cm4gY29tcG9zaXRvcigpLmNhblJlbmRlcjNEVHJhbnNmb3JtcygpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTMz
MCw3ICszMTUsNiBAQCBib29sIFJlbmRlckxheWVyOjpwYWludHNXaXRoRmlsdGVycygpIGNvbnN0
CiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhlcmUgd2lsbCBiZSBjYXNlcyB3aGVyZSB3ZSBw
YWludCB3aXRoIGZpbHRlcnMgZXZlbiB3aXRob3V0IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLAog
ICAgIC8vIGFuZCB0aGlzIHdob2xlIGZ1bmN0aW9uIHdvbid0IGJlIGluc2lkZSB0aGUgI2lmIGJl
bG93LgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVy
ZXIoKS5oYXNGaWx0ZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKQEAgLTMz
OSw3ICszMjMsNiBAQCBib29sIFJlbmRlckxheWVyOjpwYWludHNXaXRoRmlsdGVycygpIGNvbnN0
CiAKICAgICBpZiAoIW1fYmFja2luZyB8fCAhbV9iYWNraW5nLT5jYW5Db21wb3NpdGVGaWx0ZXJz
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CiB9
CkBAIC00NjcsMTIgKzQ1MCwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0
aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsIFVwZGF0ZUxheQogICAgIGlmICht
X3JlZmxlY3Rpb24pCiAgICAgICAgIG1fcmVmbGVjdGlvbi0+bGF5b3V0KCk7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gQ2xlYXIgdGhlIElzQ29tcG9zaXRpbmdV
cGRhdGVSb290IGZsYWcgb25jZSB3ZSd2ZSBmb3VuZCB0aGUgZmlyc3QgY29tcG9zaXRpbmcgbGF5
ZXIgaW4gdGhpcyB1cGRhdGUuCiAgICAgYm9vbCBpc1VwZGF0ZVJvb3QgPSAoZmxhZ3MgJiBJc0Nv
bXBvc2l0aW5nVXBkYXRlUm9vdCk7CiAgICAgaWYgKGlzQ29tcG9zaXRlZCgpKQogICAgICAgICBm
bGFncyAmPSB+SXNDb21wb3NpdGluZ1VwZGF0ZVJvb3Q7Ci0jZW5kaWYKIAogICAgIGlmICh1c2VS
ZWdpb25CYXNlZENvbHVtbnMoKSAmJiByZW5kZXJlcigpLmlzSW5GbG93UmVuZGVyRmxvd1RocmVh
ZCgpKSB7CiAgICAgICAgIHVwZGF0ZVBhZ2luYXRpb24oKTsKQEAgLTQ4NSw3ICs0NjYsNiBAQCB2
b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCog
Z2VvbWV0cnlNYXAsIFVwZGF0ZUxheQogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAg
Y2hpbGQtPnVwZGF0ZUxheWVyUG9zaXRpb25zKGdlb21ldHJ5TWFwLCBmbGFncyk7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKChmbGFncyAmIFVwZGF0ZUNvbXBv
c2l0aW5nTGF5ZXJzKSAmJiBpc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICBSZW5kZXJMYXllckJh
Y2tpbmc6OlVwZGF0ZUFmdGVyTGF5b3V0RmxhZ3MgdXBkYXRlRmxhZ3MgPSBSZW5kZXJMYXllckJh
Y2tpbmc6OkNvbXBvc2l0aW5nQ2hpbGRyZW5Pbmx5OwogICAgICAgICBpZiAoZmxhZ3MgJiBOZWVk
c0Z1bGxSZXBhaW50SW5CYWNraW5nKQpAQCAtNDk0LDcgKzQ3NCw2IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwg
VXBkYXRlTGF5CiAgICAgICAgICAgICB1cGRhdGVGbGFncyB8PSBSZW5kZXJMYXllckJhY2tpbmc6
OklzVXBkYXRlUm9vdDsKICAgICAgICAgYmFja2luZygpLT51cGRhdGVBZnRlckxheW91dCh1cGRh
dGVGbGFncyk7CiAgICAgfQotI2VuZGlmCiAgICAgICAgIAogICAgIC8vIFdpdGggYWxsIG91ciBj
aGlsZHJlbiBwb3NpdGlvbmVkLCBub3cgdXBkYXRlIG91ciBtYXJxdWVlIGlmIHdlIG5lZWQgdG8u
CiAgICAgaWYgKG1fbWFycXVlZSkgewpAQCAtNjk3LDE0ICs2NzYsMTAgQEAgdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJz
aXZlKGNvbnN0IEgKIAogICAgIGlmICghaXNTdGFja2luZ0NvbnRleHQoKSkgewogICAgICAgICBi
b29sIG5ld1ZhbHVlID0gbWF4SW5kZXggLSBtaW5JbmRleCA9PSBjb3VudDsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGJvb2wgZGlkVXBkYXRlID0gbmV3VmFsdWUg
IT0gbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXI7Ci0jZW5kaWYKICAg
ICAgICAgbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJblN0YWNraW5nT3JkZXIgPSBuZXdWYWx1
ZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChkaWRVcGRh
dGUpCiAgICAgICAgICAgICB1cGRhdGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKLSNlbmRp
ZgogICAgIH0KIH0KIApAQCAtODEyLDggKzc4Nyw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFw
CiAgICAgICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCkpOwog
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFJlbmRlckxheWVy
Ojpwb3NpdGlvbk5ld2x5Q3JlYXRlZE92ZXJmbG93Q29udHJvbHMoKQogewogICAgIGlmICghYmFj
a2luZygpLT5oYXNVbnBvc2l0aW9uZWRPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCkpCkBAIC04Mjcs
OCArODAwLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxv
d0NvbnRyb2xzKCkKICAgICBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHModG9JbnRTaXplKHJvdW5k
ZWRJbnRQb2ludChvZmZzZXRGcm9tUm9vdCkpKTsKIH0KIAotI2VuZGlmCi0KICNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVCbGVuZE1vZGUoKQpA
QCAtODc4LDcgKzg0OSw2IEBAIFRyYW5zZm9ybWF0aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJy
ZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBseVRyYW5zZm9ybU9yCiAgICAgaWYgKCFtX3Ry
YW5zZm9ybSkKICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4KCk7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5p
c1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbigpKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUg
PSByZW5kZXJlcigpLmFuaW1hdGlvbigpLmdldEFuaW1hdGVkU3R5bGVGb3JSZW5kZXJlcigmcmVu
ZGVyZXIoKSk7CkBAIC04OTUsOSArODY1LDYgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVy
TGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3IKICAg
ICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoY3VyclRyYW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFu
c2Zvcm1zKCkpOwogICAgICAgICByZXR1cm4gY3VyclRyYW5zZm9ybTsKICAgICB9Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShhcHBseU9yaWdpbik7Ci0jZW5kaWYKIAogICAgIHJldHVybiAqbV90
cmFuc2Zvcm07CiB9CkBAIC0xMTI1LDEwICsxMDkyLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4q
IG8KICAgICAgICAgbV92aXNpYmxlRGVzY2VuZGFudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAg
ICAgIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50RGlydHkgPSBmYWxzZTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKG1faGFzT3V0T2ZGbG93
UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSkKICAgICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9z
aXRlZFNjcm9sbGluZygpOwotI2VuZGlmCisKICAgICAgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudERpcnR5ID0gZmFsc2U7CiAgICAgfQogCkBAIC0xMTY0LDcgKzExMzAsNiBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFzaFNl
dDxjb25zdCBSZW5kZXJPYmplY3QqPiogbwogICAgIH0KIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXcgY2xpcHBpbmcgYmVoYXZp
b3VyIHJlcXVpcmVzIGxheWVyIHVwZGF0ZS4KIGJvb2wgUmVuZGVyTGF5ZXI6OmNoZWNrSWZEZXNj
ZW5kYW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRhdGUoYm9vbCBpc0NsaXBwaW5nKQogewpAQCAt
MTE3OSw3ICsxMTQ0LDYgQEAgYm9vbCBSZW5kZXJMYXllcjo6Y2hlY2tJZkRlc2NlbmRhbnRDbGlw
cGluZ0NvbnRleHROZWVkc1VwZGF0ZShib29sIGlzQ2xpcHBpbmcpCiAgICAgfQogICAgIHJldHVy
biBmYWxzZTsKIH0KLSNlbmRpZgogCiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eTNEVHJhbnNmb3Jt
ZWREZXNjZW5kYW50U3RhdHVzKCkKIHsKQEAgLTE0MTksNyArMTM4Myw2IEBAIHN0YXRpYyBpbmxp
bmUgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyKiBsYXllcikKIAogaW5saW5lIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRl
ckxheW91dCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChtX3JlcGFpbnRTdGF0dXMgPT0gTmVlZHNOb3JtYWxSZXBhaW50KQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIApAQCAtMTQyNywxMyArMTM5MCw4IEBAIGlubGluZSBib29sIFJlbmRlckxheWVy
OjpzaG91bGRSZXBhaW50QWZ0ZXJMYXlvdXQoKSBjb25zdAogICAgIC8vIGxheW91dCwgZG9uJ3Qg
bmVlZCB0byBiZSByZXBhaW50ZWQuIFRoZXkganVzdCBuZWVkIHRvIGJlIHJlY29tcG9zaXRlZC4K
ICAgICBBU1NFUlQobV9yZXBhaW50U3RhdHVzID09IE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlv
bmVkTW92ZW1lbnRMYXlvdXQpOwogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2lu
ZygpLT5wYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCk7Ci0jZWxzZQotICAgIHJldHVybiB0
cnVlOwotI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIHN0
YXRpYyBib29sIGNvbXBvc2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVy
KiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXItPmlzQ29tcG9zaXRlZCgpICYmICFsYXllci0+
YmFja2luZygpLT5wYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCk7CkBAIC0xNDY1LDggKzE0
MjMsNiBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3QgaQogICAgIHJldHVybiAwOwogfQogCi0jZW5k
aWYKLQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVy
OjplbmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25z
dApAQCAtMTQ4MywxMiArMTQzOSw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9z
aW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZikgY29uCiBSZW5kZXJM
YXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0ZpbHRlclJlcGFpbnRMYXllcigpIGNvbnN0CiB7
CiAgICAgZm9yIChjb25zdCBSZW5kZXJMYXllciogY3VyciA9IHRoaXM7IGN1cnI7IGN1cnIgPSBj
dXJyLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAoKGN1cnIgIT0gdGhpcyAmJiBjdXJyLT5yZXF1
aXJlc0Z1bGxMYXllckltYWdlRm9yRmlsdGVycygpKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICAgICAgICAgIHx8IGNvbXBvc2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGN1
cnIpCi0jZW5kaWYKLSAgICAgICAgICAgIHx8IGN1cnItPmlzUm9vdExheWVyKCkKLSAgICAgICAg
KQorICAgICAgICBpZiAoKGN1cnIgIT0gdGhpcyAmJiBjdXJyLT5yZXF1aXJlc0Z1bGxMYXllcklt
YWdlRm9yRmlsdGVycygpKSB8fCBjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShjdXJyKSB8
fCBjdXJyLT5pc1Jvb3RMYXllcigpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmVu
ZGVyTGF5ZXIqPihjdXJyKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CkBAIC0xNTA5LDggKzE0NjAs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5S
ZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAgICAgQVNTRVJUKHBhcmVudExheWVyKTsKICAg
ICBGbG9hdFF1YWQgcmVwYWludFF1YWQocmVjdEZvclJlcGFpbnQpOwogICAgIExheW91dFJlY3Qg
cGFyZW50TGF5ZXJSZWN0ID0gcmVuZGVyZXIoKS5sb2NhbFRvQ29udGFpbmVyUXVhZChyZXBhaW50
UXVhZCwgJnBhcmVudExheWVyLT5yZW5kZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwot
ICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGlmIChwYXJlbnRM
YXllci0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgaWYgKCFwYXJlbnRMYXllci0+YmFja2lu
ZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsKICAgICAgICAgICAgIHBhcmVudExheWVyLT5zZXRC
YWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KHBhcmVudExheWVyUmVjdCk7CkBAIC0xNTIwLDcgKzE0
NzAsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5n
SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAgICAgICAgIHBhcmVudExheWVyID0gcmVu
ZGVyZXIoKS52aWV3KCkubGF5ZXIoKTsKICAgICAgICAgcGFyZW50TGF5ZXJSZWN0ID0gcmVuZGVy
ZXIoKS5sb2NhbFRvQ29udGFpbmVyUXVhZChyZXBhaW50UXVhZCwgJnBhcmVudExheWVyLT5yZW5k
ZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYg
KHBhcmVudExheWVyLT5wYWludHNXaXRoRmlsdGVycygpKSB7CiAgICAgICAgIHBhcmVudExheWVy
LT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHBhcmVudExheWVyUmVjdCwg
aW1tZWRpYXRlKTsKQEAgLTE1NDgsMTAgKzE0OTcsOCBAQCBib29sIFJlbmRlckxheWVyOjpoYXNB
bmNlc3RvcldpdGhGaWx0ZXJPdXRzZXRzKCkgY29uc3QKIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZygpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChpc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPih0aGlzKTsKLSNlbmRpZgogCiAgICAgY29uc3QgUmVu
ZGVyTGF5ZXIqIGN1cnJlbnQgPSB0aGlzOwogICAgIHdoaWxlIChjdXJyZW50KSB7CkBAIC0xNTYw
LDExICsxNTA3LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQ
YWludGluZygpIGNvbnN0CiAKICAgICAgICAgY3VycmVudCA9IGNvbXBvc2l0aW5nQ29udGFpbmVy
KGN1cnJlbnQpOwogICAgICAgICBBU1NFUlQoY3VycmVudCk7Ci0gICAgICAgIGlmIChjdXJyZW50
LT50cmFuc2Zvcm0oKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAg
ICAgIHx8IGNvbXBvc2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGN1cnJlbnQpCi0jZW5kaWYKLSAg
ICAgICAgKQorICAgICAgICBpZiAoY3VycmVudC0+dHJhbnNmb3JtKCkgfHwgY29tcG9zaXRlZFdp
dGhPd25CYWNraW5nU3RvcmUoY3VycmVudCkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3RfY2Fz
dDxSZW5kZXJMYXllcio+KGN1cnJlbnQpOwogICAgIH0KIApAQCAtMTc5OCwxNyArMTc0MSwxMyBA
QCB2b2lkIFJlbmRlckxheWVyOjphZGRDaGlsZChSZW5kZXJMYXllciogY2hpbGQsIFJlbmRlckxh
eWVyKiBiZWZvcmVDaGlsZCkKICAgICBpZiAoY2hpbGQtPnJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgfHwgY2hpbGQtPmhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkp
CiAgICAgICAgIHNldEFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFu
dChjaGlsZC0+cmVuZGVyZXIoKS5jb250YWluaW5nQmxvY2soKSk7CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgY29tcG9zaXRvcigpLmxheWVyV2FzQWRkZWQoKnRoaXMs
ICpjaGlsZCk7Ci0jZW5kaWYKIH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpyZW1vdmVD
aGlsZChSZW5kZXJMYXllciogb2xkQ2hpbGQpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCiAg
ICAgICAgIGNvbXBvc2l0b3IoKS5sYXllcldpbGxCZVJlbW92ZWQoKnRoaXMsICpvbGRDaGlsZCk7
Ci0jZW5kaWYKIAogICAgIC8vIHJlbW92ZSB0aGUgY2hpbGQKICAgICBpZiAob2xkQ2hpbGQtPnBy
ZXZpb3VzU2libGluZygpKQpAQCAtMTg1Niw5ICsxNzk1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cmVtb3ZlT25seVRoaXNMYXllcigpCiAgICAgLy8gd2Fsa3MgaWdub3JlIHRoaXMgbGF5ZXIgd2hp
bGUgd2UncmUgcmVtb3ZpbmcgaXQuCiAgICAgcmVuZGVyZXIoKS5zZXRIYXNMYXllcihmYWxzZSk7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgY29tcG9zaXRvcigpLmxh
eWVyV2lsbEJlUmVtb3ZlZCgqbV9wYXJlbnQsICp0aGlzKTsKLSNlbmRpZgogCiAgICAgLy8gRGly
dHkgdGhlIGNsaXAgcmVjdHMuCiAgICAgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50
cygpOwpAQCAtMjEyNSw4ICsyMDYyLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dW5yZWdpc3RlckFz
VG91Y2hFdmVudExpc3RlbmVyRm9yU2Nyb2xsaW5nKCkKIH0KICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIGJvb2wgUmVuZGVyTGF5
ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNDb21w
b3NpdGVkKCkgJiYgYmFja2luZygpLT5zY3JvbGxpbmdMYXllcigpOwpAQCAtMjE3Nyw4ICsyMTEy
LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkK
ICAgICB9CiB9CiAKLSNlbmRpZgotCiBzdGF0aWMgaW5saW5lIGludCBhZGp1c3RlZFNjcm9sbERl
bHRhKGludCBiZWdpbm5pbmdEZWx0YSkgewogICAgIC8vIFRoaXMgaW1wbGVtZW50aW9uIG1hdGNo
ZXMgRmlyZWZveCdzLgogICAgIC8vIGh0dHA6Ly9teHIubW96aWxsYS5vcmcvZmlyZWZveC9zb3Vy
Y2UvdG9vbGtpdC9jb250ZW50L3dpZGdldHMvYnJvd3Nlci54bWwjODU2LgpAQCAtMjM1MiwxMSAr
MjI4NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKICAgICBm
cmFtZS5ldmVudEhhbmRsZXIoKS5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQo
cXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAKICAgICBib29sIHJlcXVpcmVzUmVwYWludCA9
IHRydWU7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGNvbXBv
c2l0b3IoKS5pbkNvbXBvc2l0aW5nTW9kZSgpICYmIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkp
CiAgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZhbHNlOwotI2VuZGlmCiAKICAgICAvLyBKdXN0
IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91ciBvYmplY3QuCiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtMjQ4Niw3ICsyNDE2LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlz
aWJsZShjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBTY3JvbGxBbGlnbm0KIAogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCgpCiB7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb21wb3NpdG9yKCkuaW5Db21w
b3NpdGluZ01vZGUoKSkgewogICAgICAgICAvLyBPdXIgc3RhY2tpbmcgY29udGFpbmVyIGlzIGd1
YXJhbnRlZWQgdG8gY29udGFpbiBhbGwgb2Ygb3VyIGRlc2NlbmRhbnRzIHRoYXQgbWF5IG5lZWQK
ICAgICAgICAgLy8gcmVwb3NpdGlvbmluZywgc28gdXBkYXRlIGNvbXBvc2l0aW5nIGxheWVycyBm
cm9tIHRoZXJlLgpAQCAtMjQ5Nyw3ICsyNDI2LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
Q29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCgpCiAgICAgICAgICAgICAgICAgY29tcG9zaXRv
cigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwsIGNv
bXBvc2l0aW5nQW5jZXN0b3IpOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmCiB9CiAKIExheW91
dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9zZShjb25zdCBMYXlvdXRSZWN0ICZ2aXNp
YmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCAmdmlzaWJsZVJlY3RSZWxhdGl2ZVRvRG9jdW1lbnQs
IGNvbnN0IExheW91dFJlY3QgJmV4cG9zZVJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxp
Z25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSkKQEAgLTI5MjYsNyArMjg1NCw2IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBjb25zdCBJbnRSZWN0JiByCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChzY3JvbGxiYXIgPT0gbV92QmFy
LmdldCgpKSB7CiAgICAgICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXIoKSkgewogICAgICAgICAgICAgbGF5ZXItPnNldE5lZWRzRGlzcGxheUlu
UmVjdChyZWN0KTsKQEAgLTI5MzgsNyArMjg2NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFs
aWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBy
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKKwogICAgIElu
dFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3go
KTsKICAgICBBU1NFUlQoYm94KTsKQEAgLTI5NjMsMTIgKzI4OTAsMTEgQEAgdm9pZCBSZW5kZXJM
YXllcjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAg
ICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkg
ewogICAgICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotI2VuZGlmCisKICAgICBpZiAobV9zY3JvbGxDb3JuZXIpCiAgICAgICAg
IG1fc2Nyb2xsQ29ybmVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3QpOwogICAgIGlmIChtX3Jlc2l6
ZXIpCkBAIC0zMTUyLDEwICszMDc4LDggQEAgdm9pZCBSZW5kZXJMYXllcjo6cG9zaXRpb25PdmVy
Zmxvd0NvbnRyb2xzKGNvbnN0IEludFNpemUmIG9mZnNldEZyb21Sb290KQogICAgIGlmIChtX3Jl
c2l6ZXIpCiAgICAgICAgIG1fcmVzaXplci0+c2V0RnJhbWVSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0
KHRoaXMsIGJvcmRlckJveCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAg
ICAKICAgICBpZiAoaXNDb21wb3NpdGVkKCkpCiAgICAgICAgIGJhY2tpbmcoKS0+cG9zaXRpb25P
dmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCk7Ci0jZW5kaWYKIH0KIAogaW50IFJlbmRlckxheWVyOjpz
Y3JvbGxXaWR0aCgpIGNvbnN0CkBAIC0zMzUwLDExICszMjc0LDkgQEAgdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCkKICAgICBpZiAob3JpZ2luYWxTY3JvbGxP
ZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXQoKSkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIC8vIENvbXBvc2l0ZWQgc2Nyb2xsaW5nIG1heSBuZWVkIHRvIGJl
IGVuYWJsZWQgb3IgZGlzYWJsZWQgaWYgdGhlIGFtb3VudCBvZiBvdmVyZmxvdyBjaGFuZ2VkLgog
ICAgIGlmIChjb21wb3NpdG9yKCkudXBkYXRlTGF5ZXJDb21wb3NpdGluZ1N0YXRlKCp0aGlzKSkK
ICAgICAgICAgY29tcG9zaXRvcigpLnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsK
LSNlbmRpZgogfQogCiBib29sIFJlbmRlckxheWVyOjpvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0
UmVjdChjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CkBAIC0zMzk2LDIwICszMzE4LDE2
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmZsb3dDb250cm9scyhHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50CiAgICAgLy8gc2Vjb25kIHBhc3MgZG9lc24ndCBu
ZWVkIHRvIHJlLWVudGVyIHRoZSBSZW5kZXJUcmVlIHRvIGdldCBpdCByaWdodC4KICAgICBpZiAo
aGFzT3ZlcmxheVNjcm9sbGJhcnMoKSAmJiAhcGFpbnRpbmdPdmVybGF5Q29udHJvbHMpIHsKICAg
ICAgICAgbV9jYWNoZWRPdmVybGF5U2Nyb2xsYmFyT2Zmc2V0ID0gcGFpbnRPZmZzZXQ7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAgICAgIC8vIEl0J3Mgbm90IG5lY2Vz
c2FyeSB0byBkbyB0aGUgc2Vjb25kIHBhc3MgaWYgdGhlIHNjcm9sbGJhcnMgcGFpbnQgaW50byBs
YXllcnMuCiAgICAgICAgIGlmICgobV9oQmFyICYmIGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cigpKSB8fCAobV92QmFyICYmIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkpCiAgICAgICAg
ICAgICByZXR1cm47Ci0jZW5kaWYKICAgICAgICAgSW50UmVjdCBsb2NhbERhbWdlUmVjdCA9IGRh
bWFnZVJlY3Q7CiAgICAgICAgIGxvY2FsRGFtZ2VSZWN0Lm1vdmVCeSgtcGFpbnRPZmZzZXQpOwog
ICAgICAgICBpZiAoIW92ZXJmbG93Q29udHJvbHNJbnRlcnNlY3RSZWN0KGxvY2FsRGFtZ2VSZWN0
KSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBSZW5kZXJMYXllciogcGFpbnRpbmdS
b290ID0gMDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgIHBhaW50
aW5nUm9vdCA9IGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoKTsKLSNlbmRpZgorICAgICAgICBS
ZW5kZXJMYXllciogcGFpbnRpbmdSb290ID0gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcigpOwog
ICAgICAgICBpZiAoIXBhaW50aW5nUm9vdCkKICAgICAgICAgICAgIHBhaW50aW5nUm9vdCA9IHJl
bmRlcmVyKCkudmlldygpLmxheWVyKCk7CiAKQEAgLTM0MzEsMjMgKzMzNDksMTMgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UG9pbnQKICAgICBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHModG9JbnRTaXpl
KGFkanVzdGVkUGFpbnRPZmZzZXQpKTsKIAogICAgIC8vIE5vdyB0aGF0IHdlJ3JlIHN1cmUgdGhl
IHNjcm9sbGJhcnMgYXJlIGluIHRoZSByaWdodCBwbGFjZSwgcGFpbnQgdGhlbS4KLSAgICBpZiAo
bV9oQmFyCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAmJiAhbGF5
ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkKLSNlbmRpZgotICAgICAgICAgICAgICApCisgICAg
aWYgKG1faEJhciAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCiAgICAgICAgIG1f
aEJhci0+cGFpbnQoY29udGV4dCwgZGFtYWdlUmVjdCk7Ci0gICAgaWYgKG1fdkJhcgotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgJiYgIWxheWVyRm9yVmVydGljYWxT
Y3JvbGxiYXIoKQotI2VuZGlmCi0gICAgICAgICAgICAgICkKKyAgICBpZiAobV92QmFyICYmICFs
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgIG1fdkJhci0+cGFpbnQoY29udGV4
dCwgZGFtYWdlUmVjdCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAg
ICAgLy8gV2UgZmlsbCBvdXIgc2Nyb2xsIGNvcm5lciB3aXRoIHdoaXRlIGlmIHdlIGhhdmUgYSBz
Y3JvbGxiYXIgdGhhdCBkb2Vzbid0IHJ1biBhbGwgdGhlIHdheSB1cCB0byB0aGUKICAgICAvLyBl
ZGdlIG9mIHRoZSBib3guCkBAIC0zNzAxLDE0ICszNjA5LDEwIEBAIHN0YXRpYyB2b2lkIHBlcmZv
cm1PdmVybGFwVGVzdHMoT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwJiBvdmVybGFwVGVzdFJlcXVlc3Rz
LCBjb25zCiAgICAgICAgIG92ZXJsYXBUZXN0UmVxdWVzdHMucmVtb3ZlKG92ZXJsYXBwZWRSZXF1
ZXN0Q2xpZW50c1tpXSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
IHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGREb1NvZnR3YXJlUGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXIqIGxheWVyLCBib29sIHBhaW50aW5nUmVmbGVjdGlvbikKIHsKICAgICByZXR1cm4gcGFpbnRp
bmdSZWZsZWN0aW9uICYmICFsYXllci0+aGFzM0RUcmFuc2Zvcm0oKTsKIH0KLQotI2VuZGlmCiAg
ICAgCiBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkU3VwcHJlc3NQYWludGluZ0xheWVyKFJlbmRl
ckxheWVyKiBsYXllcikKIHsKQEAgLTM3MjYsMTggKzM2MzAsMTMgQEAgc3RhdGljIGlubGluZSBi
b29sIHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBz
dGF0aWMgaW5saW5lIGJvb2wgcGFpbnRGb3JGaXhlZFJvb3RCYWNrZ3JvdW5kKGNvbnN0IFJlbmRl
ckxheWVyKiBsYXllciwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQog
ewogICAgIHJldHVybiBsYXllci0+cmVuZGVyZXIoKS5pc1Jvb3QoKSAmJiAocGFpbnRGbGFncyAm
IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkpOwogfQog
Ci0jZW5kaWYKLQogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBwYWludGluZ0luZm8sIFBhaW50TGF5
ZXJGbGFncyBwYWludEZsYWdzKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoaXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgLy8gVGhlIHVwZGF0aW5nQ29udHJv
bFRpbnRzKCkgcGFpbnRpbmcgcGFzcyBnb2VzIHRocm91Z2ggY29tcG9zaXRpbmcgbGF5ZXJzLAog
ICAgICAgICAvLyBidXQgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjYWNoZSBjbGlw
IHJlY3RzIGNvbXB1dGVkIHdpdGggdGhlIHdyb25nIHJvb3QgaW4gdGhpcyBjYXNlLgpAQCAtMzc1
Niw3ICszNjU1LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJgogICAgICAgICBBU1NFUlQocmVu
ZGVyZXIoKS5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIE5vbiBzZWxmLXBhaW50aW5nIGxlYWYgbGF5
ZXJzIGRvbid0IG5lZWQgdG8gYmUgcGFpbnRlZCBhcyB0aGVpciByZW5kZXJlcigpIHNob3VsZCBw
cm9wZXJseSBwYWludCBpdHNlbGYuCiAgICAgaWYgKCFpc1NlbGZQYWludGluZ0xheWVyKCkgJiYg
IWhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpKQpAQCAtNTkwOSw4ICs1ODA3LDYgQEAg
dm9pZCBSZW5kZXJMYXllcjo6Y2xlYXJDbGlwUmVjdHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVh
cikKICAgICB9CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIFJlbmRl
ckxheWVyQmFja2luZyogUmVuZGVyTGF5ZXI6OmVuc3VyZUJhY2tpbmcoKQogewogICAgIGlmICgh
bV9iYWNraW5nKSB7CkBAIC01OTY2LDE1ICs1ODYyLDkgQEAgR3JhcGhpY3NMYXllciogUmVuZGVy
TGF5ZXI6OmxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9iYWNraW5n
ID8gbV9iYWNraW5nLT5sYXllckZvclNjcm9sbENvcm5lcigpIDogMDsKIH0KIAotI2VuZGlmCi0K
IGJvb2wgUmVuZGVyTGF5ZXI6OnBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvciBwYWlu
dEJlaGF2aW9yKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBib29sIHBhaW50c1RvV2luZG93ID0gIWlzQ29tcG9zaXRlZCgpIHx8IGJhY2tpbmcoKS0+cGFp
bnRzSW50b1dpbmRvdygpOwotI2Vsc2UKLSAgICBib29sIHBhaW50c1RvV2luZG93ID0gdHJ1ZTsK
LSNlbmRpZiAgICAKICAgICByZXR1cm4gdHJhbnNmb3JtKCkgJiYgKChwYWludEJlaGF2aW9yICYg
UGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycykgfHwgcGFpbnRzVG9XaW5kb3cp
OwogfQogCkBAIC02MDUwLDE3ICs1OTQwLDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNldFBhcmVu
dChSZW5kZXJMYXllciogcGFyZW50KQogICAgIGlmIChwYXJlbnQgPT0gbV9wYXJlbnQpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAo
bV9wYXJlbnQgJiYgIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAg
ICBjb21wb3NpdG9yKCkubGF5ZXJXaWxsQmVSZW1vdmVkKCptX3BhcmVudCwgKnRoaXMpOwotI2Vu
ZGlmCiAgICAgCiAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7Ci0gICAgCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorCiAgICAgaWYgKG1fcGFyZW50ICYmICFyZW5kZXJlcigpLmRvY3Vt
ZW50QmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgY29tcG9zaXRvcigpLmxheWVyV2FzQWRkZWQo
Km1fcGFyZW50LCAqdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6ZGlydHla
T3JkZXJMaXN0cygpCkBAIC02MDc0LDcgKzU5NjAsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0
eVpPcmRlckxpc3RzKCkKICAgICAgICAgbV9uZWdaT3JkZXJMaXN0LT5jbGVhcigpOwogICAgIG1f
ek9yZGVyTGlzdHNEaXJ0eSA9IHRydWU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgaWYgKCFyZW5kZXJlcigpLmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAg
ICAgICBpZiAoaXNGbG93VGhyZWFkQ29sbGVjdGluZ0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25z
KCkpCiAgICAgICAgICAgICB0b1JlbmRlckZsb3dUaHJlYWQocmVuZGVyZXIoKSkuc2V0TmVlZHNM
YXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKTsKQEAgLTYwODIsNyArNTk2Nyw2IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQogICAgICAgICBpZiAoYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpKQogICAgICAgICAgICAgY29tcG9z
aXRvcigpLnNldFNob3VsZFJlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0KCk7CiAgICAg
fQotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5U3RhY2tpbmdDb250YWluZXJa
T3JkZXJMaXN0cygpCkBAIC02MTAwLDcgKzU5ODQsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0
eU5vcm1hbEZsb3dMaXN0KCkKICAgICAgICAgbV9ub3JtYWxGbG93TGlzdC0+Y2xlYXIoKTsKICAg
ICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkp
IHsKICAgICAgICAgaWYgKGlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVy
UmVnaW9ucygpKQogICAgICAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKHJlbmRlcmVyKCkpLnNl
dE5lZWRzTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzVXBkYXRlKCk7CkBAIC02MTA4LDcgKzU5OTEsNiBA
QCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICAgICAgaWYgKGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKICAgICAgICAg
ICAgIGNvbXBvc2l0b3IoKS5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91
dCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVy
TGlzdHMoKQpAQCAtNjEyMSwxMSArNjAwMyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRa
T3JkZXJMaXN0cygpCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cyhDb2xs
ZWN0TGF5ZXJzQmVoYXZpb3IgYmVoYXZpb3IsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPj4m
IHBvc1pPcmRlckxpc3QsIE93blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPj4mIG5lZ1pPcmRlckxp
c3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVk
ZUhpZGRlbkxheWVycyA9IGNvbXBvc2l0b3IoKS5pbkNvbXBvc2l0aW5nTW9kZSgpOwotI2Vsc2UK
LSAgICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMgPSBmYWxzZTsKLSNlbmRpZgogICAgIGZvciAo
UmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKSkKICAgICAgICAgaWYgKCFtX3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxh
eWVyKCkgIT0gY2hpbGQpCiAgICAgICAgICAgICBjaGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRl
SGlkZGVuTGF5ZXJzLCBiZWhhdmlvciwgcG9zWk9yZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CkBA
IC02MjUxLDEzICs2MTI5LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRz
TGF5ZXJMaXN0c0lmTmVlZGVkKGJvb2wgcmVjdXJzaXZlKQogCiB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJZk5lZWRlZCgpCiB7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01v
ZGUoKSkgewogICAgICAgICBpZiAoaXNEaXJ0eVN0YWNraW5nQ29udGFpbmVyKCkgfHwgbV9ub3Jt
YWxGbG93TGlzdERpcnR5KQogICAgICAgICAgICAgY29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0
aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25IaXRUZXN0LCB0aGlzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSNlbmRpZgorCiAgICAgdXBkYXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiB9
CiAKQEAgLTYyNzYsOCArNjE1Myw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRp
bmdEZXNjZW5kYW50cygpCiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiB2b2lkIFJlbmRlckxheWVyOjpzZXRCYWNraW5nTmVlZHNSZXBhaW50KEdyYXBoaWNz
TGF5ZXI6OlNob3VsZENsaXBUb0xheWVyIHNob3VsZENsaXApCiB7CiAgICAgQVNTRVJUKGlzQ29t
cG9zaXRlZCgpKTsKQEAgLTYzMTgsOCArNjE5Myw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFp
bnRJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmpl
CiAgICAgfQogfQogCi0jZW5kaWYKLQogYm9vbCBSZW5kZXJMYXllcjo6c2hvdWxkQmVOb3JtYWxG
bG93T25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIChyZW5kZXJlcigpLmhhc092ZXJmbG93Q2xp
cCgpCkBAIC02NTA5LDkgKzYzODIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRBbmNlc3RvckNo
YWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnQoUmVuZGVyQmxvY2sqCiAKICAgICAg
ICAgbGF5ZXItPm1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA9IGZhbHNl
OwogICAgICAgICBsYXllci0+bV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9IHRy
dWU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBsYXllci0+dXBk
YXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7Ci0jZW5kaWYKIAogICAgICAgICBpZiAoJmxh
eWVyLT5yZW5kZXJlcigpID09IGNvbnRhaW5pbmdCbG9jaykKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNjUzMCwxNSArNjQwMSwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVPdXRPZkZsb3dQ
b3NpdGlvbmVkKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKICAgICBib29sIHdhc091dE9m
Rmxvd1Bvc2l0aW9uZWQgPSBvbGRTdHlsZSAmJiAob2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gQWJz
b2x1dGVQb3NpdGlvbiB8fCBvbGRTdHlsZS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsK
ICAgICBpZiAocGFyZW50KCkgJiYgKHJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkg
IT0gd2FzT3V0T2ZGbG93UG9zaXRpb25lZCkpIHsKICAgICAgICAgcGFyZW50KCktPmRpcnR5QW5j
ZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50U3RhdHVzKCk7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAoIXJlbmRlcmVyKCkuZG9j
dW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS5zZXRTaG91bGRSZWV2
YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOwotI2VuZGlmCiAgICAgfQogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBpbmxpbmUgYm9vbCBSZW5kZXJMYXllcjo6
bmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRGb3JDbGlwKGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKSBjb25zdAogewogICAgIEFTU0VS
VChuZXdTdHlsZSk7CkBAIC02NTUxLDggKzY0MTgsNiBAQCBpbmxpbmUgYm9vbCBSZW5kZXJMYXll
cjo6bmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRGb3JPdmVyZmxvdyhjb25zdCBSZW5kZXJT
dAogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkgJiYgb2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5v
dmVyZmxvd1goKSAhPSBuZXdTdHlsZS0+b3ZlcmZsb3dYKCkpICYmIHN0YWNraW5nQ29udGFpbmVy
KCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpOwogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICBi
b29sIGlzTm9ybWFsRmxvd09ubHkgPSBzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCk7CkBAIC02NjA5
LDcgKzY0NzQsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIHVwZGF0ZU9yUmVtb3Zl
RmlsdGVyQ2xpZW50cygpOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7CiAKICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgbmV3U3R5bGUgPSByZW5kZXJlcigpLnN0eWxlKCk7CkBAIC02NjMxLDcgKzY0
OTUsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICAgICAgICAgIGNvbXBvc2l0
b3IoKS5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgICAgIH0KICAgICB9
Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0ZUxheWVyIHx8IGRpZmYgPj0g
U3R5bGVEaWZmZXJlbmNlTGF5b3V0UG9zaXRpb25lZE1vdmVtZW50T25seSkKQEAgLTY2NDIsNyAr
NjUwNSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgdXBkYXRlT3JSZW1vdmVGaWx0ZXJFZmZlY3RSZW5kZXJlcigpOwotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGJhY2tpbmdEaWRDb21wb3NpdGVMYXll
cnMgPSBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNraW5nKCktPmNhbkNvbXBvc2l0ZUZpbHRlcnMoKTsK
ICAgICBpZiAoaXNDb21wb3NpdGVkKCkgJiYgYmFja2luZ0RpZENvbXBvc2l0ZUxheWVycyAmJiAh
YmFja2luZygpLT5jYW5Db21wb3NpdGVGaWx0ZXJzKCkpIHsKICAgICAgICAgLy8gVGhlIGZpbHRl
cnMgdXNlZCB0byBiZSBkcmF3biBieSBwbGF0Zm9ybSBjb2RlLCBidXQgbm93IHRoZSBwbGF0Zm9y
bSBjYW5ub3QgZHJhdyB0aGVtIGFueW1vcmUuCkBAIC02NjUwLDcgKzY1MTIsNiBAQCB2b2lkIFJl
bmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZQogICAgICAgICBzZXRCYWNraW5nTmVlZHNSZXBhaW50KCk7CiAgICAg
fQogI2VuZGlmCi0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYWJs
ZUFyZWFTZXQoYm9vbCBoYXNPdmVyZmxvdykKQEAgLTY2NjgsMTEgKzY1MjksOCBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVTY3JvbGxhYmxlQXJlYVNldChib29sIGhhc092ZXJmbG93KQogICAg
IGVsc2UKICAgICAgICAgYWRkZWRPclJlbW92ZWQgPSBmcmFtZVZpZXcucmVtb3ZlU2Nyb2xsYWJs
ZUFyZWEodGhpcyk7CiAgICAgCi0gICAgaWYgKGFkZGVkT3JSZW1vdmVkKSB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmIChhZGRlZE9yUmVtb3ZlZCkKICAgICAgICAg
dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7Ci0jZW5kaWYKLSAgICB9CiAKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgaWYgKGFkZGVkT3JSZW1vdmVkKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCmluZGV4IDIzOTIxNDM1ODI4MzljMmRlNDM2MzhiNTc1MzY4MjIy
NWU4Nzc5OGIuLjU0OGYwOWU4ZDIyOWZkODk3YzE2ODliMmRlZDFiOTYxMTUzMzgzZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0zNDQsNyArMzQ0LDYgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJbmRpY2F0ZSB0aGF0IHRoZSBsYXll
ciBjb250ZW50cyBuZWVkIHRvIGJlIHJlcGFpbnRlZC4gT25seSBoYXMgYW4gZWZmZWN0CiAgICAg
Ly8gaWYgbGF5ZXIgY29tcG9zaXRpbmcgaXMgYmVpbmcgdXNlZC4KICAgICB2b2lkIHNldEJhY2tp
bmdOZWVkc1JlcGFpbnQoR3JhcGhpY3NMYXllcjo6U2hvdWxkQ2xpcFRvTGF5ZXIgPSBHcmFwaGlj
c0xheWVyOjpDbGlwVG9MYXllcik7CkBAIC0zNTIsNyArMzUxLDYgQEAgcHVibGljOgogICAgIC8v
IFRoZSByZWN0IGlzIGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBsYXllcidzIHJlbmRl
ciBvYmplY3QuCiAgICAgdm9pZCBzZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNvbnN0IExh
eW91dFJlY3QmLCBHcmFwaGljc0xheWVyOjpTaG91bGRDbGlwVG9MYXllciA9IEdyYXBoaWNzTGF5
ZXI6OkNsaXBUb0xheWVyKTsKICAgICB2b2lkIHJlcGFpbnRJbmNsdWRpbmdOb25Db21wb3NpdGlu
Z0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwot
I2VuZGlmCiAKICAgICB2b2lkIHN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKQEAgLTQ3MywxMyArNDcxLDExIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNSb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2lzUm9vdExheWVyOyB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yJiBjb21wb3NpdG9yKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gTm90aWZpY2F0aW9uIGZyb20g
dGhlIHJlbmRlcmVyIHRoYXQgaXRzIGNvbnRlbnQgY2hhbmdlZCAoZS5nLiBjdXJyZW50IGZyYW1l
IG9mIGltYWdlIGNoYW5nZWQpLgogICAgIC8vIEFsbG93cyB1cGRhdGVzIG9mIGxheWVyIGNvbnRl
bnQgd2l0aG91dCByZXBhaW50aW5nLgogICAgIHZvaWQgY29udGVudENoYW5nZWQoQ29udGVudENo
YW5nZVR5cGUpOwotI2VuZGlmCiAKICAgICBib29sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpIGNv
bnN0OwogCkBAIC00OTgsOSArNDk0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKCk7CiAgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0
aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2b2lkIHBvc2l0aW9uTmV3bHlDcmVhdGVkT3ZlcmZsb3dDb250cm9scygpOwot
I2VuZGlmCiAgICAgCiAgICAgYm9vbCBpc1BhZ2luYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQ
YWdpbmF0ZWQ7IH0KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXI7IH0KQEAgLTYwNCwxMyAr
NTk4LDExIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdPdmVyZmxvd0Ns
aXBMYXllcihJbmNsdWRlU2VsZk9yTm90KSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAvLyBFbmNsb3NpbmcgY29tcG9zaXRpbmcgbGF5ZXI7IGlmIGluY2x1
ZGVTZWxmIGlzIHRydWUsIG1heSByZXR1cm4gdGhpcy4KICAgICBSZW5kZXJMYXllciogZW5jbG9z
aW5nQ29tcG9zaXRpbmdMYXllcihJbmNsdWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0
OwogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJ
bmNsdWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0OwogICAgIC8vIEFuY2VzdG9yIGNv
bXBvc2l0aW5nIGxheWVyLCBleGNsdWRpbmcgdGhpcy4KICAgICBSZW5kZXJMYXllciogYW5jZXN0
b3JDb21wb3NpdGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdM
YXllcihFeGNsdWRlU2VsZik7IH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90ID0g
SW5jbHVkZVNlbGYpIGNvbnN0OwpAQCAtNzkyLDcgKzc4NCw2IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2luZyAhPSAwOyB9CiAgICAgYm9vbCBoYXNDb21wb3NpdGluZ0Rlc2Nl
bmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudDsgfQogICAg
IGJvb2wgaGFzQ29tcG9zaXRlZE1hc2soKSBjb25zdDsKQEAgLTgwNywxMiArNzk4LDYgQEAgcHVi
bGljOgogICAgIGJvb2wgbmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Q7CiAgICAgYm9v
bCBuZWVkc0NvbXBvc2l0aW5nTGF5ZXJzUmVidWlsdEZvckNsaXAoY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpIGNvbnN0OwogICAgIGJvb2wg
bmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRGb3JPdmVyZmxvdyhjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkgY29uc3Q7Ci0jZWxzZQot
ICAgIGJvb2wgaXNDb21wb3NpdGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29s
IGhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29s
IG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5k
aWYKIAogICAgIGJvb2wgcGFpbnRzV2l0aFRyYW5zcGFyZW5jeShQYWludEJlaGF2aW9yIHBhaW50
QmVoYXZpb3IpIGNvbnN0CiAgICAgewpAQCAtODQxLDcgKzgyNiw2IEBAIHB1YmxpYzoKIAogICAg
IEVsZW1lbnQqIGVuY2xvc2luZ0VsZW1lbnQoKSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBlbnVtIFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVk
UmVhc29uIHsKICAgICAgICAgTm9Ob3RDb21wb3NpdGVkUmVhc29uLAogICAgICAgICBOb3RDb21w
b3NpdGVkRm9yQm91bmRzT3V0T2ZWaWV3LApAQCAtODUxLDcgKzgzNSw2IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oVmlld3Bv
cnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gcmVhc29uKSB7IG1fdmlld3BvcnRDb25z
dHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gPSByZWFzb247IH0KICAgICBWaWV3cG9ydENvbnN0
cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiB2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRl
ZFJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpZXdwb3J0Q29uc3RyYWluZWRO
b3RDb21wb3NpdGVkUmVhc29uPihtX3ZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVh
c29uKTsgfQotI2VuZGlmCiAgICAgCiAgICAgYm9vbCBpc1JlbmRlckZsb3dUaHJlYWQoKSBjb25z
dCB7IHJldHVybiByZW5kZXJlcigpLmlzUmVuZGVyRmxvd1RocmVhZCgpOyB9CiAgICAgYm9vbCBp
c091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLmlz
T3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpOyB9CkBAIC0xMDkyLDkgKzEwNzUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFpbkhhc1Zpc2libGVEZXNjZW5kYW50KCk7CiAK
ICAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJl
bmRlck9iamVjdCo+KiBvdXRPZkZsb3dEZXNjZW5kYW50Q29udGFpbmluZ0Jsb2NrcyA9IDApOwot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGNoZWNrSWZEZXNjZW5k
YW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRhdGUoYm9vbCBpc0NsaXBwaW5nKTsKLSNlbmRpZgog
CiAgICAgLy8gVGhpcyBmbGFnIGlzIGNvbXB1dGVkIGJ5IFJlbmRlckxheWVyQ29tcG9zaXRvciwg
d2hpY2gga25vd3MgbW9yZSBhYm91dCAzZCBoaWVyYXJjaGllcyB0aGFuIHdlIGRvLgogICAgIHZv
aWQgc2V0SGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnQoYm9vbCBiKSB7IG1faGFzM0RUcmFuc2Zv
cm1lZERlc2NlbmRhbnQgPSBiOyB9CkBAIC0xMTM2LDggKzExMTcsNyBAQCBwcml2YXRlOgogICAg
IAogICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkuIFJlbW92ZSB3aGVuIG5ldyBjb2x1bW5zIGNvbWUg
b25saW5lLgogICAgIGJvb2wgdXNlUmVnaW9uQmFzZWRDb2x1bW5zKCkgY29uc3Q7Ci0gICAgCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAgICAKKwogICAgIHZvaWQgc2V0SGFzQ29t
cG9zaXRpbmdEZXNjZW5kYW50KGJvb2wgYikgIHsgbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQg
PSBiOyB9CiAgICAgCiAgICAgZW51bSBJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHsKQEAgLTEx
NTMsNyArMTEzMyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRJbmRpcmVjdENvbXBvc2l0aW5n
UmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gcmVhc29uKSB7IG1faW5kaXJlY3RDb21w
b3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAgIEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24g
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PElu
ZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbik7IH0K
ICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRpcmVjdFJlYXNvbnMoKSBjb25zdCB7IHJldHVy
biBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247IH0KLSNlbmRpZgogCiAgICAgLy8gUmV0dXJu
cyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90IGNoYW5nZSBpZiB0aGlzIGxheWVyIHdlcmUg
YSBzdGFja2luZyBjb250YWluZXIuCiAgICAgYm9vbCBjYW5CZVN0YWNraW5nQ29udGFpbmVyKCkg
Y29uc3Q7CkBAIC0xMjMxLDExICsxMjEwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fM0RUcmFu
c2Zvcm1lZERlc2NlbmRhbnRTdGF0dXNEaXJ0eSA6IDE7CiAgICAgYm9vbCBtX2hhczNEVHJhbnNm
b3JtZWREZXNjZW5kYW50IDogMTsgIC8vIFNldCBvbiBhIHN0YWNraW5nIGNvbnRleHQgbGF5ZXIg
dGhhdCBoYXMgM0QgZGVzY2VuZGFudHMgYW55d2hlcmUKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gaW4gYSBwcmVzZXJ2ZXMzRCBoaWVyYXJjaHkuIEhpbnQg
dG8gZG8gM0QtYXdhcmUgaGl0IHRlc3RpbmcuCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGJvb2wgbV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQgOiAxOyAvLyBJbiB0aGUg
ei1vcmRlciB0cmVlLgogICAgIHVuc2lnbmVkIG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA6
IDM7CiAgICAgdW5zaWduZWQgbV92aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNv
biA6IDI7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBib29sIG1fYWRqdXN0Rm9y
SU9TQ2FyZXRXaGVuU2Nyb2xsaW5nIDogMTsKQEAgLTEzMjQsOSArMTMwMSw3IEBAIHByaXZhdGU6
CiAKICAgICBJbnRSZWN0IG1fYmxvY2tTZWxlY3Rpb25HYXBzQm91bmRzOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxSZW5kZXJMYXllckJhY2tpbmc+IG1f
YmFja2luZzsKLSNlbmRpZgogCiAgICAgY2xhc3MgRmlsdGVySW5mbzsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDlkN2JkZGVh
NjE5YjM4ZGNjNGUyYzNkMGVjOTQzMzJjNjQ5NmM3MWYuLmIzZTY0YzM4MDBhMGE1NzU0OTNjOWY1
ZGIyZmQ2OTA0YzJiNWRlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlJlbmRl
ckxheWVyQmFja2luZy5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAt
MjYyMSw1ICsyNjE5LDMgQEAgZG91YmxlIFJlbmRlckxheWVyQmFja2luZzo6YmFja2luZ1N0b3Jl
TWVtb3J5RXN0aW1hdGUoKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggY2UwZjQyMGYwODYyNTE4NTU2ODk0
NjcyZjdiMmIzMWYwZjQ4ODY3OC4uMDU4ZmM4NDk5NzRhMGIxZmM0ODc0MzI1Y2UwNDg1OTRhM2I1
YjhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBSZW5kZXJMYXllckJhY2tpbmdfaAogI2RlZmlu
ZSBSZW5kZXJMYXllckJhY2tpbmdfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAgLTMzNCw2ICszMzIsNCBAQCBDYW52YXNDb21w
b3NpdGluZ1N0cmF0ZWd5IGNhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3koY29uc3QgUmVuZGVyT2Jq
ZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFJlbmRlckxheWVyQmFja2luZ19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDg0YTI3MWQ4Y2ViZjU2NjQ4ZGQ4M2UwYzMzNWFkNmViYTI2ZGI2YTUuLjViZGQzMDM4Y2Ni
NTg5MmFlMzQwMzcyN2JjNTI3OWVjNDFmMzI2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlv
bkNvbnRyb2xsZXIuaCIKQEAgLTM3MTIsNSArMzcxMSwzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWludFJlbGF0ZWRNaWxlc3RvbmVzVGltZXJGaXJlZChUaW1lcjxSZW5kZXJMYXll
ckNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaAppbmRleCA3ZGU0YmYzZDBjYzAxNDMzYzMzYTY5NzczZTg3Y2YwNjJh
YzhmNzA4Li4xNTM5MjM1MjhjYjRmN2YzOGM5OWFlYjUyZGI0YTcxYzg1MDRhNjkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0y
Niw4ICsyNiw2IEBACiAjaWZuZGVmIFJlbmRlckxheWVyQ29tcG9zaXRvcl9oCiAjZGVmaW5lIFJl
bmRlckxheWVyQ29tcG9zaXRvcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllclVwZGF0ZXIuaCIKQEAgLTUyMiw2ICs1MjAs
NCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBSZW5kZXJMYXllckNvbXBvc2l0
b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhy
ZWFkLmNwcAppbmRleCAxZmI1YmEzMThhMWU2N2UyMTAxZjg3YmQ0YWJlMTIwZDk3ZGYyMzU5Li5l
NGU3ODZiNDgwMjU1ZjM1YjBjZTQxMDg3MjEzOWY5YTNiZjg4OWM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcApAQCAtNzE4LDcg
KzcxOCw2IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpnZXRSYW5nZXMoVmVjdG9yPFJl
ZlB0cjxSYW5nZT4+JiByYW5nZU9iamVjdHMsIGNvbnN0CiAgICAgfQogfQogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbGxl
Y3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAogewogICAgIC8vIFdlIG9ubHkg
bmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMgZm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KQEAg
LTcyNyw3ICs3MjYsNiBAQCBib29sIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y29sbGVjdHNHcmFw
aGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNl
bmRpZgogCiAvLyBDaGVjayBpZiB0aGUgY29udGVudCBpcyBmbG93biBpbnRvIGF0IGxlYXN0IGEg
cmVnaW9uIHdpdGggcmVnaW9uIHN0eWxpbmcgcnVsZXMuCiB2b2lkIFJlbmRlck5hbWVkRmxvd1Ro
cmVhZDo6Y2hlY2tSZWdpb25zV2l0aFN0eWxpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4IGE4MmVmYTNlMDE3ZWMxNTAxZDg0
MGYyNTg3MTBjODUxNTEzNjk3ZmIuLjg0MTEwZGM3ODMyYzZmNTEzYmVlNTM0OTI2NjcyY2U1NTdk
MmZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZs
b3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
VGhyZWFkLmgKQEAgLTgwLDkgKzgwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNNYXJrZWRGb3JE
ZXN0cnVjdGlvbigpIGNvbnN0OwogICAgIHZvaWQgZ2V0UmFuZ2VzKFZlY3RvcjxSZWZQdHI8UmFu
Z2U+PiYsIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5k
ZXJSZWdpb25zKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIC8vIENoZWNrIGlmIHRo
ZSBjb250ZW50IGlzIGZsb3duIGludG8gYXQgbGVhc3QgYSByZWdpb24gd2l0aCByZWdpb24gc3R5
bGluZyBydWxlcy4KICAgICBib29sIGhhc1JlZ2lvbnNXaXRoU3R5bGluZygpIGNvbnN0IHsgcmV0
dXJuIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCmluZGV4IGMzMGI1MjViYjRmM2FiYTcwNDc1YWM0NTNjMDEzM2IwNmUw
MDcyYTUuLjI4Yzk4ODAyMzdiYTY2NWYzYmViODYzNTE5Y2I1YTZkYWQ3Mjk4ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0xMTk0LDcgKzExOTQsNiBA
QCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFp
bnQoKSBjb25zdAogewogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIgPSAwOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICh2aWV3
KCkudXNlc0NvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBwYXJlbnRM
YXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjb21w
TGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQo
KTsKQEAgLTEyMDIsNyArMTIwMSw2IEBAIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9i
amVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmVwYWlu
dENvbnRhaW5lciA9ICZjb21wTGF5ZXItPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KICAgICB9Ci0j
ZW5kaWYKICAgICAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHZpZXcoKS5oYXNT
b2Z0d2FyZUZpbHRlcnMoKSkgewpAQCAtMTI1NSw3ICsxMjUzLDYgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q28KICAgICB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBSZW5kZXJWaWV3JiB2ID0gdmlldygpOwogICAgIGlmIChyZXBhaW50Q29udGFpbmVy
LT5pc1JlbmRlclZpZXcoKSkgewogICAgICAgICBBU1NFUlQocmVwYWludENvbnRhaW5lciA9PSAm
dik7CkBAIC0xMjcwLDEwICsxMjY3LDYgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2lu
Z0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICAg
ICAgQVNTRVJUKHJlcGFpbnRDb250YWluZXItPmhhc0xheWVyKCkgJiYgcmVwYWludENvbnRhaW5l
ci0+bGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpOwogICAgICAgICByZXBhaW50Q29udGFpbmVyLT5s
YXllcigpLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KHIsIHNob3VsZENsaXBUb0xheWVy
ID8gR3JhcGhpY3NMYXllcjo6Q2xpcFRvTGF5ZXIgOiBHcmFwaGljc0xheWVyOjpEb05vdENsaXBU
b0xheWVyKTsKICAgICB9Ci0jZWxzZQotICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRl
clZpZXcoKSkKLSAgICAgICAgdG9SZW5kZXJWaWV3KCpyZXBhaW50Q29udGFpbmVyKS5yZXBhaW50
Vmlld1JlY3RhbmdsZShyLCBpbW1lZGlhdGUpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyT2Jq
ZWN0OjpyZXBhaW50KGJvb2wgaW1tZWRpYXRlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGQ4NjZiYzY0ZDBiYTYzNjgwMDc3OWE3
MWI0YzI4NGRhNjA4NTQ0NDAuLjhlY2NmNDUzZDM1OTllZmQ3MTgwMGVmZmE3ZTU0YWFhZTUyNTkw
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJS
ZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGluZUJyZWFrLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0TWFya2VyLmgiCkBAIC03
MCwxMCArNzEsNiBAQAogI2luY2x1ZGUgIlNWR1JlbmRlclRyZWVBc1RleHQuaCIKICNlbmRpZgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVy
QmFja2luZy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKQEAgLTYzOSwxNSArNjM2LDExIEBAIHN0YXRpYyB2b2lkIHdyaXRlKFRl
eHRTdHJlYW0mIHRzLCBSZW5kZXJMYXllciYgbCwKICAgICAgICAgdHMgPDwgIiBsYXllclR5cGU6
IGJhY2tncm91bmQgb25seSI7CiAgICAgZWxzZSBpZiAocGFpbnRQaGFzZSA9PSBMYXllclBhaW50
UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICB0cyA8PCAiIGxheWVyVHlwZTogZm9yZWdyb3VuZCBv
bmx5IjsKLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBpZiAo
YmVoYXZpb3IgJiBSZW5kZXJBc1RleHRTaG93Q29tcG9zaXRlZExheWVycykgewogICAgICAgICBp
ZiAobC5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgICAgIHRzIDw8ICIgKGNvbXBvc2l0ZWQsIGJv
dW5kcz0iIDw8IGwuYmFja2luZygpLT5jb21wb3NpdGVkQm91bmRzKCkgPDwgIiwgZHJhd3NDb250
ZW50PSIgPDwgbC5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKS0+ZHJhd3NDb250ZW50KCkgPDwg
IiwgcGFpbnRzIGludG8gYW5jZXN0b3I9IiA8PCBsLmJhY2tpbmcoKS0+cGFpbnRzSW50b0NvbXBv
c2l0ZWRBbmNlc3RvcigpIDw8ICIpIjsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShi
ZWhhdmlvcik7Ci0jZW5kaWYKICAgICAKICAgICB0cyA8PCAiXG4iOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAppbmRleCBmNjM5ODJjMGJjMDQ2ZDE3MDFhNDE2N2Zi
Mjg3NzIyNTA5ZjIwNDM2Li5jZDI4YTZjY2NmMDdlMzZiZTRjZDkzNGY2YzIyYzVhMGVlM2U5NGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTIzMCw5ICsy
MzAsNyBAQCB2b2lkIFJlbmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGNvbnRlbnRD
aGFuZ2VkKFZpZGVvQ2hhbmdlZCk7Ci0jZW5kaWYKICAgICAKICAgICBJbnRSZWN0IHZpZGVvQm91
bmRzID0gdmlkZW9Cb3goKTsgCiAgICAgbWVkaWFQbGF5ZXItPnNldEZyYW1lVmlldygmdmlldygp
LmZyYW1lVmlldygpKTsKQEAgLTI1Niw3ICsyNTQsNiBAQCBMYXlvdXRVbml0IFJlbmRlclZpZGVv
OjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdAogICAgIHJldHVybiBSZW5kZXJSZXBsYWNl
ZDo6bWluaW11bVJlcGxhY2VkSGVpZ2h0KCk7IAogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogYm9vbCBSZW5kZXJWaWRlbzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpIGNvbnN0CiB7CiAgICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQo
KS5wbGF5ZXIoKSkKQEAgLTI2OSw3ICsyNjYsNiBAQCB2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIg
PSB2aWRlb0VsZW1lbnQoKS5wbGF5ZXIoKSkKICAgICAgICAgcGxheWVyLT5hY2NlbGVyYXRlZFJl
bmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwogfQotI2VuZGlmICAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAKIGJvb2wgUmVuZGVyVmlkZW86OnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRp
bmcoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAppbmRleCAx
NjQzMDU0MjQ3ZWFiYmIyMmIyZjUzMzk5ODI4ZjUxN2JjNGNjNTgzLi40MTYwYTY1Y2Q2ZjAwYmRj
ODk0YmMyN2M3YzNiNzRiNGUxYWVjYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uaApAQCAtNDUsMTAgKzQ1LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIEludFNpemUg
ZGVmYXVsdFNpemUoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBi
b29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdDsKICAgICB2b2lkIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7Ci0jZW5kaWYKIAogICAgIGJvb2wgcmVxdWly
ZXNJbW1lZGlhdGVDb21wb3NpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKaW5kZXggYmE5MGMyNGQ5ZTVhZDUyYjNiOGMyZDQ1ZmEwZWM1NjA2NDBm
MmQxNC4uMTU1ODAxN2FlN2NmMjc3YmI5YTQwNzczMDVhZWExMTRkMmJlYjEyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJT
ZWxlY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCkBAIC00NywxMCArNDgs
NiBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrU3Rh
dHMuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5k
ZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
bmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSkKQEAgLTUzMywxNCArNTMwLDEyIEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnRC
b3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0xheWVyID0gbGF5
ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCkpIHsKICAgICAgICAgICAg
IGlmICghY29tcG9zaXRpbmdMYXllci0+YmFja2luZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsK
ICAgICAgICAgICAgICAgICBmcmFtZVZpZXcoKS5zZXRDYW5ub3RCbGl0VG9XaW5kb3coKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotI2VuZGlmCiAg
ICAgfQogCiAgICAgaWYgKGRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpCkBAIC01NjAsOSArNTU1
LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgfQogCiAgICAgYm9vbCBoYXNUaWxlZE1h
cmdpbiA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBoYXNU
aWxlZE1hcmdpbiA9IGNvbXBvc2l0b3IoKS5tYWluRnJhbWVCYWNraW5nSXNUaWxlZFdpdGhNYXJn
aW4oKTsKLSNlbmRpZgogCiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAg
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6
IDE7CkBAIC01OTYsMTIgKzU4OSwxMCBAQCBib29sIFJlbmRlclZpZXc6OnNob3VsZFJlcGFpbnQo
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCkgY29uc3QKIAogdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50
Um9vdENvbnRlbnRzKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKGxheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIGxheWVyKCktPnNldEJhY2tp
bmdOZWVkc1JlcGFpbnQoR3JhcGhpY3NMYXllcjo6RG9Ob3RDbGlwVG9MYXllcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0jZW5kaWYKICAgICByZXBhaW50KCk7CiB9CiAKQEAgLTY1MiwyNCAr
NjQzLDIxIEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBv
c2l0ZWRMYXllcnMoY29uc3QgTGF5b3V0UmVjdCYgdXIsCiAgICAgICAgIHJldHVybjsKIAogICAg
IHJlcGFpbnRWaWV3UmVjdGFuZ2xlKHVyLCBpbW1lZGlhdGUpOwotICAgIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9z
aXRvciA9IHRoaXMtPmNvbXBvc2l0b3IoKTsKICAgICBpZiAoY29tcG9zaXRvci5pbkNvbXBvc2l0
aW5nTW9kZSgpKSB7CiAgICAgICAgIEludFJlY3QgcmVwYWludFJlY3QgPSBwaXhlbFNuYXBwZWRJ
bnRSZWN0KHVyKTsKICAgICAgICAgY29tcG9zaXRvci5yZXBhaW50Q29tcG9zaXRlZExheWVycygm
cmVwYWludFJlY3QpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFJlbmRlclZpZXc6OnJlcGFp
bnRWaWV3QW5kQ29tcG9zaXRlZExheWVycygpCiB7CiAgICAgcmVwYWludFJvb3RDb250ZW50cygp
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIFJlbmRlckxheWVyQ29t
cG9zaXRvciYgY29tcG9zaXRvciA9IHRoaXMtPmNvbXBvc2l0b3IoKTsKICAgICBpZiAoY29tcG9z
aXRvci5pbkNvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICBjb21wb3NpdG9yLnJlcGFpbnRDb21w
b3NpdGVkTGF5ZXJzKCk7Ci0jZW5kaWYKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJWaWV3Ojp2aXN1
YWxPdmVyZmxvd1JlY3QoKSBjb25zdApAQCAtNzk0LDcgKzc4Miw2IEBAIHZvaWQgUmVuZGVyVmll
dzo6cmVwYWludFNlbGVjdGlvbigpIGNvbnN0CiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogLy8gQ29tcG9zaXRpbmcgbGF5ZXIgZGltZW5zaW9ucyB0YWtlIG91
dGxpbmUgc2l6ZSBpbnRvIGFjY291bnQsIHNvIHdlIGhhdmUgdG8gcmVjb21wdXRlIGxheWVyCiAv
LyBib3VuZHMgd2hlbiBpdCBjaGFuZ2VzLgogLy8gRklYTUU6IFRoaXMgaXMgdWdseTsgaXQgd291
bGQgYmUgbmljZSB0byBoYXZlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLgpAQCAtODA3LDcgKzc5
NCw2IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVTaXplKGludCBvKQogICAg
ICAgICBjb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOyAgICAv
LyBGSVhNRTogdGhpcyByZWFsbHkganVzdCBuZWVkcyB0byBiZSBhIGdlb21ldHJ5IHVwZGF0ZS4K
ICAgICB9CiB9Ci0jZW5kaWYKIAogLy8gV2hlbiBleHBsb3JpbmcgdGhlIFJlbmRlclRyZWUgbG9v
a2luZyBmb3IgdGhlIG5vZGVzIGludm9sdmVkIGluIHRoZSBTZWxlY3Rpb24sIHNvbWV0aW1lcyBp
dCdzCiAvLyByZXF1aXJlZCB0byBjaGFuZ2UgdGhlIHRyYXZlcnNpbmcgZGlyZWN0aW9uIGJlY2F1
c2UgdGhlICJzdGFydCIgcG9zaXRpb24gaXMgYmVsb3cgdGhlICJlbmQiIG9uZS4KQEAgLTExNTks
NyArMTE0NSw2IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0QmVzdFRydW5jYXRlZEF0KGludCB5LCBS
ZW5kZXJCb3hNb2RlbE9iamVjdCogZm9yUmVuZGVyZXIsIGJvCiAgICAgfQogfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJWaWV3Ojp1c2VzQ29tcG9zaXRp
bmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbXBvc2l0b3IgJiYgbV9jb21wb3NpdG9yLT5p
bkNvbXBvc2l0aW5nTW9kZSgpOwpAQCAtMTE3MiwxNiArMTE1NywxMSBAQCBSZW5kZXJMYXllckNv
bXBvc2l0b3ImIFJlbmRlclZpZXc6OmNvbXBvc2l0b3IoKQogCiAgICAgcmV0dXJuICptX2NvbXBv
c2l0b3I7CiB9Ci0jZW5kaWYKIAogdm9pZCBSZW5kZXJWaWV3OjpzZXRJc0luV2luZG93KGJvb2wg
aXNJbldpbmRvdykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KG1fY29tcG9zaXRvcikKICAgICAgICAgbV9jb21wb3NpdG9yLT5zZXRJc0luV2luZG93KGlzSW5X
aW5kb3cpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oaXNJbldpbmRvdyk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKaW5kZXggMGM0ZjRjM2JhN2YyM2EzOGQ5OWIzZGE3YWRkYWUyYWMzOTMyZWY5MS4uYmUx
OTRhZWJlZjQ0YWNiNGQyOTQ1MWYwNjQ1MTYxNGJiMWI1ZmM4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0zMywxMSArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZsb3dUaHJlYWRDb250cm9sbGVyOwogY2xhc3MgSW1hZ2VRdWFsaXR5Q29udHJv
bGxlcjsKLWNsYXNzIFJlbmRlclF1b3RlOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogY2xhc3MgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOwotI2VuZGlmCitjbGFzcyBSZW5kZXJR
dW90ZTsKIAogY2xhc3MgUmVuZGVyVmlldyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cg
ewogcHVibGljOgpAQCAtOTksMTEgKzk2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVh
ZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRNYXhpbWFsT3V0
bGluZVNpemUoaW50IG8pOwotI2Vsc2UKLSAgICB2b2lkIHNldE1heGltYWxPdXRsaW5lU2l6ZShp
bnQgbykgeyBtX21heGltYWxPdXRsaW5lU2l6ZSA9IG87IH0KLSNlbmRpZgogICAgIGludCBtYXhp
bWFsT3V0bGluZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltYWxPdXRsaW5lU2l6ZTsgfQog
CiAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCgpIGNvbnN0OwpAQCAtMTgxLDEwICsxNzQsOCBAQCBw
dWJsaWM6CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhpcyB2aWV3IG1vdmVkIGludG8gb3Ig
b3V0IG9mIGEgbmF0aXZlIHdpbmRvdy4KICAgICB2b2lkIHNldElzSW5XaW5kb3coYm9vbCk7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yJiBjb21wb3NpdG9yKCk7CiAgICAgYm9vbCB1c2VzQ29tcG9zaXRpbmcoKSBjb25zdDsKLSNl
bmRpZgogCiAgICAgSW50UmVjdCB1bnNjYWxlZERvY3VtZW50UmVjdCgpIGNvbnN0OwogICAgIExh
eW91dFJlY3QgYmFja2dyb3VuZFJlY3QoUmVuZGVyQm94KiBiYWNrZ3JvdW5kUmVuZGVyZXIpIGNv
bnN0OwpAQCAtMzQ1LDkgKzMzNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BhZ2VMb2dpY2Fs
SGVpZ2h0Q2hhbmdlZDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0
U3RhdGU7CiAgICAgdW5zaWduZWQgbV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudDsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFJlbmRlckxheWVyQ29tcG9zaXRv
cj4gbV9jb21wb3NpdG9yOwotI2VuZGlmCiAgICAgT3duUHRyPEZsb3dUaHJlYWRDb250cm9sbGVy
PiBtX2Zsb3dUaHJlYWRDb250cm9sbGVyOwogICAgIFJlZlB0cjxJbnRlcnZhbEFyZW5hPiBtX2lu
dGVydmFsQXJlbmE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
aW5kZXggZWY4MDRiMmJlNmMzMDVlNjkyMGYwYzZlNTI1ZmMyZWZkYjJkMzJlOS4uNTg2N2ExMTIx
MWUzNTk1ZWE2ZWEzNjc2OWZjOTI2MWMyMTA1N2I2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI4LDE0ICsyOCwxMSBAQAogI2luY2x1ZGUgIkhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRl
ICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHN0YXRpYyBIYXNoTWFwPGNvbnN0IFdpZGdldCosIFJlbmRlcldpZGdldCo+JiB3aWRnZXRSZW5k
ZXJlck1hcCgpCkBAIC0xNDEsMTAgKzEzOCw5IEBAIGJvb2wgUmVuZGVyV2lkZ2V0OjpzZXRXaWRn
ZXRHZW9tZXRyeShjb25zdCBMYXlvdXRSZWN0JiBmcmFtZSkKICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoYm91bmRzQ2hhbmdlZCAmJiBoYXNMYXllcigpICYmIGxheWVyKCktPmlzQ29tcG9z
aXRlZCgpKQogICAgICAgICBsYXllcigpLT5iYWNraW5nKCktPnVwZGF0ZUFmdGVyV2lkZ2V0UmVz
aXplKCk7Ci0jZW5kaWYKKwogICAgIHJldHVybiBvbGRGcmFtZVJlY3Quc2l6ZSgpICE9IG5ld0Zy
YW1lUmVjdC5zaXplKCk7CiB9CiAKQEAgLTM4NCw3ICszODAsNiBAQCBib29sIFJlbmRlcldpZGdl
dDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1
bHQmIHJlcwogICAgIHJldHVybiBpbnNpZGU7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiBib29sIFJlbmRlcldpZGdldDo6cmVxdWlyZXNMYXllcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpyZXF1aXJlc0xheWVyKCkgfHwgcmVxdWlyZXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCk7CkBAIC00MDAsNyArMzk1LDYgQEAgYm9vbCBSZW5kZXJXaWRn
ZXQ6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0CiAKICAgICByZXR1cm4g
ZmFsc2U7CiB9Ci0jZW5kaWYKIAogYm9vbCBSZW5kZXJXaWRnZXQ6Om5lZWRzUHJlZmVycmVkV2lk
dGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmgKaW5kZXggYWZjZWYzYTg3MzU0Y2VjMzY3OGFlODUyNTVmYzYzYjA4MzdhZmQ1MS4u
Nzg4ZGY5YjZiNDMzNmY1NTg2NjQxZTA2NTg0MDg5ZmIwMzJkOGQxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtNzAsOSArNzAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB1cGRhdGVXaWRnZXRQb3NpdGlvbigpOwogICAgIEludFJlY3Qgd2luZG93Q2xpcFJlY3Qo
KSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIHJl
cXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwotI2VuZGlmCiAKICAgICBXZWFr
UHRyPFJlbmRlcldpZGdldD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rv
cnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKQEAgLTg0LDkgKzgyLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRpZgogCiBw
cml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNzFjNjM3NmE4MzM1
Y2FjMGRhMGYwZmFjZDA0NmJhM2ZlNjJkZDkzZC4uMTk1YmMzNTFkZGQ4ZWZjNjk1OTMyN2FkMThj
ZmMxZmQ1MzExMjVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC00NzQsMzAgKzQ3NCwxNCBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFu
Z2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFu
ZwogCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0uZ2V0KCkg
IT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS5nZXQoKQogICAgICAg
ICAgICAgJiYgKnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS5nZXQoKSAhPSAqb3Ro
ZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybS5nZXQoKSkgewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgIGNoYW5nZWRDb250ZXh0U2Vuc2l0
aXZlUHJvcGVydGllcyB8PSBDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHlUcmFuc2Zvcm07CiAgICAg
ICAgICAgICAvLyBEb24ndCByZXR1cm47IGtlZXAgbG9va2luZyBmb3IgYW5vdGhlciBjaGFuZ2UK
LSNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0oY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQ
cm9wZXJ0aWVzKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgICAgIH0K
IAogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKSAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC5nZXQoKQogICAgICAgICAgICAgfHwgcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0uZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhl
cml0ZWREYXRhLT5tX2dyaWRJdGVtLmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSNpZiAhVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICBpZiAocmFyZU5vbklu
aGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpKSB7
Ci0gICAgICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtU3R5bGUz
RCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJhbnNmb3JtU3R5bGUzRAotICAg
ICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNlVmlzaWJpbGl0
eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYmFja2ZhY2VWaXNpYmlsaXR5Ci0g
ICAgICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmUgIT0g
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlCi0gICAgICAgICAgICAg
ICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5YICE9IG90aGVy
LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblgKLSAgICAgICAgICAg
ICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblkgIT0gb3Ro
ZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotI2VuZGlmCi0KICNpZiBFTkFCTEUoREFT
SEJPQVJEX1NVUFBPUlQpCiAgICAgICAgIC8vIElmIHJlZ2lvbnMgY2hhbmdlLCB0cmlnZ2VyIGEg
cmVsYXlvdXQgdG8gcmUtY2FsYyByZWdpb25zLgogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fZGFzaGJvYXJkUmVnaW9ucyAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fZGFzaGJvYXJkUmVnaW9ucykKQEAgLTcxMywyNCArNjk3LDE1IEBAIGJvb2wgUmVuZGVyU3R5
bGU6OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwg
dW5zaWduZWQmCiAjZW5kaWYKIAogICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0
eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm9wYWNpdHkpIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydGllcyB8PSBDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHlPcGFjaXR5OwogICAgICAgICAvLyBE
b24ndCByZXR1cm47IGtlZXAgbG9va2luZyBmb3IgYW5vdGhlciBjaGFuZ2UuCi0jZWxzZQotICAg
ICAgICBVTlVTRURfUEFSQU0oY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBvdGhl
ci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpCiAgICAgICAgICYmICpyYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgICAgIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyB8PSBDb250ZXh0
U2Vuc2l0aXZlUHJvcGVydHlGaWx0ZXI7CiAgICAgICAgIC8vIERvbid0IHJldHVybjsga2VlcCBs
b29raW5nIGZvciBhbm90aGVyIGNoYW5nZS4KLSNlbHNlCi0gICAgICAgIHJldHVybiB0cnVlOwot
I2VuZGlmCiAgICAgfQogI2VuZGlmCiAKQEAgLTc5MSw3ICs3NjYsNiBAQCBib29sIFJlbmRlclN0
eWxlOjpjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRleHRPckJvcmRlck9yT3V0bGluZShjb25zdCBS
ZW5kZXJTdHlsZQogCiBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc1JlY29tcG9zaXRl
TGF5ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYpIGNvbnN0CiB7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0
YS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9ybVN0eWxlM0QKICAgICAgICAgICAgIHx8IHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNlVmlzaWJpbGl0eSAhPSBvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fYmFja2ZhY2VWaXNpYmlsaXR5CkBAIC04MDAsOSArNzc0LDcgQEAg
Ym9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZUxheWVyKGNvbnN0IFJl
bmRlclN0eWxlKiBvdGhlciwgdW5zaWcKICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fcGVyc3BlY3RpdmVPcmlnaW5ZKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob3RoZXIpOwotI2VuZGlmCisKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKQEAgLTg0MCwxMCArODEyLDggQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxl
OjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAg
ICBpZiAoY2hhbmdlUmVxdWlyZXNSZXBhaW50KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2
ZVByb3BlcnRpZXMpKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludDsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoY2hhbmdlUmVxdWlyZXNS
ZWNvbXBvc2l0ZUxheWVyKG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMp
KQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVjb21wb3NpdGVMYXllcjsKLSNlbmRp
ZgogCiAgICAgaWYgKGNoYW5nZVJlcXVpcmVzUmVwYWludElmVGV4dE9yQm9yZGVyT3JPdXRsaW5l
KG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpKQogICAgICAgICByZXR1
cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludElmVGV4dE9yQm9yZGVyT3JPdXRsaW5lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA3M2E1MzUwY2Ux
NGZjZTNmMjQ4MDVlYjI5YzM4Y2VmYjNiN2U1NTI2Li45ZGI3M2YzZWU1NDMwMWI2Njk0NTVhMTI1
YTJiOGQwNmM0YzM2M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtOTI1LDEwICs5MjUsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3Ro
U2l6ZSYgcGFnZVNpemUoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9w
YWdlU2l6ZTsgfQogICAgIFBhZ2VTaXplVHlwZSBwYWdlU2l6ZVR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxQYWdlU2l6ZVR5cGU+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BhZ2VT
aXplVHlwZSk7IH0KICAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
Ly8gV2hlbiBzZXQsIHRoaXMgZW5zdXJlcyB0aGF0IHN0eWxlcyBjb21wYXJlIGFzIGRpZmZlcmVu
dC4gVXNlZCBkdXJpbmcgYWNjZWxlcmF0ZWQgYW5pbWF0aW9ucy4KICAgICBib29sIGlzUnVubmlu
Z0FjY2VsZXJhdGVkQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uOyB9Ci0jZW5kaWYKIAogICAgIExpbmVC
b3hDb250YWluIGxpbmVCb3hDb250YWluKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERh
dGEtPm1fbGluZUJveENvbnRhaW47IH0KICAgICBjb25zdCBMaW5lQ2xhbXBWYWx1ZSYgbGluZUNs
YW1wKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPmxpbmVDbGFtcDsgfQpA
QCAtMTQzNSw5ICsxNDMzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFnZVNpemVUeXBlKFBh
Z2VTaXplVHlwZSB0KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVU
eXBlLCB0KTsgfQogICAgIHZvaWQgcmVzZXRQYWdlU2l6ZVR5cGUoKSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVUeXBlLCBQQUdFX1NJWkVfQVVUTyk7IH0KIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIHNldElzUnVubmluZ0FjY2Vs
ZXJhdGVkQW5pbWF0aW9uKGJvb2wgYiA9IHRydWUpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVk
RGF0YSwgbV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24sIGIpOyB9Ci0jZW5kaWYKIAogICAg
IHZvaWQgc2V0TGluZUJveENvbnRhaW4oTGluZUJveENvbnRhaW4gYykgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX2xpbmVCb3hDb250YWluLCBjKTsgfQogICAgIHZvaWQgc2V0TGluZUNs
YW1wKExpbmVDbGFtcFZhbHVlIGMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbGlu
ZUNsYW1wLCBjKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCAxMWI0Mjg1NTkyZWQxYjljZTVkZWRlMDcwY2Ux
ZDhiMzJkYmE4NDMwLi5mYTRhYzFjNmNjNWIwYjRkOGYwNDE3YTFjNmVkMGMyNjRiZmJlMmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaApAQCAtNDYsOSArNDYsNyBAQCBlbnVtIFByaW50Q29sb3JBZGp1c3QgewogLy8g
LSBTdHlsZURpZmZlcmVuY2VMYXlvdXQgLSBBIGZ1bGwgbGF5b3V0IGlzIHJlcXVpcmVkLgogZW51
bSBTdHlsZURpZmZlcmVuY2UgewogICAgIFN0eWxlRGlmZmVyZW5jZUVxdWFsLAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBTdHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0ZUxh
eWVyLAotI2VuZGlmCiAgICAgU3R5bGVEaWZmZXJlbmNlUmVwYWludCwKICAgICBTdHlsZURpZmZl
cmVuY2VSZXBhaW50SWZUZXh0T3JCb3JkZXJPck91dGxpbmUsCiAgICAgU3R5bGVEaWZmZXJlbmNl
UmVwYWludExheWVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGQyYmQ1NmY3MGNmMWY2
OTQ5ZTUyZTgwNDdkNzRiNzVjOGEzYzE0MTYuLjY4NDBjMjU4NWY5OGViYmZjNTU3NDRjMmUzODEx
NzBmMDQ0YTdkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg2LDkgKzg2LDcgQEAg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAg
ICAgLCBtX3RleHREZWNvcmF0aW9uU3R5bGUoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3Jh
dGlvblN0eWxlKCkpCiAgICAgLCBtX3dyYXBGbG93KFJlbmRlclN0eWxlOjppbml0aWFsV3JhcEZs
b3coKSkKICAgICAsIG1fd3JhcFRocm91Z2goUmVuZGVyU3R5bGU6OmluaXRpYWxXcmFwVGhyb3Vn
aCgpKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fcnVubmluZ0Fj
Y2VsZXJhdGVkQW5pbWF0aW9uKGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX2hhc0FzcGVjdFJhdGlv
KGZhbHNlKQogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2VmZmVjdGl2ZUJs
ZW5kTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbEJsZW5kTW9kZSgpKQpAQCAtMTY2LDkgKzE2NCw3
IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAgICAgLCBtX3RleHREZWNvcmF0aW9uU3R5bGUo
by5tX3RleHREZWNvcmF0aW9uU3R5bGUpCiAgICAgLCBtX3dyYXBGbG93KG8ubV93cmFwRmxvdykK
ICAgICAsIG1fd3JhcFRocm91Z2goby5tX3dyYXBUaHJvdWdoKQotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKG8ubV9y
dW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24pCi0jZW5kaWYKICAgICAsIG1faGFzQXNwZWN0UmF0
aW8oby5tX2hhc0FzcGVjdFJhdGlvKQogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAg
LCBtX2VmZmVjdGl2ZUJsZW5kTW9kZShvLm1fZWZmZWN0aXZlQmxlbmRNb2RlKQpAQCAtMjU3LDkg
KzI1Myw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25z
dCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAgICYmIG1fdGV4dERlY29y
YXRpb25TdHlsZSA9PSBvLm1fdGV4dERlY29yYXRpb25TdHlsZQogICAgICAgICAmJiBtX3dyYXBG
bG93ID09IG8ubV93cmFwRmxvdwogICAgICAgICAmJiBtX3dyYXBUaHJvdWdoID09IG8ubV93cmFw
VGhyb3VnaAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgJiYgIW1f
cnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uICYmICFvLm1fcnVubmluZ0FjY2VsZXJhdGVkQW5p
bWF0aW9uCi0jZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgICAgICAmJiBt
X2VmZmVjdGl2ZUJsZW5kTW9kZSA9PSBvLm1fZWZmZWN0aXZlQmxlbmRNb2RlCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCmluZGV4IDQ1MjNmM2JlNGM3NjhhY2RlNmE5ZmUzMDNlMDA1Y2U1MTQ1
ZTRkNzIuLjNiYzI4MjViOTM2NDhjOTdiMGZjMDVkOTRiZGYxYjFjN2ZhYzAxM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaApAQCAtMTg2LDkgKzE4Niw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBt
X3dyYXBGbG93OiAzOyAvLyBXcmFwRmxvdwogICAgIHVuc2lnbmVkIG1fd3JhcFRocm91Z2g6IDE7
IC8vIFdyYXBUaHJvdWdoCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dW5zaWduZWQgbV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24gOiAxOwotI2VuZGlmCiAKICAg
ICB1bnNpZ25lZCBtX2hhc0FzcGVjdFJhdGlvIDogMTsgLy8gV2hldGhlciBvciBub3QgYW4gYXNw
ZWN0IHJhdGlvIGhhcyBiZWVuIHNwZWNpZmllZC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDk5YTMxN2U1Y2VlZDRlODRkNTgxYTIyMTUxYTkzNDkyNmEzMjhjMTguLmI0
ZTFiYzQzNDQxNGQwYmJhZWFhNDFjMGQ2MzUwMmQ5YjU1NmM0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTI2NywxMyArMjY3LDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UqIHBhZ2UpCiAgICAgcGFnZS0+c2V0UGFnZVNjYWxl
RmFjdG9yKDEsIEludFBvaW50KDAsIDApKTsKICAgICBwYWdlLT5zZXRQYWdpbmF0aW9uKFBhZ2lu
YXRpb24oKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgRnJhbWVW
aWV3KiBtYWluRnJhbWVWaWV3ID0gcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIGlmICht
YWluRnJhbWVWaWV3KSB7CiAgICAgICAgIG1haW5GcmFtZVZpZXctPnNldEhlYWRlckhlaWdodCgw
KTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0KDApOwogICAgIH0KLSNl
bmRpZgorCiAgICAgVGV4dFJ1bjo6c2V0QWxsb3dzUm91bmRpbmdIYWNrcyhmYWxzZSk7CiAgICAg
V2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkp
OwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoZmFsc2Up
OwpAQCAtMTc1NCwxMiArMTc1Myw5IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRIZWFkZXJIZWlnaHQo
ZmxvYXQgaGVpZ2h0KQogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgp
OwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpCiAgICAgICAgIHJldHVy
bjsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCk7CiAgICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJIZWln
aHQoaGVpZ2h0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGhlaWdodCk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBJbnRlcm5hbHM6OnNldEZvb3RlckhlaWdodChmbG9hdCBoZWlnaHQpCkBAIC0xNzY3
LDEwICsxNzYzLDkgQEAgdm9pZCBJbnRlcm5hbHM6OnNldEZvb3RlckhlaWdodChmbG9hdCBoZWln
aHQpCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYg
KCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
ZG9jdW1lbnQtPnZpZXcoKTsKICAgICBmcmFtZVZpZXctPnNldEZvb3RlckhlaWdodChoZWlnaHQp
OwotI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKaW5kZXggNzMyZGRjMWFmYzNlNTEzYTViNjhiY2Ri
NDAwZTU4NGVmNDY4NmRiNi4uNTVmY2UyMzdiNjgwNmFmZDM1ZTI2MjE0ZjFlYTA1Yzk4YjcyNDVl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcApAQCAtMTksNyAr
MTksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVJfR0wpCiAKICNpbmNsdWRlICJBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIgog
CkBAIC0xMjIsNCArMTIyLDQgQEAgR3JhcGhpY3NDb250ZXh0M0QqIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Ojpjb250ZXh0KCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0RWZsLmgKaW5kZXggMWViNzk2YjhkODU0OThhNTZhZDQ3ZjhhODE4NTAyYTY2
NjlmZjE4MS4uMjQ4MTUyZWUzZGM5YTNlOWNkZWNjYmRkMTNiYWQyYzMxMWZjMGY2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJG
UFNDb3VudGVyLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKQEAgLTYyLDUgKzYyLDUgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZW5kaWYgLy8g
VVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2VuZGlmIC8vIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDI0MGFjMDFlNDcwYWYzZGYzMGIxNGY1MjE4ZTAyOTll
ZDNjYThhNGIuLjlhODg1YmUzNjQwNTU3YTJkNzEyN2M2YjM1MzFhZGYxZmZkYjk2NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmNwcApAQCAtNjE0LDcgKzYxNCw2IEBAIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJv
bWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVFZmwoY2xpZW50KSk7CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIENocm9tZUNsaWVudEVmbDo6YXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKiByb290TGF5ZXIpCiB7CiAg
ICAgZXdrX3ZpZXdfcm9vdF9ncmFwaGljc19sYXllcl9zZXQobV92aWV3LCByb290TGF5ZXIpOwpA
QCAtNjM0LDcgKzYzMyw2IEBAIENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3Mg
Q2hyb21lQ2xpZW50RWZsOjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VyCiB7CiAgICAgcmV0dXJu
IEFsbFRyaWdnZXJzOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBi
b29sIENocm9tZUNsaWVudEVmbDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBX
ZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggZjIz
Y2QwY2IzYmM5ODM2MjcxMzU3MmYzMTBmYTRjMjNiZjQ4ZGI1YS4uMGMwOTJlNzgxY2UwMjRjYzM2
MjkwNzljNmMxZTNmYTdiNTQxYTk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTEyOCwxMiArMTI4LDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpOwogI2VuZGlmCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CiAgICAgdmlydHVhbCBDb21wb3Np
dGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0OwotI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0
aEtleWJvYXJkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGFn
ZUNsaWVudEVmbC5jcHAKaW5kZXggNmQ0MDljMDczMzYwOWM5MWExNjcwZjY3NzM5M2E3NjhhN2Ey
MDM3OS4uZDcwMzg4NGJkMjU5ZGU5MjZjN2E5M2JhMmUyY2I0ZmE4YmEyODA5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKQEAg
LTM2LDcgKzM2LDYgQEAgUGFnZUNsaWVudEVmbDo6flBhZ2VDbGllbnRFZmwoKQogewogfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBQYWdlQ2xpZW50RWZsOjpjcmVh
dGVFdmFzT2JqZWN0Rm9yQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhFdmFzX05hdGl2ZV9TdXJmYWNl
KiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewogICAgIHJl
dHVybiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKG1fdmll
dywgbmF0aXZlU3VyZmFjZSwgcmVjdCk7CkBAIC00Niw0ICs0NSwzIEBAIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEKiBQYWdlQ2xpZW50RWZsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCgpCiB7CiAgICAgcmV0dXJuIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRl
eHRfZ2V0KG1fdmlldyk7CiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuaAppbmRleCA0NTE2ZDQ2YmIwYzljMjRmYzZlODE0N2U5
Y2EwOWJiZjExOTA5ZGZiLi5iOTQ1M2Q0YzcxZmRmNGZlYjYxNjUzMjNmMDgwZDM2MThhZmM4MWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50
RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVm
bC5oCkBAIC0zMywxMCArMzMsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUGFnZUNsaWVudEVm
bChFdmFzX09iamVjdCogdmlldyk7CiAgICAgdmlydHVhbCB+UGFnZUNsaWVudEVmbCgpOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgY3JlYXRlRXZhc09iamVj
dEZvckFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoRXZhc19OYXRpdmVfU3VyZmFjZSosIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoKTsKLSNlbmRpZgogCiAgICAgRXZhc19PYmplY3QqIHZp
ZXcoKSB7IHJldHVybiBtX3ZpZXc7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApp
bmRleCAxMWVjMWFmMDMwMGRlMmNmM2NkZDg2ODNjNmE3OGNjOTBkMWVhZjdhLi5jYzkxNDk0ODRh
NmVkODQ2OWVkYjVmNGYwYWMzMjMxOTBhNDMyNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3By
aXZhdGUuaApAQCAtMzAsMTAgKzMwLDggQEAKIAogLy8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFz
cyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7Ci0jZW5kaWYKIH0KIAog
c3RydWN0IEV3a19XaW5kb3dfT2JqZWN0X0NsZWFyZWRfRXZlbnQgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKaW5kZXggNjFjNjFlMjVjNDg2MDY0NTFjNWQ5NzQ2YWE5NzUwZjUzODJhNmZk
My4uMWQ1NTllOWJhMjBmYzI5MTFmYWVmNDE2MmFmNjJmOWE5NWEwZDdiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKIAorI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0RWZsLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5jbHVkZSAiQnJpZGdlLmgiCkBAIC0xMTAsMTAg
KzExMSw2IEBACiAjaW5jbHVkZSAiQmF0dGVyeUNsaWVudEVmbC5oIgogI2VuZGlmCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRFZmwuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKICNp
bmNsdWRlICJOZXR3b3JrSW5mb0NsaWVudEVmbC5oIgogI2VuZGlmCkBAIC0yNjAsMTEgKzI1Nyw5
IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsKICAgICBFd2tfSGlzdG9yeSogaGlzdG9yeTsK
ICAgICBPd25QdHI8UGFnZUNsaWVudEVmbD4gcGFnZUNsaWVudDsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFdlYkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0PiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDsKICAgICBib29sIGlzQ29t
cG9zaXRpbmdBY3RpdmU7CiAgICAgUmVmUHRyPEV2YXNfT2JqZWN0PiBjb21wb3NpdGluZ09iamVj
dDsKLSNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIFdlYkNvcmU6OkNv
bG9yQ2hvb3NlckNsaWVudCogY29sb3JDaG9vc2VyQ2xpZW50OwogI2VuZGlmCkBAIC03NTcsMTMg
Kzc1MiwxMSBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9u
ZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIHBhZ2VTZXR0aW5ncy5zZXRG
dWxsU2NyZWVuRW5hYmxlZCh0cnVlKTsKICNlbmRpZgogICAgIHBhZ2VTZXR0aW5ncy5zZXRJbnRl
cmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCh0cnVlKTsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgcGFnZVNldHRpbmdzLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGZhbHNlKTsKICAgICBjaGFyKiBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCA9IGdldGVu
digiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpOwogICAgIGJvb2wgc2hv
d0RlYnVnVmlzdWFscyA9IGRlYnVnVmlzdWFsc0Vudmlyb25tZW50ICYmICFzdHJjbXAoZGVidWdW
aXN1YWxzRW52aXJvbm1lbnQsICIxIik7CiAgICAgcGFnZVNldHRpbmdzLnNldFNob3dEZWJ1Z0Jv
cmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7CiAgICAgcGFnZVNldHRpbmdzLnNldFNob3dSZXBhaW50
Q291bnRlcihzaG93RGVidWdWaXN1YWxzKTsKLSNlbmRpZgogCiAgICAgdXJsID0gcGFnZVNldHRp
bmdzLnVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKTsKICAgICBwcml2LT5zZXR0aW5ncy51c2VyU3R5
bGVzaGVldCA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKQEAgLTg0OSw5ICs4NDIsNyBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdr
X3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAgIHByaXYt
PmNvbnRleHRNZW51ID0gMDsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIHByaXYtPmlzQ29tcG9zaXRpbmdBY3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogCiAg
ICAgcmV0dXJuIHByaXY7CiB9CkBAIC04OTAsOSArODgxLDcgQEAgc3RhdGljIHZvaWQgX2V3a192
aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKICAgICAgICAgZXdrX2Nv
bnRleHRfbWVudV9mcmVlKHByaXYtPmNvbnRleHRNZW51KTsKICNlbmRpZgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0ID0gbnVsbHB0cjsKLSNlbmRpZgogCiAgICAgZGVsZXRlIHByaXY7CiB9CkBAIC00NTk4
LDcgKzQ1ODcsNiBAQCB2b2lkIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVj
dCogZXdrVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZQogI2VuZGlmCiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIF9ld2tfdmlld19hY2NlbGVyYXRlZF9j
b21wb3NpdGluZ19jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCopCiB7CiAgICAgRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKj4o
ZGF0YSk7CkBAIC00Njg2LDcgKzQ2NzQsNiBAQCB2b2lkIGV3a192aWV3X21hcmtfZm9yX3N5bmMo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgLy8gSXQgd2lsbCBjYWxsIHRoZSBwaXhlbCBnZXQg
Y2FsbGJhY2sgdGhlbi4KICAgICBldmFzX29iamVjdF9pbWFnZV9waXhlbHNfZGlydHlfc2V0KHBy
aXYtPmNvbXBvc2l0aW5nT2JqZWN0LmdldCgpLCB0cnVlKTsKIH0KLSNlbmRpZgogCiB2b2lkIGV3
a192aWV3X2N1cnNvcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1
cnNvciYgY3Vyc29yKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgK
aW5kZXggZDBjMjhkMmFmOTY5NzcxOTEwYjI4MGFjMTQ1ZmMwOWZmY2YyMmFmNy4uYTk2ODcwZTBh
NTZhY2NiNDg2ZTQxNWQyOTliNzNhMDQ5MTg3MzY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0zNiwxMCArMzYsOCBAQCBjbGFzcyBDb2xvckNob29zZXJD
bGllbnQ7CiAjZW5kaWYKIAogY2xhc3MgQ3Vyc29yOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgR3JhcGhpY3NMYXllcjsK
LSNlbmRpZgogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3Mg
SW50U2l6ZTsKQEAgLTE1MSwxMiArMTQ5LDEwIEBAIFdlYkNvcmU6OkZsb2F0UmVjdCBld2tfdmll
d19wYWdlX3JlY3RfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3Zp
ZXdfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29s
IGhhc0Rpc3BsYXllZCk7CiB2b2lkIGV3a192aWV3X21peGVkX2NvbnRlbnRfcnVuX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgYm9vbCBoYXNSdW4pOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3Rf
Y3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX05hdGl2ZV9TdXJmYWNlKiBuYXRpdmVT
dXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KTsKIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEKiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jb250ZXh0X2dldChF
dmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X3Jvb3RfZ3JhcGhpY3NfbGF5ZXJf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5
ZXIpOwogdm9pZCBld2tfdmlld19tYXJrX2Zvcl9zeW5jKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsK
LSNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogdm9pZCBld2tfdmlld19mdWxs
c2NyZWVuX2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCmluZGV4IDZmZDdlM2MxMTdiMGNmZGRiMmJhMjhkNWFmMWFhMTNkODk1
YzM0MDQuLjVkNGU4NDgyZGEwYTdjNjBmYTZlNjVmNjM1ZWU5NzMwNzg2NWZjOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAtMzcsOCArMzcsNiBAQAogI2luY2x1ZGUgIlRl
eHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgewpA
QCAtMTAxLDUgKzk5LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjZW5kaWYgLy8gQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdM
LmNwcAppbmRleCBmNDI5OTYwNWZhZmE4NGJjZmU0YWUyMTQ1ZGFjMzE1MTBmNjgwZTZjLi40NTM1
Njg2ZjIwZGI1MmI5YTAyYmE4OTY3MDc3YmJkMTZjNmYxZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dEdMLmNwcApAQCAtMTksNyArMTksNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgiCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDA2LDQgKzQwNiw0IEBAIHZvaWQgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZW5kaWYgLy8g
VVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggMDQ0MzEzNWJhOTg0MzBmMmE0Yzg5
NmQ4YWY1MjhlODJkMDkzMTUwMC4uZjYxZjlkYWJiZjUxOWEyMGQ0OTA3NGU0ZGI3ZjUwZTczYWI4
ODBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCkBAIC00NTUsMTMgKzQ1NSwxMSBAQCBzdGF0aWMgdm9pZCBjbGVhckV2
ZXJ5d2hlcmVJbkJhY2tpbmdTdG9yZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjYWlyb190KiBj
cikKIAogdm9pZCBDaHJvbWVDbGllbnQ6OndpZGdldFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUm
IG9sZFdpZGdldFNpemUsIEludFNpemUgbmV3U2l6ZSkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGNvbXBvc2l0
aW5nQ29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQuZ2V0KCk7CiAgICAgaWYgKGNvbXBvc2l0aW5nQ29udGV4dC0+ZW5hYmxlZCgpKSB7CiAgICAg
ICAgIG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPnJlc2l6
ZVJvb3RMYXllcihuZXdTaXplKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAg
ICAgLy8gR3JvdyB0aGUgYmFja2luZyBzdG9yZSBieSBhdCBsZWFzdCAxLjUgdGltZXMgdGhlIGN1
cnJlbnQgc2l6ZS4gVGhpcyBwcmV2ZW50cwogICAgIC8vIGxvdHMgb2YgdW5uZWNlc3NhcnkgYWxs
b2NhdGlvbnMgZHVyaW5nIGFuIG9wYXF1ZSByZXNpemUuCkBAIC02MzIsMTAgKzYzMCw4IEBAIHZv
aWQgQ2hyb21lQ2xpZW50OjpwYWludChXZWJDb3JlOjpUaW1lcjxDaHJvbWVDbGllbnQ+KikKIAog
dm9pZCBDaHJvbWVDbGllbnQ6OmZvcmNlUGFpbnQoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBpZiAobV93ZWJWaWV3LT5wcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIG1f
Zm9yY2VQYWludCA9IHRydWU7CiAgICAgcGFpbnQoMCk7CkBAIC02NDgsMTMgKzY0NCwxMSBAQCB2
b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29s
IGltbWVkaWF0ZSkKIAogdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dCogYWNDb250ZXh0ID0gbV93ZWJWaWV3LT5wcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dC5nZXQoKTsKICAgICBpZiAoYWNDb250ZXh0LT5lbmFibGVkKCkpIHsKICAgICAg
ICAgYWNDb250ZXh0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSh1cGRhdGVS
ZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKHVwZGF0ZVJl
Y3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC02NjYsMTMgKzY2MCwxMSBAQCB2b2lk
IENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBibwogewogICAgIG1fYWRqdXN0bWVudFdhdGNoZXIudXBkYXRlQWRq
dXN0bWVudHNGcm9tU2Nyb2xsYmFyc0xhdGVyKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGFjQ29udGV4dCA9
IG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CiAg
ICAgaWYgKGFjQ29udGV4dC0+ZW5hYmxlZCgpKSB7CiAgICAgICAgIGFjQ29udGV4dC0+c2V0Tm9u
Q29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkodXBkYXRlUmVjdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0jZW5kaWYKIAogICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVw
ZGF0ZVJlY3QsIGltbWVkaWF0ZSk7CiB9CkBAIC02ODEsNyArNjczLDYgQEAgdm9pZCBDaHJvbWVD
bGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRv
U2Nyb2xsLCBjb24KIHsKICAgICBtX2FkanVzdG1lbnRXYXRjaGVyLnVwZGF0ZUFkanVzdG1lbnRz
RnJvbVNjcm9sbGJhcnNMYXRlcigpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KiBjb21wb3NpdGluZ0NvbnRleHQg
PSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwog
ICAgIGlmIChjb21wb3NpdGluZ0NvbnRleHQtPmVuYWJsZWQoKSkgewogICAgICAgICBBU1NFUlQo
IXJlY3RUb1Njcm9sbC5pc0VtcHR5KCkpOwpAQCAtNjkwLDcgKzY4MSw2IEBAIHZvaWQgQ2hyb21l
Q2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RU
b1Njcm9sbCwgY29uCiAgICAgICAgIGNvbXBvc2l0aW5nQ29udGV4dC0+c2Nyb2xsTm9uQ29tcG9z
aXRlZENvbnRlbnRzKHJlY3RUb1Njcm9sbCwgZGVsdGEpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotI2VuZGlmCiAKICAgICBtX3JlY3RzVG9TY3JvbGwuYXBwZW5kKHJlY3RUb1Njcm9sbCk7CiAg
ICAgbV9zY3JvbGxPZmZzZXRzLmFwcGVuZChkZWx0YSk7CkBAIC0xMDAwLDcgKzk5MCw2IEBAIHZv
aWQgQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCopCiB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQg
Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBo
aWNzTGF5ZXIqIHJvb3RMYXllcikKIHsKICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCogY29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQuZ2V0KCk7CkBAIC0xMDQyLDYgKzEwMzEsNSBAQCBDaHJvbWVDbGllbnQ6OkNvbXBvc2l0aW5n
VHJpZ2dlckZsYWdzIENocm9tZUNsaWVudDo6YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKQog
ICAgIHJldHVybiBBbGxUcmlnZ2VyczsKICNlbmRpZgogfQotI2VuZGlmCiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXgg
NTFkNDNhYWQ2MjQwZDIzODZkZDEyOGZkZGU0NDBjMmFkMGUwYWI1ZS4uMWRlN2YyZjcwODllMjkw
NjVmZmNjZGMzNDM3YTFmNDE5MDU1MmVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTE0NCwxMiArMTQ0LDEwIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFt
ZSosIEdyYXBoaWNzTGF5ZXIqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hv
dERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCk7CiAgICAgICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmln
Z2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdDsKLSNlbmRpZiAKIAog
ICAgICAgICB2b2lkIHBlcmZvcm1BbGxQZW5kaW5nU2Nyb2xscygpOwogICAgICAgICB2b2lkIHBh
aW50KFRpbWVyPENocm9tZUNsaWVudD4qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcAppbmRleCA3NTdmZWUzYmEwZGRjYjhmNjZiZGQ2Y2MwM2YzYWFjZjljNWQw
OTZlLi4wNzk3MTMxNmI3MGEyMmZmYzVmNzY5ODM1OGU5NGM4NzczNTlkM2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0zNjA2LDEzICszNjA2LDEx
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLnNldE1lZGlhU3RyZWFtRW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJs
ZU1lZGlhU3RyZWFtKTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdTZXR0aW5nKGNvcmVTZXR0aW5ncywg
c2V0dGluZ3NQcml2YXRlLT5lbmFibGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nKTsKICAgICBjaGFy
KiBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCA9IGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJ
TkdfREVCVUdfVklTVUFMUyIpOwogICAgIGJvb2wgc2hvd0RlYnVnVmlzdWFscyA9IGRlYnVnVmlz
dWFsc0Vudmlyb25tZW50ICYmICFzdHJjbXAoZGVidWdWaXN1YWxzRW52aXJvbm1lbnQsICIxIik7
CiAgICAgY29yZVNldHRpbmdzLnNldFNob3dEZWJ1Z0JvcmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7
CiAgICAgY29yZVNldHRpbmdzLnNldFNob3dSZXBhaW50Q291bnRlcihzaG93RGVidWdWaXN1YWxz
KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBjb3JlU2V0dGluZ3Muc2V0
V2ViQXVkaW9FbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlV2ViQXVkaW8pOwpAQCAtMzc1
OCwxMCArMzc1Niw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3Rp
ZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzLCBHUGFyCiAgICAgICAgIHNldHRpbmdz
LnNldFdlYkdMRW5hYmxlZChnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwogI2VuZGlmCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZWxzZSBpZiAobmFtZSA9PSBn
X2ludGVybl9zdHJpbmcoImVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZyIpKQogICAgICAg
ICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nU2V0dGluZyhzZXR0aW5ncywgZ192YWx1ZV9n
ZXRfYm9vbGVhbigmdmFsdWUpKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAg
ICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLXdlYmF1ZGlvIikpCkBA
IC0zODg1LDEwICszODgxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKICNlbmRpZgogCiAgICAgcHJpdi0+c2VsZlNjcm9sbGluZyA9
IGZhbHNlOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHByaXYtPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0ID0gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OmNyZWF0ZSh3ZWJWaWV3KTsKLSNlbmRpZgogCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJW
aWV3LCAiZGlyZWN0aW9uLWNoYW5nZWQiLCBHX0NBTExCQUNLKHdlYmtpdFdlYlZpZXdEaXJlY3Rp
b25DaGFuZ2VkKSwgMCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3cHJpdmF0ZS5oCmluZGV4IGI1ZTY5NzhhMzI5NzlmMTY0MmRhNDYwNWQ3OGU0ZDU2MTEx
NTJmMGEuLjNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDEs
OSArMTAxLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6
R3RrRHJhZ0FuZERyb3BIZWxwZXIgZHJhZ0FuZERyb3BIZWxwZXI7CiAgICAgYm9vbCBzZWxmU2Ny
b2xsaW5nOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxX
ZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0PiBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKElDT05EQVRBQkFTRSkKICAgICBndWxv
bmcgaWNvbkxvYWRlZEhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IDE2ZmI5ZTRlNjhjMDIxY2VkMzZk
MmExYzcxYzk4YTQ5ODgwMzVkZmQuLmIxYzlhN2ZkZTVmMDI5M2EzN2Y3NTkwN2I5NDFhNjY0MzI4
YzRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudElPUy5oCkBAIC02Nyw5ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJy
aWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGRpZEZsdXNo
Q29tcG9zaXRpbmdMYXllcnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktp
dC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IGJhZTQ2ZDNl
MjM5MDAxNTllMDcwZTkxNDU3ZWM4MmEwNDFiMjkzMWMuLmQ4MmQ1OTM4MmIzNjNhMWIyZjkzNzVl
MTE1ZTY0ZjgzMmIxZmI5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KQEAgLTI0MSw3ICsyNDEsNiBAQCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVh
dGVTZWFyY2hQb3B1cE1lbnUoVwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBN
ZW51SU9TKGNsaWVudCkpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
dm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICAvLyBGSVhNRTogZm9yIG5vbi1y
b290IGZyYW1lcyB3ZSByZWx5IG9uIFJlbmRlclZpZXcgcG9zaXRpb25pbmcgdGhlIHJvb3QgbGF5
ZXIsCkBAIC0yNDksNyArMjQ4LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3MKICAgICAvLyBT
ZW5kIHRoZSBkZWxlZ2F0ZSBtZXNzYWdlIG9uIHRoZSB3ZWIgdGhyZWFkIHRvIGF2b2lkIDxyZGFy
Oi8vcHJvYmxlbS84NTY3Njc3PgogICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlXSBfd2Vi
dGhyZWFkX3dlYlZpZXc6d2ViVmlldygpIGF0dGFjaFJvb3RMYXllcjpncmFwaGljc0xheWVyID8g
Z3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogMF07CiB9Ci0jZW5kaWYKIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnRJT1M6OmRpZEZsdXNoQ29tcG9zaXRpbmdMYXllcnMoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCBkZGQ2NTg2YmQw
ZjJiYWZjOWNhMmYzZTczODdlZWFmZDFjNWQ2ZDk4Li44OTkxZDg0ZjNkZTYxYzNiMzEwMDMzYzdk
OWVkYmIxNzZmYzE0ZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dl
YlVJS2l0RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0
RGVsZWdhdGUuaApAQCAtODIsNyArODIsNyBAQAogLSAodm9pZClhZGRJbnB1dFN0cmluZzooTlNT
dHJpbmcgKilzdHIgd2l0aEZsYWdzOihOU1VJbnRlZ2VyKWZsYWdzOwogLSAodm9pZClkZWxldGVG
cm9tSW5wdXQ7CiAKLS8vIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nOyBvbmx5IGNhbGxlZCBpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGlzIGRlZmluZWQKKy8vIEFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nCiAtICh2b2lkKV93ZWJ0aHJlYWRfd2ViVmlldzooV2ViVmlldyopd2ViVmlldyBh
dHRhY2hSb290TGF5ZXI6KGlkKXJvb3RMYXllcjsKIC0gKHZvaWQpd2ViVmlld0RpZENvbW1pdENv
bXBvc2l0aW5nTGF5ZXJDaGFuZ2VzOihXZWJWaWV3Kil3ZWJWaWV3OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcubW0KaW5kZXggN2Y1OTExYWVmZTJiN2U1YjczZTU2OTA4ZGU3YzI4ODIzOTFl
MmZiMi4uNTRhM2Q0ODNlNTg3YTM5YmI4ODY2Njg2MmU2MmI1NjkyMzQ2OGI3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI3LDkgKzEyNyw3IEBAIC0gKEJPT0wpY3JlYXRl
UGx1Z2luCiAKICAgICBOU1N0cmluZyAqdXNlckFnZW50ID0gW1tzZWxmIHdlYlZpZXddIHVzZXJB
Z2VudEZvclVSTDpfYmFzZVVSTC5nZXQoKV07CiAgICAgQk9PTCBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IFtbW3NlbGYgd2ViVmlld10gcHJlZmVy
ZW5jZXNdIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkXTsKLSNlbmRpZgogICAgIF9ob3N0
c0xheWVyc0luV2luZG93U2VydmVyID0gW3NlbGYgd2luZG93SG9zdHNMYXllcnNJbldpbmRvd1Nl
cnZlcl07CiAKICAgICBfcHJveHkgPSBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQo
KS5pbnN0YW50aWF0ZVBsdWdpbihbX3BsdWdpblBhY2thZ2UuZ2V0KCkgcGF0aF0sIFtfcGx1Z2lu
UGFja2FnZS5nZXQoKSBwbHVnaW5Ib3N0QXJjaGl0ZWN0dXJlXSwgW19wbHVnaW5QYWNrYWdlLmdl
dCgpIGJ1bmRsZUlkZW50aWZpZXJdLCBzZWxmLCBfTUlNRVR5cGUuZ2V0KCksIF9hdHRyaWJ1dGVL
ZXlzLmdldCgpLCBfYXR0cmlidXRlVmFsdWVzLmdldCgpLCB1c2VyQWdlbnQsIF9zb3VyY2VVUkwu
Z2V0KCksCkBAIC0xNTEsOSArMTQ5LDcgQEAgLSAoQk9PTCljcmVhdGVQbHVnaW4KIC0gKHZvaWQp
Y3JlYXRlUGx1Z2luTGF5ZXIKIHsKICAgICBCT09MIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkID0gZmFsc2U7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gW1tbc2VsZiB3ZWJWaWV3XSBwcmVmZXJlbmNlc10g
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRdOwotI2VuZGlmCiAKICAgICBfcGx1Z2luTGF5
ZXIgPSBXS01ha2VSZW5kZXJMYXllcihfcHJveHktPnJlbmRlckNvbnRleHRJRCgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCA2ZDBmM2RkOGFkOTEzNmJkODJiZTNmMzgyNWU1NWI0MzM4ZjhkOTk1Li41ODkwYjY3ZTIw
N2NiMDRlOWFlNTAzZWJhMTA2ZWY5MzI3OTZiZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTA4OCw5ICsxMDg4LDcg
QEAgLSAoQk9PTCljcmVhdGVQbHVnaW4KICAgICAgICAgICAgIF9wbHVnaW5MYXllciA9IGFkb3B0
TlMoKENBTGF5ZXIgKil2YWx1ZSk7CiAKICAgICAgICAgICAgIEJPT0wgYWNjbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgICAgIGFjY2xlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBbW1tzZWxmIHdlYlZp
ZXddIHByZWZlcmVuY2VzXSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZF07Ci0jZW5kaWYK
ICAgICAgICAgICAgIGlmIChhY2NsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKSB7CiAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gV2ViSG9z
dGVkTmV0c2NhcGVQbHVnaW5WaWV3IGFuZCBXZWJOZXRzY2FwZVBsdWdpblZpZXcuCiAgICAgICAg
ICAgICAgICAgLy8gU2luY2UgdGhpcyBsYXllciBpc24ndCBnb2luZyB0byBiZSBpbnNlcnRlZCBp
bnRvIGEgdmlldywgd2UgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBsYXllciBhbmQgZmxpcCBpdHMg
Z2VvbWV0cnkKQEAgLTIwNzcsMTMgKzIwNzUsMTMgQEAgLSAoTlBFcnJvcilnZXRWYXJpYWJsZToo
TlBOVmFyaWFibGUpdmFyaWFibGUgdmFsdWU6KHZvaWQgKil2YWx1ZQogICAgICAgICAgICAgKihX
S05Ccm93c2VyQ29udGFpbmVyQ2hlY2tGdW5jcyAqKil2YWx1ZSA9IGJyb3dzZXJDb250YWluZXJD
aGVja0Z1bmNzKCk7CiAgICAgICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgICAg
IH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICAgICAgY2FzZSBXS05W
U3VwcG9ydHNDb21wb3NpdGluZ0NvcmVBbmltYXRpb25QbHVnaW5zQm9vbDoKICAgICAgICAgewog
ICAgICAgICAgICAgKihOUEJvb2wgKil2YWx1ZSA9IFtbW3NlbGYgd2ViVmlld10gcHJlZmVyZW5j
ZXNdIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkXTsKICAgICAgICAgICAgIHJldHVybiBO
UEVSUl9OT19FUlJPUjsKICAgICAgICAgfQotI2VuZGlmCisKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCBmMmI2ZTg2OThmYmU1OTgxMGQyODgwZWU4ZGRj
YTE2ZTU0ODlmM2JlLi40NTAzZWI0ZTdhNGQzZTMwMDdmODUwOWU5ZjdkM2RmOGU3ODJkOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1t
CkBAIC0yMzEsNyArMjMxLDYgQEAgLSAoQk9PTClwbHVnSW5zQXJlUnVubmluZwogCiAtIChDQUxh
eWVyICopc3VwZXJsYXllckZvclBsdWdpblZpZXc6KE5TVmlldyAqKXZpZXcKIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3Nl
bGYgd2ViRnJhbWVdKTsKICAgICBGcmFtZVZpZXcqIGNvcmVWaWV3ID0gY29yZUZyYW1lID8gY29y
ZUZyYW1lLT52aWV3KCkgOiBudWxscHRyOwogICAgIGlmICghY29yZVZpZXcpCkBAIC0yNDMsOSAr
MjQyLDYgQEAgLSAoQ0FMYXllciAqKXN1cGVybGF5ZXJGb3JQbHVnaW5WaWV3OihOU1ZpZXcgKil2
aWV3CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCiAgICAgcmV0dXJuIGxheWVyRm9yV2lkZ2V0
LT5wbGF0Zm9ybUxheWVyKCk7Ci0jZWxzZQotICAgIHJldHVybiBuaWw7Ci0jZW5kaWYKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IGQ1MDQ4OTBkN2E3OGJmZGI4NjhjZWY5M2RhYjZiYjk3OTYzYmFlYmQu
LjMzYTc0MDQ3NTlkY2VmZDhlOWNmN2Q5NGM5NjNlMjkxZTcyZjIxNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNjYs
NyArMTY2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50RW50aXJl
Q29udGVudHMoKSBjb25zdCBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsK
QEAgLTE4Myw3ICsxODIsNiBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgICAgIEFuaW1hdGlv
blRyaWdnZXIpOwogICAgIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCAyYzllYmY2ODJmNzFhOWMwZGQzYjA3ZjdjZTc4MGJkMTg0Yjk0
NmVkLi43ODczOTE3MzE5NmUyOGM3MDEyODk5OTQ5MzI0NzhjODEwZDAxODIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBA
IC02Niw2ICs2Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElu
cHV0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oPgpAQCAtODQsMTAgKzg1LDYgQEAKICNpbXBv
cnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+Ci0jZW5kaWYKLQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIu
aCIKICNlbmRpZgpAQCAtOTMwLDggKzkyNyw2IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91
bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QKICNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQog
ewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTk2NSw4ICs5NjAsNiBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShj
b25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBmN2NmNjcyNmIzZGM3ZjZlMzgz
NDlmMzRlYTY4ZTFhZDZiNTg3Yzg0Li4zZjRjMzM1YWZjMDY3N2MzMGIwNzJhN2Q5MGVjOGZiMTVk
OTVjNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTgyOSwxMiArMTgyOSwxMCBAQCBwcml2YXRl
OgogCiAjaWYgUExBVEZPUk0oSU9TKQogQGludGVyZmFjZSBXQUtWaWV3IChVSUtpdFNlY3JldHNX
ZWJLaXRLbm93c0Fib3V0U2VlVUlXZWJQbHVnSW5WaWV3KQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIC0gKFBsYXRmb3JtTGF5ZXIgKilwbHVnaW5MYXllcjsKIC0gKEJPT0wpd2ls
bFByb3ZpZGVQbHVnaW5MYXllcjsKIC0gKHZvaWQpYXR0YWNoUGx1Z2luTGF5ZXI7CiAtICh2b2lk
KWRldGFjaFBsdWdpbkxheWVyOwotI2VuZGlmCiBAZW5kCiAKIGNsYXNzIFBsdWdpbldpZGdldElP
UyA6IHB1YmxpYyBQbHVnaW5XaWRnZXQgewpAQCAtMTg0NCw3ICsxODQyLDYgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICB7CiAgICAgICAg
IGlmICghW3BsYXRmb3JtV2lkZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwbHVn
aW5MYXllcildKQpAQCAtMTg3MCw3ICsxODY3LDYgQEAgcHVibGljOgogICAgICAgICBpZiAoW3Bs
YXRmb3JtV2lkZ2V0KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkZXRhY2hQbHVnaW5M
YXllcildKQogICAgICAgICAgICAgW3BsYXRmb3JtV2lkZ2V0KCkgZGV0YWNoUGx1Z2luTGF5ZXJd
OwogICAgIH0KLSNlbmRpZgogfTsKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKQEAgLTE4ODIs
MTMgKzE4NzgsMTEgQEAgcHVibGljOgogICAgICAgICA6IFBsdWdpbldpZGdldCh2aWV3KQogICAg
IHsKICAgICB9Ci0gICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBbKFdlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgKilwbGF0Zm9ybVdpZGdldCgp
IHBsdWdpbkxheWVyXTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBnZXRGb3Jt
VmFsdWUoU3RyaW5nJiB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJD
bGlwVmlldy5tbQppbmRleCAwZWZiZjA4MTU2MzY3ODljNTk3MDdjZTJlMTVhODIzODFlNGU3YjBl
Li5hMmU5ZTllMDRlYzQ3ODc4OTE3MzFjZTFhMDc4MGEyYjY0NzNkMGJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KQEAgLTgyLDcgKzgyLDYgQEAgLSAoaWQpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAtIChOU1JlY3QpdmlzaWJsZVJlY3QKIHsKICAgICBp
ZiAoIV9pc1Njcm9sbGluZykKQEAgLTExNCw3ICsxMTMsNiBAQCAtICh2b2lkKV9pbW1lZGlhdGVT
Y3JvbGxUb1BvaW50OihOU1BvaW50KW5ld09yaWdpbgogCiAgICAgX2lzU2Nyb2xsaW5nID0gTk87
CiB9Ci0jZW5kaWYKIAogLSAodm9pZClyZXNldEFkZGl0aW9uYWxDbGlwCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAyYTVlN2QwMjcyNmM0MGU1NDA2OTFh
Y2EzMTBhODRlZTc3M2I3NTg2Li5mNDA3NTY0ZjZiNDI2MTQ5MTdjOTkxNDhjMjcxMWYyODQxZDdj
YjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEzNSw5
ICsxMzUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgog
I2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFy
dHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9y
dCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgpAQCAtMzIzLDcgKzMyMSw2IEBAIC0gKHZvaWQpY2VudGVy
U2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyOwogQGVuZAogCiAjaWYgIVBMQVRGT1JN
KElPUykKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBzdGF0aWMgSU1QIG9sZFNl
dE5lZWRzRGlzcGxheUluUmVjdElNUDsKIAogc3RhdGljIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KE5TVmlldyAqc2VsZiwgU0VMIGNtZCwgTlNSZWN0IGludmFsaWRSZWN0KQpAQCAtMzU3LDcg
KzM1NCw2IEBAIHN0YXRpYyB2b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChOU1ZpZXcgKnNlbGYs
IFNFTCBjbWQsIE5TUmVjdCBpbnZhbGlkUmVjdCkKIAogICAgIGZyYW1lVmlldy0+aW52YWxpZGF0
ZVJlY3QoaW52YWxpZFJlY3RJbkZyYW1lVmlld0Nvb3JkaW5hdGVzKTsKIH0KLSNlbmRpZiAvLyBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAo
V2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2b2lkKXNwZWFrU3RyaW5nOihOU1N0cmluZyAq
KXN0cmluZzsKQEAgLTU1MSwxMCArNTQ3LDggQEAgQHB1YmxpYwogICAgIEJPT0wgc3Vidmlld3NT
ZXRBc2lkZTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IE5TVmlldyAqbGF5ZXJIb3N0aW5nVmlldzsKICAgICBCT09MIGRyYXdpbmdJbnRvTGF5ZXI7Ci0j
ZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgTlNFdmVudCAqbW91c2VEb3duRXZlbnQ7
IC8vIEtlcHQgYWZ0ZXIgaGFuZGxpbmcgdGhlIGV2ZW50LgpAQCAtNjY0LDE0ICs2NTgsMTIgQEAg
KyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIEFTU0VSVChvbGRTZXRDdXJzb3JGb3JNb3VzZUxv
Y2F0aW9uSU1QKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKCFvbGRTZXROZWVkc0Rpc3BsYXlJblJlY3RJTVApIHsKICAgICAgICAgTWV0aG9kIHNl
dE5lZWRzRGlzcGxheUluUmVjdE1ldGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU1Zp
ZXcgY2xhc3NdLCBAc2VsZWN0b3Ioc2V0TmVlZHNEaXNwbGF5SW5SZWN0OikpOwogICAgICAgICBB
U1NFUlQoc2V0TmVlZHNEaXNwbGF5SW5SZWN0TWV0aG9kKTsKICAgICAgICAgb2xkU2V0TmVlZHNE
aXNwbGF5SW5SZWN0SU1QID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKHNldE5lZWRzRGlzcGxh
eUluUmVjdE1ldGhvZCwgKElNUClzZXROZWVkc0Rpc3BsYXlJblJlY3QpOwogICAgICAgICBBU1NF
UlQob2xkU2V0TmVlZHNEaXNwbGF5SW5SZWN0SU1QKTsKICAgICB9Ci0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjZW5kaWYKIApAQCAtNzYwLDkgKzc1Miw3IEBAIC0g
KHZvaWQpY2xlYXIKICAgICBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSA9IDA7CiAjZW5kaWYK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBsYXllckhvc3RpbmdWaWV3
ID0gbmlsOwotI2VuZGlmCiB9CiAKIEBlbmQKQEAgLTEzNjcsMTYgKzEzNTcsMTIgQEAgLSAodm9p
ZClfc2V0QXNpZGVTdWJ2aWV3cwogICAgIEFTU0VSVCghX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNp
ZGUpOwogICAgIEFTU0VSVChfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9PSBuaWwpOwogICAgIF9w
cml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZpZXdzOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAvLyBXZSBuZWVkIHRvIGtlZXAgdGhlIGxheWVyLWhvc3Rpbmcgdmll
dyBpbiB0aGUgc3Vidmlld3MsIG90aGVyd2lzZSB0aGUgbGF5ZXJzIGZsYXNoLgogICAgIGlmIChf
cHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewogICAgICAgICBOU0FycmF5KiBuZXdTdWJ2aWV3
cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOl9wcml2YXRlLT5sYXllckhvc3Rp
bmdWaWV3LCBuaWxdOwogICAgICAgICBfc3Vidmlld3MgPSBuZXdTdWJ2aWV3czsKICAgICB9IGVs
c2UKICAgICAgICAgX3N1YnZpZXdzID0gbmlsOwotI2Vsc2UKLSAgICBfc3Vidmlld3MgPSBuaWw7
Ci0jZW5kaWYgICAgCiAgICAgX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5k
aWYKICB9CkBAIC0xMzg1LDcgKzEzNzEsNiBAQCAtICh2b2lkKV9zZXRBc2lkZVN1YnZpZXdzCiAg
ewogI2lmICFQTEFURk9STShJT1MpCiAgICAgQVNTRVJUKF9wcml2YXRlLT5zdWJ2aWV3c1NldEFz
aWRlKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKF9wcml2YXRl
LT5sYXllckhvc3RpbmdWaWV3KSB7CiAgICAgICAgIFtfc3Vidmlld3MgcmVsZWFzZV07CiAgICAg
ICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzOwpAQCAtMTM5MywxMCArMTM3
OCw2IEBAIC0gKHZvaWQpX3NldEFzaWRlU3Vidmlld3MKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3
cyA9PSBuaWwpOwogICAgICAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsK
ICAgICB9Ci0jZWxzZQotICAgIEFTU0VSVChfc3Vidmlld3MgPT0gbmlsKTsKLSAgICBfc3Vidmll
d3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKLSNlbmRpZiAgICAKICAgICBfcHJpdmF0ZS0+
c2F2ZWRTdWJ2aWV3cyA9IG5pbDsKICAgICBfcHJpdmF0ZS0+c3Vidmlld3NTZXRBc2lkZSA9IE5P
OwogI2VuZGlmCkBAIC0xNjA2LDEwICsxNTg3LDggQEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQ
b2ludClwb2ludAogCiAgICAgaWYgKCFjYXB0dXJlSGl0c09uU3Vidmlld3MpIHsKICAgICAgICAg
TlNWaWV3KiBoaXRWaWV3ID0gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKF9wcml2YXRlICYmIGhpdFZpZXcgPT0gX3By
aXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpCiAgICAgICAgICAgICBoaXRWaWV3ID0gc2VsZjsKLSNl
bmRpZgogICAgICAgICByZXR1cm4gaGl0VmlldzsKICAgICB9CiAjZW5kaWYgLy8gIVBMQVRGT1JN
KElPUykKQEAgLTIzNDIsMjAgKzIzMjEsMTIgQEAgLSAodm9pZClfcmVzdW1lTnVsbEV2ZW50c0Zv
ckFsbE5ldHNjYXBlUGx1Z2lucwogCiAtIChCT09MKV9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZwogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gX3By
aXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgIT0gbmlsOwotI2Vsc2UKLSAgICByZXR1cm4gTk87Ci0j
ZW5kaWYKIH0KIAogLSAoTlNWaWV3ICopX2NvbXBvc2l0aW5nTGF5ZXJzSG9zdGluZ1ZpZXcKIHsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJuIF9wcml2YXRlLT5s
YXllckhvc3RpbmdWaWV3OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiAtIChC
T09MKV9pc0luUHJpbnRNb2RlCkBAIC0zMTgyLDEzICszMTUzLDExIEBAIC0gKHZvaWQpdmlld0Rp
ZE1vdmVUb1N1cGVydmlldwogICAgIGlmIChbc2VsZiBzdXBlcnZpZXddICE9IG5pbCkKICAgICAg
ICAgW3NlbGYgYWRkU3VwZXJ2aWV3T2JzZXJ2ZXJzXTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBpZiAoW3NlbGYgc3VwZXJ2aWV3XSAmJiBbc2VsZiBfaXNVc2luZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmddKSB7CiAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2Vs
ZiBfd2ViVmlld107CiAgICAgICAgIGlmIChbd2ViVmlldyBfcG9zdHNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTm90aWZpY2F0aW9uc10pCiAgICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uIG9iamVjdDp3ZWJWaWV3IHVzZXJJbmZvOm5p
bF07CiAgICAgfQotI2VuZGlmCiB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIApAQCAtMzY1
Miw3ICszNjIxLDcgQEAgLSAodm9pZClkcmF3UmVjdDooTlNSZWN0KXJlY3QKIAogICAgIFdlYlZp
ZXcgKndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykKICAgICAvLyBP
bmx5IGRvIHRoZSBzeW5jaHJvbml6YXRpb24gZGFuY2UgaWYgd2UncmUgZHJhd2luZyBpbnRvIHRo
ZSB3aW5kb3csIG90aGVyd2lzZQogICAgIC8vIHdlIHJpc2sgZGlzYWJsaW5nIHNjcmVlbiB1cGRh
dGVzIHdoZW4gbm8gZmx1c2ggaXMgcGVuZGluZy4KICAgICBpZiAoW05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSA9PSBbW3NlbGYgd2luZG93XSBncmFwaGljc0NvbnRleHRdICYmIFt3
ZWJWaWV3IF9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uXSkgewpAQCAtNTk5OCw3
ICs1OTY3LDYgQEAgLSAoQk9PTClfbmVlZHNMYXlvdXQKICAgICByZXR1cm4gW1tzZWxmIF9mcmFt
ZV0gX25lZWRzTGF5b3V0XTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IC0gKHZvaWQpYXR0YWNoUm9vdExheWVyOihDQUxheWVyKilsYXllcgogewogI2lmICFQTEFURk9S
TShJT1MpCkBAIC02MDczLDggKzYwNDEsNiBAQCAtIChCT09MKV93ZWJfaXNEcmF3aW5nSW50b0xh
eWVyCiAjZW5kaWYKIH0KIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViSFRNTFZpZXcgKFdlYk5TVGV4dElucHV0U3Vw
cG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFs
LmgKaW5kZXggOTg3NTQzOWE2MWRjNjJmYWE4ZTFiMWZhNTkxNGFiMzA3N2RjNGYxMC4uZTRhYjBh
MmQxMDVmMzFiYWRkMzU2NjNmOGNlZGUyMjhjMDdjZTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKQEAgLTMwLDkgKzMwLDcgQEAKIAog
I2ltcG9ydCAiV2ViSFRNTFZpZXdQcml2YXRlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiBAY2xhc3MgQ0FMYXllcjsKLSNlbmRpZgogQGNsYXNzIFdlYkZyYW1lOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NiwxMSArNjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAtICh2b2lkKV9kZXN0cm95QWxsV2ViUGx1Z2luczsKIC0gKEJPT0wpX25lZWRzTGF5b3V0Owog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogLSAodm9pZClhdHRhY2hSb290TGF5
ZXI6KENBTGF5ZXIqKWxheWVyOwogLSAodm9pZClkZXRhY2hSb290TGF5ZXI7CiAtIChCT09MKV93
ZWJfaXNEcmF3aW5nSW50b0xheWVyOwotI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCiAtICh2
b2lkKV9sYXlvdXRJZk5lZWRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUmVuZGVyTGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRl
ckxheWVyLm1tCmluZGV4IDM4NGVlZmU3NzY4ODM3MGM4YzAxMTJhNGJiZTBhZGEwYWFlZmNiN2Eu
LmVjMDA2NWE2MDEzMDg4NThkYmY2OTU3NmQwODJhNTMyYWJhY2UwYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTGF5ZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJMYXllci5tbQpAQCAtODAsNyArODAsNiBAQCArIChO
U1N0cmluZyAqKWNvbXBvc2l0aW5nSW5mb0ZvckxheWVyOihSZW5kZXJMYXllciopbGF5ZXIKICAg
ICAgICAgcmV0dXJuIEAiIjsKIAogICAgIE5TU3RyaW5nICpsYXllclR5cGUgPSBAIiI7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJlbmRlckxheWVyQmFja2luZyogYmFj
a2luZyA9IGxheWVyLT5iYWNraW5nKCk7CiAgICAgc3dpdGNoIChiYWNraW5nLT5jb21wb3NpdGlu
Z0xheWVyVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgTm9ybWFsQ29tcG9zaXRpbmdMYXllcjoKQEAg
LTEwMiw3ICsxMDEsNiBAQCArIChOU1N0cmluZyAqKWNvbXBvc2l0aW5nSW5mb0ZvckxheWVyOihS
ZW5kZXJMYXllciopbGF5ZXIKIAogICAgIGlmIChiYWNraW5nLT5oYXNBbmNlc3RvckNsaXBwaW5n
TGF5ZXIoKSkKICAgICAgICAgbGF5ZXJUeXBlID0gW2xheWVyVHlwZSBzdHJpbmdCeUFwcGVuZGlu
Z1N0cmluZzpAIiAoY2xpcHBlZCkiXTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIGxheWVyVHlwZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjMDgyZjkyZjdlZDA4YTVk
ZDc2MWZkNjg3YWM1MjU3YTg5N2EyNDUwLi5hNTljZjg0ZjE4YWEzYTYyMzZjMmE3ZWQwMDMwODc1
ZmY2NGE3NzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMjksNiAr
MjI5LDcgQEAKICNpbXBvcnQgPE1vYmlsZUdlc3RhbHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Q2FjaGUuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvR3JhcGhpY3NMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JY29uQ29udHJvbGxlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RhdGVOb3RpZmllci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaD4KQEAgLTI0NSwxMCArMjQ2LDYgQEAKICNp
bXBvcnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lmg+CiAjaW1w
b3J0IDxkaXNwYXRjaC9wcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5oPgotCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGlj
c0xheWVyLmg+Ci0jZW5kaWYKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCiAjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMTc0NCwxMiArMTc0MSwxMCBAQCAtICh2b2lkKV9jbG9z
ZQogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRyb2xsZXIpIHsKICAgICAgICAgX3ByaXZhdGUt
PmxheWVyRmx1c2hDb250cm9sbGVyLT5pbnZhbGlkYXRlKCk7CiAgICAgICAgIF9wcml2YXRlLT5s
YXllckZsdXNoQ29udHJvbGxlciA9IG51bGxwdHI7CiAgICAgfQotI2VuZGlmCiAgICAgCiAjaWYg
VVNFKEdMSUIpCiAgICAgW3NlbGYgX2NsZWFyR2xpYkxvb3BPYnNlcnZlcl07CkBAIC0zNDczLDcg
KzM0NjgsNiBAQCAtICh2b2lkKV9yZXN0b3JlUGx1Z0luc0Zyb21DYWNoZQogCiAtIChCT09MKV9z
ZXRNZWRpYUxheWVyOihDQUxheWVyKilsYXllciBmb3JQbHVnaW5WaWV3OihOU1ZpZXcqKXBsdWdp
blZpZXcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgV2ViVGhyZWFk
TG9jaygpOwogCiAgICAgRnJhbWUqIG1haW5Db3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFt
ZV07CkBAIC0zNDk1LDcgKzM0ODksNyBAQCAtIChCT09MKV9zZXRNZWRpYUxheWVyOihDQUxheWVy
KilsYXllciBmb3JQbHVnaW5WaWV3OihOU1ZpZXcqKXBsdWdpblZpZXcKICAgICAgICAgICAgIHJl
dHVybiBZRVM7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKKwogICAgIHJldHVybiBOTzsKIH0K
IApAQCAtMzg3MywzMCArMzg2NywyMiBAQCArIChOU0N1cnNvciAqKV9wb2ludGluZ0hhbmRDdXJz
b3IKIAogLSAoQk9PTClfcG9zdHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9ucwog
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gX3ByaXZhdGUt
PnBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnM7Ci0jZWxzZQotICAgIHJl
dHVybiBOTzsKLSNlbmRpZgotCiB9CiAtICh2b2lkKV9zZXRQb3N0c0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdOb3RpZmljYXRpb25zOihCT09MKWZsYWcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgX3ByaXZhdGUtPnBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlm
aWNhdGlvbnMgPSBmbGFnOwotI2VuZGlmCiB9CiAKIC0gKEJPT0wpX2lzVXNpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07CiAgICAgZm9yIChGcmFtZSog
ZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VO
ZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdChm
cmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgICAgICBpZiAoW2RvY3VtZW50Vmll
dyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dICYmIFsoV2ViSFRNTFZpZXcgKilk
b2N1bWVudFZpZXcgX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nXSkKICAgICAgICAgICAg
IHJldHVybiBZRVM7CiAgICAgfQotI2VuZGlmCisKICAgICByZXR1cm4gTk87CiB9CiAKQEAgLTM5
MjcsNyArMzkxMyw2IEBAIC0gKHZvaWQpc2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmlj
YXRpb246KGludCluZXdWYWx1ZQogCiAtIChCT09MKV9pc1NvZnR3YXJlUmVuZGVyYWJsZQogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBGcmFtZSogY29yZUZyYW1lID0g
W3NlbGYgX21haW5Db3JlRnJhbWVdOwogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gY29yZUZyYW1l
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7
CiAgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpKSB7CkBAIC0zOTM1
LDcgKzM5MjAsNyBAQCAtIChCT09MKV9pc1NvZnR3YXJlUmVuZGVyYWJsZQogICAgICAgICAgICAg
ICAgIHJldHVybiBOTzsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgorCiAgICAgcmV0dXJuIFlF
UzsKIH0KIApAQCAtNTIxOSw3ICs1MjA0LDcgQEAgLSAodm9pZCljbG9zZQogICAgIC8vIF9jbG9z
ZSBleGlzdGVkIGZpcnN0LCBhbmQgc29tZSBjbGllbnRzIG1pZ2h0IGJlIGNhbGxpbmcgb3Igb3Zl
cnJpZGluZyBpdCwgc28gY2FsbCB0aHJvdWdoLgogICAgIFtzZWxmIF9jbG9zZV07CiAKLSNpZiBQ
TEFURk9STShJT1MpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBQTEFURk9S
TShJT1MpCiAgICAgaWYgKF9wcml2YXRlLT5sYXllckZsdXNoQ29udHJvbGxlcikgewogICAgICAg
ICBfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRyb2xsZXItPmludmFsaWRhdGUoKTsKICAgICAgICAg
X3ByaXZhdGUtPmxheWVyRmx1c2hDb250cm9sbGVyID0gbnVsbHB0cjsKQEAgLTgzNDEsOCArODMy
Niw2IEBAIC0gKFdlYkZyYW1lICopX3NlbGVjdGVkT3JNYWluRnJhbWUKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAtIChCT09MKV9u
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uCiB7CiAgICAgcmV0dXJuIF9wcml2YXRl
LT5uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uOwpAQCAtODQ2NCw4ICs4NDQ3LDYg
QEAgLSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNoRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQK
IH0KICNlbmRpZgogCi0jZW5kaWYKLQogI2lmIEVOQUJMRShWSURFTykKIC0gKHZvaWQpX2VudGVy
RnVsbHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5vZGUqKW5vZGUKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBkNzA2OGVmODc2MmNkNWI2ZmM0MjViNjE0ODBk
MDdhMDI2NTk3NjkyLi4xZDI5MWQ3YzkzMTIyODcxMWFiZmFjNzdkMzVhOWU2MzJjY2Y1OTM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBAIC04MCw3ICs4MCw2IEBA
IGNsYXNzIFBhZ2U7CiBleHRlcm4gQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmc7CiBleHRl
cm4gaW50IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQ7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiBjbGFzcyBMYXllckZsdXNoQ29udHJvbGxlcjsKIAogY2xhc3MgV2ViVmll
d0xheWVyRmx1c2hTY2hlZHVsZXIgOiBwdWJsaWMgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxl
ciB7CkBAIC0xMTYsNyArMTE1LDYgQEAgcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7
CiAgICAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIgbV9sYXllckZsdXNoU2NoZWR1bGVyOwog
fTsKLSNlbmRpZgogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVuYW1lZCB0byBXZWJWaWV3
RGF0YS4KIEBpbnRlcmZhY2UgV2ViVmlld1ByaXZhdGUgOiBOU09iamVjdCB7CkBAIC0yMzIsMTQg
KzIzMCwxMiBAQCBwcml2YXRlOgogICAgIEJPT0wgc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW47
CiAKICAgICBCT09MIGluY2x1ZGVzRmxhdHRlbmVkQ29tcG9zaXRpbmdMYXllcnNXaGVuRHJhd2lu
Z1RvQml0bWFwOwotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAg
IC8vIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgbmV4dCB0aW1lIGEgV2ViSFRNTFZpZXcgZHJhd3Ms
IGl0IG5lZWRzIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgc2NyZWVuIHVwZGF0ZXMKICAgICAvLyBz
byB0aGF0IHRoZSBOU1ZpZXcgZHJhd2luZyBpcyB2aXN1YWxseSBzeW5jaHJvbml6ZWQgd2l0aCBD
QUxheWVyIHVwZGF0ZXMuCiAgICAgQk9PTCBuZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0
aW9uOwogICAgIEJPT0wgcG9zdHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uczsK
ICAgICBSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGxheWVyRmx1c2hDb250cm9sbGVyOwot
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIE5TUGFzdGVib2FyZCAqaW5zZXJ0aW9u
UGFzdGVib2FyZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4
IDBhYjM3M2ZjNzQ2NTExNGY1NzYyMTUxM2IwZTVkY2UxZWIyOWRmM2YuLjYyMzI1YWNjMjc4YWUy
MjhlM2Q5ZTA1NGE0NDljMjBkMWFiYzY3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5tbQpAQCAtNDYsNyArNDYsNiBAQAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWlu
YXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50ID0gMDsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OnNj
aGVkdWxlTGF5ZXJGbHVzaCgpCiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxl
KCk7CkBAIC03MCw3ICs2OSw2IEBAIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3
TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZsdXNoQ29udHJvbGxlciogZmx1CiAgICAgLCBtX2Zs
dXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xsZXIpCiB7CiB9Ci0jZW5kaWYKIAogQGltcGxlbWVu
dGF0aW9uIFdlYlZpZXdQcml2YXRlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdJbnRlcm5hbC5oCmluZGV4IDQxZDJkMTc3ZDEzZTUxODlkMDU5ZjVhMTNhMjA2MzQ4ZGVmOTQ3
ZmMuLmY2NDc1NzdjOTM4YzI0MGRkZDVjNjAwMjI3ZDk3ZGU2ZTc1N2U0YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtOTksMTEgKzk5LDkgQEAg
T0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAtICh2b2lkKV9kaXNwYXRjaERpZFJlY2Vp
dmVJY29uRnJvbVdlYkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lOwogI2VuZGlmCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAtIChCT09MKV9uZWVkc09uZVNob3REcmF3aW5n
U3luY2hyb25pemF0aW9uOwogLSAodm9pZClfc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9u
aXphdGlvbjooQk9PTCluZWVkc1N5bmNocm9uaXphdGlvbjsKIC0gKHZvaWQpX3NjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoOwotI2VuZGlmCiAKICNpZiBVU0UoR0xJQikKIC0gKHZvaWQpX3Nj
aGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAppbmRleCA3ZmY4NjNhYzc2MzQxYjA5MzY5M2VmMWM2
M2NhMDc1OWQxYjAwOGU2Li4xOTM3ZjVmMmFmZmIzYTkxNmUxZDNjZjQwNDY5NDU4MzRhODJhNzI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNw
cApAQCAtMTc2LDcgKzE3Niw2IEBAIHZvaWQgSFVEU2xpZGVyOjpkcmFnKGNvbnN0IEludFBvaW50
JiBwb2ludCwgYm9vbCBzdGFydCkKICAgICBtX2J1dHRvblBvc2l0aW9uID0gbWF4KDAsIG1pbiht
X3JlY3Qud2lkdGgoKSAtIG1fYnV0dG9uU2l6ZSwgcG9pbnQueCgpIC0gbV9kcmFnU3RhcnRPZmZz
ZXQpKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIEZ1bGxz
Y3JlZW5WaWRlb0NvbnRyb2xsZXI6OkxheWVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgTGF5ZXJDbGllbnQoRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlciogcGFyZW50KSA6IG1fcGFyZW50KHBhcmVudCkgeyB9CkBAIC0yMzIsNyAr
MjMxLDYgQEAgdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpMYXllckNsaWVudDo6cGxh
dGZvcm1DQUxheWVyTGF5b3V0U3VibGF5ZXJzT2ZMYXkKICAgICB2aWRlb0xheWVyLT5zZXRQb3Np
dGlvbih2aWRlb09yaWdpbik7CiAgICAgdmlkZW9MYXllci0+c2V0Qm91bmRzKEZsb2F0UmVjdChG
bG9hdFBvaW50KCksIHZpZGVvU2l6ZSkpOwogfQotI2VuZGlmIAogCiBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyKCkKICAgICA6IG1faHVkV2luZG93
KDApCkBAIC0yNDcsMTkgKzI0NSwxNSBAQCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyKCkKICAgICAsIG1faGl0V2lkZ2V0KDApCiAgICAgLCBtX21v
dmluZ1dpbmRvdyhmYWxzZSkKICAgICAsIG1fdGltZXIodGhpcywgJkZ1bGxzY3JlZW5WaWRlb0Nv
bnRyb2xsZXI6OnRpbWVyRmlyZWQpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgICwgbV9sYXllckNsaWVudChhZG9wdFB0cihuZXcgTGF5ZXJDbGllbnQodGhpcykpKQogICAg
ICwgbV9yb290Q2hpbGQoUGxhdGZvcm1DQUxheWVyV2luOjpjcmVhdGUoUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVMYXllciwgbV9sYXllckNsaWVudC5nZXQoKSkpCi0jZW5kaWYKICAgICAsIG1f
ZnVsbHNjcmVlbldpbmRvdyhhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVl
bldpbmRvdyh0aGlzKSkpCiB7CiB9CiAKIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6On5GdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgbV9yb290Q2hpbGQtPnNldE93bmVyKDApOwotI2VuZGlmCiB9CiAKIHZvaWQgRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCkKQEAgLTI4NCwxNCArMjc4LDEyIEBAIHZvaWQgRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlcjo6ZW50ZXJGdWxsc2NyZWVuKCkKIAogICAgIG1fZnVsbHNjcmVlbldpbmRvdy0+
Y3JlYXRlV2luZG93KHBhcmVudEh3bmQpOwogICAgIDo6U2hvd1dpbmRvdyhtX2Z1bGxzY3JlZW5X
aW5kb3ctPmh3bmQoKSwgU1dfU0hPVyk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIG1fZnVsbHNjcmVlbldpbmRvdy0+c2V0Um9vdENoaWxkTGF5ZXIobV9yb290Q2hpbGQp
OwogCiAgICAgUGxhdGZvcm1DQUxheWVyKiB2aWRlb0xheWVyID0gUGxhdGZvcm1DQUxheWVyOjpw
bGF0Zm9ybUNBTGF5ZXIobV9tZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV9y
b290Q2hpbGQtPmFwcGVuZFN1YmxheWVyKHZpZGVvTGF5ZXIpOwogICAgIG1fcm9vdENoaWxkLT5z
ZXROZWVkc0xheW91dCgpOwogICAgIG1fcm9vdENoaWxkLT5zZXRHZW9tZXRyeUZsaXBwZWQoMSk7
Ci0jZW5kaWYKIAogICAgIFJFQ1Qgd2luZG93UmVjdDsKICAgICBHZXRDbGllbnRSZWN0KG1fZnVs
bHNjcmVlbldpbmRvdy0+aHduZCgpLCAmd2luZG93UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L3dp
bi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmgKaW5kZXggMWM3NTUxNzAxZDhiMzM5M2M5MzU1
MDJkZjE1ZDg3YTliOGM0NGEwNi4uOGUxNTdkNzBjZmQ2NWIwNDczM2Q3NDNjYWI2MGJjYWUzNjNk
NjQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIu
aApAQCAtMzksOSArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgUGxhdGZv
cm1DQUxheWVyOwotI2VuZGlmCiB9CiAKIGNsYXNzIEhVRFdpZGdldCB7CkBAIC0xNTgsMTIgKzE1
NiwxMSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgbV9mdWxsc2NyZWVuU2l6ZTsK
ICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2h1ZFBvc2l0aW9uOwogICAgIE93blB0cjxXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93PiBtX2Z1bGxzY3JlZW5XaW5kb3c7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAgY2xhc3MgTGF5ZXJDbGll
bnQ7CiAgICAgZnJpZW5kIGNsYXNzIExheWVyQ2xpZW50OwogICAgIE93blB0cjxMYXllckNsaWVu
dD4gbV9sYXllckNsaWVudDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBt
X3Jvb3RDaGlsZDsKLSNlbmRpZgogCiAgICAgSFVEQnV0dG9uIG1fcGxheVBhdXNlQnV0dG9uOwog
ICAgIEhVREJ1dHRvbiBtX3RpbWVTbGlkZXJCdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxZjRlOWE5ZDA3
NjY0NmFjOGIyOGM3MjJmZDM3M2E4OTI5Yjk0MzNiLi4zOTYyMTE5ZjU2YzQzNTM5ZTE2Mzg4ZDJm
YzRjZWQyODIxZmJhMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVlbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SWNvbi5oPgpAQCAtNjIsMTAgKzYzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1
cmVzLmg+CiAjaW5jbHVkZSA8d2NoYXIuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KLSNlbmRpZgotCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gV2hlbiB5b3UgY2FsbCBHZXRPcGVuRmlsZU5hbWUs
IGlmIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLApAQCAtNzUxLDcgKzc0OCw2
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29y
KCkKICAgICBtX3dlYlZpZXctPnNldExhc3RDdXJzb3IoOjpHZXRDdXJzb3IoKSk7CiB9CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyKQogewogICAgIG1fd2ViVmlldy0+c2V0Um9vdENoaWxkTGF5ZXIoZ3JhcGhpY3NMYXll
cik7CkBAIC03NjEsNyArNzU3LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkKIHsKICAgICBtX3dlYlZpZXctPmZsdXNoUGVuZGluZ0dyYXBo
aWNzTGF5ZXJDaGFuZ2VzU29vbigpOwogfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYm
IFVTRShBVkZPVU5EQVRJT04pCiBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIFdlYkNo
cm9tZUNsaWVudDo6Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGEzZTE5
N2ZiM2UwY2YzOWU1OTJlZjkxMDczZjhiMDUyMmVkNTNjYS4uOGFkYjkxMTUxZGNkZGVmZTRiYzE0
NGZmYTA2MzI1NDQ4MWZkYWMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEzMCwxNiArMTMwLDE0IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9k
ZSopIHsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAvLyBQ
YXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAg
ICAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1l
KiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBz
cGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3cs
Ci0gICAgICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9u
eSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgeyB9Ci0gICAgICAgIC8vIFNl
dHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBz
byB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRy
YXdpbmcuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpOwotI2VuZGlmCisgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0
Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIC8vIFNl
dHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24g
dG8gdGhlIHdpbmRvdywKKyAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBp
biBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgorICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgeyB9CisgICAgLy8g
U2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQs
IHNvIHdlIG5lZWQKKyAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3
aW5nLgorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwog
CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRl
ZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDE4NjE3ZDIyYTM2MjYyNjFlOTQ0MThlNDU5ZmJk
OGQ5M2NmNjE1NTAuLmY2MzlhOTM2Y2VkZTE3NmRlNTEyMWUwNmJiNGNjNTBiZWRhOGNmMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTE1NTAsMTUgKzE1NTAsMTIgQEAg
SFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQo
Qk9PTCBlbmFibGVkKQogCiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZChCT09MKiBlbmFibGVkKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICNpZiBVU0UoQ0EpCiAgICAgKmVuYWJsZWQgPSBDQUNGTGF5ZXJUcmVlSG9zdDo6
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSgpICYmIGJvb2xWYWx1ZUZvcktleShXZWJL
aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXkpOwogI2Vsc2UKICAg
ICAqZW5hYmxlZCA9IFRSVUU7CiAjZW5kaWYKLSNlbHNlCi0gICAgKmVuYWJsZWQgPSBGQUxTRTsK
LSNlbmRpZgorCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXgg
YWEyZWI5ZDg3MzMzMWE1YWYwYzBmMGUwZTZkY2U3NmVjMGEyZjBkOS4uOWVjYjRlNzFhMjU3ZDIz
N2Q5MzdjMzE3YjhkMWNiOTBmNzE1MDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTE2NSw3
ICsxNjUsNyBAQAogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4gCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKENBKQorI2lmIFVTRShDQSkKICNpbmNsdWRlIDxXZWJDb3JlL0NBQ0ZMYXllclRyZWVI
b3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KICNlbmRpZgpAQCAt
MzkzLDkgKzM5Myw3IEBAIFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwgbV9sYXN0UGFuWSgwKQog
ICAgICwgbV94T3ZlcnBhbigwKQogICAgICwgbV95T3ZlcnBhbigwKQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICAsIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGZhbHNl
KQotI2VuZGlmCiAgICAgLCBtX25leHREaXNwbGF5SXNTeW5jaHJvbm91cyhmYWxzZSkKICAgICAs
IG1fbGFzdFNldEN1cnNvcigwKQogICAgICwgbV91c2VzTGF5ZXJlZFdpbmRvdyhmYWxzZSkKQEAg
LTQzNCwxMiArNDMyLDkgQEAgV2ViVmlldzo6fldlYlZpZXcoKQogICAgIEFTU0VSVCghbV9wcmVm
ZXJlbmNlcyk7CiAgICAgQVNTRVJUKCFtX3ZpZXdXaW5kb3cpOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogI2lmIFVTRShDQSkKICAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9z
dCk7CiAjZW5kaWYKLSAgICBBU1NFUlQoIW1fYmFja2luZ0xheWVyKTsKLSNlbmRpZgogCiAgICAg
V2ViVmlld0NvdW50LS07CiAgICAgZ0NsYXNzQ291bnQtLTsKQEAgLTcwMyw5ICs2OTgsNyBAQCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmNsb3NlKCkKIAogICAgIG1fZGlkQ2xv
c2UgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpOwotI2VuZGlmCiAKICAgICBXZWJOb3RpZmljYXRp
b25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShf
YnN0cl90KFdlYlZpZXdXaWxsQ2xvc2VOb3RpZmljYXRpb24pLkdldEJTVFIoKSwgc3RhdGljX2Nh
c3Q8SVdlYlZpZXcqPih0aGlzKSwgMCk7CiAKQEAgLTc3OSwxNCArNzcyLDEyIEBAIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6Y2xvc2UoKQogCiB2b2lkIFdlYlZpZXc6OnJlcGFp
bnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdl
ZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQogewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
KCkpIHsKICAgICAgICAgLy8gVGhlIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIGFuZCByZXBh
aW50Q29udGVudE9ubHkgcGFyYW1ldGVycyBhcmUgYWxsIGJhc2VkIG9uIGEgbm9uLQogICAgICAg
ICAvLyBjb21wb3NpdGluZyBwYWludGluZy9zY3JvbGxpbmcgbW9kZWwuCiAgICAgICAgIGFkZFRv
RGlydHlSZWdpb24od2luZG93UmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYK
IAogICAgIGlmICghcmVwYWludENvbnRlbnRPbmx5KSB7CiAgICAgICAgIFJFQ1QgcmVjdCA9IHdp
bmRvd1JlY3Q7CkBAIC04NDUsMTIgKzgzNiwxMCBAQCB2b2lkIFdlYlZpZXc6OmFkZFRvRGlydHlS
ZWdpb24oY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KQogICAgIC8vIGJ1dCBpdCB3YXMgYmVpbmcg
aGl0IGR1cmluZyBvdXIgbGF5b3V0IHRlc3RzLCBhbmQgaXMgYmVpbmcgaW52ZXN0aWdhdGVkIGlu
CiAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi8yOTM1MC4KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAg
ICAgICAgbV9iYWNraW5nTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChkaXJ0eVJlY3QpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBhdXRvIG5ld1JlZ2lvbiA9IGFk
b3B0R0RJT2JqZWN0KDo6Q3JlYXRlUmVjdFJnbihkaXJ0eVJlY3QueCgpLCBkaXJ0eVJlY3QueSgp
LAogICAgICAgICBkaXJ0eVJlY3QubWF4WCgpLCBkaXJ0eVJlY3QubWF4WSgpKSk7CkBAIC04NjEs
OSArODUwLDcgQEAgdm9pZCBXZWJWaWV3OjphZGRUb0RpcnR5UmVnaW9uKEdESU9iamVjdDxIUkdO
PiBuZXdSZWdpb24pCiB7CiAgICAgbV9uZWVkc0Rpc3BsYXkgPSB0cnVlOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFTU0VSVCghaXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkpOwotI2VuZGlmCiAKICAgICBMT0NBTF9HRElfQ09VTlRFUigwLCBfX0ZVTkNUSU9OX18p
OwogCkBAIC04ODIsMTQgKzg2OSwxMiBAQCB2b2lkIFdlYlZpZXc6OnNjcm9sbEJhY2tpbmdTdG9y
ZShGcmFtZVZpZXcqIGZyYW1lVmlldywgaW50IGR4LCBpbnQgZHksIGNvbnN0IEludAogewogICAg
IG1fbmVlZHNEaXNwbGF5ID0gdHJ1ZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBiZSBkb2luZyBzb21ldGhpbmcgc21hcnRlciBoZXJlLCBsaWtlIG1vdmlu
ZyB0aWxlcyBhcm91bmQgYW5kIHBhaW50aW5nCiAgICAgICAgIC8vIGFueSBuZXdseS1leHBvc2Vk
IHRpbGVzLiA8aHR0cDovL3dlYmtpdC5vcmcvYi81MjcxND4KICAgICAgICAgbV9iYWNraW5nTGF5
ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChzY3JvbGxWaWV3UmVjdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0jZW5kaWYKIAogICAgIExPQ0FMX0dESV9DT1VOVEVSKDAsIF9fRlVOQ1RJT05f
Xyk7CiAKQEAgLTk0MSw3ICs5MjYsNyBAQCB2b2lkIFdlYlZpZXc6OnNpemVDaGFuZ2VkKGNvbnN0
IEludFNpemUmIG5ld1NpemUpCiAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRvcExl
dmVsRnJhbWUoKSkpCiAgICAgICAgIGNvcmVGcmFtZS0+dmlldygpLT5yZXNpemUobmV3U2l6ZSk7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0Uo
Q0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5y
ZXNpemUoKTsKICAgICBpZiAobV9iYWNraW5nTGF5ZXIpIHsKQEAgLTk5NSw5ICs5ODAsNyBAQCBz
dGF0aWMgdm9pZCBnZXRVcGRhdGVSZWN0cyhIUkdOIHJlZ2lvbiwgY29uc3QgSW50UmVjdCYgZGly
dHlSZWN0LCBWZWN0b3I8SW50UmVjdAogCiB2b2lkIFdlYlZpZXc6OnVwZGF0ZUJhY2tpbmdTdG9y
ZShGcmFtZVZpZXcqIGZyYW1lVmlldywgSERDIGRjLCBib29sIGJhY2tpbmdTdG9yZUNvbXBsZXRl
bHlEaXJ0eSwgV2luZG93c1RvUGFpbnQgd2luZG93c1RvUGFpbnQpCiB7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFTU0VSVCghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
KCkpOwotI2VuZGlmCiAKICAgICBMT0NBTF9HRElfQ09VTlRFUigwLCBfX0ZVTkNUSU9OX18pOwog
CkBAIC0xMDc4LDcgKzEwNjEsNyBAQCB2b2lkIFdlYlZpZXc6OnBhaW50KEhEQyBkYywgTFBBUkFN
IG9wdGlvbnMpCiB7CiAgICAgTE9DQUxfR0RJX0NPVU5URVIoMCwgX19GVU5DVElPTl9fKTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkK
ICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgJiYgIXVzZXNMYXllcmVkV2luZG93
KCkpIHsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5mbHVzaFBlbmRpbmdMYXllckNoYW5nZXNO
b3coKTsKICAgICAgICAgLy8gRmx1c2hpbmcgbWlnaHQgaGF2ZSB0YWtlbiB1cyBvdXQgb2YgY29t
cG9zaXRpbmcgbW9kZS4KQEAgLTIxNDMsNyArMjEyNiw3IEBAIHZvaWQgV2ViVmlldzo6c2V0U2hv
dWxkSW52ZXJ0Q29sb3JzKGJvb2wgc2hvdWxkSW52ZXJ0Q29sb3JzKQogCiAgICAgbV9zaG91bGRJ
bnZlcnRDb2xvcnMgPSBzaG91bGRJbnZlcnRDb2xvcnM7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVl
SG9zdCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRTaG91bGRJbnZlcnRDb2xvcnMoc2hv
dWxkSW52ZXJ0Q29sb3JzKTsKICNlbmRpZgpAQCAtMjM4NywxMCArMjM3MCw4IEBAIExSRVNVTFQg
Q0FMTEJBQ0sgV2ViVmlldzo6V2ViVmlld1duZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sCiAgICAgICAgICAgICAgICAgUkVDVCB3aW5kb3dSZWN0OwogICAgICAg
ICAgICAgICAgIDo6R2V0Q2xpZW50UmVjdChoV25kLCAmd2luZG93UmVjdCk7CiAgICAgICAgICAg
ICAgICAgOjpJbnZhbGlkYXRlUmVjdChoV25kLCAmd2luZG93UmVjdCwgZmFsc2UpOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgICAgICBpZiAod2ViVmlldy0+
aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHdlYlZpZXct
Pm1fYmFja2luZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKLSNlbmRpZgogICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXTV9NT1VTRUFDVElWQVRFOgpAQCAt
NDk4OCwxMiArNDk2OSwxMCBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hh
bmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsK
ICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZWQpOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGhyID0gcHJlZnNQcml2YXRlLT5hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikp
CiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZChlbmFibGVkKTsKLSNlbmRpZgogCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPnNo
b3dEZWJ1Z0JvcmRlcnMoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQpAQCAtNjU2Nyw3
ICs2NTQ2LDYgQEAgdm9pZCBXZWJWaWV3Ojpkb3dubG9hZFVSTChjb25zdCBVUkwmIHVybCkKICAg
ICBkb3dubG9hZC0+c3RhcnQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIHZvaWQgV2ViVmlldzo6c2V0Um9vdENoaWxkTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIp
CiB7CiAgICAgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyhsYXllciA/IHRydWUgOiBmYWxzZSk7
CkBAIC02NjMwLDcgKzY2MDgsNiBAQCB2b2lkIFdlYlZpZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKICAgICB9CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogV2ViQ29yZTo6R3JhcGhpY3NEZXZp
Y2VBZGFwdGVyKiBXZWJWaWV3OjpncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdApAQCAtNjc0
Miw3ICs2NzE5LDYgQEAgSFJFU1VMVCBXZWJWaWV3OjpuZXh0RGlzcGxheUlzU3luY2hyb25vdXMo
KQogICAgIHJldHVybiBTX09LOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBkb3VibGUpCiB7CiAgICAgLy8gV2UgbmV2ZXIgc2V0IGFueSBhbmltYXRpb25zIG9uIG91
ciBiYWNraW5nIGxheWVyLgpAQCAtNjc4Niw4ICs2NzYyLDYgQEAgdm9pZCBXZWJWaWV3OjpmbHVz
aFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpCiAgICAgdmlldy0+Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9CiAKLSNlbmRpZgotCiBjbGFzcyBFbnVtVGV4
dE1hdGNoZXMgOiBwdWJsaWMgSUVudW1UZXh0TWF0Y2hlcwogewogICAgIGxvbmcgbV9yZWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmgKaW5kZXggM2Y0NmFlMDA1MGNlZWE2ZDk4NWZiYTUyMDM4NTI3MDM4YTc2MTBm
Mi4uYmRlYjFkMDNlYzY2ZGE3YWZkOTAzODc2ODcwNjlkN2I0ZjVmNWU2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaApAQCAtMzEsOSArMzEsMTEgQEAKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkR0RJ
T2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdXNwZW5kYWJsZVRpbWVyLmg+CkBAIC00Miwx
NyArNDQsMTIgQEAKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgPFdlYkNv
cmUvQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaD4KLSNlbmRpZgotCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVlbkNvbnRyb2xsZXJDbGllbnQuaD4KICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0EpCisjaWYgVVNFKENBKQogICAgIGNsYXNzIENBQ0ZMYXllclRyZWVIb3N0OwogI2VuZGlm
CiAgICAgY2xhc3MgRnVsbFNjcmVlbkNvbnRyb2xsZXI7CkBAIC04NywxMCArODQsOCBAQCBjbGFz
cyBXZWJWaWV3CiAgICAgLCBwdWJsaWMgSVdlYk5vdGlmaWNhdGlvbk9ic2VydmVyCiAgICAgLCBw
dWJsaWMgSURyb3BUYXJnZXQKICAgICAsIFdlYkNvcmU6OldpbmRvd01lc3NhZ2VMaXN0ZW5lcgot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDbGllbnQKICAgICAsIFdlYkNvcmU6OkNBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Ci0jZW5k
aWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBXZWJDb3JlOjpGdWxsU2NyZWVu
Q29udHJvbGxlckNsaWVudAogI2VuZGlmCkBAIC05NTAsMTAgKzk0NSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgV2ViQ29yZTo6VVJMJik7CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVy
Q2hhbmdlc1Nvb24oKTsKICAgICB2b2lkIHNldFJvb3RDaGlsZExheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKTsKLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQogICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VB
ZGFwdGVyKCkgY29uc3Q7CkBAIC0xMDIzLDcgKzEwMTYsNiBAQCBwcml2YXRlOgogICAgIC8vIChz
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MjY0KQogICAgIERX
T1JEIG1fbGFzdERyb3BFZmZlY3Q7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmlt
YXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopOwpAQCAtMTAzMSw3ICsxMDIzLDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIENB
Q0ZMYXllclRyZWVIb3N0Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoUGVuZGluZ0dyYXBo
aWNzTGF5ZXJDaGFuZ2VzKCk7Ci0jZW5kaWYKIAogICAgIGJvb2wgbV9zaG91bGRJbnZlcnRDb2xv
cnM7CiAgICAgdm9pZCBzZXRTaG91bGRJbnZlcnRDb2xvcnMoYm9vbCk7CkBAIC0xMTUyLDcgKzEx
NDMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgT3duUHRyPEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI+
IG1fZnVsbFNjcmVlblZpZGVvQ29udHJvbGxlcjsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7IH0KICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7CiAjaWYgVVNFKENBKQpAQCAtMTE2MCw3ICsxMTUw
LDYgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+IG1fYmFja2luZ0xheWVyOwogICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmc7Ci0jZW5kaWYKIAogICAgIGJvb2wgbV9uZXh0RGlzcGxheUlzU3luY2hyb25vdXM7
CiAgICAgYm9vbCBtX3VzZXNMYXllcmVkV2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAppbmRleCA5ZWFk
NDUxYTU2NDAzOGNmZDE3ZWUzN2RlOGMwOGU3MDM5YTJlZGVjLi4wZWExNTk0Mjc0YWM2YjQ3YmQ1
ZTUxMjNlNDliMDU3NTA5Yjg3NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcApAQCAtMzE3LDcgKzMxNyw2
IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6Om5lZWRUb3VjaEV2ZW50cyhib29sKQogfQogI2Vu
ZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIENocm9tZUNsaWVu
dFdpbkNFOjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zMzIsNyArMzMxLDYgQEAgdm9pZCBDaHJvbWVD
bGllbnRXaW5DRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cnVuT3Bl
blBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmgKaW5kZXggMzE4NDcyMDFhYWY0OGFmZThjZThlOGY1NDE0YWRkYjYwODNlNTM1
Mi4uMWFjOTA2MmJkODI0NTMyZWE1ZDUzZDE3MTM2ZDA4OTBiYWIyYWY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
aApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1YmxpYzoKICAgICAvLyB3aWxsIGJlIGNhbGxlZCBmcmVx
dWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgogICAgIHZpcnR1YWwgdm9p
ZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFBhc3MgMCBhcyB0aGUgR3Jh
cGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgogICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhl
IG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCkBAIC0xNDYsNyArMTQ1
LDYgQEAgcHVibGljOgogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmll
dyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCiAgICAgLy8gdG8gZG8gYW4gZWFnZXIg
bGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDI3N2Iw
ODkwZWQzNTQ4NTA3YmM2NThlMDkzZmM3NThkNGRhMmYzZDMuLjNjN2IxZjBjYTI4ZTg3M2EzNjlm
ODIyOGIzMDY0ZGY0ZDM0MDA3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTU5LDkgKzU5LDcgQEAgUGx1
Z2luQ29udHJvbGxlclByb3h5OjpQbHVnaW5Db250cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIGMKICAgICAsIG1fcGx1Z2luSW5zdGFuY2VJRChjcmVhdGlvblBh
cmFtZXRlcnMucGx1Z2luSW5zdGFuY2VJRCkKICAgICAsIG1fdXNlckFnZW50KGNyZWF0aW9uUGFy
YW1ldGVycy51c2VyQWdlbnQpCiAgICAgLCBtX2lzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChjcmVh
dGlvblBhcmFtZXRlcnMuaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICAsIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZChjcmVhdGlvblBhcmFtZXRlcnMuaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCkKLSNl
bmRpZgogICAgICwgbV9pc0luaXRpYWxpemluZyhmYWxzZSkKICAgICAsIG1fcGFpbnRUaW1lcihS
dW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5Db250cm9sbGVyUHJveHk6OnBhaW50KQogICAg
ICwgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDNkMjQ5MmY5NjIzNDdiZGQ4M2IwMGEzNDg3ZDY0ZDUzOTFhZTA0YWYuLmY0YmE0Y2JjNWE1
NzY2MGQ0MmZhN2YyNTYyNTAyMTM5YjdiN2MxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM5
LDkgKzM5LDcgQEAgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjpQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMoKQogICAgICwgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQogICAgICwgYXN5
bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKGZhbHNlKQogICAgICwgYXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKGZhbHNlKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAsIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2Up
Ci0jZW5kaWYKIHsKIH0KIApAQCAtNTUsMTAgKzUzLDcgQEAgdm9pZCBQbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFz
eW5jaHJvbm91c0NyZWF0aW9uSW5jb21wbGV0ZTsKICAgICBlbmNvZGVyIDw8IGFydGlmaWNpYWxQ
bHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBlbmNvZGVyIDw8IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQ7Ci0jZW5kaWYKIH0KIAogYm9vbCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiBy
ZXN1bHQpCkBAIC04NywxMCArODIsOCBAQCBib29sIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBQbHVnaW5DcmVhdAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRl
bGF5RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM4OWY3NTVjYjg1ZTFkMDZm
YjUxMjBiNTM4OWFhNzcxNGQyMTg5ZDUuLmQyNTNkMWNiMmIzYTA5NWZlMzlhNDE3MmQyYTIzZmYz
MTQ4NWMwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNjcsMTAgKzY3LDggQEAgc3RydWN0IFBsdWdp
bkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgLy8gU2ltdWxhdGVkIGluaXRpYWxpemF0aW9uIGRl
bGF5IHRlc3QgYXN5bmNocm9ub3VzIHBsdWdpbiBpbml0aWFsaXphdGlvbgogICAgIGJvb2wgYXJ0
aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFdoZXRoZXIgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgaXMgZW5hYmxlZC4KICAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7
Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCBhODdhMzg4MjRhMGUyY2EwZDkzNWYw
YmNkNGUyMGRhMDIyNjk1MTNkLi4yYWVmMjA2NTc3MmYxZTRjZDY1Y2QyMmQ5MzNlNDMwZDNiYjE5
OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApA
QCAtNTUsOSArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2RhbFdpbmRvd0lzU2hvd2lu
Zyhib29sKTsKICAgICB2b2lkIHNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCk7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbWFjaF9wb3J0X3QgY29tcG9z
aXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRl
clNlcnZlclBvcnQ7IH0KLSNlbmRpZgogCiAgICAgYm9vbCBsYXVuY2hQcm9jZXNzKGNvbnN0IFN0
cmluZyYgbGF1bmNoUGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAg
Ym9vbCBsYXVuY2hBcHBsaWNhdGlvbkF0VVJMKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzKTsKQEAgLTExMyw3ICsxMTEsNyBAQCBwcml2YXRl
OgogCiAgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luUHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVU
aW1lcjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFD
KQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBUaGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2Vs
ZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIG1hY2hfcG9ydF90IG1fY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNw
cAppbmRleCBmNGJhYWQzMzFiNDVkMzRjMThiYzI5M2VjZWY2NTQ3ZjdhY2JkNDc2Li5kNjZiZDA2
ZDQzMjFmMzM0YjQ1YWZmZDA5NmRiZDAxYWM5NmY5OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZW5kZXJMYXllci5jcHAKQEAgLTg1LDcgKzg1LDYgQEAgV2ViUmVuZGVyTGF5ZXI6Oldl
YlJlbmRlckxheWVyKFJlbmRlckxheWVyKiBsYXllcikKICAgICBtX3JlbmRlcmVyID0gV2ViUmVu
ZGVyT2JqZWN0OjpjcmVhdGUoJmxheWVyLT5yZW5kZXJlcigpKTsKICAgICBtX2lzUmVmbGVjdGlv
biA9IGxheWVyLT5pc1JlZmxlY3Rpb24oKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIFJlbmRlckxh
eWVyQmFja2luZyogYmFja2luZyA9IGxheWVyLT5iYWNraW5nKCk7CiAgICAgICAgIG1faXNDbGlw
cGluZyA9IGJhY2tpbmctPmhhc0NsaXBwaW5nTGF5ZXIoKTsKQEAgLTEwNSwxMyArMTA0LDEwIEBA
IFdlYlJlbmRlckxheWVyOjpXZWJSZW5kZXJMYXllcihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0jZW5kaWYKICAgICAgICAg
bV9pc0NsaXBwaW5nID0gZmFsc2U7CiAgICAgICAgIG1faXNDbGlwcGVkID0gZmFsc2U7CiAgICAg
ICAgIG1fY29tcG9zaXRpbmdMYXllclR5cGUgPSBOb25lOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB9Ci0jZW5kaWYKIAogICAgIG1fYWJzb2x1dGVCb3VuZGluZ0JveCA9
IGxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaAppbmRleCA2OWRmN2U2YTA4ODZi
MjFiZmFjZWUyNjEzOWM4MWEzODY4OWIzMDAwLi4xNDlhMjZkZjA1NGQxM2JiZDE0NzE0Mjg2NWE3
OTBhOTJmY2U5NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlX2gKICNkZWZpbmUgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVfaAogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0
bWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlZ2lvbi5oPgpAQCAtMTAyLDYgKzEwMCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5k
aWYgLy8gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXggN2RkNTJiNjA5NzFk
NTFlZjYyM2E3N2E0YjA3NzM3M2Q4NTQzMDU3OC4uOTUzOTRhZmJkMTY5YTViYWYwZGRhYzcwYWQ3
ZmY0ZjFlNTRhMTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC0yNiw4ICsyNiw2IEBACiAjaW1wb3J0ICJjb25m
aWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW1w
b3J0ICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCkBAIC0z
NDksNSArMzQ3LDMgQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVj
dHNCZWluZ0RyYXduKENHQ29udGV4dFJlZiBjb250ZXh0LCB2b2kKICAgICAgICAgYmxvY2socmVj
dFRvRHJhdyk7CiAgICAgfQogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dM
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250
ZXh0LmNwcAppbmRleCA4NjJkZGJiMzllMTFjYTBjMzFiNDZkOGExMzQ3YjVmMjlmMGM5YjhhLi44
MTk4ZDYxZWE4YjgzMGQ2ZDBmZGY2NWE0NjQyZWE5NzQ4YWQ1ZmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcApAQCAtMjQsOSAr
MjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkV2YXNHTENvbnRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00NSw0ICs0MiwzIEBAIEV2YXNHTENvbnRleHQ6On5FdmFzR0xDb250ZXh0
KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaAppbmRleCAyZWY3MzY0ZGNhM2M3
ODhiOTVmNWViNzUwOTFiNjE4YzhlZGQyZTA0Li44ODYxNTliOTIzMjU1NTQxZTI5Y2RmNDI4NmRm
Mjk1ZmU0MzExMDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FdmFzR0xDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXZhc0dMQ29udGV4dC5oCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpZm5kZWYgRXZhc0dMQ29udGV4
dF9oCiAjZGVmaW5lIEV2YXNHTENvbnRleHRfaAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKIAogI2luY2x1ZGUgPEV2YXNfR0wuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgpAQCAtNTcsNSArNTYsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNlbmRpZiAvLyBFdmFzR0xD
b250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2
YXNHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dM
U3VyZmFjZS5jcHAKaW5kZXggYzdlYzEzYzhlMDA5MjEzNTZlNDExNGJiOGU5NDZhMzljMjliYmNj
NC4uMTYzMDFjYWZiYTVmMTZjODhmMmM3NjcxOWZjOGU2NWMxMWRhZDgxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKQEAgLTI0
LDggKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiRXZhc0dMU3VyZmFjZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQ0LDQgKzQyLDMgQEAgRXZhc0dMU3VyZmFjZTo6fkV2YXNHTFN1cmZh
Y2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCmluZGV4IGY2ZmIyYjViMGUz
NDc0NWM2ZDk2ZGE2ODI4ZDIyZGEzZGQ5ZDUwYTQuLmRhNzZiMWMxZDM1MGEzMTNkZDFiNmRhYzQy
MjU2NjAwZDdlYWE1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FdmFzR0xTdXJmYWNlLmgKQEAgLTI1LDcgKzI1LDYgQEAKIAogI2lmbmRlZiBFdmFzR0xTdXJm
YWNlX2gKICNkZWZpbmUgRXZhc0dMU3VyZmFjZV9oCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogCiAjaW5jbHVkZSA8RXZhc19HTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6
ZS5oPgpAQCAtNjUsNSArNjQsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNlbmRpZiAvLyBFdmFz
R0xTdXJmYWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5j
cHAKaW5kZXggMGQ5NWEyNmFhNzA0ZmQwZmExNDNmYTQ3NDIzZWQzYWMxZjliYWI5OS4uOTcwMGM1
YzY5NzQxNWUxNGQ5ZjM3M2VmOTRiOTRlZTA2Mjc2MjZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTY2LDkgKzY2LDcgQEAKICNpbmNsdWRl
IDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4K
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgot
I2VuZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpA
QCAtMjg1LDEwICsyODMsOCBAQCBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1JlZiB2aWV3LCBFdmFz
X09iamVjdCogZXZhc09iamVjdCkKICNlbmRpZgogICAgICwgbV9kaXNwbGF5VGltZXIodGhpcywg
JkV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKQogICAgICwgbV9pbnB1dE1ldGhvZENvbnRleHQo
SW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUodGhpcywgc21hcnREYXRhKCktPmJhc2UuZXZh
cykpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50KHRoaXMpCiAgICAgLCBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIo
cGFnZSgpLCAmbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50KQotI2VuZGlmCiAgICAgLCBt
X2lzQWNjZWxlcmF0ZWQodHJ1ZSkKIHsKICAgICBBU1NFUlQobV9ldmFzT2JqZWN0KTsKQEAgLTI5
Niw3ICsyOTIsNiBAQCBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1JlZiB2aWV3LCBFdmFzX09iamVj
dCogZXZhc09iamVjdCkKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgd2hlbiBwb3NzaWJsZS4KICAg
ICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4od2ViVmlldygpKS0+c2V0RXdrVmlldyh0aGlzKTsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9ldmFzR0wgPSBhZG9wdFB0
cihldmFzX2dsX25ldyhldmFzX29iamVjdF9ldmFzX2dldChtX2V2YXNPYmplY3QpKSk7CiAgICAg
aWYgKG1fZXZhc0dMKQogICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBFdmFzR0xDb250ZXh0Ojpj
cmVhdGUobV9ldmFzR0wuZ2V0KCkpOwpAQCAtMzA3LDE0ICszMDIsMTEgQEAgRXdrVmlldzo6RXdr
VmlldyhXS1ZpZXdSZWYgdmlldywgRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgfQogCiAg
ICAgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IG1faXNBY2NlbGVyYXRlZDsKLSNlbmRpZgogICAg
IFdLVmlld0luaXRpYWxpemUod2tWaWV3KCkpOwogCiAgICAgV0tQYWdlR3JvdXBSZWYgd2tQYWdl
R3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2tQYWdlKCkpOwogICAgIFdLUHJlZmVyZW5jZXNS
ZWYgd2tQcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2tQYWdlR3JvdXAp
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBXS1ByZWZlcmVuY2VzU2V0
V2ViR0xFbmFibGVkKHdrUHJlZmVyZW5jZXMsIHRydWUpOwotI2VuZGlmCiAgICAgV0tQcmVmZXJl
bmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHdrUHJlZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQod2tQcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQ
cmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCh3a1ByZWZlcmVu
Y2VzLCB0cnVlKTsKQEAgLTU1OSw3ICs1NTEsNiBAQCB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1l
ckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9
IHNtYXJ0RGF0YSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChtX3BlbmRpbmdTdXJmYWNlUmVzaXplKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIEdMIHN1cmZh
Y2UgaGVyZSBzbyB0aGF0IEV2YXMgaGFzIG5vIGNoYW5jZSBvZiBwYWludGluZyB0byBhbiBlbXB0
eSBHTCBzdXJmYWNlLgogICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZSgpKQpAQCAtNTY5LDcg
KzU2MCw2IEBAIHZvaWQgRXdrVmlldzo6ZGlzcGxheVRpbWVyRmlyZWQoVGltZXI8RXdrVmlldz4q
KQogCiAgICAgICAgIG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSBmYWxzZTsKICAgICB9Ci0jZW5k
aWYKIAogICAgIGlmICghbV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IHN1cmZhY2UgPSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uoc2QtPmltYWdlKTsKQEAg
LTU4MCwxMSArNTcwLDExIEBAIHZvaWQgRXdrVmlldzo6ZGlzcGxheVRpbWVyRmlyZWQoVGltZXI8
RXdrVmlldz4qKQogICAgICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2Qt
PmltYWdlLCAwLCAwLCBzZC0+dmlldy53LCBzZC0+dmlldy5oKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBldmFzX2dsX21h
a2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1f
ZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKTsKIAogICAgIFdLVmlld1BhaW50VG9DdXJyZW50R0xD
b250ZXh0KHdrVmlldygpKTsKLSNlbmRpZgorCiAgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8g
YSBuYXRpdmUgc3VyZmFjZSwgd2hpY2ggaXMgaW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGVzLgog
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHNkLT52aWV3
LngsIHNkLT52aWV3LnksIHNkLT52aWV3LncsIHNkLT52aWV3LmgpOwogfQpAQCAtODEyLDcgKzgw
Miw2IEBAIHZvaWQgRXdrVmlldzo6ZG9uZVdpdGhUb3VjaEV2ZW50KFdLVG91Y2hFdmVudFJlZiBl
dmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIGJvb2wgRXdrVmlldzo6Y3JlYXRlR0xTdXJmYWNlKCkKIHsKICAg
ICBpZiAoIW1faXNBY2NlbGVyYXRlZCkKQEAgLTg0Niw3ICs4MzUsNiBAQCBib29sIEV3a1ZpZXc6
OmNyZWF0ZUdMU3VyZmFjZSgpCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAvKioKQEAgLTEyMTEsMTIgKzExOTksMTAgQEAgdm9p
ZCBFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBldmFzT2Jq
ZWN0KQogICAgICAgICBzbWFydERhdGEtPnZpZXcuaCA9IGhlaWdodDsKIAogICAgICAgICBXS1Zp
ZXdTZXRTaXplKHNlbGYtPndrVmlldygpLCBXS1NpemVNYWtlKHdpZHRoLCBoZWlnaHQpKTsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChXS1BhZ2VVc2VGaXhl
ZExheW91dChzZWxmLT53a1BhZ2UoKSkpCiAgICAgICAgICAgICBzZWxmLT5wYWdlVmlld3BvcnRD
b250cm9sbGVyKCkuZGlkQ2hhbmdlVmlld3BvcnRTaXplKHNlbGYtPnNpemUoKSk7CiAKICAgICAg
ICAgc2VsZi0+c2V0TmVlZHNTdXJmYWNlUmVzaXplKCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAg
LTEyMjUsOSArMTIxMSw3IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdFNob3coRXZh
c19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRh
ID0gdG9TbWFydERhdGEoZXZhc09iamVjdCk7CiAgICAgQVNTRVJUKHNtYXJ0RGF0YSk7CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCF0b0V3a1ZpZXcoc21hcnRE
YXRhKS0+bV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkKLSNlbmRpZgogICAgICAgICBzaG93RXZhc09i
amVjdHNJZk5lZWRlZChzbWFydERhdGEpOwogfQogCkBAIC0xMzk1LDcgKzEzNzksNiBAQCBQYXNz
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6dGFrZVNuYXBzaG90KCkKICAgICAgICAg
ZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNk
ID0gc21hcnREYXRhKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChtX2lzQWNjZWxlcmF0ZWQpIHsKICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25h
cHNob3QgPSBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoMCwgMCwgc2QtPnZpZXcudywg
c2QtPnZpZXcuaCk7CiAgICAgICAgIC8vIFJlc3VtZSBhbGwgYW5pbWF0aW9ucy4KQEAgLTE0MDMs
NyArMTM4Niw3IEBAIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBFd2tWaWV3Ojp0YWtlU25h
cHNob3QoKQogCiAgICAgICAgIHJldHVybiBzbmFwc2hvdC5yZWxlYXNlKCk7CiAgICAgfQotI2Vu
ZGlmCisKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGNyZWF0ZVN1cmZh
Y2VGb3JJbWFnZShzZC0+aW1hZ2UpOwogICAgIC8vIFJlc3VtZSBhbGwgYW5pbWF0aW9ucy4KICAg
ICBXS1ZpZXdSZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucyh3a1ZpZXcoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggYzUzY2NiYjBi
ZjJmMzYyYWJjZTJhMTVlNzA5OWJiMGYzYmRjNGRjYS4uYjRiMWE1ZGUyNDE1Zjc0MGVjYmM4ZmQz
NDU3ZTdkZTc3MWVjYjhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuaApAQCAtMjUsNiArMjUsOCBAQAogI2luY2x1ZGUgIkV2YXNHTFN1cmZhY2UuaCIKICNp
bmNsdWRlICJFd2tWaWV3Q2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFy
eS5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUmVmUHRyRWZsLmgiCiAj
aW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIK
QEAgLTUwLDExICs1Miw2IEBACiAjaW5jbHVkZSAiZXdrX3RvdWNoLmgiCiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250
cm9sbGVyLmgiCi0jaW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgot
I2VuZGlmCi0KIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05MiwxMCArODksOCBAQCBjbGFzcyBFd2tQb3B1cE1l
bnU7CiBjbGFzcyBFd2tTZXR0aW5nczsKIGNsYXNzIEV3a1dpbmRvd0ZlYXR1cmVzOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfQ29u
dGV4dCBFdmFzX0dMX0NvbnRleHQ7CiB0eXBlZGVmIHN0cnVjdCBfRXZhc19HTF9TdXJmYWNlIEV2
YXNfR0xfU3VyZmFjZTsKLSNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9E
YXRhIEV3a19WaWV3X1NtYXJ0X0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9D
bGFzcyBFd2tfVmlld19TbWFydF9DbGFzczsKQEAgLTEyMCw5ICsxMTUsNyBAQCBwdWJsaWM6CiAg
ICAgRXdrQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QoKSB7IHJldHVybiBtX2JhY2tG
b3J3YXJkTGlzdC5nZXQoKTsgfQogICAgIEV3a1dpbmRvd0ZlYXR1cmVzKiB3aW5kb3dGZWF0dXJl
cygpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFdlYktpdDo6UGFn
ZVZpZXdwb3J0Q29udHJvbGxlciYgcGFnZVZpZXdwb3J0Q29udHJvbGxlcigpIHsgcmV0dXJuIG1f
cGFnZVZpZXdwb3J0Q29udHJvbGxlcjsgfQotI2VuZGlmCiAKICAgICB2b2lkIHNldERldmljZVNj
YWxlRmFjdG9yKGZsb2F0IHNjYWxlKTsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0OwpAQCAtMTYxLDEwICsxNTQsOSBAQCBwdWJsaWM6CiAKICAgICBXS1JlY3Qgd2luZG93R2Vv
bWV0cnkoKSBjb25zdDsKICAgICB2b2lkIHNldFdpbmRvd0dlb21ldHJ5KGNvbnN0IFdLUmVjdCYp
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGJvb2wgY3JlYXRlR0xT
dXJmYWNlKCk7CiAgICAgdm9pZCBzZXROZWVkc1N1cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1
cmZhY2VSZXNpemUgPSB0cnVlOyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogICAgIHZvaWQgcmVxdWVzdENvbG9yUGlja2VyKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0
ZW5lclJlZiBsaXN0ZW5lciwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKQEAgLTI1NywxMiArMjQ5
LDExIEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fZXZhc09iamVjdDsKICAgICBSZWZQ
dHI8RXdrQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJlZlB0cjxFd2tQYWdlR3JvdXA+IG1fcGFn
ZUdyb3VwOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBPd25QdHI8RXZh
c19HTD4gbV9ldmFzR0w7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dMQ29udGV4dD4gbV9ldmFz
R0xDb250ZXh0OwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3Vy
ZmFjZTsKICAgICBib29sIG1fcGVuZGluZ1N1cmZhY2VSZXNpemU7Ci0jZW5kaWYKKwogICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsPiBtX3BhZ2VMb2FkQ2xp
ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VQb2xpY3lDbGllbnRFZmw+IG1f
cGFnZVBvbGljeUNsaWVudDsKQEAgLTI5NSwxMCArMjg2LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEV3a0NvbG9yUGlja2Vy
PiBtX2NvbG9yUGlja2VyOwogI2VuZGlmCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorCiAgICAgV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsIG1fcGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudDsKICAgICBXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyOwotI2VuZGlmCisKICAgICBib29sIG1faXNBY2Nl
bGVyYXRlZDsKIAogICAgIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIHBhcmVudFNtYXJ0Q2xhc3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdElt
YWdlR0wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFn
ZUdMLmNwcAppbmRleCA4ZTBiOWQ4MzMyNThkYzdlMjkzNzNlZmZiOWEzOWI0MTAzODhlZTQ5Li5l
ZmQyNjE5NDhiOTNiM2JiYmYyM2UzOTljNTYyMjRjMjBiYThkMDYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKQEAgLTI0
LDkgKzI0LDYgQEAKICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlNuYXBzaG90SW1hZ2VHTC5oIgogCiAjaWYg
VVNFKE9QRU5HTF9FU18yKQpAQCAtNzMsNCArNzAsMyBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZh
Y2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50IHdp
ZAogICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShuZXdTdXJmYWNlLmdldCgpKTsKICAgICBy
ZXR1cm4gbmV3U3VyZmFjZTsKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAppbmRleCA5YmU5Y2M1NWRmYTY2MDMyYjhm
NWYzMmUwMTJkODY3YjdkYmU4YzQzLi5iNzZkOWI4MTM5MDUzMjBhNmQyMTE1MzRiMTQ2Y2Y1ZDhm
MzcwMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFw
c2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFw
c2hvdEltYWdlR0wuaApAQCAtMjYsMTEgKzI2LDggQEAKICNpZm5kZWYgU25hcHNob3RJbWFnZUdM
X2gKICNkZWZpbmUgU25hcHNob3RJbWFnZUdMX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLQogI2luY2x1ZGUgPFJlZlB0ckNhaXJvLmg+CiAKIFBhc3NSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBnZXRJbWFnZVN1cmZhY2VGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGludCB5LCBp
bnQgd2lkdGgsIGludCBoZWlnaHQpOwogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogI2VuZGlmIC8vIFNuYXBzaG90SW1hZ2VHTF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVz
dEJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRl
c3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNwcAppbmRleCBjNjcxY2I3N2MxNWJlNmE0YWIxZDBk
YWFjNWQzMjRmOWE3NzdkMzhmLi5kZTQxNzU1ZWI4MTY1M2ZkZGUyNDc5ZDJhNGI1ODc0MzU3NDNi
YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9V
bml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBFV0syVW5pdFRlc3RCYXNlOjpTZXRVcCgpCiAgICAgdW5z
aWduZWQgaW50IHdpZHRoID0gZW52aXJvbm1lbnQtPmRlZmF1bHRXaWR0aCgpOwogICAgIHVuc2ln
bmVkIGludCBoZWlnaHQgPSBlbnZpcm9ubWVudC0+ZGVmYXVsdEhlaWdodCgpOwogCi0jaWYgZGVm
aW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEhBVkVfRUNP
UkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKICAgICBjb25zdCBjaGFyKiBlbmdpbmUg
PSAib3BlbmdsX3gxMSI7CiAgICAgbV9lY29yZUV2YXMgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUs
IDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApOwogICAgIC8vIEdyYWNlZnVsIGZhbGxiYWNrIHRvIHNv
ZnR3YXJlIHJlbmRlcmluZyBpZiBldmFzX2dsIGVuZ2luZSBpcyBub3QgYXZhaWxhYmxlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3Bw
CmluZGV4IGMxNzYwODJhYjBiOTM3ZTE2MDZhMjEzNDhiMTdkMTYzYTg0YzRiNzkuLjA5ZDBiOTUz
MDA1NWViODczN2M3NTU3ZGI1N2U0YjdhNTcxZTVhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTIzNyw3ICsyMzcs
NiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8Rmlu
ZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0yNTIsNyArMjUxLDYgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNlbmRpZiAvLyBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJ
bXBsLmgKaW5kZXggMzdiZWUxMmU4YzdjNWU4ZTY3NmFiNjQzNTU2OWFhOTQ2OGU0ZmNkNi4uOGRm
MzViYWFkZGVlM2VlYWU1ODY0OGNlMTgzZjdhMjdlZWM1Y2Y1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCkBAIC05NywxMSArOTcs
OSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0Rh
dGEmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlKSBvdmVycmlkZTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAppbmRleCBmNzZiMDM5M2E5YWM3ZWRlNThlYzg0YTM0NTMyZWY3ZWZhMjNjYmE3Li43ZWNk
M2IzNTY3NTRkMTM2N2M3YTNhNzQ2OTU1NTE3OGZlYTgzZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTg5LDEz
ICs4OSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQ
cm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51
UHJveHkoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJ
bmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFu
aW1hdGUpIG92ZXJyaWRlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAg
IHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihDQUxh
eWVyICpyb290TGF5ZXIpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQ0FMYXllciAqYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2
aXJ0dWFsIFJldGFpblB0cjxDR0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0
IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggODk2YzY1YjI3
NWUzODdiNjI4MDAzNmE0MDQ3MTAzZDUwYmNmNjUwNi4uZTY0NDJhYWZiMDExODhkOGE5MjI0ZWM5
N2ViZjA4Y2YzM2FjZDgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTI5NSw4ICsyOTUsNyBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4s
IGJvb2wsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSAgICAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVl
Q29udGV4dCkKIHsKIH0KQEAgLTMyMCw3ICszMTksNiBAQCBDQUxheWVyICpQYWdlQ2xpZW50SW1w
bDo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KLSNlbmRpZgogCiBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3QoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWREcmF3aW5nQXJlYVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggMDUyNzYz
MDQzMTA4OTAwYjA2N2ZkNjJjYzZlNjcxYWZhNzY2OTYwZC4uMjk2Nzk2YmI5MWU1Y2FkZDc3ZjU4
NTY5NTlhMjJkOGE3NTdmMGY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC02MCwxMSArNjAsOSBAQCBDb29yZGluYXRlZERyYXdp
bmdBcmVhUHJveHk6OkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkqIHdl
YlBhZ2VQcgogCiBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6On5Db29yZGluYXRlZERyYXdp
bmdBcmVhUHJveHkoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAv
LyBNYWtlIHN1cmUgdG8gZXhpdCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2RlLgogICAgIGlm
IChpc0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSkKICAgICAgICAgZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDb29yZGluYXRlZERyYXdp
bmdBcmVhUHJveHk6OnBhaW50KEJhY2tpbmdTdG9yZTo6UGxhdGZvcm1HcmFwaGljc0NvbnRleHQg
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgUmVnaW9uJiB1bnBhaW50ZWRSZWdpb24pCkBA
IC0xMzAsNyArMTI4LDYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmRldmlj
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkKICAgICBiYWNraW5nU3RvcmVTdGF0ZURpZENoYW5nZShS
ZXNwb25kSW1tZWRpYXRlbHkpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnZpc2liaWxpdHlEaWRDaGFuZ2Uo
KQogewogICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBiYWNraW5nIHN0b3JlLCBnbyBhaGVhZCBh
bmQgbWFyayB0aGUgYmFja2luZyBzdG9yZSBhcyBiZWluZyBjaGFuZ2VkIHNvCkBAIC0xMzgsNyAr
MTM1LDYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnZpc2liaWxpdHlEaWRD
aGFuZ2UoKQogICAgIGlmICghbV9iYWNraW5nU3RvcmUgJiYgbV9sYXllclRyZWVDb250ZXh0Lmlz
RW1wdHkoKSkKICAgICAgICAgYmFja2luZ1N0b3JlU3RhdGVEaWRDaGFuZ2UoRG9Ob3RSZXNwb25k
SW1tZWRpYXRlbHkpOwogfQotI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVBy
b3h5OjpzZXRCYWNraW5nU3RvcmVJc0Rpc2NhcmRhYmxlKGJvb2wgaXNCYWNraW5nU3RvcmVEaXNj
YXJkYWJsZSkKIHsKQEAgLTE4MCw3ICsxNzYsNiBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0bwog
ICAgIC8vIFN0b3AgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyIHRoYXQgd2FzIHN0YXJ0ZWQgaW4g
c2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlLgogICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNz
KCkucmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9wKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGxheWVyVHJlZUNvbnRleHQgIT0gbV9sYXllclRyZWVDb250
ZXh0KSB7CiAgICAgICAgIGlmICghbV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CkBAIC0xOTIsMjEgKzE4
NywxNiBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0bwogICAgICAgICAgICAgQVNTRVJUKGxheWVy
VHJlZUNvbnRleHQgPT0gbV9sYXllclRyZWVDb250ZXh0KTsKICAgICAgICAgfQogICAgIH0KLSNl
bmRpZgogCiAgICAgaWYgKG1fbmV4dEJhY2tpbmdTdG9yZVN0YXRlSUQgIT0gbV9jdXJyZW50QmFj
a2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKFJl
c3BvbmRJbW1lZGlhdGVseSk7CiAgICAgZWxzZQogICAgICAgICBtX2hhc1JlY2VpdmVkRmlyc3RV
cGRhdGUgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChpc0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSkgewogICAgICAgICBBU1NFUlQoIW1f
YmFja2luZ1N0b3JlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwotI2VuZGlmCiAKICAgICAvLyBJZiB3ZSBoYXZlIGEg
YmFja2luZyBzdG9yZSB0aGUgcmlnaHQgc2l6ZSwgcmV1c2UgaXQuCiAgICAgaWYgKG1fYmFja2lu
Z1N0b3JlICYmIChtX2JhY2tpbmdTdG9yZS0+c2l6ZSgpICE9IHVwZGF0ZUluZm8udmlld1NpemUg
fHwgbV9iYWNraW5nU3RvcmUtPmRldmljZVNjYWxlRmFjdG9yKCkgIT0gdXBkYXRlSW5mby5kZXZp
Y2VTY2FsZUZhY3RvcikpCkBAIC0yMjAsMTEgKzIxMCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3
aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJh
Y2tpCiAgICAgaWYgKGJhY2tpbmdTdG9yZVN0YXRlSUQgPCBtX2N1cnJlbnRCYWNraW5nU3RvcmVT
dGF0ZUlEKQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0
KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwotI2VuZGlmCiB9
CiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjpleGl0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5m
byYgdXBkYXRlSW5mbykKQEAgLTIzMyw5ICsyMTksNyBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2lu
Z0FyZWFQcm94eTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tp
bgogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlEIDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3Rh
dGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwotI2VuZGlmCiAKICAgICBp
bmNvcnBvcmF0ZVVwZGF0ZSh1cGRhdGVJbmZvKTsKIH0KQEAgLTI0NiwxMSArMjMwLDcgQEAgdm9p
ZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90IGJhY2sKICAgICBpZiAoYmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3Vy
cmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShsYXllclRyZWVDb250ZXh0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNv
bnRleHQpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojpp
bmNvcnBvcmF0ZVVwZGF0ZShjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQpAQCAtMzExLDEz
ICsyOTEsMTEgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnNlbmRVcGRhdGVC
YWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRpYXRlbHkKICAgICAgICAgbV93ZWJQYWdlUHJv
eHktPnByb2Nlc3MoKS5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiAgICAgfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lzV2FpdGluZ0ZvckRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlICYmICFtX2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgp
KSB7CiAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBt
ZXNzYWdlLiBOb3JtYWxseSB3ZSBkbyB0aGlzIGluIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94
eTo6cGFpbnQsIGJ1dCB0aGF0CiAgICAgICAgIC8vIGZ1bmN0aW9uIGlzIG5ldmVyIGNhbGxlZCB3
aGVuIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUuCiAgICAgICAgIHdhaXRGb3JBbmRE
aXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CiAgICAgfQotI2VuZGlmCiB9CiAK
IHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpCkBAIC0zMjksNyArMzA3LDYgQEAgdm9pZCBDb29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlKCkKICAgICBpZiAobV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5pc0xhdW5jaGlu
ZygpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgLy8gRklYTUU6IHdhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5IHdpbGwgYWx3YXlz
IHJldHVybiB0aGUgb2xkZXN0IERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgdGhh
dAogICAgIC8vIGhhc24ndCB5ZXQgYmVlbiBwcm9jZXNzZWQuIEJ1dCBpdCBtaWdodCBiZSBiZXR0
ZXIgdG8gc2tpcCBhaGVhZCB0byBzb21lIG90aGVyIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
CiAgICAgLy8gbWVzc2FnZSwgaWYgbXVsdGlwbGUgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUg
bWVzc2FnZXMgYXJlIHdhaXRpbmcgdG8gYmUgcHJvY2Vzc2VkLiBGb3IgaW5zdGFuY2UsIHdlIGNv
dWxkCkBAIC0zMzcsMTAgKzMxNCw4IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5
Ojp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpCiAKICAgICAv
LyBUaGUgdGltZW91dCwgaW4gc2Vjb25kcywgd2UgdXNlIHdoZW4gd2FpdGluZyBmb3IgYSBEaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlIHdoZW4gd2UncmUgYXNrZWQgdG8gcGFpbnQu
CiAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmRE
aXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVC
YWNraW5nU3RvcmVTdGF0ZT4obV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpLCBzdGQ6OmNocm9ubzo6
bWlsbGlzZWNvbmRzKDUwMCkpOwotI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250
ZXh0KQogewogICAgIEFTU0VSVCghaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpOwpA
QCAtMzczLDcgKzM0OCw2IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRh
dGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyCiAgICAgbV9sYXllclRy
ZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4dDsKICAgICBtX3dlYlBhZ2VQcm94eS0+dXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmRpc2NhcmRCYWNraW5nU3RvcmVT
b29uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5
LmgKaW5kZXggOWFhNDNjNTQ5YWFkMjljZWIxMjY3Zjk1OTc2YWUyYmRiYjVkNTMyNS4uODhhYThl
NDgxOWUyNmE5MTI3MzcyYjZmN2I2OGYxMmY2NmUzOWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmgKQEAgLTUwLDEyICs1MCwxMCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHBhaW50KEJhY2tpbmdTdG9yZTo6UGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpSZWdpb24mIHVucGFpbnRlZFJl
Z2lvbik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBpc0lu
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSBjb25zdCB7IHJldHVybiAhbV9sYXllclRyZWVD
b250ZXh0LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgdmlzaWJpbGl0eURpZENoYW5nZSgpOwogCiAg
ICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
dmlzaWJsZUNvbnRlbnRzUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9y
eSk7Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFzUmVjZWl2ZWRGaXJzdFVwZGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzUmVjZWl2ZWRGaXJzdFVwZGF0ZTsgfQogCkBAIC04OCwxMyArODYsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW1l
ZGlhdGVseU9yTm90KTsKICAgICB2b2lkIHdhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmKTsKICAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZv
aWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpOwotI2Vsc2UKLSAgICBib29sIGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdT
dG9yZVNvb24oKTsKICAgICB2b2lkIGRpc2NhcmRCYWNraW5nU3RvcmUoKTsKQEAgLTExMCwxMCAr
MTA0LDggQEAgcHJpdmF0ZToKICAgICAvLyB3aGVuZXZlciBvdXIgc3RhdGUgY2hhbmdlcyBpbiBh
IHdheSB0aGF0IHdpbGwgcmVxdWlyZSBhIG5ldyBiYWNraW5nIHN0b3JlIHRvIGJlIGFsbG9jYXRl
ZC4KICAgICB1aW50NjRfdCBtX25leHRCYWNraW5nU3RvcmVTdGF0ZUlEOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFRoZSBjdXJyZW50IGxheWVyIHRyZWUgY29u
dGV4dC4KICAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKLSNlbmRpZgog
CiAgICAgLy8gV2hldGhlciB3ZSd2ZSBzZW50IGEgVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVz
c2FnZSBhbmQgYXJlIG5vdyB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
IG1lc3NhZ2UuCiAgICAgLy8gVXNlZCB0byB0aHJvdHRsZSBVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlcyBzbyB3ZSBkb24ndCBzZW5kIHRoZW0gZmFzdGVyIHRoYW4gdGhlIFdlYiBwcm9j
ZXNzIGNhbiBoYW5kbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIu
Y3BwCmluZGV4IGZmZmY1NWI4MjRjOTY0ZmE2MWU0ODMyYWU1NmJjMDRkNDc4ZWFlNmMuLjdiNGI5
NDUyMjJkMzE3M2FiODNiNDgzZDJhMzg2ZDUyZTc4N2Y3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBAIC0yMCw4ICsyMCw2IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lu
Y2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVk
RHJhd2luZ0FyZWFQcm94eS5oIgpAQCAtMzU3LDUgKzM1NSwzIEBAIGJvb2wgUGFnZVZpZXdwb3J0
Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoYm9vbCB1c2VySW5pdGlhdGVkVXBk
YXRlKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5kZXggYjg5NzNhYmJkODllMmVhNGY0ZmJmM2Vm
OWUzNGU2MWY3ZThkYzRlZC4uMzE2NGVmZGE3YjdhNGExYjA3ODVkOTViZDE0NGViMWNkN2I5YzRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaApAQCAtMjIsOCAr
MjIsNiBAQAogI2lmbmRlZiBQYWdlVmlld3BvcnRDb250cm9sbGVyX2gKICNkZWZpbmUgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CkBAIC0xMTIsNSArMTEwLDQg
QEAgYm9vbCBmdXp6eUNvbXBhcmUoZmxvYXQsIGZsb2F0LCBmbG9hdCBlcHNpbG9uKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAjZW5kaWYgLy8gUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuY3BwCmlu
ZGV4IDQ1ODBiODZkYmQ1MjA3MGE2ZjViZWFjMDlkMzM0YjdhNzg3Y2RmODYuLmEzZjM1NWRmNmVh
MzQyNzFhYmUxMWRhNTE4YjY5MzgxYzlhMTc4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuY3BwCkBAIC0xMTks
MTAgKzExOSw4IEBAIHZvaWQgV2ViVmlldzo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiAgICAg
bV92aXNpYmxlID0gdmlzaWJsZTsKICAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3
U3RhdGU6OklzVmlzaWJsZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBzdGF0aWNf
Y2FzdDxDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkqPihwYWdlKCktPmRyYXdpbmdBcmVhKCkp
KQogICAgICAgICBkcmF3aW5nQXJlYS0+dmlzaWJpbGl0eURpZENoYW5nZSgpOwotI2VuZGlmCiB9
CiAKIHZvaWQgV2ViVmlldzo6c2V0VXNlclZpZXdwb3J0VHJhbnNsYXRpb24oZG91YmxlIHR4LCBk
b3VibGUgdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApp
bmRleCA4MWNmMDU5OTA3MjJmZWY5ZGQ5NWNhZmVhY2IxMGVkNjA4MjliNjI4Li5lNDAyZGMxMWQ3
MDkwODI2ZDIxMTFhMmE3MTAxYTllZDc5ZDdhMjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTEwMSwxMSArMTAxLDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlKHVpbnQ2NF90IC8qIGJhY2tpbmdTdG9yZVN0YXRlSUQgKi8sIGNvbnN0IFVwZGF0
ZUluZm8mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUo
dWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAqLywgY29uc3QgVXBkYXRlSW5mbyYsIGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWlu
dDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAqLywgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWlu
dDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAqLywgY29uc3QgVXBkYXRlSW5mbyYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRf
dCAvKiBiYWNraW5nU3RvcmVTdGF0ZUlEICovLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9
Ci0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUdl
b21ldHJ5KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hh
bmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld0ludHJpbnNpY0NvbnRlbnRTaXplKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggYTI3MmNiNTlkMjhjODgyYWMxZmVjZGI4M2M0ODNjMzY4NjVkYWQzNy4u
YTEwNjY0ZGM2NmJiNTgxMmFlMzc5MzgxYWIzYTljMmM0NGViZjQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KQEAg
LTIzLDExICsyMyw5IEBACiBtZXNzYWdlcyAtPiBEcmF3aW5nQXJlYVByb3h5IHsKICAgICBVcGRh
dGUodWludDY0X3Qgc3RhdGVJRCwgV2ViS2l0OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAg
RGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwg
V2ViS2l0OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8sIFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dCBj
b250ZXh0KQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBFbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIFdlYktp
dDo6TGF5ZXJUcmVlQ29udGV4dCBjb250ZXh0KQogICAgIEV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBXZWJLaXQ6OlVwZGF0ZUluZm8g
dXBkYXRlSW5mbykKICAgICBVcGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRf
dCBiYWNraW5nU3RvcmVTdGF0ZUlELCBXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQgY29udGV4dCkK
LSNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFVzZWQgYnkgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4IGU4YzQ1YTcwOWViNTcwNjM3N2U0ZTdiZWVk
YWUxMTJjZWJlODI5YjguLjQ3YmVhYWU4YjEyNDM1YzNmN2VjZDA3NGJkZGFlZjllNTIzMjE4NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcApAQCAtNTMsMTEgKzUzLDkgQEAgRHJhd2luZ0FyZWFQcm94eUltcGw6OkRyYXdpbmdBcmVh
UHJveHlJbXBsKFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5KQogCiBEcmF3aW5nQXJlYVByb3h5
SW1wbDo6fkRyYXdpbmdBcmVhUHJveHlJbXBsKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgLy8gTWFrZSBzdXJlIHRvIGV4aXQgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgbW9kZS4KICAgICBpZiAoaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAg
ICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQg
RHJhd2luZ0FyZWFQcm94eUltcGw6OnBhaW50KEJhY2tpbmdTdG9yZTo6UGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQgY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwgUmVnaW9uJiB1bnBhaW50ZWRS
ZWdpb24pCkBAIC0xNTMsNyArMTUxLDYgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlk
VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGUKICAgICAv
LyBTdG9wIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciB0aGF0IHdhcyBzdGFydGVkIGluIHNlbmRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZS4KICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnJl
c3BvbnNpdmVuZXNzVGltZXIoKS0+c3RvcCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChsYXllclRyZWVDb250ZXh0ICE9IG1fbGF5ZXJUcmVlQ29udGV4dCkg
ewogICAgICAgICBpZiAoIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwpAQCAtMTY1LDIxICsxNjIsMTYg
QEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUo
dWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGUKICAgICAgICAgICAgIEFTU0VSVChsYXllclRyZWVD
b250ZXh0ID09IG1fbGF5ZXJUcmVlQ29udGV4dCk7CiAgICAgICAgIH0gICAgICAgICAgICAKICAg
ICB9Ci0jZW5kaWYKIAogICAgIGlmIChtX25leHRCYWNraW5nU3RvcmVTdGF0ZUlEICE9IG1fY3Vy
cmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVT
dGF0ZShSZXNwb25kSW1tZWRpYXRlbHkpOwogICAgIGVsc2UKICAgICAgICAgbV9oYXNSZWNlaXZl
ZEZpcnN0VXBkYXRlID0gdHJ1ZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpIHsKICAgICAgICAgQVNT
RVJUKCFtX2JhY2tpbmdTdG9yZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKLSNlbmRpZgogCiAgICAgLy8gSWYgd2Ug
aGF2ZSBhIGJhY2tpbmcgc3RvcmUgdGhlIHJpZ2h0IHNpemUsIHJldXNlIGl0LgogICAgIGlmICht
X2JhY2tpbmdTdG9yZSAmJiAobV9iYWNraW5nU3RvcmUtPnNpemUoKSAhPSB1cGRhdGVJbmZvLnZp
ZXdTaXplIHx8IG1fYmFja2luZ1N0b3JlLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IHVwZGF0ZUlu
Zm8uZGV2aWNlU2NhbGVGYWN0b3IpKQpAQCAtMTkzLDExICsxODUsNyBAQCB2b2lkIERyYXdpbmdB
cmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZQogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlEIDwgbV9jdXJyZW50QmFja2lu
Z1N0b3JlU3RhdGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVl
Q29udGV4dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKLSNl
bmRpZgogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5m
byYgdXBkYXRlSW5mbykKQEAgLTIwNiw5ICsxOTQsNyBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJ
bXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3Jl
UwogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlEIDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3Rh
dGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwotI2VuZGlmCiAKICAgICBp
bmNvcnBvcmF0ZVVwZGF0ZSh1cGRhdGVJbmZvKTsKIH0KQEAgLTIxOSwxMSArMjA1LDcgQEAgdm9p
ZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
dWludDY0X3QgYmFja2luZ1N0b3IKICAgICBpZiAoYmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3Vy
cmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShsYXllclRyZWVDb250ZXh0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNv
bnRleHQpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmluY29ycG9y
YXRlVXBkYXRlKGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCkBAIC0yODQsMTMgKzI2Niwx
MSBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3Rh
dGUoUmVzcG9uZEltbWVkaWF0ZWx5T3JOb3QgcgogICAgICAgICBtX3dlYlBhZ2VQcm94eS0+cHJv
Y2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQoKTsKICAgICB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1faXNXYWl0aW5nRm9yRGlkVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUgJiYgIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgLy8gV2FpdCBmb3IgdGhlIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2Uu
IE5vcm1hbGx5IHdlIGRvIHRoaXMgaW4gRHJhd2luZ0FyZWFQcm94eUltcGw6OnBhaW50LCBidXQg
dGhhdAogICAgICAgICAvLyBmdW5jdGlvbiBpcyBuZXZlciBjYWxsZWQgd2hlbiBpbiBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZyBtb2RlLgogICAgICAgICB3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIERyYXdpbmdB
cmVhUHJveHlJbXBsOjp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSgpCkBAIC0zMDIsNyArMjgyLDYgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6d2FpdEZv
ckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKQogICAgIGlmIChtX3dlYlBh
Z2VQcm94eS0+cHJvY2VzcygpLmlzTGF1bmNoaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBGSVhNRTogd2FpdEZvckFuZERp
c3BhdGNoSW1tZWRpYXRlbHkgd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBvbGRlc3QgRGlkVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSB0aGF0CiAgICAgLy8gaGFzbid0IHlldCBiZWVuIHBy
b2Nlc3NlZC4gQnV0IGl0IG1pZ2h0IGJlIGJldHRlciB0byBza2lwIGFoZWFkIHRvIHNvbWUgb3Ro
ZXIgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUKICAgICAvLyBtZXNzYWdlLCBpZiBtdWx0aXBs
ZSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlcyBhcmUgd2FpdGluZyB0byBiZSBw
cm9jZXNzZWQuIEZvciBpbnN0YW5jZSwgd2UgY291bGQKQEAgLTMxMCwxMCArMjg5LDggQEAgdm9p
ZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUoKQogCiAgICAgLy8gVGhlIHRpbWVvdXQgd2UgdXNlIHdoZW4gd2FpdGluZyBm
b3IgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlIHdoZW4gd2UncmUgYXNrZWQg
dG8gcGFpbnQgaXMgNTAwIG1pbGxpc2Vjb25kcy4KICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2Vz
cygpLmNvbm5lY3Rpb24oKS0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6
OkRyYXdpbmdBcmVhUHJveHk6OkRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlPihtX3dlYlBhZ2VQ
cm94eS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7Ci0jZW5kaWYK
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgRHJhd2luZ0FyZWFQ
cm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBBU1NFUlQoIWlzSW5BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSgpKTsKQEAgLTMzOCw3ICszMTUsNiBAQCB2b2lkIERyYXdpbmdBcmVh
UHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRy
ZWVDb250ZQogICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRleHQ7CiAgICAg
bV93ZWJQYWdlUHJveHktPnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJl
ZUNvbnRleHQpOwogfQotI2VuZGlmCiAKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmRpc2Nh
cmRCYWNraW5nU3RvcmVTb29uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggMjI0ZWE5MTA5NWI4OTlkM2ZiYzI0ZGZhNjJhMzQw
NDRkMGVjZDAyNy4uZTRkZTRmMzIyZWFmZDU1ZDMzNWI1ODE0ZmVhODk0YzFjMjgxNzcyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKQEAg
LTQ1LDkgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludChCYWNraW5nU3RvcmU6OlBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6
UmVnaW9uJiB1bnBhaW50ZWRSZWdpb24pOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCk7IH0KLSNlbmRpZgogCiAgICAgYm9v
bCBoYXNSZWNlaXZlZEZpcnN0VXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZWNlaXZlZEZp
cnN0VXBkYXRlOyB9CiAKQEAgLTczLDEzICs3MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5k
VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoUmVzcG9uZEltbWVkaWF0ZWx5T3JOb3QpOwogICAgIHZv
aWQgd2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogICAgIHZvaWQgZXhpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7Ci0jZWxzZQotICAgIGJvb2wg
aXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
LSNlbmRpZgogCiAgICAgdm9pZCBkaXNjYXJkQmFja2luZ1N0b3JlU29vbigpOwogICAgIHZvaWQg
ZGlzY2FyZEJhY2tpbmdTdG9yZSgpOwpAQCAtOTMsMTAgKzg3LDggQEAgcHJpdmF0ZToKICAgICAv
LyB3aGVuZXZlciBvdXIgc3RhdGUgY2hhbmdlcyBpbiBhIHdheSB0aGF0IHdpbGwgcmVxdWlyZSBh
IG5ldyBiYWNraW5nIHN0b3JlIHRvIGJlIGFsbG9jYXRlZC4KICAgICB1aW50NjRfdCBtX25leHRC
YWNraW5nU3RvcmVTdGF0ZUlEOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIC8vIFRoZSBjdXJyZW50IGxheWVyIHRyZWUgY29udGV4dC4KICAgICBMYXllclRyZWVDb250
ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKLSNlbmRpZgogCiAgICAgLy8gV2hldGhlciB3ZSd2ZSBz
ZW50IGEgVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSBhbmQgYXJlIG5vdyB3YWl0aW5n
IGZvciBhIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UuCiAgICAgLy8gVXNlZCB0
byB0aHJvdHRsZSBVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlcyBzbyB3ZSBkb24ndCBz
ZW5kIHRoZW0gZmFzdGVyIHRoYW4gdGhlIFdlYiBwcm9jZXNzIGNhbiBoYW5kbGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAzMThhZmU5NzE5MjgzNzUzODhjMDZlYjYz
NGQ5ZWIyYTBmNjljODY1Li41OTBlODdmMWJmYWI4NTUzN2QxNTVkYTgwOTAzNmQ2MWRmMmNmNThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTIwNCwxMSArMjA0LDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0
cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpID0gMDsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSA9IDA7Ci0jZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpICYmIFBMQVRG
T1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdl
ZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5I
YXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpp
bmRleCBiNjVhNmMzM2E1NTM5MDZmZWFjNmM1ODE2ODM2NjAyZWZhZmRjMzU4Li5iODcwYmY0ZjEx
MzUxNjQxM2VjZDRiYTcyMWI3ZWFiODAxZjUyYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMu
bW0KQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1J
bml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYQogICAgIC8vIEZv
ciBub3cgb25seSBGbGFzaCBpcyBrbm93biB0byBiZWhhdmUgd2l0aCBhc3luY2hyb25vdXMgcGx1
Zy1pbiBpbml0aWFsaXphdGlvbi4KICAgICBwYXJhbWV0ZXJzLnN1cHBvcnRzQXN5bmNocm9ub3Vz
UGx1Z2luSW5pdGlhbGl6YXRpb24gPSBtX3BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUlu
Zm8uYnVuZGxlSWRlbnRpZmllciA9PSAiY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdp
biI7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoSE9TVEVEX0NP
UkVfQU5JTUFUSU9OKQorI2lmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQogICAgIG1hY2hf
cG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBbW0NBUmVtb3RlTGF5ZXJTZXJ2ZXIgc2hhcmVkU2Vy
dmVyXSBzZXJ2ZXJQb3J0XTsKICAgICBpZiAocmVuZGVyU2VydmVyUG9ydCAhPSBNQUNIX1BPUlRf
TlVMTCkKICAgICAgICAgcGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCA9IElQ
Qzo6TWFjaFBvcnQocmVuZGVyU2VydmVyUG9ydCwgTUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhM2RlOTk5Y2I3
MWQ2YmEzMTQ2OTVhOWMyZWVjMWQ0N2EzYzk4ZjQwLi5jZDYzOTFhYTllMDExZThhODY5Njg4YTgz
YjcyYWMwYTdkMzJjYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMzkyNiw3ICszOTI2LDYgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQ
YWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBs
YXllclRyZWVDb250ZXh0KQogewogICAgIG1fcGFnZUNsaWVudC5lbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwpAQCAtMzk0MSw3ICszOTQwLDYgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmIGxheWUKIHsKICAgICBtX3BhZ2VDbGllbnQudXBkYXRlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CiB9Ci0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRD
bGVhcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzk5
ZWZhMjRmNzVjZGUzYWJjMTliNmFjYzlkMjYyMDdiNjM5MWI5ZC4uYThjYmE5ZTVlMjA2MjExMzEx
Mzg3MjRiYjI1Y2QwN2EyODdiNjFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtNjk0LDExICs2OTQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzRGlk
QmVjb21lUmVzcG9uc2l2ZSgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogICAgIHZpcnR1
YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpOwotI2VuZGlmCiAgICAgCiAgICAgdm9pZCBkaWREcmF3KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAKaW5kZXggYjRhNDM5
NGNlNzgzMjE5NjNlODg3NmVmM2MxNDcyZDQ1YjIwZDc4OS4uM2RiZDhmYzhjYzhiOGZiOWI3YzUx
Njg4YjY5OTYxZjk2ZThmZjlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAKQEAgLTExOCw5ICsxMTgsNyBAQCB2b2lkIFBhZ2VM
b2FkQ2xpZW50RWZsOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS1R5cAogCiAgICAgRXdrVmlldyogdmlldyA9IHRvUGFnZUxvYWRDbGllbnRFZmwo
Y2xpZW50SW5mbyktPnZpZXcoKTsKICAgICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQodmlldy0+
d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB2
aWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkuZGlkQ29tbWl0TG9hZCgpOwotI2VuZGlmCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCmlu
ZGV4IDYwZDllM2Q2MDA5MGEzM2I3ZTAxM2NkZGFkYzI2NTM2YzEzZjdiYTkuLjAyMjg3MWExMjk4
ODdiMzRjZTBmNGI4Njg4YWY3N2M2ZjU1Njc4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsLmNwcApAQCAtMjUsOSArMjUsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRFZmwuaCIKIAogI2luY2x1ZGUgIkV3a1ZpZXcuaCIKQEAgLTc4LDQg
Kzc1LDMgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpzZXRDb250cm9s
bGVyKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIGNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKaW5kZXggZjQ3NTg1YjExMmJj
NjJhZjkyMmRkN2FmYmVmNTZlN2VhZGRkMWNiMS4uNjc5MDM0ZDRlMjU4MTZlMDE4YjYxYmI0MTM1
MDU3ODhhODAzMGFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9W
aWV3Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdD
bGllbnRFZmwuY3BwCkBAIC01MiwxMSArNTIsNyBAQCB2b2lkIFZpZXdDbGllbnRFZmw6OmRpZENo
YW5nZUNvbnRlbnRzU2l6ZShXS1ZpZXdSZWYsIFdLU2l6ZSBzaXplLCBjb25zdCB2b2lkKiBjbAog
ewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3a1ZpZXcoY2xpZW50SW5mbyk7CiAgICAgaWYg
KFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXctPndrUGFnZSgpKSkKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGV3a1ZpZXctPnBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIoKS5kaWRDaGFuZ2VDb250ZW50c1NpemUodG9JbnRTaXplKHNpemUpKTsKLSNlbHNlCi0gICAg
ICAgIHsgfQotI2VuZGlmCiAgICAgZWxzZQogICAgICAgICBld2tWaWV3LT5zY2hlZHVsZVVwZGF0
ZURpc3BsYXkoKTsKIApAQCAtMTAyLDExICs5OCw3IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZGlk
Q2hhbmdlQ29udGVudHNQb3NpdGlvbihXS1ZpZXdSZWYsIFdLUG9pbnQgcG9zaXRpb24sIGNvbnN0
CiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9IHRvRXdrVmlldyhjbGllbnRJbmZvKTsKICAgICBp
ZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdrVmlldy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBld2tWaWV3LT5wYWdlVmlld3BvcnRDb250
cm9sbGVyKCkucGFnZURpZFJlcXVlc3RTY3JvbGwodG9JbnRQb2ludChwb3NpdGlvbikpOwotI2Vs
c2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBvc2l0aW9uKTsKLSNlbmRpZgogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xMTcsMTIgKzEwOSw3IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZGlk
UmVuZGVyRnJhbWUoV0tWaWV3UmVmLCBXS1NpemUgY29udGVudHNTaXplLCBXS1JlY3QgY292ZXJl
CiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9IHRvRXdrVmlldyhjbGllbnRJbmZvKTsKICAgICBp
ZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdrVmlldy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBld2tWaWV3LT5wYWdlVmlld3BvcnRDb250
cm9sbGVyKCkuZGlkUmVuZGVyRnJhbWUodG9JbnRTaXplKGNvbnRlbnRzU2l6ZSksIHRvSW50UmVj
dChjb3ZlcmVkUmVjdCkpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKGNvbnRlbnRzU2l6
ZSk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShjb3ZlcmVkUmVjdCk7Ci0jZW5kaWYKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTMzLDkgKzEyMCw3IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6
ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihXS1ZpZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9IHRvRXdrVmlldyhjbGllbnRJbmZvKTsKICAg
ICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdrVmlldy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBld2tWaWV3LT5wYWdlVmlld3BvcnRD
b250cm9sbGVyKCkucGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7Ci0jZW5kaWYKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQ2LDEyICsxMzEsOCBAQCB2b2lkIFZpZXdDbGllbnRF
Zmw6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXS1ZpZXdSZWYsIFdLVmlld3BvcnRBdHRy
aWJ1dGVzUgogewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3a1ZpZXcoY2xpZW50SW5mbyk7
CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXctPndrUGFnZSgpKSkgewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgLy8gRklYTUU6IHBhZ2VWaWV3
cG9ydENvbnRyb2xsZXIgc2hvdWxkIGFjY2VwdCBXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZi4KICAg
ICAgICAgZXdrVmlldy0+cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLmRpZENoYW5nZVZpZXdwb3J0
QXR0cmlidXRlcyh0b0ltcGwoYXR0cmlidXRlcyktPm9yaWdpbmFsQXR0cmlidXRlcygpKTsKLSNl
bHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKLSNlbmRpZgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGV3a1ZpZXctPnNjaGVkdWxlVXBkYXRlRGlzcGxheSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCmluZGV4IDc5YTk5
NDFmNjdkZmVmNjgyOWE2NTc3YTMyZDdmMzljMjdkMGNkMDQuLjZlZjQ3NGQ4OTFkOTgyMGUwMjcw
ZDQxNWE2N2NlOTU4Njc5OTU2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNYWMubW0KQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYQogI2VuZGlmCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1
cmVzQnlEZWZhdWx0ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9v
bEZvcktleTpXZWJLaXRLZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdERlZmF1bHRz
S2V5XTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShIT1NURURf
Q09SRV9BTklNQVRJT04pCisjaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pCiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90
ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0gc2VydmVyUG9ydF07CiAgICAgaWYgKHJlbmRlclNl
cnZlclBvcnQgIT0gTUFDSF9QT1JUX05VTEwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRl
eCBkZTU3NWIyODlkZjA5MGVhZTYyOTUwN2NlYTViNDgwYmM5M2JmNGFhLi41MDQwZGY0NGY0M2U1
YTAzOTU1NzE3YWRhZGE3YjZhNzJiOWI4OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAK
QEAgLTUwLDEzICs1MCwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0YXRpYyBJbnRSZWN0IHNj
cmVlblJlY3RPZkNvbnRlbnRzKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1l
bnQpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoZWxlbWVudC0+
cmVuZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5oYXNMYXllcigpICYmIGVsZW1lbnQt
PnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAg
IEZsb2F0UXVhZCBjb250ZW50c0JveCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdD4oZWxlbWVudC0+
cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+YmFja2luZygpLT5jb250ZW50c0JveCgpKTsK
ICAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1
dGVRdWFkKGNvbnRlbnRzQm94KTsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkt
PnZpZXcoKS5mcmFtZVZpZXcoKS5jb250ZW50c1RvU2NyZWVuKGNvbnRlbnRzQm94LmVuY2xvc2lu
Z0JvdW5kaW5nQm94KCkpOwogICAgIH0KLSNlbmRpZgorCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNj
cmVlblJlY3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5kZXggYTllMDgxOGQy
MzFhYTY1MzM2YzNiODEwMzk1Zjg5Y2Q3NDg1NzgyMS4uODY4ZDhjNjhlYmZlMzFjODQ1OGZkOGY2
NGE1MGRjYTU5Njk3Yjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC0yODcsMTEg
KzI4Nyw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnJlbW92ZVBsdWdpblN0cmVhbShOZXRzY2Fw
ZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQogCiBib29sIE5ldHNjYXBlUGx1Z2luOjppc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXIoKS0+aXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBOZXRzY2FwZVBsdWdpbjo6cHVzaFBvcHVwc0VuYWJsZWRTdGF0ZShib29sIHN0YXRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVy
LmgKaW5kZXggMTUxZDNmYzRlNjUyYWNmOTU3N2IyNTc3MTAyNTVhNzUwZTMxZWI5MS4uMTA4N2Qx
OWQzMmM2ZTk3NWM5Y2QyMzNlYTgxNmU2YzExODNkZmY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCkBAIC04NiwxMCAr
ODYsOCBAQCBwdWJsaWM6CiAgICAgLy8gU2V0IHRoZSBzdGF0dXNiYXIgdGV4dC4KICAgICB2aXJ0
dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gUmV0dXJuIHdoZXRoZXIgYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZC4KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCgpID0gMDsKLSNlbmRpZgogCiAgICAgLy8gVGVsbHMgdGhlIGNv
bnRyb2xsZXIgdGhhdCB0aGUgcGx1Zy1pbiBwcm9jZXNzIGhhcyBjcmFzaGVkLgogICAgIHZpcnR1
YWwgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCmluZGV4IDcyY2FmNjQ1NmViNzkx
M2UxYjhkOGY5MTkwYzRiNDA2ZWQ3MWZkOGUuLjM2ZDI3MGUzMWUyZTMyMDg3MzU3N2I4ZDFmZjc4
MWE4OGVkZTdjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5LmNwcApAQCAtMTA1LDEwICsxMDUsNyBAQCBib29sIFBsdWdpblByb3h5Ojpp
bml0aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgbV9wZW5kaW5nUGx1
Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLT5jb250ZW50c1NjYWxlRmFjdG9yID0gY29udGVudHNTY2Fs
ZUZhY3RvcigpOwogICAgIG1fcGVuZGluZ1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy0+aXNQcml2
YXRlQnJvd3NpbmdFbmFibGVkID0gY29udHJvbGxlcigpLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKTsKICAgICBtX3BlbmRpbmdQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMtPmFydGlmaWNpYWxQ
bHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCA9IGNvbnRyb2xsZXIoKS0+YXJ0aWZpY2lh
bFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKCk7Ci0KLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgbV9wZW5kaW5nUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLT5p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gY29udHJvbGxlcigpLT5pc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7Ci0jZW5kaWYKIAogICAgIGlmICghY2FuSW5pdGlhbGl6
ZUFzeW5jaHJvbm91c2x5KCkpCiAgICAgICAgIHJldHVybiBpbml0aWFsaXplU3luY2hyb25vdXNs
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDZiZjI1YTY0MmI3NWZlYTQzMDE4N2E2
ZDA0Y2RmNTQxNjJlMzdkZGQuLjgyNjQ4NGM4ZWE1NTFlNDMzMWE3M2U4ZWU2NTBlMjljNGE3Nzk1
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTc3OSw3ICs3NzksNiBAQCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQwogICAgIHJldHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSht
X3BhZ2UsIGNsaWVudCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBH
cmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9y
eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NM
YXllckZhY3RvcnkoKTsKQEAgLTgxMiw3ICs4MTEsNiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiBQYXNzUmVmUHRyPFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
KFBhZ2UqIHBhZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0MTcyNjhiMTI5MGM5
ODQ0MmI5NzMzNDRmNjg4Nzg3N2ZhMzg4ZTU3Li5iNzUzMWQxNGYzMGY2YjI0YjMxNDY4NGYxMWNl
ZTEwODViNmQ1MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBvdmVycmlkZTsKQEAgLTIy
NSw3ICsyMjQsNiBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBsYXllclRy
ZWVTdGF0ZUlzRnJvemVuKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShB
U1lOQ19TQ1JPTExJTkcpCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkRHJhd2luZ0FyZWEuY3BwCmluZGV4IGEzYmRiMzUwYzE1OWUxZjVmMzM4MGRhNmNiMzM2
YTJiNzkyZjVkOGIuLjI1NGE4M2Q4Nzg0NWU3NDY0ZGEzMjk5NTgzZTlkYTQxZGY5ZmZkNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWEuY3BwCkBAIC0yNjcsMTYgKzI2NywxMyBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWE6
OmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCkKICAgICBpZiAoIW1fbGF5ZXJUcmVlSG9zdCkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFT
U0VSVCghbV9jb21wb3NpdGluZ0FjY29yZGluZ1RvUHJveHlNZXNzYWdlcyk7CiAgICAgaWYgKCFl
eGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVQZW5kaW5nKCkpIHsKICAgICAgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKG1fYmFja2luZ1N0b3JlU3RhdGVJRCwgbV9sYXllclRyZWVIb3N0LT5sYXll
clRyZWVDb250ZXh0KCkpKTsKICAgICAgICAgbV9jb21wb3NpdGluZ0FjY29yZGluZ1RvUHJveHlN
ZXNzYWdlcyA9IHRydWU7CiAgICAgfQotI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiBHcmFwaGljc0xheWVyRmFjdG9yeSogQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YTo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCkBA
IC0zMjAsNyArMzE3LDYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhOjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAgICAgICAgIHJldHVybjsKICAgICBtX2xheWVyVHJlZUhv
c3QtPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQotI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYTo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3Qgc3RhdGVJRCwgYm9v
bCByZXNwb25kSW1tZWRpYXRlbHksIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdB
cmVhLmgKaW5kZXggZWI1YzViMmM4YjJjYWExOTA2NzgxZmY1OWQ2ODk2Njg2MzQwNzBkYy4uZDMw
NmU4NjIwZWMxMTQzMzkyYjRiMTMxZDNlMTZhZTYxOGI1YmFjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaApAQCAtNjMsMTEgKzYz
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJikgb3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGFkZjdjNWNjODAwNTEz
NDkzNGViNDVlZTExMDBjYjY0MDBlMmI3NTYuLjliYzFkZTE4MmExZmE0ZTVkNGEyN2FiNGY1YTVj
MDFkZjgwM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCkBAIC0xMDEsMTEgKzEwMSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJh
bWVWaWV3KikgeyByZXR1cm4gZmFsc2U7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGlj
c0xheWVyRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSA9IDA7Ci0jZW5kaWYKIAogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKaW5kZXggMGFiZWFkOWI3YjZhMjVmYTk2NjY5ZjUw
YjhkZDI5ZjE2MGRmZDQzYy4uYzBmZWExNWQxNzc5YTRlMTA2Yzc5ZmZlNDcxZWQzNTVjMWI2OTQ4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5jcHAKQEAgLTI2OCwxNiArMjY4LDEzIEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBs
OjpsYXllckhvc3REaWRGbHVzaExheWVycygpCiAgICAgaWYgKCFtX2xheWVyVHJlZUhvc3QpCiAg
ICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBB
U1NFUlQoIW1fY29tcG9zaXRpbmdBY2NvcmRpbmdUb1Byb3h5TWVzc2FnZXMpOwogICAgIGlmICgh
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUGVuZGluZygpKSB7CiAgICAgICAgIG1fd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94eTo6RW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShtX2JhY2tpbmdTdG9yZVN0YXRlSUQsIG1fbGF5ZXJUcmVlSG9zdC0+bGF5
ZXJUcmVlQ29udGV4dCgpKSk7CiAgICAgICAgIG1fY29tcG9zaXRpbmdBY2NvcmRpbmdUb1Byb3h5
TWVzc2FnZXMgPSB0cnVlOwogICAgIH0KLSNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhSW1wbDo6Z3Jh
cGhpY3NMYXllckZhY3RvcnkoKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCkBAIC0zMzIs
NyArMzI5LDYgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2NoZWR1bGVM
YXllckZsdXNoKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IHN0YXRlSUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQogewpAQCAtNTA4LDcgKzUwNCw2
IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
KQogICAgIH0gZWxzZQogICAgICAgICBkaXNwbGF5KHVwZGF0ZUluZm8pOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFNlbmQgYWxvbmcgYSBjb21wbGV0ZSB1cGRh
dGUgb2YgdGhlIHBhZ2Ugc28gd2UgY2FuIHBhaW50IHRoZSBjb250ZW50cyByaWdodCBhZnRlciB3
ZSBleGl0IHRoZQogICAgIC8vIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUsIGVsaW1pbmlh
dGluZyBmbGlja2VyLgogICAgIGlmIChtX2NvbXBvc2l0aW5nQWNjb3JkaW5nVG9Qcm94eU1lc3Nh
Z2VzKSB7CkBAIC01MTksNyArNTE0LDYgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiAgICAgICAgIC8vIFVJIHByb2Nlc3MsIHdlIHN0aWxs
IG5lZWQgdG8gbGV0IGl0IGtub3cgYWJvdXQgdGhlIG5ldyBjb250ZW50cywgc28gc2VuZCBhbiBV
cGRhdGUgbWVzc2FnZS4KICAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5n
QXJlYVByb3h5OjpVcGRhdGUobV9iYWNraW5nU3RvcmVTdGF0ZUlELCB1cGRhdGVJbmZvKSk7CiAg
ICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGVTb29uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCBmMzI3ZTIwNzRhYjliN2MyOGY2YzlkODI5
MjcwNGNlMWNiNGE1N2ZiLi4wMzhlY2IzNDBhZmJmZThhN2JhODU3YWNiNTYxYTQ4NTYwZDliMTg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5oCkBAIC02NywxMSArNjcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVu
Y2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3Zl
cnJpZGU7Ci0jZW5kaWYKIAogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVseSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGQ5YjZmNjk1MDFhNzQxMjFmZDZjMzg4OWUxNWJkMTIzN2RjNzgwNDMuLjg4OGNjM2ZlMzM3
YmI4MTgyOGJmZTg1ZDdhYTg2Yjk4YTJhOWZjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc4OSw3ICs3ODksNiBAQCB2b2lkIFdlYlBh
Z2U6OmNsZWFyTWFpbkZyYW1lTmFtZSgpCiAgICAgICAgIGZyYW1lLT50cmVlKCkuY2xlYXJOYW1l
KCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlBhZ2U6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7
CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIobGF5ZXIpOwpAQCAt
Nzk5LDcgKzc5OCw2IEBAIHZvaWQgV2ViUGFnZTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKCkKIHsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXRSb290Q29tcG9zaXRpbmdMYXllcigwKTsK
IH0KLSNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKIHsKQEAgLTMwNDcsNyArMzA0NSw3
IEBAIHZvaWQgV2ViUGFnZTo6bWFpbkZyYW1lRGlkTGF5b3V0KCkKICAgICAgICAgbV9jYWNoZWRQ
YWdlQ291bnQgPSBwYWdlQ291bnQ7CiAgICAgfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICBpZiAobV9kcmF3aW5nQXJlYSAmJiBtX2RyYXdpbmdBcmVhLT5sYXllclRy
ZWVIb3N0KCkpIHsKICAgICAgICAgZG91YmxlIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwogICAg
ICAgICBtX21haW5GcmFtZS0+Z2V0RG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3IoJnJlZCwgJmdyZWVu
LCAmYmx1ZSwgJmFscGhhKTsKQEAgLTMxNDIsNyArMzE0MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
ICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCiAgICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5k
aWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDYxMWU4OGFlZjJjNmYyYmFkZTBkYzZiNGRmY2RkOTc0MWFmNWRkYjYuLjBlMGYzMWRmMzU2ZTFk
MWI5NTcyNGEwMDUxYWQ1M2JiNThiOTNlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzUyLDEwICszNTIsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpOwotI2VuZGlmCiAKICAgICB2b2lkIGFkZFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAg
IHZvaWQgcmVtb3ZlUGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5jcHAKaW5kZXggMGQ4MWYxN2NiY2JmYTFjMjJmOGRjNDA5M2FkNjNhYjRiNWI1OTg3OC4u
NGEwYmQ0ODljYTc1YWYyODkzMzNmMmQxOWI1ZWU5OTc5OTI5OTRjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NM
YXllckNBUmVtb3RlLmNwcApAQCAtMjQsOSArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5o
IgogCkBAIC01Niw1ICs1MywzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGlj
c0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9yCiB9CiAKIH0KLQot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJl
bW90ZS5oCmluZGV4IGU3YmQzZTMzOTc5MjA5ZjE3YWZkMDczZTA4MmViYmM2OWRjZTYyOGEuLjFl
MzQwYjY4NzQ5MjYyMGQ4NjAwNzg4ZThhYjM1YTdkNGI0MzJlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHcmFwaGljc0xheWVyQ0FSZW1v
dGVfaAogI2RlZmluZSBHcmFwaGljc0xheWVyQ0FSZW1vdGVfaAogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KIApAQCAtNjgsNiArNjYsNCBAQCBH
UkFQSElDU0xBWUVSX1RZUEVfQ0FTVFMoR3JhcGhpY3NMYXllckNBUmVtb3RlLCBpc0dyYXBoaWNz
TGF5ZXJDQVJlbW90ZSgpKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBHcmFwaGljc0xheWVyQ0FS
ZW1vdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDI1MTEzYTQ2ZTBlZGYy
OTA0ZDlkNjNmZDI4MTAwNjAyOWZhYWVhOWQuLjcxMTQ2MTA1NWJiYTc2MDc2MDc0MWY5ZTVlZWY1
ODI5N2I4ZjkzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTI0LDkgKzI0
LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogCiAjaW1w
b3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCIKQEAgLTUzMiw1ICs1MjksMyBAQCB1
aW50MzJfdCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6Omhvc3RpbmdDb250ZXh0SUQoKQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQotCi0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKaW5kZXggZGIx
MjVjYTEwY2NhYjU1OGUzNmJlODRiNjE5MjM0YjNmOGMwMjE5Yy4uNDY5ZGRlNTMyOTIxYzM3Mzky
NTg1MTY4NTE5YWYxNjhhNDcwY2VkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0y
Niw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3JtQ0FMYXllclJlbW90ZV9oCiAjZGVmaW5lIFBs
YXRmb3JtQ0FMYXllclJlbW90ZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVy
Lmg+CkBAIC0xNzIsNiArMTcwLDQgQEAgUExBVEZPUk1fQ0FMQVlFUl9UWVBFX0NBU1RTKFBsYXRm
b3JtQ0FMYXllclJlbW90ZSwgaXNQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoKSkKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNlbmRpZiAvLyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20u
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLmgKaW5kZXggZjU4YmZkMGM4NDA4YjgyNGVmOWYxYmI4YTE1NzZkYmRjYTgw
Mjk3My4uMzMyYjcyMGZlYTBlYmJhNTEyY2Q4YzU4MDE4NWMyNmNlZWIyZTM2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVm
IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01
Miw2ICs1MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxh
eWVyUmVtb3RlQ3VzdG9tX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0K
aW5kZXggOTUzOTFmN2MyMWRjZTNjODBlM2MyYmMxMjkzMmY1Zjk0NDEyM2MwOC4uZjJjMDZiMDRm
Mjc4MTQ1MmEzZWRkYTMzZGZiYzQ4YTBlYTJlZDYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVDdXN0b20ubW0KQEAgLTI0LDkgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIgogCiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250
ZXh0LmgiCkBAIC03MCw1ICs2NywzIEBAIHVpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1
c3RvbTo6aG9zdGluZ0NvbnRleHRJRCgpCiB7CiAgICAgcmV0dXJuIG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+Y29udGV4dElEKCk7CiB9Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5j
cHAKaW5kZXggY2Y0MWMyNzNlZTA5MzMxZDZjNDNlNWRjODU0ODVkYjY0NDZiYmZmNC4uMzA1Mzc5
NWM4YTY0NzJmOGYzYzRjZDg0OWJkYWY3YTU0YzVlNDg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJh
Y2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcApAQCAtMjQsOSArMjQsNiBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgiCiAKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKQEAgLTEwNSw1ICsxMDIsMyBAQCB2b2lk
IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyQ29sb3IoY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIGNvbAogewogICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldFRpbGVEZWJ1
Z0JvcmRlckNvbG9yKGNvbG9yKTsKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5o
CmluZGV4IDJmM2NlMTQ4YWJkNzNiMzkyNzdiMDkxYTZkNzMxMDA0ZTc1Mjc3ZTEuLjlkM2Y5NTA1
OWZjNWFlNGE5MTExZTI3NTMzZTAzNjExMmU2ZjY3OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNr
aW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtNjEsNiArNTksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFBs
YXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCA3MGVhNWZlMTM1Zjc2ZDE3ZjUyOThjNmE1NWNlMDMxZDNj
MTZhMDkzLi5mODU0ZjM2OWQ1ZjQwZmVjMWFhZGMyMDlkNmU0NDQ3MTE2MmY2N2U3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCBX
ZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fc2hvdWxkVHJhY2tWaXNpdGVkTGlua3Mo
dHJ1ZSkKICAgICAsIG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkKICAgICAsIG1fY2FjaGVNb2Rl
bChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9jb21wb3Np
dGluZ1JlbmRlclNlcnZlclBvcnQoTUFDSF9QT1JUX05VTEwpCiAjZW5kaWYKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDNkNDZlNGUw
NzllMGZiZGYwZGE1ZjhhODdjNzA2ZWQ1NTZhNzA4Y2YuLmY4ZDk5ZmIxZjExMDhjZDlmNWFkN2Fh
MDNkNjEzNGEwNzkyMDZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CkBAIC0xMTEsMTAgKzExMSw4IEBAIHB1YmxpYzoKICAgICBJbmplY3RlZEJ1bmRsZSogaW5qZWN0
ZWRCdW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlLmdldCgpOyB9CiAKICNp
ZiBQTEFURk9STShNQUMpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1h
Y2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0OyB9CiAjZW5kaWYKLSNlbmRpZgogICAgIAogICAg
IHZvaWQgc2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoYm9vbCk7CiAgICAgdm9pZCBhZGRWaXNp
dGVkTGluayhXZWJDb3JlOjpMaW5rSGFzaCk7CkBAIC0yOTEsMTAgKzI4OSw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWw7CiAgICAgQ2FjaGVNb2RlbCBtX2NhY2hlTW9k
ZWw7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRGT1JNKE1BQykK
LSAgICBtYWNoX3BvcnRfdCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKLSNlbmRpZgog
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBtYWNoX3BvcnRfdCBtX2NvbXBvc2l0aW5nUmVuZGVyU2Vy
dmVyUG9ydDsKICAgICBwaWRfdCBtX3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogICAgIGRpc3Bh
dGNoX2dyb3VwX3QgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91cDsKICAgICBib29s
IG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDkxNzllNGU3NWNhMGU5ZTk5YzkwY2U4
OGM4OTg5ZGRlM2FlYmQ3N2QuLjk5NzJkYjUzODQ5MmNkY2Y2N2VjODJkYzI4YzdmNzY0ZGM4OWQy
NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNv
bT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgzMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBi
YXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChpbml0RWNvcmVFdmFzKToK
KyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAod2luZG93Q3JlYXRlKToK
KyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAoZWxtX21haW4pOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjppbml0RWNvcmVFdmFzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHA6CisgICAgICAgIChXVFI6
OmluaXRFY29yZUV2YXMpOgorCiAyMDE0LTAxLTI3ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFj
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFN1cHBvcnQgQHNjb3BlIGluIEhUTUwgdGFibGVz
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBhYzg1
ZjA0YWJmYTc3MjNhYjViYjRlMmE1Y2Y2YmVjZGYxNTI1NzY0Li5lMWNhZDM2OGVkOTc1NmUwOTAx
MjA0ZjdiMWJhODYwMzg3MDhmMTU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTQzNiw3ICs0MzYsNyBAQCB2b2lkIGR1bXAoKQogc3RhdGljIEVj
b3JlX0V2YXMqIGluaXRFY29yZUV2YXMoKQogewogICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9
IDA7Ci0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZp
bmVkKEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKICAgICBlY29yZUV2
YXMgPSBlY29yZV9ldmFzX25ldygib3BlbmdsX3gxMSIsIDAsIDAsIDgwMCwgNjAwLCAwKTsKICAg
ICBpZiAoIWVjb3JlRXZhcykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVy
L21haW4uYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKaW5kZXggMTZlNDUyNDFiNmZhMzcw
MjA2NjJmYTQzM2M5ZGY3ZDU2ZDNlYmFjMy4uMGM5NzllM2NhOWUyMTQxNWRhYTMxYTEyNmU2YjRm
OWU0NjI0NDJhMyAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysgYi9U
b29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC03OTgsMTEgKzc5OCwxMSBAQCB3aW5kb3dDcmVh
dGUoVXNlcl9Bcmd1bWVudHMgKnVzZXJBcmdzKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9
CiAKLSNpZiBkZWZpbmVkKFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmlu
ZWQoSEFWRV9FQ09SRV9YKQorI2lmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQogICAgIGlmICh1c2Vy
QXJncy0+ZW5naW5lKQogI2VuZGlmCiAgICAgICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyh1
c2VyQXJncy0+ZW5naW5lLCAwLCAwLCB1c2VyQXJncy0+Z2VvbWV0cnkudywgdXNlckFyZ3MtPmdl
b21ldHJ5LmgsIE5VTEwpOwotI2lmIGRlZmluZWQoV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykgJiYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCisjaWYgZGVmaW5lZChIQVZFX0VDT1JFX1gp
CiAgICAgZWxzZSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGVuZ2luZSA9ICJvcGVuZ2xfeDExIjsK
ICAgICAgICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KGVuZ2luZSwgMCwgMCwgdXNlckFyZ3Mt
Pmdlb21ldHJ5LncsIHVzZXJBcmdzLT5nZW9tZXRyeS5oLCBOVUxMKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
CmluZGV4IGYxNmRlYjQ2NDJkMmE5ZmVjMDU3MmQ1OWQxMmYyMDUyYjAzYTI5ZWMuLjJhOGZkYTEw
MTgwMTk1MDczNWVhZGFiZWU0NzhhNTJiNTQ5OGJlMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwpAQCAt
MTk3Miw3ICsxOTcyLDcgQEAgZWxtX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogICAg
IGlmIChldmFzX2VuZ2luZV9uYW1lKQogICAgICAgICBlbG1fY29uZmlnX3ByZWZlcnJlZF9lbmdp
bmVfc2V0KGV2YXNfZW5naW5lX25hbWUpOwotI2lmIGRlZmluZWQoV1RGX1VTRV9BQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCisjaWYgZGVmaW5lZChIQVZF
X0VDT1JFX1gpCiAgICAgZWxzZSB7CiAgICAgICAgIGV2YXNfZW5naW5lX25hbWUgPSAib3Blbmds
X3gxMSI7CiAgICAgICAgIGVsbV9jb25maWdfcHJlZmVycmVkX2VuZ2luZV9zZXQoZXZhc19lbmdp
bmVfbmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdl
YlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1XZWJWaWV3LmNwcApp
bmRleCA1YTNhYTZiMWUzYTk5NzUwOWY3MWI5NzVlY2NhMTYwMjNkZWI2NjI1Li42MGJjODY5YTdm
NzIwM2VkOGVlYjlhMzM2ZDMyNzQ2MjEyODQwZWI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
ZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIEVjb3JlX0V2
YXMqIGluaXRFY29yZUV2YXMoKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEVjb3JlX0V2YXMq
IGVjb3JlRXZhczsKLSNpZiBkZWZpbmVkKFdURl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQorI2lmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQogICAg
IGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfbmV3KCJvcGVuZ2xfeDExIiwgMCwgMCwgODAwLCA2MDAs
IDApOwogICAgIC8vIEdyYWNlZnVsIGZhbGxiYWNrIHRvIHNvZnR3YXJlIHJlbmRlcmluZyBpZiBl
dmFzX2dsIGVuZ2luZSBpcyBub3QgYXZhaWxhYmxlLgogICAgIGlmICghZWNvcmVFdmFzKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJv
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2Fpcm8vVGVzdEludm9jYXRpb25DYWlyby5j
cHAKaW5kZXggODI4ZTY1YjFiYjdjMzVkYjdiNDZjNGIxMzA3YzY3MjhmODhiOTEwNC4uM2FiZGZi
NmFmZjVhYzU2YzhhN2Q5MTdjY2VmNTM5YjM3OTE1Nzg2NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8uY3BwCkBAIC0xMDgsNyAr
MTA4LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRSZXBhaW50UmVjdE92ZXJsYXkoY2Fpcm9fc3VyZmFj
ZV90KiBzdXJmYWNlLCBXS0FycmF5UmVmIHJlcGFpbnQKIAogdm9pZCBUZXN0SW52b2NhdGlvbjo6
ZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoV0tJbWFnZVJlZiB3a0ltYWdlLCBXS0Fy
cmF5UmVmIHJlcGFpbnRSZWN0cykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShFRkwpCiAgICAgVU5VU0VEX1BBUkFNKHdr
SW1hZ2UpOwogICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IFdLSW1hZ2VDcmVhdGVDYWly
b1N1cmZhY2UoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPndpbmRvd1Nu
YXBzaG90SW1hZ2UoKS5nZXQoKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5kZXggZWFjMTUzYzc3YjkxYjJiYjAwZTYz
ZDc1YmJlMTI4YjE4NTM5MzE2ZC4uNjBmNTM4MjBiOTg2NWEzMTgzMjliY2U4ZmIyNGNhMDY3NGZi
M2JhNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJW
aWV3RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZp
ZXdFZmwuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXVFIgewogc3RhdGljIEVjb3Jl
X0V2YXMqIGluaXRFY29yZUV2YXMoKQogewogICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IDA7
Ci0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVk
KEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKICAgICBjb25zdCBjaGFy
KiBlbmdpbmUgPSAib3BlbmdsX3gxMSI7CiAgICAgZWNvcmVFdmFzID0gZWNvcmVfZXZhc19uZXco
ZW5naW5lLCAwLCAwLCA4MDAsIDYwMCwgMCk7CiAgICAgLy8gR3JhY2VmdWwgZmFsbGJhY2sgdG8g
c29mdHdhcmUgcmVuZGVyaW5nIGlmIGV2YXNfZ2wgZW5naW5lIGlzIG5vdCBhdmFpbGFibGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222643</attachid>
            <date>2014-01-30 01:12:23 -0800</date>
            <delta_ts>2014-01-30 01:39:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-127833-20140130111558.patch</filename>
            <type>text/plain</type>
            <size>445078</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGExNzIxYzZjZjBiMzNhYzQ5ZWM1MGU0
MTk2MWE4Y2Q4YWRhYmZlNjEuLjk2NjlkNmQ1MWY0NzcyY2M1MDA0NDkxY2YxMzNlMGY1ODg3MmVi
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1
ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBS
ZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20g
dGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAg
KiB3dGYvT3duUHRyQ29tbW9uLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOgorICAgICAgICAoV1RGOjpkZWxldGVPd25lZFB0cik6
CisKIDIwMTQtMDEtMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3M2YyNTEzYThh
Zjc0MzgwNGE4NDhiMDk1OTZkNmRmMDcyNzQ1YzAuLjUyNWFmOTZhYjg4NDUyNDM2MzlmYjc1NDA4
ZmMzMjk1NzgyZTBlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MzQgQEAKKzIwMTQtMDEtMjkg
IEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBB
Q0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBt
YW5kYXRvcnkuCisKKyAgICAgICAgVGVzdHM6IE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25hbCBj
aGFuZ2UuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjYW5T
aGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpk
b2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIGRvbS9Qc2V1ZG9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6On5Qc2V1ZG9FbGVtZW50KToK
KyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZyYW1lQmFzZTo6Q2FjaGVkRnJhbWVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFtZTo6Q2Fj
aGVkRnJhbWUpOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuaDoKKyAgICAgICAgKiBo
aXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6cmVz
dG9yZSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRQYWdlLmg6CisgICAgICAgICogaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpQYWdlQ2FjaGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjptYXJrUGFnZXNGb3JEZXZpY2VTY2FsZUNo
YW5nZWQpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmg6CisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50c0ludG9DYW52
YXNCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpkaWREcmF3KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjptYXJrQ29udGV4dENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZXNoYXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGxhdGZvcm1MYXllcik6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZElt
cGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERl
c3Ryb3llZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpJbnN0cnVtZW50aW5nQWdlbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRGcmFtZVJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGVkQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVz
Y2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGluZ0Fu
Y2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW50ZXJDb21wb3NpdGluZ01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNT
b2Z0d2FyZVJlbmRlcmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRlZExheWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjpkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlzaWJsZUNvbnRlbnRzUmVzaXplZCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFkZGVkT3JSZW1vdmVkU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5n
VGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nSW5BbGxGcmFtZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjphZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6Omhhc0V4dGVuZGVkQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmV4dGVuZGVkQmFja2dyb3VuZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnNldFRyYWNrc1JlcGFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVz
ZXRUcmFja2VkUmVwYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6c2V0RXhwb3NlZFJlY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2Fs
ZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UpOgorICAgICAgICAqIHBhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
QmFzZTo6ZnJlZXplQXRUaW1lKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KToKKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YmxlbmRQcm9wZXJ0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25P
ZlByb3BlcnR5SXNBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVU
cmFuc2l0aW9ucyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVB
bmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5p
bWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1h
dGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9u
Ojp0aW1lVG9OZXh0U2VydmljZSk6CisgICAgICAgICogcGFnZS9pb3MvRnJhbWVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dmlld3BvcnRPZmZzZXRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjpjb250YWluc1RpbGVkQmFja2luZ0xheWVycyk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb29y
ZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRm9y
U2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNjcm9sbExheWVyRm9yRnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpoZWFkZXJMYXllckZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6Zm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZy
YW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFzVmlz
aWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvblNjcm9sbENvcm5lckxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBvc2l0aW9uU2Nyb2xsYmFyTGF5
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50U2Nyb2xsYmFycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6Omlu
dmFsaWRhdGVTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6Omlu
dmFsaWRhdGVTY3JvbGxDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
Omhvcml6b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6aGFzTGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclNjcm9sbENvcm5l
cik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5V
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFp
bnRUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVy
aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1JlbmRl
cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hT
Y2hlZHVsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hT
Y2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FG
aWx0ZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL0xheWVyRmx1c2hTY2hlZHVs
ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWlu
Z0Z1bmN0aW9uc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBRmlsdGVyc01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6ZW51
bWVyYXRlUmVjdHNCZWluZ0RyYXduKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3Qu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rp
b25zRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FG
aWx0ZXJzV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29t
cGF0aWJsZUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbkludGVybmFsLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsOjpkcmF3VGlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbkludGVybmFsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpEcmF3aW5nQnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmln
Z2VyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUlPUzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92
aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGVz
dHJveVFUTW92aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpsYXllckhvc3RDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjphY2NlbGVyYXRlZFJlbmRl
cmluZ1N0YXRlQ2hhbmdlZCk6CisgICAgICAgICgtW1dlYkNvcmVNb3ZpZU9ic2VydmVyIGxheWVy
SG9zdENoYW5nZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYlRpbGVkTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViVGlsZWRMYXllci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xE
ZWZzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250
ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNw
b3J0U3VyZmFjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xU
cmFuc3BvcnRTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
dXJmYWNlQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0M0RXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9jKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50OjpwbGF0Zm9ybUNBTGF5
ZXJMYXlvdXRTdWJsYXllcnNPZkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnBsYXRmb3JtTWVk
aWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpuYXR1cmFsU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVhdGVDR0ltYWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJp
ZXZlQ3VycmVudEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6OmN1cnJlbnRSZW5kZXJpbmdNb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnByZWZlcnJl
ZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojp0ZWFyRG93blZp
ZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQ6Omhhc1NldFVwVmlkZW9SZW5kZXJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cmV0cmlldmVB
bmRSZXNldE1vdmllVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmNyZWF0ZUxheWVyRm9yTW92aWUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6ZGVz
dHJveUxheWVyRm9yTW92aWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVl
dWUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKiBwbHVnaW5zL1Bs
dWdpblZpZXdCYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVSZW5k
ZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6aXNDYW5kaWRhdGVGb3JPcGFxdWVuZXNzVGVzdCk6CisgICAgICAgIChXZWJDb3JlOjps
YXllcnNVc2VJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmltYWdlQ2hhbmdl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpzdXNwZW5kQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zml4ZWRCYWNrZ3JvdW5kUGFp
bnRzSW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2V0U3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRl
ckZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9S
ZWdpb25NYXBwaW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpp
bWFnZURpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpu
b3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYW5SZW5kZXIzRFRyYW5zZm9ybXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnBhaW50c1dpdGhGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVMYXllclBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNoZWNrSWZEZXNjZW5kYW50Q2xpcHBp
bmdDb250ZXh0TmVlZHNVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNo
b3VsZFJlcGFpbnRBZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
ZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1v
dmVPbmx5VGhpc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxU
byk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXll
cnNBZnRlclNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmludmFsaWRh
dGVTY3JvbGxDb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwb3Np
dGlvbk92ZXJmbG93Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZERvU29m
dHdhcmVQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmNvbnRhaW5lckZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpyZXBhaW50VXNpbmdDb250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnVwZGF0
ZVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6YWNjZWxlcmF0ZWRSZW5k
ZXJpbmdTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6cmVwYWludFJvb3RDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3
OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVmlldzo6c2V0SXNJbldpbmRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcldpZGdldDo6c2V0V2lkZ2V0R2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJl
cXVpcmVzTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1
aXJlc0xheWVyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdl
UmVxdWlyZXNSZWNvbXBvc2l0ZUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0SGVhZGVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6c2V0Rm9vdGVySGVpZ2h0KToKKwogMjAxNC0wMS0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2
MzA0OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2ZTE4ZGNjYjY3NTkwYTE0NTNjMmU5ODIyZjk0MzFj
ZjBjMTJkNTliLi5iNmU0MzhhZDJjY2U0ZGU4NjdjN2ZjMTgyY2U3NDFmZWQxMGZkOWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAg
PGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAg
ICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxz
IGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAg
ICAgICAgQW5vdGhlciBwYXRjaCB3aWxsIGJlIHJlcXVpcmVkIHRvIHJlbW92ZSB0aGUgZmxhZyBz
dXBwb3J0IGZyb20gdGhlIEVGTCBidWlsZCBzeXN0ZW0uCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvUGFnZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChQYWdlQ2xpZW50RWZsOjphY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVu
dEVmbC5oOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAqIGV3ay9ld2tf
dmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoX2V3a192
aWV3X3ByaXZfZGVsKToKKyAgICAgICAgKGV3a192aWV3X21hcmtfZm9yX3N5bmMpOgorICAgICAg
ICAqIGV3ay9ld2tfdmlld19wcml2YXRlLmg6CisKIDIwMTQtMDEtMjkgIFJ5dWFuIENob2kgIDxy
eXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEVGTCBwb3J0IHNob3VsZCBzdG9wIHVz
aW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5k
ZXggOTA4YTFhMWQyZTNkZWNkMmFjMGIyZDMzOGYzNzgxZGQ3Yzg4YjY3OS4uODhiZDg0ZjQ2MzI0
MjhkMmU4NjAwMzgzMzE5NzNjYzA5ZjE3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDE0LTAxLTI5ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisg
ICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgZmxhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpIGNvbmRpdGlvbmFscyBmcm9tIHRoZSBjb2RlIGJhc2UgYW5k
IG1ha2UgQUMKKyAgICAgICAgbWFuZGF0b3J5LgorCisgICAgICAgIEFub3RoZXIgcGF0Y2ggd2ls
bCBiZSByZXF1aXJlZCB0byByZW1vdmUgdGhlIGZsYWcgc3VwcG9ydCBmcm9tIHRoZSBHVEsgYnVp
bGQgc3lzdGVtLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndpZGdldFNpemVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpmb3JjZVBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9z
ZXR0aW5ncyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlld3ByaXZhdGUuaDoKKwogMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikg
Z3VhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggODEzYmQxY2I0M2U3OGZjNzNmODc1MmMwMTZjODlj
YjZmMWFkYmUyMC4uZDFmOTYzMTdiNjBlZjZhNTg3NDhiZDU2ZTA1NWZlZmQ5MWJiZTg0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTI5ICBBbmRyZWkgQnVjdXIg
IDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGNvbmRpdGlvbmFs
cyBmcm9tIHRoZSBjb2RlIGJhc2UgYW5kIG1ha2UgQUMKKyAgICAgICAgbWFuZGF0b3J5LgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50SU9TOjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2ViVmlldy9X
ZWJVSUtpdERlbGVnYXRlLmg6CisKIDIwMTQtMDEtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXguIEZBTExU
SFJPVUdIcyBmb3IgaU9TLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQwOGI1ZTM2ZTFkNmZjZDg2MzYz
YmM2MGMxNTljZTlmNzI2ZjEwMTguLjRkYTc3Njc3MmVhNjBkMmU1MjM5NDUyYmE0YWY3NDAzMzg5
NWVjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNC0wMS0yOSAgQW5k
cmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzgzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIFJlbW92ZSB0aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBj
b25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRh
dG9yeS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGNyZWF0ZVBs
dWdpbl0pOgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgY3JlYXRlUGx1
Z2luTGF5ZXJdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGNyZWF0ZVBsdWdpbl0pOgorICAgICAg
ICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgZ2V0VmFyaWFibGU6dmFsdWU6XSk6CisgICAgICAg
ICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJQbHVnaW5D
b250cm9sbGVyIHN1cGVybGF5ZXJGb3JQbHVnaW5WaWV3Ol0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphbGxv
d2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAoUGx1Z2luV2lkZ2V0SU9TOjpkZXRhY2hQbHVnaW5MYXllcik6Cisg
ICAgICAgIChOZXRzY2FwZVBsdWdpbldpZGdldDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgICog
V2ViVmlldy9XZWJDbGlwVmlldy5tbToKKyAgICAgICAgKC1bV2ViQ2xpcFZpZXcgX2ltbWVkaWF0
ZVNjcm9sbFRvUG9pbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAg
ICAgICAgKHNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgICgrW1dlYkhUTUxWaWV3UHJp
dmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3UHJpdmF0ZSBjbGVhcl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2aWV3c10pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBoaXRUZXN0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfaXNVc2lu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbXBv
c2l0aW5nTGF5ZXJzSG9zdGluZ1ZpZXddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgdmlld0Rp
ZE1vdmVUb1N1cGVydmlld10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3UmVjdDpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlJlbmRlckxheWVyLm1tOgorICAgICAgICAoK1tXZWJSZW5kZXJMYXllciBjb21wb3Np
dGluZ0luZm9Gb3JMYXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX2Nsb3NlXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldE1lZGlhTGF5
ZXI6Zm9yUGx1Z2luVmlldzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcG9zdHNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uc10pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRQb3N0
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ10pOgorICAgICAgICAoLVtXZWJWaWV3
IF9pc1NvZnR3YXJlUmVuZGVyYWJsZV0pOgorICAgICAgICAoLVtXZWJWaWV3IGNsb3NlXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d0RhdGEubW06CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xh
eWVyRmx1c2hTY2hlZHVsZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6
CisKIDIwMTQtMDEtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpIGxlZnRvdmVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IGQ3Nzk5ODQyMDEyODU4MzU0MDdmNTg1ZjYwNWQ3NWEyYWQwY2VjZTgu
LjE0MmYxNDg5NjU3OTU5YzljZGU4YTBlMDY2OWQ5ZWZiM2NlZWEwN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFk
b2JlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgz
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFJlbW92
ZSB0aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUg
Y29kZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICBBbm90
aGVyIHBhdGNoIHdpbGwgYmUgcmVxdWlyZWQgdG8gcmVtb3ZlIHRoZSBmbGFnIHN1cHBvcnQgZnJv
bSB0aGUgV2luIGJ1aWxkIHN5c3RlbS4KKworICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6TGF5ZXJDbGll
bnQ6OnBsYXRmb3JtQ0FMYXllckxheW91dFN1YmxheWVyc09mTGF5ZXIpOgorICAgICAgICAoRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcik6CisgICAg
ICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjp+RnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
cik6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjplbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICAqIFdlYlByZWZlcmVuY2Vz
LmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3
KToKKyAgICAgICAgKFdlYlZpZXc6On5XZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OmNsb3Nl
KToKKyAgICAgICAgKFdlYlZpZXc6OnJlcGFpbnQpOgorICAgICAgICAoV2ViVmlldzo6YWRkVG9E
aXJ0eVJlZ2lvbik6CisgICAgICAgIChXZWJWaWV3OjpzY3JvbGxCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViVmlldzo6c2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViVmlldzo6dXBkYXRlQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNob3VsZEludmVydENvbG9ycyk6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3V25kUHJv
Yyk6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgICogV2ViVmll
dy5oOgorCiAyMDE0LTAxLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUHJlcGFyZSBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb24g
V2luQ2Fpcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDUwMjAxZThiNzQ5MmZmMjUxOGQzN2Nl
YWJjY2JhNjAwODQ1MWQ3YjEuLjFiNzc4YWQxNDQ5N2I5M2Y2NjgxMGJjMzlkMzAzNzA3ZmY1MDMw
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDEtMjkgIEFu
ZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NF
TEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
Y29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5k
YXRvcnkuCisKKyAgICAgICAgQW5vdGhlciBwYXRjaCB3aWxsIGJlIHJlcXVpcmVkIHRvIHJlbW92
ZSB0aGUgZmxhZyBzdXBwb3J0IGZyb20gdGhlIFdpbkNFIGJ1aWxkIHN5c3RlbS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50V2luQ0U6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorCiAyMDE0LTAxLTI1
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IGFuIHVudXNlZCBGcmFtZUxvYWRlckNsaWVudCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVmM2Fh
MGNlZDkxMzQxNzJhODAzNjBjYWEwYjY0MWIxY2I3NTNkYjcuLmRlZmUwNjY3Nzk1NDRlZTY2Mjdm
ZGRlZGY0NjA2NDExMDM3ZTdjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTQt
MDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAg
ICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1
Z2luQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6
OmVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RXZhc0dMQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29u
dGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcp
OgorICAgICAgICAoRXdrVmlldzo6ZGlzcGxheVRpbWVyRmlyZWQpOgorICAgICAgICAoRXdrVmll
dzo6Y3JlYXRlR0xTdXJmYWNlKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RD
YWxjdWxhdGUpOgorICAgICAgICAoRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdFNob3cpOgorICAg
ICAgICAoRXdrVmlldzo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdM
LmNwcDoKKyAgICAgICAgKGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNwcDoKKyAg
ICAgICAgKEVXSzJVbml0VGVzdDo6RVdLMlVuaXRUZXN0QmFzZTo6U2V0VXApOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6On5Db29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdB
cmVhUHJveHk6OnZpc2liaWxpdHlEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJl
YVByb3h5OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojpz
ZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9y
ZVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OnNldFZpc2libGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6On5EcmF3aW5nQXJlYVByb3h5SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpzZW5kVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1w
bDo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzUG9zaXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpkaWRSZW5kZXJGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6c2NyZWVuUmVjdE9mQ29udGVudHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5
Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMpOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmxheWVySG9zdERp
ZEZsdXNoTGF5ZXJzKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1w
bDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVEaWRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6Omhvc3RpbmdDb250ZXh0SUQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6aG9zdGluZ0NvbnRl
eHRJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nOjpzZXRCb3JkZXJDb2xvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxNC0wMS0z
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSURCOiBLZXkg
Z2VuZXJhdG9yIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1v
bi5oIGIvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKaW5kZXggYzMxODQ3YjhiODFjYmNl
ZWJhYTBhYmE0NmY5ZDQ2NWJkMTA2YWE3YS4uYTE5NjIxZTEzYTk2MGEzM2NhZWYwY2E2NTIzYzdj
MTI2NWQ0ZDQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKKysr
IGIvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKQEAgLTM5LDEwICszOSw4IEBAIHR5cGVk
ZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3Qg
X0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogI2VuZGlmCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0wgRXZhc19HTDsKICNlbmRpZgotI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02MCwxMCArNTgsOCBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX0hhc2gq
KTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVs
ZSopOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfT2Jq
ZWN0Kik7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfR0wqKTsKICNlbmRpZgotI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBhMGRhNTU5MTQ4OWQxODM1Nzhm
ZDMxZWQ1OThmMGZmZThmMjYzYTliLi5hYzQ1M2U5ZDUwMDhlOTJiM2M3YzgxNGJjYTkyZmNmN2Nh
M2UyOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTg1NCwxMSArODU0LDYgQEAKICNlbmRpZgogI2VuZGlm
CiAKLS8qIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nICovCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShJT1MpIHx8IChQTEFURk9STShXSU4pICYmICFVU0UoV0lOR0RJKSAmJiAhUExBVEZP
Uk0oV0lOX0NBSVJPKSkKLSNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAx
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJHTCkgJiYgIWRlZmluZWQoV1RGX1VTRV8zRF9HUkFQ
SElDUykKICNkZWZpbmUgV1RGX1VTRV8zRF9HUkFQSElDUyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2VmbC9Pd25QdHJFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL093
blB0ckVmbC5jcHAKaW5kZXggNGIyODlmODU5OGMxM2RlOGI1MTdjODBjMzYyMTAzZGZjMDNjNjAy
Zi4uMjYzNGJjZmM5YzU1YTgxNDM0ZTA1OTU3ZDRmZmY4YmJmNDA2ZjdiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZs
L093blB0ckVmbC5jcHAKQEAgLTMyLDEwICszMiw3IEBACiAjaW5jbHVkZSA8RWNvcmVfSU1GLmg+
CiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KLQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlIDxFdmFzX0dMLmg+Ci0jZW5kaWYKIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTY5LDEyICs2NiwxMCBAQCB2b2lkIGRlbGV0ZU93bmVkUHRyKEVjb3Jl
X0lNRl9Db250ZXh0KiBwdHIpCiAgICAgICAgIGVjb3JlX2ltZl9jb250ZXh0X2RlbChwdHIpOwog
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBkZWxldGVPd25lZFB0
cihFdmFzX0dMKiBwdHIpCiB7CiAgICAgaWYgKHB0cikKICAgICAgICAgZXZhc19nbF9mcmVlKHB0
cik7CiB9Ci0jZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IDFkMTc2ZWRmMTRjY2EzNTljZGIyMzUzMmRjZmQyMWJlZTAzNjc0MjguLmQz
OTU2MTU1ZTRkN2VkMmUzZDZkZWVjNGQ2Y2U0OTRhYjZjMDVmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAKICNpbmNsdWRl
ICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAotI2lmIEVOQUJM
RSgzRF9SRU5ERVJJTkcpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBFTkFC
TEUoM0RfUkVOREVSSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2Vu
ZGlmCiAKQEAgLTU3MSwxMCArNTcxLDggQEAgc3RhdGljIGJvb2wgdHJhbnNmb3JtXzNkTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGYKIAogI2lm
IEVOQUJMRSgzRF9SRU5ERVJJTkcpCiAgICAgYm9vbCB0aHJlZURFbmFibGVkID0gZmFsc2U7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3
ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICB0aHJlZURFbmFibGVkID0gdmll
dy0+Y29tcG9zaXRvcigpLmNhblJlbmRlcjNEVHJhbnNmb3JtcygpOwotI2VuZGlmCiAKICAgICBy
ZXR1cm5WYWx1ZUlmTm9QYXJhbWV0ZXIgPSB0aHJlZURFbmFibGVkOwogICAgIGhhdmUzZFJlbmRl
cmluZyA9IHRocmVlREVuYWJsZWQgPyAxIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAppbmRleCA4MjczODhmMjlkNmQyNzViYjU5OThhNzU1N2E5NmMzZmJiNjk5ODEyLi45MTcy
YjBmMWZkNDE5YzQ3YzQyNDI2OTBjN2Y5OWM5YWU2YjA0MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC02ODAsNyArNjgwLDYgQEAgYm9vbCBTdHlsZVJlc29sdmVyOjpj
YW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QKICAg
ICBpZiAoc3R5bGUtPnRyYW5zaXRpb25zKCkgfHwgc3R5bGUtPmFuaW1hdGlvbnMoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IC8vIFR1cm4gb2ZmIHN0eWxlIHNoYXJpbmcgZm9yIGVsZW1lbnRzIHRoYXQgY2FuIGdhaW4gbGF5
ZXJzIGZvciByZWFzb25zIG91dHNpZGUgb2YgdGhlIHN0eWxlIHN5c3RlbS4KICAgICAvLyBTZWUg
Y29tbWVudHMgaW4gUmVuZGVyT2JqZWN0OjpzZXRTdHlsZSgpLgogICAgIGlmIChlbGVtZW50LT5o
YXNUYWdOYW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShmcmFtZVRhZykgfHwg
ZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShvYmpl
Y3RUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKGNhbnZhc1RhZykpCkBAIC02OTIsOCArNjkxLDYgQEAgYm9vbCBTdHlsZVJlc29sdmVy
OjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKLSNlbmRpZgotCiAgICAgaWYgKGVsZW1l
bnRIYXNEaXJlY3Rpb25BdXRvKGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDljMjhjNmIyZjcwYjhlZDY3MTRmNzA1MWJkY2U3YzA0
MDMyMTc0MmEuLjdkNzBkY2MzZWU4ZWQ3YTA2MjdkNGUzODliZjAxNGQ5MjEyMGFhNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE0LDYgKzExNCw3IEBACiAjaW5jbHVkZSAiUG9pbnRl
ckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUG9wU3RhdGVFdmVudC5oIgogI2luY2x1ZGUg
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKQEAgLTE1MiwxMCArMTUzLDYgQEAK
ICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVmZmVyLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShTSEFSRURf
V09SS0VSUykKICNpbmNsdWRlICJTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmgiCiAjZW5kaWYKQEAg
LTEyNDIsMTAgKzEyMzksOCBAQCB2b2lkIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dl
ZChib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQogICAgICAgICB9CiAgICAgfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICh2aWV3KCkpCiAgICAgICAgIHZpZXco
KS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxheW91dCgpOwotI2VuZGlmCiAKICAgICBp
ZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKICAgICAgICAg
cmVuZGVyVmlldy0+cmVwYWludFZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKCk7CkBAIC0xNzUxLDkg
KzE3NDYsNyBAQCB2b2lkIERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdlIGNoYW5n
ZSkKIAogICAgICAgICBTdHlsZTo6cmVzb2x2ZVRyZWUoKnRoaXMsIGNoYW5nZSk7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGZyYW1lVmlldy51cGRhdGVDb21w
b3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKTsKLSNlbmRpZgogCiAgICAgICAgIGNsZWFy
TmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygp
OwpAQCAtMTk1Niw5ICsxOTQ5LDcgQEAgdm9pZCBEb2N1bWVudDo6Y3JlYXRlUmVuZGVyVHJlZSgp
CiAgICAgbV9yZW5kZXJWaWV3ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyVmlldz4oKnRoaXMsIFJl
bmRlclN0eWxlOjpjcmVhdGUoKSk7CiAgICAgTm9kZTo6c2V0UmVuZGVyZXIobV9yZW5kZXJWaWV3
LmdldCgpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZW5kZXJW
aWV3KCktPnNldElzSW5XaW5kb3codHJ1ZSk7Ci0jZW5kaWYKIAogICAgIHJlY2FsY1N0eWxlKFN0
eWxlOjpGb3JjZSk7CiB9CkBAIC00MDc3LDEwICs0MDY4LDggQEAgdm9pZCBEb2N1bWVudDo6c2V0
SW5QYWdlQ2FjaGUoYm9vbCBmbGFnKQogCiB2b2lkIERvY3VtZW50Ojpkb2N1bWVudFdpbGxCZWNv
bWVJbmFjdGl2ZSgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRvdyhmYWxz
ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6ZG9jdW1lbnRXaWxsU3VzcGVuZEZvclBh
Z2VDYWNoZSgpCkBAIC00MTA2LDEwICs0MDk1LDggQEAgdm9pZCBEb2N1bWVudDo6ZG9jdW1lbnRE
aWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkKICAgICBmb3IgKFZlY3RvcjxFbGVtZW50Kj46Oml0ZXJh
dG9yIGkgPSBlbGVtZW50cy5iZWdpbigpOyBpICE9IGVuZDsgKytpKQogICAgICAgICAoKmkpLT5k
b2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBpZiAocmVuZGVyVmlldygpKQogICAgICAgICByZW5kZXJWaWV3KCkt
PnNldElzSW5XaW5kb3codHJ1ZSk7Ci0jZW5kaWYKIAogICAgIEFTU0VSVChwYWdlKCkpOwogICAg
IHBhZ2UoKS0+bG9ja0FsbE92ZXJsYXlTY3JvbGxiYXJzVG9IaWRkZW4oZmFsc2UpOwpAQCAtNTAw
OCwxMiArNDk5NSwxMCBAQCB2b2lkIERvY3VtZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29u
dHJvbGxlci0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCk7CiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9
IHJlbmRlclZpZXcoKSkgewogICAgICAgICBpZiAodmlldy0+dXNlc0NvbXBvc2l0aW5nKCkpCiAg
ICAgICAgICAgICB2aWV3LT5jb21wb3NpdG9yKCkud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3Bs
YXlJRCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIFN0cmluZyBEb2N1bWVudDo6ZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZyhjb25zdCBTdHJpbmcmIHN0cikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCAyOTI1OWUyZWM4MGQ0NmE4Zjc0OTIyMjc1YmU1MGMw
MmMwNzMxNTVmLi5jZTViZjJjZmU1MjRkYzA1YzRiZjY2ZjljZjBlNDVkMmQ0NWY4NjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC02Nyw5ICs2Nyw3IEBAIFBzZXVkb0Vs
ZW1lbnQ6OlBzZXVkb0VsZW1lbnQoRWxlbWVudCYgaG9zdCwgUHNldWRvSWQgcHNldWRvSWQpCiBQ
c2V1ZG9FbGVtZW50Ojp+UHNldWRvRWxlbWVudCgpCiB7CiAgICAgQVNTRVJUKCFtX2hvc3RFbGVt
ZW50KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKGRvY3VtZW50KCkucGFnZSgpLCB0
aGlzKTsKLSNlbmRpZgogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBQc2V1ZG9FbGVtZW50
OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFt
ZS5jcHAKaW5kZXggMWY2MTY3MWQ3NWIyYzZhY2M3OWQwYmNlMjM4N2VhNTM3NDcyNTgzYi4uNzIx
ZTllM2NmYzJmMTg3YWVlNWYzZmMyYTAwYWQ0ZGQ2NjY3ZjdiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CkBAIC01OCwxMCArNTksNiBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2VuZGlmCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgi
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBERUZJTkVfREVCVUdfT05MWV9HTE9C
QUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIGNhY2hlZEZyYW1lQ291bnRlciwgKCJDYWNo
ZWRGcmFtZSIpKTsKQEAgLTczLDkgKzcwLDcgQEAgQ2FjaGVkRnJhbWVCYXNlOjpDYWNoZWRGcmFt
ZUJhc2UoRnJhbWUmIGZyYW1lKQogICAgICwgbV9tb3VzZVByZXNzTm9kZShmcmFtZS5ldmVudEhh
bmRsZXIoKS5tb3VzZVByZXNzTm9kZSgpKQogICAgICwgbV91cmwoZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCkpCiAgICAgLCBtX2lzTWFpbkZyYW1lKCFmcmFtZS50cmVlKCkucGFyZW50KCkpCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9pc0NvbXBvc2l0ZWQoZnJhbWUu
dmlldygpLT5oYXNDb21wb3NpdGVkQ29udGVudCgpKQotI2VuZGlmCiB7CiB9CiAKQEAgLTExMiwx
MCArMTA3LDggQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIC8vIGNhY2hl
ZCBwYWdlLgogICAgIGZyYW1lLnNjcmlwdCgpLnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygp
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lzQ29tcG9z
aXRlZCkKICAgICAgICAgZnJhbWUudmlldygpLT5yZXN0b3JlQmFja2luZ1N0b3JlcygpOwotI2Vu
ZGlmCiAKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRSZXN0b3JlRnJvbVBhZ2VDYWNo
ZSgpOwogCkBAIC0xODgsMTAgKzE4MSw4IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFt
ZSYgZnJhbWUpCiAKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zYXZlUGxhdGZvcm1EYXRh
VG9DYWNoZWRGcmFtZSh0aGlzKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAobV9pc0NvbXBvc2l0ZWQgJiYgcGFnZUNhY2hlKCktPnNob3VsZENsZWFyQmFja2lu
Z1N0b3JlcygpKQogICAgICAgICBmcmFtZS52aWV3KCktPmNsZWFyQmFja2luZ1N0b3JlcygpOwot
I2VuZGlmCiAKICAgICAvLyBkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkgY2FuIHNl
dCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBjbGVhciB0aW1lcnMgYWZ0
ZXIgdGhhdC4KICAgICBmcmFtZS5jbGVhclRpbWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNo
ZWRGcmFtZS5oCmluZGV4IGU5ZjM2N2JiZDQyZjUzODRjMDI4MjkzOGJiNzA1ODJlN2IyMGZkZDIu
LmZlYWUxZGYyMGI3YjRkYTliOWRjMTQ2N2ZjYmE3MmFlZmFjN2U0MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0NhY2hlZEZyYW1lLmgKQEAgLTYxLDkgKzYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JpcHRDYWNoZWRGcmFtZURhdGE+IG1fY2FjaGVkRnJhbWVTY3JpcHRE
YXRhOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRGcmFtZVBsYXRmb3JtRGF0YT4gbV9jYWNo
ZWRGcmFtZVBsYXRmb3JtRGF0YTsKICAgICBib29sIG1faXNNYWluRnJhbWU7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgbV9pc0NvbXBvc2l0ZWQ7Ci0jZW5kaWYK
ICAgICAKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENhY2hlZEZyYW1lPj4gbV9jaGlsZEZy
YW1lczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAppbmRleCBjYWQxODQ5
N2ViMjI1YzdjMTMyMzNmNmYxNWVhY2EzMTQyZTMzZjk1Li4wYjQ1YjVmZGIyOTQzYmRlNWQwNDMz
ZWE3ZDEzMzYwZjg0Yzg0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZFBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAK
QEAgLTEwMSwxMSArMTAxLDkgQEAgdm9pZCBDYWNoZWRQYWdlOjpyZXN0b3JlKFBhZ2UmIHBhZ2Up
CiAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dmlzaXRlZExpbmtTdGF0ZSgpLmludmFs
aWRhdGVTdHlsZUZvckFsbExpbmtzKCk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChtX25lZWRzRGV2aWNlU2NhbGVDaGFuZ2VkKSB7CiAgICAgICAg
IHBhZ2UubWFpbkZyYW1lKCkuZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBpZiAobV9uZWVkc0Z1bGxTdHlsZVJlY2FsYykKICAgICAgICAgcGFn
ZS5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNo
ZWRQYWdlLmgKaW5kZXggYmI4M2UwZmZmODgxMDBmZjIwMGFhMTY2NzE0N2Y1NGU3ZTQ3NTc4Ny4u
Yzk3N2RkZGQ0ZDE5YzJkZTYzZDcwYTEyZTFkODQ4ZGU0NzRhMzAyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9DYWNoZWRQYWdlLmgKQEAgLTU2LDkgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFy
a0ZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSB7IG1fbmVlZHNDYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkID0gdHJ1ZTsgfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgdm9pZCBtYXJrRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKCkgeyBtX25lZWRzRGV2
aWNlU2NhbGVDaGFuZ2VkID0gdHJ1ZTsgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBk
ZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNTdlYzI0ZWZi
NmU5MmI4YzQ0YmJjN2QxOWI5OWRkMDg3ZjNmNTNhMi4uZDc4ZmExMjhkMjg0YzdkMWYyOWU1NjM2
MGIzYWQ5NzViOGIyMmFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAt
MzA2LDkgKzMwNiw3IEBAIFBhZ2VDYWNoZTo6UGFnZUNhY2hlKCkKICAgICAsIG1fc2l6ZSgwKQog
ICAgICwgbV9oZWFkKDApCiAgICAgLCBtX3RhaWwoMCkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgLCBtX3Nob3VsZENsZWFyQmFja2luZ1N0b3JlcyhmYWxzZSkKLSNlbmRp
ZgogewogfQogICAgIApAQCAtNDM0LDggKzQzMiw2IEBAIHZvaWQgUGFnZUNhY2hlOjptYXJrUGFn
ZXNGb3JGdWxsU3R5bGVSZWNhbGMoUGFnZSogcGFnZSkKICAgICB9CiB9CiAKLQotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUGFnZUNhY2hlOjptYXJrUGFnZXNGb3JEZXZp
Y2VTY2FsZUNoYW5nZWQoUGFnZSogcGFnZSkKIHsKICAgICBmb3IgKEhpc3RvcnlJdGVtKiBjdXJy
ZW50ID0gbV9oZWFkOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bV9uZXh0KSB7CkBAIC00
NDQsNyArNDQwLDYgQEAgdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hh
bmdlZChQYWdlKiBwYWdlKQogICAgICAgICAgICAgY2FjaGVkUGFnZS0+bWFya0ZvckRldmljZVNj
YWxlQ2hhbmdlZCgpOwogICAgIH0KIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmgKaW5kZXggZWJhYjEwYzFlY2NhMGEzYzIxNWE4
OTNhMzhlYWFjM2ExMjkxMzM4YS4uMjgyMWE1YTc0Mzg2OTAwNjkxNDI0YTlkMTQ1MDc1YjJhYzY2
M2M3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCkBAIC02OCwxMSArNjgsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbWFya1BhZ2VzRm9yQ2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZCgpOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgICAgIGJvb2wgc2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVzKCkgY29uc3QgeyByZXR1
cm4gbV9zaG91bGRDbGVhckJhY2tpbmdTdG9yZXM7IH0KICAgICAgICAgdm9pZCBzZXRTaG91bGRD
bGVhckJhY2tpbmdTdG9yZXMoYm9vbCBmbGFnKSB7IG1fc2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVz
ID0gZmxhZzsgfQogICAgICAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdlZChQ
YWdlKik7Ci0jZW5kaWYKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2VDYWNoZSgpOyAvLyBV
c2UgcGFnZUNhY2hlKCkgaW5zdGVhZC4KQEAgLTkyLDkgKzkwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBIaXN0b3J5SXRlbSogbV9oZWFkOwogICAgICAgICBIaXN0b3J5SXRlbSog
bV90YWlsOwogICAgICAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
ICAgIGJvb2wgbV9zaG91bGRDbGVhckJhY2tpbmdTdG9yZXM7Ci0jZW5kaWYKICAgICAgfTsKIAog
ICAgIC8vIEZ1bmN0aW9uIHRvIG9idGFpbiB0aGUgZ2xvYmFsIHBhZ2UgY2FjaGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDUxOGEzNDIzMzMwZDJkMjk2
NDc5NDhlY2I2ZjllODBjYWFhMGM0ZDQuLjYwMGUyOTE5ZTgwZjI4YmI3NmFlMzQ5OWI1ODc0YjJj
ODE4MGRlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC0yMTIsNyArMjEyLDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1l
bnQ6OmdldENvbnRleHQoY29uc3QgU3RyaW5nJiB0eXBlLCBDYW52YXMKICAgICAgICAgICAgICAg
ICB1c2VzRGFzaGJhcmRDb21wYXRpYmlsaXR5TW9kZSA9IHNldHRpbmdzLT51c2VzRGFzaGJvYXJk
QmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwogI2VuZGlmCiAgICAgICAgICAgICBtX2NvbnRl
eHQgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZSh0aGlzLCBkb2N1bWVudCgpLmlu
UXVpcmtzTW9kZSgpLCB1c2VzRGFzaGJhcmRDb21wYXRpYmlsaXR5TW9kZSk7Ci0jaWYgVVNFKElP
U1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgKEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykpCisjaWYgVVNFKElPU1VSRkFD
RV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykK
ICAgICAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBv
c2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCiAgICAgICAgICAgICBzZXRO
ZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKICNlbmRpZgpAQCAtMzU2LDEw
ICszNTYsOCBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIGlmICht
X3JlbmRlcmVySXNDYW52YXMpIHsKICAgICAgICAgICAgIGlmIChvbGRTaXplICE9IHNpemUoKSkg
ewogICAgICAgICAgICAgICAgIHRvUmVuZGVySFRNTENhbnZhcyhyZW5kZXJlciktPmNhbnZhc1Np
emVDaGFuZ2VkKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAg
ICAgICAgIGlmIChyZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+aGFzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpKQogICAgICAgICAgICAgICAgICAgICByZW5kZXJCb3goKS0+Y29udGVudENoYW5n
ZWQoQ2FudmFzQ2hhbmdlZCk7Ci0jZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlm
IChoYWRJbWFnZUJ1ZmZlcikKICAgICAgICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwpA
QCAtMzg3LDEzICszODUsMTIgQEAgYm9vbCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnRzSW50b0Nh
bnZhc0J1ZmZlcigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFtX2NvbnRleHQtPmlzQWNjZWxl
cmF0ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAocmVuZGVyQm94KCkgJiYg
cmVuZGVyQm94KCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjE2LDcgKzYxMyw3
IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAg
ICBzaXplX3QgbnVtQnl0ZXMgPSA0ICogbV9pbWFnZUJ1ZmZlci0+aW50ZXJuYWxTaXplKCkud2lk
dGgoKSAqIG1faW1hZ2VCdWZmZXItPmludGVybmFsU2l6ZSgpLmhlaWdodCgpOwogICAgIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKS0+aGVhcC5yZXBvcnRFeHRyYU1lbW9yeUNvc3QobnVt
Qnl0ZXMpOwogCi0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgKEVO
QUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykpCisjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAobV9jb250ZXh0ICYmIG1fY29udGV4dC0+aXMy
ZCgpKQogICAgICAgICAvLyBSZWNhbGN1bGF0ZSBjb21wb3NpdGluZyByZXF1aXJlbWVudHMgaWYg
YWNjZWxlcmF0aW9uIHN0YXRlIGNoYW5nZWQuCiAgICAgICAgIGNvbnN0X2Nhc3Q8SFRNTENhbnZh
c0VsZW1lbnQqPih0aGlzKS0+c2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50aGV0aWNTdHlsZUNoYW5n
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAzNWYwMDQ3
OTg1MDQ5MjYyZmM5MjgyYzM0Nzg2Yzk2OTQ4MTEyMjI4Li45Zjk5N2IwNmMyZmZiYzkwYzU5YWQy
ZmQ1MTQ4ZjFjZmQ0MGFlNGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJQYWdlQWN0aXZpdHlBc3NlcnRpb25U
b2tlbi5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tl
ci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZGVvLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKQEAgLTc5LDEwICs4MCw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLSNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCIKICNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgpAQCAtNDAxNCw3ICs0MDExLDYgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNpemVDaGFuZ2VkKE1lZGlhUGxheWVy
KikKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVkaWFQbGF5ZXIqKQogewogICAgIGlmIChy
ZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzVmlkZW8oKSkKQEAgLTQwMjksNyArNDAyNSw2IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChN
ZWRpYVBsYXllciopCiAgICAgLy8gS2ljayBvZmYgYSBmYWtlIHJlY2FsY1N0eWxlIHRoYXQgd2ls
bCB1cGRhdGUgdGhlIGNvbXBvc2l0aW5nIHRyZWUuCiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhT
eW50aGV0aWNTdHlsZUNoYW5nZSk7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYg
VVNFKEFWRk9VTkRBVElPTikKIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJHcmFwaGljc0RldmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBj
b25zdApAQCAtNDA2MCw5ICs0MDU1LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZShNZWRpYVBsYXllciopCiAgICAgYmVnaW5Qcm9j
ZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogICAgIGlmIChkaXNwbGF5TW9kZSgpID09IFBv
c3RlcldhaXRpbmdGb3JWaWRlbykgewogICAgICAgICBzZXREaXNwbGF5TW9kZShWaWRlbyk7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBtZWRpYVBsYXllclJlbmRl
cmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyLmdldCgpKTsKLSNlbmRpZgogICAgIH0KICAgICBlbmRQ
cm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwogfQpAQCAtNDkyMiw3ICs0OTE1LDYgQEAg
UGxhdGZvcm1NZWRpYSBIVE1MTWVkaWFFbGVtZW50OjpwbGF0Zm9ybU1lZGlhKCkgY29uc3QKICAg
ICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1NZWRpYSgpIDogTm9QbGF0Zm9y
bU1lZGlhOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1M
YXllciogSFRNTE1lZGlhRWxlbWVudDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtNDk1MSw3ICs0OTQzLDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpy
ZXR1cm5QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIpCiAgICAgICAg
IHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAjZW5kaWYKLSNlbmRpZgogCiBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMDdmYWEyM2NjMDNhN2I1Yzg3MGUx
NzQzMGY0MzE0ODIyYmU1YzQ1MS4uZWJlMGU2YjdjOGY0Y2Q1YWM0Mzk2ZWVmOGZkZmRiNjM5NmNk
MTIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTEzMCwxMyAr
MTMwLDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNv
bnN0IG92ZXJyaWRlOwogICAgIAogICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNv
bnN0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFBsYXRmb3Jt
TGF5ZXIqIGJvcnJvd1BsYXRmb3JtTGF5ZXIoKTsKICAgICB2b2lkIHJldHVyblBsYXRmb3JtTGF5
ZXIoUGxhdGZvcm1MYXllciopOwogI2VuZGlmCi0jZW5kaWYKIAogICAgIGVudW0gRGVsYXllZEFj
dGlvblR5cGUgewogICAgICAgICBMb2FkTWVkaWFSZXNvdXJjZSA9IDEgPDwgMCwKQEAgLTUwOCwx
MCArNTA2LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZXNvdXJj
ZU5vdFN1cHBvcnRlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllclJlcGFpbnQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgbWVkaWFQbGF5ZXJTaXplQ2hhbmdlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJS
ZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSBv
dmVycmlkZTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckVuZ2luZVVwZGF0
ZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJGaXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQu
aAppbmRleCBiNWIyNzgxZjcwOTViZDQyNzA4M2U4MTY1ZmQ1ZjZkZGRhOGYwNTdlLi5hOWFjNWIx
MjE5NzYxYWI2N2VhNmNiNjkwMmY4ZDY2MGYyOWJiZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oCkBAIC01NiwxMCArNTYs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1Rv
Q2FudmFzKCkge30KLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0j
ZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZh
c0VsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDE4YTg3ZjRhZjAxZGVjYzc0ZTM4MzY3MWEw
YWM3NWI0ZWZmOTY5MTEuLjQ3ZDg3ZWQ1NGQyNWVhNjUzMjlhNjNjZTdhNDkzMzgwYTg3NTQ5NjAg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkhUTUxWaWRlb0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlN0cm9rZVN0eWxlQXBwbGllci5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVy
dGllcy5oIgpAQCAtNTUsMTAgKzU2LDYgQEAKICNpbmNsdWRlICJUZXh0TWV0cmljcy5oIgogI2lu
Y2x1ZGUgIlRleHRSdW4uaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgotI2VuZGlmCi0KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFy
aXRobWV0aWMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTE3MzksNyArMTczNiw3IEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3KGNvbnN0IEZsb2F0UmVjdCYgciwgdW5zaWduZWQgb3B0
aW9ucykKICAgICBpZiAoIXN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICAg
ICByZXR1cm47CiAKLSNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAmJiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykK
ICAgICAvLyBJZiB3ZSBhcmUgZHJhd2luZyB0byBoYXJkd2FyZSBhbmQgd2UgaGF2ZSBhIGNvbXBv
c2l0ZWQgbGF5ZXIsIGp1c3QgY2FsbCBjb250ZW50Q2hhbmdlZCgpLgogICAgIGlmIChpc0FjY2Vs
ZXJhdGVkKCkpIHsKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVu
ZGVyQm94KCk7CkBAIC0yMzI3LDcgKzIzMjQsNyBAQCBjb25zdCBGb250JiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmFjY2Vzc0ZvbnQoKQogICAgIHJldHVybiBzdGF0ZSgpLm1fZm9udDsKIH0K
IAotI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogUGxhdGZvcm1M
YXllciogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gY2FudmFzKCktPmJ1ZmZlcigpID8gY2FudmFzKCktPmJ1ZmZlcigpLT5wbGF0
Zm9ybUxheWVyKCkgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCAyN2I3ZTMzYzgxNmNjODcxOGRlODk5OGI3
ODdjMjQ3MGE4NWM2MzAxLi5iYjA3MzZkMDcwZjZkMmE3YjU1OWJiZDY2MjI0YTM4NGQxODQ4NWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaApAQCAtMzcsMTMgKzM3LDEwIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBl
cy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ2FudmFzR3JhZGllbnQ7CkBAIC0zMzAsNyArMzI3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgYm9vbCBoYXNJbnZlcnRpYmxlVHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFuc2Zvcm07IH0KIAotI2lmIEVO
QUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIHZpcnR1YWwgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CmluZGV4IGZhNTUzN2IwZWJiNGNkZTRkZDJkMzkyNGViZDEyOGFiYWVlM2Q3OGIuLjM4MTAzOTkw
MjJiZmE3ODYxMWE3ZDY0MjJlZjI5MmEzYWZkOTdiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNjQ3LDIxICs2
NDcsMTcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Om1hcmtDb250ZXh0Q2hhbmdlZCgp
CiAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+bWFya0NvbnRlbnRzQ2hhbmdlZCgpOwogCiAgICAg
bV9sYXllckNsZWFyZWQgPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94KCk7CiAgICAg
aWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkg
ewogICAgICAgICBtX21hcmtlZENhbnZhc0RpcnR5ID0gdHJ1ZTsKICAgICAgICAgY2FudmFzKCkt
PmNsZWFyQ29waWVkSW1hZ2UoKTsKICAgICAgICAgcmVuZGVyQm94LT5jb250ZW50Q2hhbmdlZChD
YW52YXNDaGFuZ2VkKTsKICAgICB9IGVsc2UgewotI2VuZGlmCiAgICAgICAgIGlmICghbV9tYXJr
ZWRDYW52YXNEaXJ0eSkgewogICAgICAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7
CiAgICAgICAgICAgICBjYW52YXMoKS0+ZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAw
KSwgY2xhbXBlZENhbnZhc1NpemUoKSkpOwogICAgICAgICB9Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIH0KLSNlbmRpZgogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Y2xlYXJJZkNvbXBvc2l0ZWQoR0MzRGJpdGZpZWxkIG1hc2spCkBAIC04MDIsMTEgKzc5
OCw5IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZXNoYXBlKGludCB3aWR0aCwgaW50
IGhlaWdodCkKICAgICBoZWlnaHQgPSBjbGFtcChoZWlnaHQsIDEsIG1heEhlaWdodCk7CiAKICAg
ICBpZiAobV9uZWVkc1VwZGF0ZSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94KCk7CiAg
ICAgICAgIGlmIChyZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkpCiAgICAgICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5n
ZWQpOwotI2VuZGlmCiAgICAgICAgIG1fbmVlZHNVcGRhdGUgPSBmYWxzZTsKICAgICB9CiAKQEAg
LTQ3NzYsMTIgKzQ3NzAsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmZvcmNlUmVz
dG9yZUNvbnRleHQoKQogICAgICAgICBtX3Jlc3RvcmVUaW1lci5zdGFydE9uZVNob3QoMCk7CiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiAo
IWlzQ29udGV4dExvc3QoKSkgPyBtX2NvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSA6IDA7CiB9Ci0j
ZW5kaWYKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbW92ZVNoYXJlZE9iamVjdChX
ZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA4ODk5OWQ4MGU5YTJjM2ZjOTY3
MTc2MDI3NDk3NWIxYzNlNjEzMWFkLi42YWRhYzBlZmU5MjJmNDE0YWZmNjVkOTJkMDI1MmZjYzBk
Zjg2ZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaApAQCAtMzA5LDkgKzMwOSw3IEBAIHB1YmxpYzoKIAogICAgIEdyYXBoaWNz
Q29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5n
ZXQoKTsgfQogICAgIFdlYkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3JvdXAoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRleHRHcm91cC5nZXQoKTsgfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBv
dmVycmlkZTsKLSNlbmRpZgogCiAgICAgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdo
dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAppbmRleCAxOTdlZmYyYTU4NjFlZjAwNzg4NWM2ODk1ZGJmYWE1ZWM4YTVmYzVjLi44YTQx
MWI0NjczNDgyNWViMTk5ZjI5Y2JmMWI4YWY0MTg5MjUxNjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xNjUsOSArMTY1LDcg
QEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJ
bnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKIAogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvcklucHV0QWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgJnBhZ2UpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4obV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpKSk7Ci0jZW5kaWYKIAogICAgIEFTU0VSVChtX2luamVj
dGVkU2NyaXB0TWFuYWdlci0+Y29tbWFuZExpbmVBUElIb3N0KCkpOwogICAgIGlmIChDb21tYW5k
TGluZUFQSUhvc3QqIGNvbW1hbmRMaW5lQVBJSG9zdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LT5jb21tYW5kTGluZUFQSUhvc3QoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkZjEzNTcyMjc5MWE1Yjhm
Y2FhNTVlN2U2NTg0OWRkYzVhMWI0MzI1Li4xYTlhOGU2Y2YzZjNkMjAyZGQ0YjE3YTIxYWRlMjI2
NTc0YTlmZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNzY5LDEwICs3NjksOCBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudAogI2VuZGlmCiAgICAgICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICAg
ICAgZG9tQWdlbnQtPnNldERvY3VtZW50KHBhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpOwot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKEluc3BlY3Rvckxh
eWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvckxheWVyVHJlZUFnZW50KCkpCiAgICAgICAgICAgICBsYXllclRyZWVBZ2VudC0+cmVzZXQo
KTsKLSNlbmRpZgogICAgIH0KICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgZG9tQWdl
bnQtPmRpZENvbW1pdExvYWQobG9hZGVyLT5mcmFtZSgpLT5kb2N1bWVudCgpKTsKQEAgLTExODQs
NyArMTE4Miw2IEBAIEluc3RydW1lbnRpbmdBZ2VudHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6aW5zdHJ1bWVudGluZ0FnZW50c0Zvck5vbkRvY3VtZW50CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewogICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dCogbGF5ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JMYXllclRy
ZWVBZ2VudCgpKQpAQCAtMTIwMiw3ICsxMTk5LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGkK
ICAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVyVHJlZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkKICAgICAgICAgbGF5ZXJU
cmVlQWdlbnQtPnBzZXVkb0VsZW1lbnREZXN0cm95ZWQocHNldWRvRWxlbWVudCk7CiB9Ci0jZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMTNkNjIyNDU1ZDI4OTE4
MGRiZDJmYWRhMTdhMTgzNjIxOWZmYmFmNC4uOGZjZTA5NDEyZWJjZmE3MThmNzBkNzM0OThiMTgx
YmEyZjBlNTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjczLDExICsyNzMsOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVnaXN0ZXJJbnN0cnVtZW50aW5nQWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHMq
KTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVySW5zdHJ1bWVudGluZ0FnZW50cyhJbnN0cnVt
ZW50aW5nQWdlbnRzKik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
c3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCBy
ZW5kZXJMYXllckRlc3Ryb3llZChQYWdlKiwgY29uc3QgUmVuZGVyTGF5ZXIqKTsKICAgICBzdGF0
aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50Kik7Ci0j
ZW5kaWYKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtNDQ0LDExICs0NDIs
OSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNhbmNlbFBhdXNlT25OYXRpdmVFdmVudChJ
bnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IHJldHJpZXZlVGltZWxpbmVBZ2VudChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUmKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBzdGF0aWMgdm9p
ZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0
aWMgdm9pZCByZW5kZXJMYXllckRlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNv
bnN0IFJlbmRlckxheWVyKik7CiAgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3ll
ZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBzZXVkb0VsZW1lbnQqKTsKLSNlbmRpZgogCiAg
ICAgc3RhdGljIGludCBzX2Zyb250ZW5kQ291bnRlcjsKICNlbmRpZgpAQCAtMTg0Miw3ICsxODM4
LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaXJlQW5pbWF0
aW9uRnJhbWUoY29uc3QgSW5zcGVjdG9ySW5zdHIKICNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpsYXllclRyZWVEaWRDaGFuZ2UoUGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQpAQCAtMTg3NCw3ICsxODY5LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0UKICAgICBVTlVT
RURfUEFSQU0ocHNldWRvRWxlbWVudCk7CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKIGlubGluZSBJbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246Omluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcAppbmRleCAwODZlM2M4MGM0ZmE2ZjEwYjUwNzY4YThmZTUy
NGFhNzEyNDI5YmIyLi40YzFmMDA2MDk2ODZkZTk3YjViYzQ4M2NkMGNiMzY2NDMyZDViNjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVB
Z2VudC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNp
bmNsdWRlICJJbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oIgpAQCAtMzU5LDQgKzM1OCwzIEBAIHZv
aWQgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ6OnVuYmluZFBzZXVkb0VsZW1lbnQoUHNldWRvRWxl
bWVudCogcHNldWRvRWxlbWVudCkKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3Bw
CmluZGV4IDE1NjQzOTMxYjc4MDNjYTk4NjMzNmMxYjQyNTBlNmE4ZjFmY2M4YzguLjk4ZTZiZGQw
Yzk2YThjNWNhNjY5YmZiZmEzNGQzMjUyZWYzMTdjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAKQEAgLTQ4LDkgKzQ4LDcgQEAgSW5z
dHJ1bWVudGluZ0FnZW50czo6SW5zdHJ1bWVudGluZ0FnZW50cyhJbnNwZWN0b3JFbnZpcm9ubWVu
dCYgZW52aXJvbm1lbnQpCiAgICAgLCBtX2luc3BlY3RvckFnZW50KG51bGxwdHIpCiAgICAgLCBt
X2luc3BlY3RvclBhZ2VBZ2VudChudWxscHRyKQogICAgICwgbV9pbnNwZWN0b3JDU1NBZ2VudChu
dWxscHRyKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1faW5zcGVj
dG9yTGF5ZXJUcmVlQWdlbnQobnVsbHB0cikKLSNlbmRpZgogICAgICwgbV9pbnNwZWN0b3JDb25z
b2xlQWdlbnQobnVsbHB0cikKICAgICAsIG1faW5zcGVjdG9yRE9NQWdlbnQobnVsbHB0cikKICAg
ICAsIG1faW5zcGVjdG9yUmVzb3VyY2VBZ2VudChudWxscHRyKQpAQCAtNzYsOSArNzQsNyBAQCB2
b2lkIEluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KCkKICAgICBtX2luc3BlY3RvckFnZW50ID0g
bnVsbHB0cjsKICAgICBtX2luc3BlY3RvclBhZ2VBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNw
ZWN0b3JDU1NBZ2VudCA9IG51bGxwdHI7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIG1faW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQgPSBudWxscHRyOwotI2VuZGlmCiAgICAg
bV9pbnNwZWN0b3JDb25zb2xlQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yRE9NQWdl
bnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yUmVzb3VyY2VBZ2VudCA9IG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAppbmRleCBk
OWI1ZDQxZGM1NThhNjExZGQ2YzBiZWFmNDlkNWZjODU1NmJjNmY2Li5jOTlkMjY5ZmI0ZmFmNTg0
ZTBkNGM0YWQzNTg0OThmZTBhMTA5ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTEzNywxMCArMTM3LDggQEAgcHVibGljOgogICAg
IEluc3BlY3RvckNhbnZhc0FnZW50KiBpbnNwZWN0b3JDYW52YXNBZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvckNhbnZh
c0FnZW50KEluc3BlY3RvckNhbnZhc0FnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckNhbnZhc0Fn
ZW50ID0gYWdlbnQ7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudCogaW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSBjb25zdCB7
IHJldHVybiBtX2luc3BlY3RvckxheWVyVHJlZUFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0
b3JMYXllclRyZWVBZ2VudChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogYWdlbnQpIHsgbV9pbnNw
ZWN0b3JMYXllclRyZWVBZ2VudCA9IGFnZW50OyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBJ
bnN0cnVtZW50aW5nQWdlbnRzKEluc3BlY3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQmKTsKQEAg
LTE1MCw5ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQq
IG1faW5zcGVjdG9yQWdlbnQ7CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX2luc3BlY3RvclBh
Z2VBZ2VudDsKICAgICBJbnNwZWN0b3JDU1NBZ2VudCogbV9pbnNwZWN0b3JDU1NBZ2VudDsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgSW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQqIG1faW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ7Ci0jZW5kaWYKICAgICBJbnNwZWN0b3JDb25z
b2xlQWdlbnQqIG1faW5zcGVjdG9yQ29uc29sZUFnZW50OwogICAgIEluc3BlY3RvckRPTUFnZW50
KiBtX2luc3BlY3RvckRPTUFnZW50OwogICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQqIG1faW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCAxOTljOWNjNGExYjQ2OTcwZTIxMDAyNzJlMGU5Y2ZkYWMwMmQ5ODEwLi44ZjE0ZjVhZjM1NWUx
NmE0NDEyNDAwMWE5NTM0MjcwZmE5MTEwMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xODMsMTEgKzE4Myw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlIHsgfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hS
b290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIG92
ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpIG92ZXJyaWRlIHsgfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVh
bCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBvdmVycmlkZSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGQ3ZmUwZjg4YjQ5ZDljNmZhMmQ0YTlhNDc4
MGQxZDM4OGFjZmM3MDYuLmFlNWI2ZDE0YWQ2MTdjZDExNGQxMjJlNjA1NzlkYTNlMGY2NDExNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjg3LDcgKzI4Nyw2IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgLy8gQWxsb3dzIHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGljcyBs
YXllcnMgY3JlYXRlZCBieSB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyRmFj
dG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKQEAgLTMy
MSw3ICszMjAsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGxheWVy
IHRyZWUgdXBkYXRlcyBhcmUgZGlzYWJsZWQuCiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0
YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKFBhZ2UqKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKaW5kZXggNDQ1NmMwZDVhMTNiMTFiMDgwNTRkYTcwYjFkYjY5ZDcyMDZhMWQ4My4uNWE5NTk4
ZTFhN2Y5YTg1Y2JmZjY4YWY2ODQ2MDBhNDVlMTE0Y2MwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hl
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCkBAIC0xMDksMTAgKzExMCw2IEBA
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHlhcnIvUmVndWxhckV4
cHJlc3Npb24uaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRl
ICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNWRykKICNp
bmNsdWRlICJTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50RXh0ZW5zaW9ucy5o
IgpAQCAtOTk5LDE3ICs5OTYsMTIgQEAgQ29sb3IgRnJhbWU6OnRpbGVkQmFja2luZ1N0b3JlQmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKIAogU3RyaW5nIEZyYW1lOjpsYXllclRyZWVBc1RleHQoTGF5
ZXJUcmVlRmxhZ3MgZmxhZ3MpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwogCiAgICAgaWYgKCFjb250ZW50
UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgcmV0dXJuIGNvbnRl
bnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCkubGF5ZXJUcmVlQXNUZXh0KGZsYWdzKTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGZsYWdzKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci0jZW5kaWYK
IH0KIAogU3RyaW5nIEZyYW1lOjp0cmFja2VkUmVwYWludFJlY3RzQXNUZXh0KCkgY29uc3QKQEAg
LTExMjMsNyArMTExNSw2IEBAIHZvaWQgRnJhbWU6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRB
bmltYXRpb25zKCkKICAgICB9CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiB2b2lkIEZyYW1lOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQogewogICAgIGZv
ciAoUmVmUHRyPEZyYW1lPiBjaGlsZCA9IHRyZWUoKS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT50cmVlKCkubmV4dFNpYmxpbmcoKSkKQEAgLTExMzIsNyArMTEyMyw2IEBAIHZv
aWQgRnJhbWU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCiAgICAgaWYgKFJlbmRl
clZpZXcqIHJvb3QgPSBjb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcm9vdC0+Y29tcG9zaXRv
cigpLmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQotI2VuZGlmCiAKIGJvb2wg
RnJhbWU6OmlzVVJMQWxsb3dlZChjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aAppbmRleCBlZmY4ZTE0MWQ1YjU5OWMzMTYxYjJmMTJjYzgwYTg5OGM1ZDgyOGMxLi4zZTg5MjA3
OWQ5NzM2YmM4NWNiZDczZWZjZWQ5YjQ5MDk1NjEwZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0x
OTUsOSArMTk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBTY2FsZSBmYWN0
b3Igb2YgdGhpcyBmcmFtZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvbnRhaW5lci4KICAgICAgICAg
ZmxvYXQgZnJhbWVTY2FsZUZhY3RvcigpIGNvbnN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICAgICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgp
OwotI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCmluZGV4IDhhOWRlZjQxM2Q5ZDc4OTNiYzdlNjVlOGY3M2RhYWQ4NjViMTQwYWQuLjQ3MTE5
ZTFlYzY4ODE0ZDg2YjdiOTYzMThmMDUyM2ZlZGZiNWJkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJRnJhbWUuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgor
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9s
bGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhclBhcnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZS5oIgpAQCAtNzUsMTYgKzc2LDEyIEBACiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJUZXh0U3RyZWFt
LmgiCisjaW5jbHVkZSAiVGlsZWRCYWNraW5nLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRl
ckxheWVyQ29tcG9zaXRvci5oIgotI2luY2x1ZGUgIlRpbGVkQmFja2luZy5oIgotI2VuZGlmCi0K
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJT
VkdEb2N1bWVudC5oIgpAQCAtNDMzLDEyICs0MzAsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnNldEZy
YW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFy
ZWFTZXQoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkgewogICAgICAgICBpZiAo
cmVuZGVyVmlldy0+dXNlc0NvbXBvc2l0aW5nKCkpCiAgICAgICAgICAgICByZW5kZXJWaWV3LT5j
b21wb3NpdG9yKCkuZnJhbWVWaWV3RGlkQ2hhbmdlU2l6ZSgpOwogICAgIH0KLSNlbmRpZgogCiAg
ICAgaWYgKCFmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkpCiAgICAgICAgIHNlbmRSZXNpemVFdmVu
dElmTmVlZGVkKCk7CkBAIC03MTMsNyArNzA4LDYgQEAgdm9pZCBGcmFtZVZpZXc6OmNhbGN1bGF0
ZVNjcm9sbGJhck1vZGVzRm9yTGF5b3V0KFNjcm9sbGJhck1vZGUmIGhNb2RlLCBTY3JvbGxiYXIK
ICAgICB9ICAgIAogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBG
cmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpCiB7CiAg
ICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKQEAgLTkyMyw3
ICs5MTcsNiBAQCB2b2lkIEZyYW1lVmlldzo6c2NoZWR1bGVMYXllckZsdXNoQWxsb3dpbmdUaHJv
dHRsaW5nKCkKICAgICAgICAgcmV0dXJuOwogICAgIHZpZXctPmNvbXBvc2l0b3IoKS5zY2hlZHVs
ZUxheWVyRmx1c2godHJ1ZSAvKiBjYW5UaHJvdHRsZSAqLyk7CiB9Ci0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIEZyYW1lVmlldzo6c2V0SGVhZGVySGVpZ2h0
KGludCBoZWFkZXJIZWlnaHQpCiB7CkBAIC05NDcsMTYgKzk0MCwxMyBAQCB2b2lkIEZyYW1lVmll
dzo6c2V0Rm9vdGVySGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCiAKIGJvb2wgRnJhbWVWaWV3Ojpo
YXNDb21wb3NpdGVkQ29udGVudCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmll
dygpKQogICAgICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLmluQ29tcG9zaXRp
bmdNb2RlKCk7Ci0jZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRnJhbWVWaWV3
OjpoYXNDb21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCkgY29uc3QKIHsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBt
X2ZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCht
X2ZyYW1lLmdldCgpKSkgewogICAgICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpOwogICAgICAgICBpZiAoUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBj
b21wb3NpdG9yID0gcmVuZGVyVmlldyA/ICZyZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkgOiAwKSB7
CkBAIC05NjcsNTEgKzk1Nyw0MyBAQCBib29sIEZyYW1lVmlldzo6aGFzQ29tcG9zaXRlZENvbnRl
bnRJbmNsdWRpbmdEZXNjZW5kYW50cygpIGNvbnN0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9Ci0jZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRnJh
bWVWaWV3OjpoYXNDb21wb3NpdGluZ0FuY2VzdG9yKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgp
LnRyZWUoKS5wYXJlbnQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkg
ewogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkgewogICAgICAg
ICAgICAgaWYgKHZpZXctPmhhc0NvbXBvc2l0ZWRDb250ZW50KCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIC8vIFNvbWV0aW1lcyAoZm9yIHBsdWctaW5zKSB3ZSBuZWVkIHRvIGVhZ2VybHkgZ28g
aW50byBjb21wb3NpdGluZyBtb2RlLgogdm9pZCBGcmFtZVZpZXc6OmVudGVyQ29tcG9zaXRpbmdN
b2RlKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgcmVuZGVy
Vmlldy0+Y29tcG9zaXRvcigpLmVuYWJsZUNvbXBvc2l0aW5nTW9kZSgpOwogICAgICAgICBpZiAo
IW5lZWRzTGF5b3V0KCkpCiAgICAgICAgICAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wg
RnJhbWVWaWV3Ojppc0VuY2xvc2VkSW5Db21wb3NpdGluZ0xheWVyKCkgY29uc3QKIHsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYXV0byBmcmFtZU93bmVyUmVuZGVyZXIg
PSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICBpZiAoZnJhbWVPd25lclJlbmRlcmVyICYm
IGZyYW1lT3duZXJSZW5kZXJlci0+Y29udGFpbmVyRm9yUmVwYWludCgpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGlmIChGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSBwYXJlbnRGcmFtZVZp
ZXcoKSkKICAgICAgICAgcmV0dXJuIHBhcmVudFZpZXctPmlzRW5jbG9zZWRJbkNvbXBvc2l0aW5n
TGF5ZXIoKTsKLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpCiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgYWxsRnJhbWVzRmx1c2hlZCA9IGZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNGcmFtZSgmZnJhbWUoKSk7CiAgICAgCiAgICAgZm9yIChG
cmFtZSogY2hpbGQgPSBmcmFtZSgpLnRyZWUoKS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT50cmVlKCkudHJhdmVyc2VOZXh0KCZmcmFtZSgpKSkgewpAQCAtMTAxOSwxOSArMTAw
MSwxMiBAQCBib29sIEZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3Vi
ZnJhbWVzKCkKICAgICAgICAgYWxsRnJhbWVzRmx1c2hlZCAmPSBmbHVzaGVkOwogICAgIH0KICAg
ICByZXR1cm4gYWxsRnJhbWVzRmx1c2hlZDsKLSNlbHNlIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogfQogCiBib29sIEZyYW1lVmlldzo6
aXNTb2Z0d2FyZVJlbmRlcmFibGUoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygp
OwogICAgIHJldHVybiAhcmVuZGVyVmlldyB8fCAhcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLmhh
czNEQ29udGVudCgpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogfQogCiB2b2lk
IEZyYW1lVmlldzo6ZGlkTW92ZU9uc2NyZWVuKCkKQEAgLTEzMjgsOSArMTMwMyw3IEBAIHZvaWQg
RnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAKICAgICBsYXllci0+dXBkYXRl
TGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChyZW5kZXJWaWV3KCktPmxheWVyKCksIHVwZGF0ZUxh
eWVyUG9zaXRpb25GbGFncyhsYXllciwgc3VidHJlZSwgbV9uZWVkc0Z1bGxSZXBhaW50KSk7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQ29tcG9zaXRpbmdM
YXllcnNBZnRlckxheW91dCgpOwotI2VuZGlmCiAgICAgCiAgICAgbV9sYXlvdXRDb3VudCsrOwog
CkBAIC0xNDk0LDE0ICsxNDY3LDEzIEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDYW5CbGl0T25T
Y3JvbGxSZWN1cnNpdmVseSgpCiAKIGJvb2wgRnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRl
ZExheWVyKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
UmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKICAgICBpZiAocmVu
ZGVyVmlldyAmJiByZW5kZXJWaWV3LT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICBHcmFwaGlj
c0xheWVyKiBsYXllciA9IHJlbmRlclZpZXctPmxheWVyKCktPmJhY2tpbmcoKS0+Z3JhcGhpY3NM
YXllcigpOwogICAgICAgICBpZiAobGF5ZXIgJiYgbGF5ZXItPmRyYXdzQ29udGVudCgpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2VuZGlmCisKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKQEAgLTE2NzUsMjIgKzE2NDcsMTggQEAgYm9vbCBGcmFtZVZpZXc6OnNjcm9sbENvbnRl
bnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QKICAg
ICBmb3IgKGF1dG8mIHJlbmRlcmVyIDogKm1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpIHsK
ICAgICAgICAgaWYgKCFyZW5kZXJlci0+c3R5bGUoKS5oYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9z
aXRpb24oKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICAgICAgaWYgKHJlbmRlcmVyLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwotI2VuZGlmCiAKICAgICAgICAgLy8gRml4ZWQgaXRlbXMgc2hvdWxkIGFs
d2F5cyBoYXZlIGxheWVycy4KICAgICAgICAgQVNTRVJUKHJlbmRlcmVyLT5oYXNMYXllcigpKTsK
ICAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChyZW5k
ZXJlciktPmxheWVyKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
ICAgIGlmIChsYXllci0+dmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oKSA9
PSBSZW5kZXJMYXllcjo6Tm90Q29tcG9zaXRlZEZvckJvdW5kc091dE9mVmlldwogICAgICAgICAg
ICAgfHwgbGF5ZXItPnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKCkgPT0g
UmVuZGVyTGF5ZXI6Ok5vdENvbXBvc2l0ZWRGb3JOb1Zpc2libGVDb250ZW50KSB7CiAgICAgICAg
ICAgICAvLyBEb24ndCBpbnZhbGlkYXRlIGZvciBpbnZpc2libGUgZml4ZWQgbGF5ZXJzLgogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgICAgICBpZiAobGF5ZXItPmhhc0FuY2VzdG9yV2l0aEZpbHRlck91dHNldHMo
KSkgewpAQCAtMTcxOCwxNCArMTY4NiwxMiBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVu
dHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAogICAg
ICAgICBJbnRSZWN0IHNjcm9sbGVkUmVjdCA9IHVwZGF0ZVJlY3Q7CiAgICAgICAgIHNjcm9sbGVk
UmVjdC5tb3ZlKHNjcm9sbERlbHRhKTsKICAgICAgICAgdXBkYXRlUmVjdC51bml0ZShzY3JvbGxl
ZFJlY3QpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKGlz
Q29tcG9zaXRlZENvbnRlbnRMYXllcikgewogICAgICAgICAgICAgdXBkYXRlUmVjdCA9IHJvb3RW
aWV3VG9Db250ZW50cyh1cGRhdGVSZWN0KTsKICAgICAgICAgICAgIEFTU0VSVChyZW5kZXJWaWV3
KCkpOwogICAgICAgICAgICAgcmVuZGVyVmlldygpLT5sYXllcigpLT5zZXRCYWNraW5nTmVlZHNS
ZXBhaW50SW5SZWN0KHVwZGF0ZVJlY3QpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KLSNlbmRpZgogICAgICAgICBpZiAoY2xpcHNSZXBhaW50cygpKQogICAgICAgICAgICAgdXBk
YXRlUmVjdC5pbnRlcnNlY3QocmVjdFRvU2Nyb2xsKTsKICAgICAgICAgaG9zdFdpbmRvdygpLT5p
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0LCBmYWxzZSk7CkBAIC0xNzM2
LDcgKzE3MDIsNiBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAogCiB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoY29udGVudHNJbkNvbXBvc2l0
ZWRMYXllcigpKSB7CiAgICAgICAgIC8vIEZJWE1FOiByZXNwZWN0IHBhaW50c0VudGlyZUNvbnRl
bnRzKCk/CiAgICAgICAgIEludFJlY3QgdXBkYXRlUmVjdCA9IHZpc2libGVDb250ZW50UmVjdChM
ZWdhY3lJT1NEb2N1bWVudFZpc2libGVSZWN0KTsKQEAgLTE3NjAsNyArMTcyNSw2IEBAIHZvaWQg
RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogICAg
IFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgodXBkYXRlUmVjdCk7CiB9CkBAIC0x
Nzg0LDggKzE3NDgsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0SXNPdmVybGFwcGVkKGJvb2wgaXNP
dmVybGFwcGVkKQogCiAgICAgbV9pc092ZXJsYXBwZWQgPSBpc092ZXJsYXBwZWQ7CiAgICAgdXBk
YXRlQ2FuQmxpdE9uU2Nyb2xsUmVjdXJzaXZlbHkoKTsKLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisKICAgICBpZiAoaGFzQ29tcG9zaXRlZENvbnRlbnRJbmNsdWRpbmdE
ZXNjZW5kYW50cygpKSB7CiAgICAgICAgIC8vIE92ZXJsYXAgY2FuIGFmZmVjdCBjb21wb3NpdGlu
ZyB0ZXN0cywgc28gaWYgaXQgY2hhbmdlcywgd2UgbmVlZCB0byB0cmlnZ2VyCiAgICAgICAgIC8v
IGEgbGF5ZXIgdXBkYXRlIGluIHRoZSBwYXJlbnQgZG9jdW1lbnQuCkBAIC0xODA5LDcgKzE3NzIs
NiBAQCB2b2lkIEZyYW1lVmlldzo6c2V0SXNPdmVybGFwcGVkKGJvb2wgaXNPdmVybGFwcGVkKQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wgRnJhbWVW
aWV3Ojppc092ZXJsYXBwZWRJbmNsdWRpbmdBbmNlc3RvcnMoKSBjb25zdApAQCAtMTkzNCwxMSAr
MTg5Niw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsUG9pbnQpCiAKIHZvaWQgRnJhbWVWaWV3OjpkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRD
aGFuZ2UoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBXaGVu
IHdlIHN3aXRjaCB0byBkZWxnYXRlc1Njcm9sbGluZyBtb2RlLCB3ZSBzaG91bGQgZGVzdHJveSB0
aGUgc2Nyb2xsaW5nL2NsaXBwaW5nIGxheWVycyBpbiBSZW5kZXJMYXllckNvbXBvc2l0b3IuCiAg
ICAgaWYgKGhhc0NvbXBvc2l0ZWRDb250ZW50KCkpCiAgICAgICAgIGNsZWFyQmFja2luZ1N0b3Jl
cygpOwotI2VuZGlmCiB9CiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKQEAgLTE5OTEs
MTIgKzE5NTEsMTAgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAg
ICAgZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zZW5kU2Nyb2xsRXZlbnQoKTsKICAgICBmcmFtZSgp
LmV2ZW50SGFuZGxlcigpLmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbigpOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2Vz
Q29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFt
ZVZpZXdEaWRTY3JvbGwoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcoKQpAQCAtMjA0NSw3ICsyMDAzLDYgQEAg
Ym9vbCBGcmFtZVZpZXc6OnNob3VsZFVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxp
bmcoKSBjb25zdAogCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRl
clNjcm9sbGluZygpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
ICghc2hvdWxkVXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTIwNTMsNyArMjAxMCw2IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVD
b21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkKICAgICAgICAgaWYgKFJlbmRlclZpZXcq
IHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpCiAgICAgICAgICAgICByZW5kZXJWaWV3
LT5jb21wb3NpdG9yKCkudXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVP
blNjcm9sbCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc1J1YmJlckJh
bmRJblByb2dyZXNzKCkgY29uc3QKQEAgLTIxOTEsNDEgKzIxNDcsMzMgQEAgdm9pZCBGcmFtZVZp
ZXc6OnZpc2libGVDb250ZW50c1Jlc2l6ZWQoKQogICAgIGlmICghdXNlRml4ZWRMYXlvdXQoKSAm
JiBuZWVkc0xheW91dCgpKQogICAgICAgICBsYXlvdXQoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJl
bmRlclZpZXcoKSkgewogICAgICAgICBpZiAocmVuZGVyVmlldy0+dXNlc0NvbXBvc2l0aW5nKCkp
CiAgICAgICAgICAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuZnJhbWVWaWV3RGlkQ2hhbmdl
U2l6ZSgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIEZyYW1lVmlldzo6YWRkZWRPclJlbW92
ZWRTY3JvbGxiYXIoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBp
ZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkgewogICAgICAg
ICBpZiAocmVuZGVyVmlldy0+dXNlc0NvbXBvc2l0aW5nKCkpCiAgICAgICAgICAgICByZW5kZXJW
aWV3LT5jb21wb3NpdG9yKCkuZnJhbWVWaWV3RGlkQWRkT3JSZW1vdmVTY3JvbGxiYXJzKCk7CiAg
ICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90
dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCiAg
ICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1w
b3JhcmlseUZvckludGVyYWN0aW9uKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnVw
ZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nSW5BbGxGcmFtZXMoKQogewotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzTWFpbkxvYWRQcm9ncmVzc2luZyA9IGZyYW1l
KCkucGFnZSgpLT5wcm9ncmVzcygpLmlzTWFpbkxvYWRQcm9ncmVzc2luZygpOwogICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gbV9mcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUo
KS50cmF2ZXJzZU5leHQobV9mcmFtZS5nZXQoKSkpIHsKICAgICAgICAgaWYgKFJlbmRlclZpZXcq
IHJlbmRlclZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCkuc2V0TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKGlzTWFp
bkxvYWRQcm9ncmVzc2luZyk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojph
ZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSgpCkBAIC0yMjMzLDExICsyMTgxLDkgQEAgdm9pZCBG
cmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlKCkKICAgICBpZiAoIW1fc3BlY3Vs
YXRpdmVUaWxpbmdFbmFibGVkKQogICAgICAgICBlbmFibGVTcGVjdWxhdGl2ZVRpbGluZ0lmTmVl
ZGVkKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUmVuZGVyVmll
dyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKICAgICBpZiAocmVuZGVyVmlldyAm
JiByZW5kZXJWaWV3LT5sYXllcigpLT5iYWNraW5nKCkpCiAgICAgICAgIHJlbmRlclZpZXctPmxh
eWVyKCktPmJhY2tpbmcoKS0+YWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKLSNlbmRpZgog
I2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoVGlsZUNhY2hlKiB0aWxlQ2FjaGUgPSB0aGlzLT50
aWxlQ2FjaGUoKSkKICAgICAgICAgdGlsZUNhY2hlLT5zZXRTcGVjdWxhdGl2ZVRpbGVDcmVhdGlv
bkVuYWJsZWQobV9zcGVjdWxhdGl2ZVRpbGluZ0VuYWJsZWQpOwpAQCAtMjQ4Nyw3ICsyNDMzLDYg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShjb25zdCBDb2xv
ciYgYmFja2dyb3VuZENvbG9yLCBib29sIHQKIAogYm9vbCBGcmFtZVZpZXc6Omhhc0V4dGVuZGVk
QmFja2dyb3VuZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLmJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQ
YWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjQ5NiwyOSArMjQ0MSwxNyBAQCBi
b29sIEZyYW1lVmlldzo6aGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKCkgY29uc3QKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRpbGVkQmFja2luZy0+aGFzTWFyZ2lucygpOwotI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogSW50UmVjdCBGcmFtZVZpZXc6OmV4
dGVuZGVkQmFja2dyb3VuZFJlY3QoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFj
a2luZygpOwogICAgIGlmICghdGlsZWRCYWNraW5nKQogICAgICAgICByZXR1cm4gSW50UmVjdCgp
OwogCiAgICAgcmV0dXJuIHRpbGVkQmFja2luZy0+Ym91bmRzKCk7Ci0jZWxzZQotICAgIFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7Ci0gICAgaWYgKCFyZW5kZXJW
aWV3KQotICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotCi0gICAgcmV0dXJuIHJlbmRlclZpZXct
PnVuc2NhbGVkRG9jdW1lbnRSZWN0KCk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHZvaWQgRnJhbWVWaWV3OjpzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9u
ZFBhZ2UoYm9vbCBleHRlbmRCYWNrZ3JvdW5kKQogewogICAgIFJlbmRlclZpZXcqIHJlbmRlclZp
ZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CkBAIC0yNTMxLDcgKzI0NjQsNiBAQCB2b2lkIEZyYW1l
Vmlldzo6c2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlKGJvb2wgZXh0ZW5kQmFja2dyb3Vu
ZCkKIAogICAgIGJhY2tpbmctPnNldFRpbGVkQmFja2luZ0hhc01hcmdpbnMoZXh0ZW5kQmFja2dy
b3VuZCk7CiB9Ci0jZW5kaWYKIAogYm9vbCBGcmFtZVZpZXc6OnNob3VsZFVwZGF0ZVdoaWxlT2Zm
c2NyZWVuKCkgY29uc3QKIHsKQEAgLTI3MTYsMTIgKzI2NDgsMTAgQEAgdm9pZCBGcmFtZVZpZXc6
OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0
b3ItPmZyYW1lVmlld0xheW91dFVwZGF0ZWQodGhpcyk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhp
cy0+cmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRp
bmcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFtZVZpZXdEaWRM
YXlvdXQoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHNjcm9sbFRvQW5jaG9yKCk7CiAKQEAgLTM0
NTksMTAgKzMzODksOCBAQCB2b2lkIEZyYW1lVmlldzo6cGFpbnRDb250ZW50cyhHcmFwaGljc0Nv
bnRleHQqIHAsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAKICAgICBGb250Q2FjaGVQdXJnZVByZXZl
bnRlciBmb250Q2FjaGVQdXJnZVByZXZlbnRlcjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBpZiAoIXAtPnBhaW50aW5nRGlzYWJsZWQoKSAmJiAhZG9jdW1lbnQtPnBy
aW50aW5nKCkpCiAgICAgICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNGcmFtZSgmZnJh
bWUoKSk7Ci0jZW5kaWYKIAogICAgIFBhaW50QmVoYXZpb3Igb2xkUGFpbnRCZWhhdmlvciA9IG1f
cGFpbnRCZWhhdmlvcjsKICAgICAKQEAgLTM5MjcsMTIgKzM4NTUsMTAgQEAgdm9pZCBGcmFtZVZp
ZXc6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBhaW50cykKICAgICAgICAgICAgIGZy
YW1lKCkuZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1fZnJhbWUtPnRy
ZWUoKS50b3AoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkg
ewogICAgICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVu
ZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5zZXRUcmFja3NS
ZXBhaW50cyh0cmFja1JlcGFpbnRzKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHJlc2V0VHJhY2tl
ZFJlcGFpbnRzKCk7CiAgICAgbV9pc1RyYWNraW5nUmVwYWludHMgPSB0cmFja1JlcGFpbnRzOwpA
QCAtMzk0MSwxMCArMzg2Nyw4IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRUcmFja3NSZXBhaW50cyhi
b29sIHRyYWNrUmVwYWludHMpCiB2b2lkIEZyYW1lVmlldzo6cmVzZXRUcmFja2VkUmVwYWludHMo
KQogewogICAgIG1fdHJhY2tlZFJlcGFpbnRSZWN0cy5jbGVhcigpOwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMt
PnJlbmRlclZpZXcoKSkKICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnJlc2V0VHJh
Y2tlZFJlcGFpbnRSZWN0cygpOwotI2VuZGlmCiB9CiAKIFN0cmluZyBGcmFtZVZpZXc6OnRyYWNr
ZWRSZXBhaW50UmVjdHNBc1RleHQoKSBjb25zdApAQCAtNDA5OSwxMiArNDAyMyw4IEBAIGJvb2wg
RnJhbWVWaWV3Ojp1cGRhdGVGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgpCiAKIHZvaWQgRnJhbWVW
aWV3OjpzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFRpbGVkQmFja2luZyog
dGlsZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5nKCkpCiAgICAgICAgIHRpbGVkQmFja2lu
Zy0+c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmbGFnKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGZsYWcpOwotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpkaWRB
ZGRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQpAQCAtNDI0MCwxMyArNDE2MCwxMSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0RXhw
b3NlZFJlY3QoRmxvYXRSZWN0IGV4cG9zZWRSZWN0KQogCiAgICAgbV9leHBvc2VkUmVjdCA9IGV4
cG9zZWRSZWN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGluZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBz
dWJmcmFtZXMgYXMgd2VsbC4KICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAg
ICAgICBpZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSB0aGlzLT50aWxlZEJhY2tpbmco
KSkKICAgICAgICAgICAgIHRpbGVkQmFja2luZy0+c2V0RXhwb3NlZFJlY3QoZXhwb3NlZFJlY3Qp
OwogICAgIH0KLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAppbmRleCBiMTMyNjg0NGYyOGY3ZGM4NGRlN2IwYWYyZWU4MzE1YTM2YWE3NWMw
Li5lZDIwYmQyNjMyODFlOTZkNmVkYmQyYzliMDU4OGQyZWMxMzAxYzBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKQEAgLTEzNSw3ICsxMzUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXJ2aWNl
U2NyaXB0ZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNBbmltYXRpb25TdGFydFRpbWUpOwog
I2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCB1cGRh
dGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU3R5bGVDaGFuZ2UoKTsKICAgICB2b2lkIHVwZGF0ZUNv
bXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXQoKTsKICAgICBib29sIGZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNGcmFtZShGcmFtZSogcm9vdEZyYW1lRm9yRmx1c2gpOwpAQCAtMTU1LDcgKzE1
NCw2IEBAIHB1YmxpYzoKICAgICAvLyBJbiB0aGUgZnV0dXJlIHdoZW4gYW55IFNjcm9sbGFibGVB
cmVhIGNhbiBoYXZlIGEgbm9kZSBpbiB0aCBTY3JvbGxpbmdUcmVlLCB0aGlzIHNob3VsZAogICAg
IC8vIGJlY29tZSBhIHZpcnR1YWwgZnVuY3Rpb24gb24gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdWlu
dDY0X3Qgc2Nyb2xsTGF5ZXJJRCgpIGNvbnN0OwotI2VuZGlmCiAKICAgICBib29sIGhhc0NvbXBv
c2l0ZWRDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNDb21wb3NpdGVkQ29udGVudEluY2x1
ZGluZ0Rlc2NlbmRhbnRzKCkgY29uc3Q7CkBAIC0xOTcsOSArMTk1LDcgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKCkgY29uc3Q7CiAgICAgSW50UmVjdCBleHRlbmRl
ZEJhY2tncm91bmRSZWN0KCkgY29uc3Q7CiAgICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZvaWQgc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlKGJvb2wpOwot
I2VuZGlmCiAKICAgICBib29sIHNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbihib29sKTsKQEAgLTUxNiw3ICs1
MTIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Nj
cm9sbGFibGVBcmVhKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBJbnRSZWN0IHNjcm9s
bGFibGVBcmVhQm91bmRpbmdCb3goKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGlu
ZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JT
Y3JvbGxpbmcoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxh
eWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTI1LDcgKzUy
MCw2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIHZpcnR1YWwg
R3JhcGhpY3NMYXllciogbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCkgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKLSNlbmRpZgogCiAgICAgLy8gT3ZlcnJpZGUgc2Nyb2xsYmFyIG5vdGlmaWNhdGlvbnMg
dG8gdXBkYXRlIHRoZSBBWE9iamVjdCBjYWNoZS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkU2Ny
b2xsYmFyKFNjcm9sbGJhciosIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IGQ0NjM4ZTlkMGNlMzU3MzZkZjM3MmMzNDgyMTcxZTc2YTliOGNmMjUu
LmE2OWY1NTUzNmRkZTkzNTRiYTBhNGY3ZDEwMGQ4ZDBhNGRjMWNiMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtNzIzLDkgKzcyMyw3IEBAIHZvaWQgUGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKGZs
b2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogICAgICAgICBtYWluRnJhbWUoKS52
aWV3KCktPmludmFsaWRhdGVSZWN0KEludFJlY3QoTGF5b3V0UmVjdDo6aW5maW5pdGVSZWN0KCkp
KTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbWFpbkZy
YW1lKCkuZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKIAogICAgIGlm
ICh2aWV3ICYmIHZpZXctPmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKSkKICAg
ICAgICAgdmlldy0+c2V0Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHNOZWVkTGF5b3V0KCk7CkBA
IC03NDYsMTAgKzc0NCw4IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQg
c2NhbGVGYWN0b3IpCiAgICAgbV9kZXZpY2VTY2FsZUZhY3RvciA9IHNjYWxlRmFjdG9yOwogICAg
IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIG1haW5GcmFtZSgpLmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hh
bmdlZCgpOwogICAgIHBhZ2VDYWNoZSgpLT5tYXJrUGFnZXNGb3JEZXZpY2VTY2FsZUNoYW5nZWQo
dGhpcyk7Ci0jZW5kaWYKIAogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQogICAgICAgICBmcmFt
ZS0+ZWRpdG9yKCkuZGV2aWNlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCmluZGV4IDY3YTdjYmNjMzNjZDNmNzYxYjM3MDU2MTQxZmZmNzQ4MTllYWQ2ZjMuLmFh
ZDgxNDk2MjA4YjIzYWM4YThlYzRmOTEyZjRmMWJkMWUwOTE5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCkBAIC02MDQsOSArNjA0LDcgQEAgdm9pZCBTZXR0aW5nczo6c2V0QmFja2dyb3Vu
ZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbCBzaG91bGRFeHRlbmQpCiAKICAgICBtX2JhY2tn
cm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlID0gc2hvdWxkRXh0ZW5kOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5z
ZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2Uoc2hvdWxkRXh0ZW5kKTsKLSNlbmRpZgogfQog
CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQmFzZS5jcHAKaW5kZXggZGQzMzE1ZWJiMDY5NjE0ZDhjMDExYTRiNTllNWU1
NTdhOTUxMDUxMS4uZjUwNDRiODUyZDE0NjliYjI2YzRmYzBkMWE2ZGJlYWEzNDc2MGNhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAKQEAg
LTY1OSwxMCArNjU5LDggQEAgdm9pZCBBbmltYXRpb25CYXNlOjpmcmVlemVBdFRpbWUoZG91Ymxl
IHQpCiAgICAgZWxzZQogICAgICAgICBtX3BhdXNlVGltZSA9IG1fc3RhcnRUaW1lICsgdCAtIG1f
YW5pbWF0aW9uLT5kZWxheSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChtX29iamVjdCAmJiBtX29iamVjdC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHRv
UmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5zdXNwZW5kQW5pbWF0aW9ucyhtX3BhdXNl
VGltZSk7Ci0jZW5kaWYKIH0KIAogZG91YmxlIEFuaW1hdGlvbkJhc2U6OmJlZ2luQW5pbWF0aW9u
VXBkYXRlVGltZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDViOGM5MGI4YWIxNzAyMjIzZmQ5YTM4
MGU4NWQyY2Y0MWZmZjI4MDkuLmI3Yzk0ZWQ2NmU1NzJhYzkzMDQyMDFiYTc0ZWYwNDQyZmE3ODg0
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCkBAIC02MzQsMTIgKzYzNCw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJv
bGxlcjo6ZW5kQW5pbWF0aW9uVXBkYXRlKCkKIAogYm9vbCBBbmltYXRpb25Db250cm9sbGVyOjpz
dXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gQ1NT
UHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKHByb3Bl
cnR5KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHByb3BlcnR5KTsKLSAgICByZXR1cm4gZmFs
c2U7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4
IDI5MTEyOWU5MzJjMTJlNjg2OGU5YjRhNTY0ZDRmMGU1ZDUwZWQ3MDUuLmNmYjMyMGZiOWQ3NTMy
MDNkMTg5ZWY4ZWE2ZTNjMWM2YjVjODY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTM4OSw5ICszODks
NyBAQCBwdWJsaWM6CiAKICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KCkgY29uc3QgeyByZXR1
cm4gbV9wcm9wOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmly
dHVhbCBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgQ1NTUHJvcGVydHlJRCBtX3Byb3A7CkBAIC01MzMs
NyArNTMxLDYgQEAgcHJvdGVjdGVkOgogfTsKIAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogY2xhc3MgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRPcGFjaXR5IDogcHVibGlj
IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4gewogcHVibGljOgogICAgIFByb3BlcnR5V3JhcHBlckFj
Y2VsZXJhdGVkT3BhY2l0eSgpCkBAIC01ODMsNyArNTgwLDYgQEAgcHVibGljOgogICAgIH0KIH07
CiAjZW5kaWYKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHN0YXRp
YyBpbmxpbmUgc2l6ZV90IHNoYWRvd0xpc3RMZW5ndGgoY29uc3QgU2hhZG93RGF0YSogc2hhZG93
KQogewpAQCAtMTIzMiwxOSArMTIyOCwxMSBAQCBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJN
YXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCgpCiAKICAgICAgICAgbmV3IExlbmd0
aFByb3BlcnR5V3JhcHBlcjxMZW5ndGhCb3g+KENTU1Byb3BlcnR5Q2xpcCwgJlJlbmRlclN0eWxl
OjpjbGlwLCAmUmVuZGVyU3R5bGU6OnNldENsaXApLAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRPcGFjaXR5
KCksCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZFRyYW5zZm9ybSgpLAog
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2Vs
ZXJhdGVkRmlsdGVyKCksCiAjZW5kaWYKLSNlbHNlCi0gICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBw
ZXI8ZmxvYXQ+KENTU1Byb3BlcnR5T3BhY2l0eSwgJlJlbmRlclN0eWxlOjpvcGFjaXR5LCAmUmVu
ZGVyU3R5bGU6OnNldE9wYWNpdHkpLAotICAgICAgICBuZXcgUHJvcGVydHlXcmFwcGVyPGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbnMmPihDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSwgJlJlbmRl
clN0eWxlOjp0cmFuc2Zvcm0sICZSZW5kZXJTdHlsZTo6c2V0VHJhbnNmb3JtKSwKLSNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCi0gICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXI8Y29uc3QgRmlsdGVy
T3BlcmF0aW9ucyY+KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyLCAmUmVuZGVyU3R5bGU6OmZpbHRl
ciwgJlJlbmRlclN0eWxlOjpzZXRGaWx0ZXIpLAotI2VuZGlmCi0jZW5kaWYKIAogICAgICAgICBu
ZXcgUHJvcGVydHlXcmFwcGVyQ2xpcFBhdGgoQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCwgJlJl
bmRlclN0eWxlOjpjbGlwUGF0aCwgJlJlbmRlclN0eWxlOjpzZXRDbGlwUGF0aCksCiAKQEAgLTEz
OTMsMjMgKzEzODEsMTcgQEAgYm9vbCBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YmxlbmRQcm9wZXJ0
aWVzKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENTU1Byb3BlcnQKICAgICBBbmltYXRpb25Q
cm9wZXJ0eVdyYXBwZXJCYXNlKiB3cmFwcGVyID0gQ1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVy
TWFwOjppbnN0YW5jZSgpLndyYXBwZXJGb3JQcm9wZXJ0eShwcm9wKTsKICAgICBpZiAod3JhcHBl
cikgewogICAgICAgICB3cmFwcGVyLT5ibGVuZChhbmltLCBkc3QsIGEsIGIsIHByb2dyZXNzKTsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHJldHVybiAhd3JhcHBl
ci0+YW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIHx8ICFhbmltLT5pc0FjY2VsZXJhdGVkKCk7Ci0j
ZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogICAgIH0KIAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgQ1NTUHJv
cGVydHlBbmltYXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKENTU1Byb3Bl
cnR5SUQgcHJvcCkKIHsKICAgICBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlKiB3cmFwcGVy
ID0gQ1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwOjppbnN0YW5jZSgpLndyYXBwZXJGb3JQ
cm9wZXJ0eShwcm9wKTsKICAgICByZXR1cm4gd3JhcHBlciA/IHdyYXBwZXItPmFuaW1hdGlvbklz
QWNjZWxlcmF0ZWQoKSA6IGZhbHNlOwogfQotI2VuZGlmCiAKIC8vIE5vdGU6IHRoaXMgaXMgaW5l
ZmZpY2llbnQuIEl0J3Mgb25seSBjYWxsZWQgZnJvbSBwYXVzZVRyYW5zaXRpb25BdFRpbWUoKS4K
IEhhc2hTZXQ8Q1NTUHJvcGVydHlJRD4gQ1NTUHJvcGVydHlBbmltYXRpb246OmFuaW1hdGFibGVT
aG9ydGhhbmRzQWZmZWN0aW5nUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5o
CmluZGV4IGM0MWM3ZGQ5MGMzOTI3Y2E0ZTI4YWFiNWMzM2Y1NTAzMzdjOGM0NDEuLmIyMTQ2NmYw
ZjhmZWUzNjVjODdkMjI5MjVlODU4ZGM3YTdhYzAxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uaApAQCAtNDAsOSArNDAs
NyBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogY2xhc3MgQ1NTUHJvcGVydHlBbmltYXRpb24gewog
cHVibGljOgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBzdGF0aWMgYm9v
bCBhbmltYXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZChDU1NQcm9wZXJ0eUlEKTsKLSNlbmRp
ZgogICAgIHN0YXRpYyBib29sIHByb3BlcnRpZXNFcXVhbChDU1NQcm9wZXJ0eUlELCBjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpOwogICAgIHN0YXRpYyBDU1NQcm9w
ZXJ0eUlEIGdldFByb3BlcnR5QXRJbmRleChpbnQsIGJvb2wmIGlzU2hvcnRoYW5kKTsKICAgICBz
dGF0aWMgaW50IGdldE51bVByb3BlcnRpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IGUxODc3OWVhNzE0YjVk
MzQ3MjFlYzAyMjk3MzUwMmQ2YmUwNjM5ZTIuLjFjOTVkOTAxOTdlMzc4MGRlMGU5NzhkZTRjMGQ3
OGM1YWY3NTQzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTQ4LDcgKzE0OCw2IEBAIHZvaWQgQ29tcG9zaXRl
QW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVu
ZGVyU3R5bGUqCiAgICAgICAgICAgICAgICAgICAgIC8vIGxpc3QuIEluIHRoaXMgY2FzZSwgdGhl
IGxhdHRlciBvbmUgb3ZlcnJpZGVzIHRoZSBlYXJsaWVyIG9uZSwgc28gd2UKICAgICAgICAgICAg
ICAgICAgICAgLy8gYmVoYXZlIGFzIHRob3VnaCB0aGlzIGlzIGEgcnVubmluZyBhbmltYXRpb24g
YmVpbmcgcmVwbGFjZWQuCiAgICAgICAgICAgICAgICAgICAgIGlmICghaW1wbEFuaW0tPmlzVGFy
Z2V0UHJvcGVydHlFcXVhbChwcm9wLCB0YXJnZXRTdHlsZSkpIHsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgYWNjZWxlcmF0
ZWQgYW5pbWF0aW9ucyB3ZSBuZWVkIHRvIHJldHVybiBhIG5ldyBSZW5kZXJTdHlsZSB3aXRoIHRo
ZSBfY3VycmVudF8gdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBwcm9w
ZXJ0eSwgc28gdGhhdCByZXN0YXJ0ZWQgdHJhbnNpdGlvbnMgdXNlIHRoZSBjb3JyZWN0IHN0YXJ0
aW5nIHBvaW50LgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENTU1Byb3BlcnR5QW5pbWF0
aW9uOjphbmltYXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZChwcm9wKSAmJiBpbXBsQW5pbS0+
aXNBY2NlbGVyYXRlZCgpKSB7CkBAIC0xNTcsNyArMTU2LDYgQEAgdm9pZCBDb21wb3NpdGVBbmlt
YXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBSZW5kZXJT
dHlsZSoKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxBbmltLT5ibGVuZFByb3Bl
cnR5VmFsdWVJblN0eWxlKHByb3AsIG1vZGlmaWVkQ3VycmVudFN0eWxlLmdldCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgTE9H
KEFuaW1hdGlvbnMsICJSZW1vdmluZyBleGlzdGluZyBJbXBsaWNpdEFuaW1hdGlvbiAlcCBmb3Ig
cHJvcGVydHkgJXMiLCBpbXBsQW5pbSwgZ2V0UHJvcGVydHlOYW1lKHByb3ApKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbnRyb2xsZXIoKS0+YW5pbWF0aW9uV2lsbEJlUmVt
b3ZlZChpbXBsQW5pbSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnJl
bW92ZShwcm9wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0lt
cGxpY2l0QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmNwcAppbmRleCBhZjFkNzg4MTkwNmM3NjA0ODg5NzUyOTQ5NDEzNjg2Y2Vk
MjAyYWVkLi5mZWU2YzA3NTAwNjViODEyMjYyYWViNzM1ZTM1ZDIyNGJmMjU1ODhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3Bw
CkBAIC03Nyw3ICs3Nyw2IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUoQ29tcG9z
aXRlQW5pbWF0aW9uKiwgUmVuZGVyRWxlbWVudCosIGNvbnN0IFJlbmRlCiAgICAgaWYgKCFhbmlt
YXRlZFN0eWxlKQogICAgICAgICBhbmltYXRlZFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKHRh
cmdldFN0eWxlKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29s
IG5lZWRzQW5pbSA9IENTU1Byb3BlcnR5QW5pbWF0aW9uOjpibGVuZFByb3BlcnRpZXModGhpcywg
bV9hbmltYXRpbmdQcm9wZXJ0eSwgYW5pbWF0ZWRTdHlsZS5nZXQoKSwgbV9mcm9tU3R5bGUuZ2V0
KCksIG1fdG9TdHlsZS5nZXQoKSwgcHJvZ3Jlc3MoMSwgMCwgMCkpOwogICAgIC8vIEZJWE1FOiB3
ZSBhbHNvIG5lZWQgdG8gZGV0ZWN0IGNhc2VzIHdoZXJlIHdlIGhhdmUgdG8gc29mdHdhcmUgYW5p
bWF0ZSBmb3Igb3RoZXIgcmVhc29ucywKICAgICAvLyBzdWNoIGFzIGEgY2hpbGQgdXNpbmcgaW5o
ZXJpdGluZyB0aGUgdHJhbnNmb3JtLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM5MDIKQEAgLTg3LDcgKzg2LDYgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6YW5p
bWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJFbGVtZW50KiwgY29uc3QgUmVuZGUKICAg
ICAgICAgLy8gdGhhdCBpcyBhbmltYXRpbmcgYXJlIGNvcnJlY3RseSBkZXRlY3RlZCBkdXJpbmcg
dGhlIGFuaW1hdGlvbiAoZS5nLiB3aGVuIGEgdHJhbnNpdGlvbgogICAgICAgICAvLyBnZXRzIGlu
dGVycnVwdGVkKS4KICAgICAgICAgYW5pbWF0ZWRTdHlsZS0+c2V0SXNSdW5uaW5nQWNjZWxlcmF0
ZWRBbmltYXRpb24oKTsKLSNlbmRpZgogCiAgICAgLy8gRmlyZSB0aGUgc3RhcnQgdGltZW91dCBp
ZiBuZWVkZWQKICAgICBmaXJlQW5pbWF0aW9uRXZlbnRzSWZOZWVkZWQoKTsKQEAgLTEwMywxMiAr
MTAxLDggQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6Z2V0QW5pbWF0ZWRTdHlsZShSZWZQdHI8
UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQogCiBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpz
dGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQo
KSkKICAgICAgICAgcmV0dXJuIHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5zdGFy
dFRyYW5zaXRpb24odGltZU9mZnNldCwgbV9hbmltYXRpbmdQcm9wZXJ0eSwgbV9mcm9tU3R5bGUu
Z2V0KCksIG1fdG9TdHlsZS5nZXQoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh0aW1lT2Zm
c2V0KTsKLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTE3LDEyICsxMTEsOCBA
QCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNl
dCkKICAgICBpZiAoIW1fb2JqZWN0KQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQoKSkKICAg
ICAgICAgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29iamVjdCktPnRyYW5zaXRpb25QYXVzZWQo
dGltZU9mZnNldCwgbV9hbmltYXRpbmdQcm9wZXJ0eSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TSh0aW1lT2Zmc2V0KTsKLSNlbmRpZgogICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFu
aW1hdGVkKSBzdHlsZQogICAgIGlmICghcGF1c2VkKCkpCiAgICAgICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMobV9vYmplY3QtPmVsZW1lbnQoKSk7CkBAIC0xMzAsMTAgKzEyMCw4IEBAIHZvaWQgSW1w
bGljaXRBbmltYXRpb246OnBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KQogCiB2b2lk
IEltcGxpY2l0QW5pbWF0aW9uOjplbmRBbmltYXRpb24oKQogewotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAobV9vYmplY3QgJiYgbV9vYmplY3QtPmlzQ29tcG9zaXRl
ZCgpKQogICAgICAgICB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+dHJhbnNpdGlv
bkZpbmlzaGVkKG1fYW5pbWF0aW5nUHJvcGVydHkpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW1wbGlj
aXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkKQEAgLTI4NSw3
ICsyNzMsNiBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVy
RnVuY3Rpb25MaXN0cygpCiBkb3VibGUgSW1wbGljaXRBbmltYXRpb246OnRpbWVUb05leHRTZXJ2
aWNlKCkKIHsKICAgICBkb3VibGUgdCA9IEFuaW1hdGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNl
KCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICh0ICE9IDAgfHwg
cHJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybiB0OwogICAgICAgICAKQEAgLTI5NSw3ICsyODIs
NiBAQCBkb3VibGUgSW1wbGljaXRBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKICAgICAg
ICAgYm9vbCBpc0xvb3Bpbmc7CiAgICAgICAgIGdldFRpbWVUb05leHRFdmVudCh0LCBpc0xvb3Bp
bmcpOwogICAgIH0KLSNlbmRpZgogICAgIHJldHVybiB0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggOGY2NjFj
NmMzMThjYzhjMzEyOTZjYmNkYzE5NGRlODA2Yzg2NDhkOC4uYmYxMGMyNzY5N2RmOWE0ZDE1OWQz
NWI2MTYyMjE2NjNkYjc2OTNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtMTgzLDE0ICsxODMsMTIgQEAgdm9pZCBL
ZXlmcmFtZUFuaW1hdGlvbjo6YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qIGNvbXBvc2l0ZUFu
aW1hdGlvbiwgUmVuZGVyRWwKICAgICAgICAgZG91YmxlIHByb2dyZXNzID0gMC4wOwogICAgICAg
ICBmZXRjaEludGVydmFsRW5kcG9pbnRzRm9yUHJvcGVydHkoKml0LCBmcm9tU3R5bGUsIHRvU3R5
bGUsIHByb2dyZXNzKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAg
ICAgYm9vbCBuZWVkc0FuaW0gPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YmxlbmRQcm9wZXJ0aWVz
KHRoaXMsICppdCwgYW5pbWF0ZWRTdHlsZS5nZXQoKSwgZnJvbVN0eWxlLCB0b1N0eWxlLCBwcm9n
cmVzcyk7CiAgICAgICAgIGlmICghbmVlZHNBbmltKQogICAgICAgICAgICAgLy8gSWYgd2UgYXJl
IHJ1bm5pbmcgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uLCBzZXQgYSBmbGFnIGluIHRoZSBzdHls
ZQogICAgICAgICAgICAgLy8gdG8gaW5kaWNhdGUgaXQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gbWFr
ZSBzdXJlIHdlIGdldCBhbiB1cGRhdGVkCiAgICAgICAgICAgICAvLyBzdHlsZSBmb3IgaGl0IHRl
c3RpbmcsIGV0Yy4KICAgICAgICAgICAgIGFuaW1hdGVkU3R5bGUtPnNldElzUnVubmluZ0FjY2Vs
ZXJhdGVkQW5pbWF0aW9uKCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAgLTIyNiwxMyArMjI0LDkg
QEAgYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIAogYm9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6c3RhcnRB
bmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChtX29iamVjdCAmJiBtX29iamVjdC0+aXNDb21wb3NpdGVkKCkpIHsK
ICAgICAgICAgcmV0dXJuIHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5zdGFydEFu
aW1hdGlvbih0aW1lT2Zmc2V0LCBtX2FuaW1hdGlvbi5nZXQoKSwgbV9rZXlmcmFtZXMpOwogICAg
IH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQpOwotI2VuZGlmCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCkBAIC0yNDEsMTIgKzIzNSw5IEBAIHZvaWQgS2V5ZnJhbWVBbmltYXRp
b246OnBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KQogICAgIGlmICghbV9vYmplY3Qp
CiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAobV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICB0b1JlbmRlckJveE1vZGVs
T2JqZWN0KG1fb2JqZWN0KS0+YW5pbWF0aW9uUGF1c2VkKHRpbWVPZmZzZXQsIG1fa2V5ZnJhbWVz
LmFuaW1hdGlvbk5hbWUoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh0aW1lT2Zmc2V0KTsK
LSNlbmRpZgorCiAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxl
CiAgICAgaWYgKCFwYXVzZWQoKSkKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhtX29iamVj
dC0+ZWxlbWVudCgpKTsKQEAgLTI1NywxMCArMjQ4LDkgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlv
bjo6ZW5kQW5pbWF0aW9uKCkKICAgICBpZiAoIW1fb2JqZWN0KQogICAgICAgICByZXR1cm47CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0LT5pc0Nv
bXBvc2l0ZWQoKSkKICAgICAgICAgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29iamVjdCktPmFu
aW1hdGlvbkZpbmlzaGVkKG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSk7Ci0jZW5kaWYKKwog
ICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgIGlmICgh
cGF1c2VkKCkpCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMobV9vYmplY3QtPmVsZW1lbnQo
KSk7CkBAIC00MzIsNyArNDIyLDYgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Y2hlY2tGb3JN
YXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKQogZG91YmxlIEtleWZyYW1lQW5pbWF0aW9uOjp0
aW1lVG9OZXh0U2VydmljZSgpCiB7CiAgICAgZG91YmxlIHQgPSBBbmltYXRpb25CYXNlOjp0aW1l
VG9OZXh0U2VydmljZSgpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBp
ZiAodCAhPSAwIHx8IHByZUFjdGl2ZSgpKQogICAgICAgICByZXR1cm4gdDsKICAgICAgICAgCkBA
IC00NTIsNyArNDQxLDcgQEAgZG91YmxlIEtleWZyYW1lQW5pbWF0aW9uOjp0aW1lVG9OZXh0U2Vy
dmljZSgpCiAgICAgICAgIGJvb2wgaXNMb29waW5nOwogICAgICAgICBnZXRUaW1lVG9OZXh0RXZl
bnQodCwgaXNMb29waW5nKTsKICAgICB9Ci0jZW5kaWYKKwogICAgIHJldHVybiB0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IDE0OTY4YjZjODM1M2YzMjZjMDJlNjM5
NWJhM2QyNWRmMjI3ODYxM2MuLmI0ZTNjM2MyYTdlYmYxNjEyMDIxN2ZjZTFmZWMyMGE0MTE1YWM2
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC04NzYsNyArODc2LDYgQEAg
c3RhdGljIGJvb2wgYW55RnJhbWVIYXNUaWxlZExheWVycyhGcmFtZSogcm9vdEZyYW1lKQogCiB2
b2lkIEZyYW1lOjp2aWV3cG9ydE9mZnNldENoYW5nZWQoVmlld3BvcnRPZmZzZXRDaGFuZ2VUeXBl
IGNoYW5nZVR5cGUpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChjaGFuZ2VUeXBlID09IEluY3JlbWVudGFsU2Nyb2xsT2Zmc2V0KSB7CiAgICAgICAgIGlmIChh
bnlGcmFtZUhhc1RpbGVkTGF5ZXJzKHRoaXMpKSB7CiAgICAgICAgICAgICBpZiAoUmVuZGVyVmll
dyogcm9vdCA9IGNvbnRlbnRSZW5kZXJlcigpKQpAQCAtODg4LDE1ICs4ODcsMTMgQEAgdm9pZCBG
cmFtZTo6dmlld3BvcnRPZmZzZXRDaGFuZ2VkKFZpZXdwb3J0T2Zmc2V0Q2hhbmdlVHlwZSBjaGFu
Z2VUeXBlKQogICAgICAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IGNvbnRlbnRSZW5kZXJlcigp
KQogICAgICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
KENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwpOwogICAgIH0KLSNlbmRpZgogfQogCiBib29sIEZy
YW1lOjpjb250YWluc1RpbGVkQmFja2luZ0xheWVycygpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gY29udGVudFJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiByb290LT5jb21wb3NpdG9yKCkuaGFzTm9uTWFpbkxh
eWVyc1dpdGhUaWxlZEJhY2tpbmcoKTsKLSNlbmRpZgorCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDc3YzUwYjg0MmNiYTUxOWZkMGYwMTQ4YTk5Y2Ex
MjRmMmUwYWQ1OTYuLjI3Mzg2MWMxMzU0MmI5NDM1M2RjMTU3YjM5ODk0ODBkODkzMTc2ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xOTcsNyArMTk3LDYgQEAgdm9pZCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Ny
b2xsaW5nTm8KIAogICAgIGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwob2xkUHJv
Z3JhbW1hdGljU2Nyb2xsKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy0+c2Nyb2xsTGF5ZXJJRCgpKSB7CiAg
ICAgICAgIGlmIChHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciA9IHNjcm9sbExheWVyRm9yRnJh
bWVWaWV3KGZyYW1lVmlldykpIHsKICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJT
Y3JvbGxpbmdMYXllciA9IGNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZyYW1lVmlldyhmcmFtZVZp
ZXcpOwpAQCAtMjI4LDkgKzIyNyw2IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAgICAgICAg
IH0KICAgICB9CiAgICAgLy8gRklYTUU6IGhhbmRsZSBub24tbWFpbiBzY3JvbGxpbmcgbm9kZXMu
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsK
LSNlbmRpZgogfQogCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFibGVB
cmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVh
LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA5M2Rm
YjBjZWM0YjllMThlYzk4YjMxYWM5YmUxYmMwZmEzMzdlZjVkLi44ZTMyNTZlYjMzYmZkYzkzYmMw
ZDYzMjI5ODM0ZDNmNTViMmFhYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zNiwxNSArMzYsMTIgQEAK
ICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3QmFz
ZS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUg
IlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2VuZGlmCi0KICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBo
aWNzLmgiCiAjZW5kaWYKQEAgLTg5LDE0ICs4NiwxMCBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmll
dwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBXZSBjdXJyZW50bHkgb25seSBzdXBw
b3J0IGNvbXBvc2l0ZWQgbW9kZS4KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuY29udGVudFJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgcmV0dXJuIHJlbmRlclZpZXctPnVzZXNDb21wb3NpdGluZygpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogUmVnaW9uIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb21w
dXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQ
b2ludCYgZnJhbWVMb2NhdGlvbikgY29uc3QKQEAgLTExMiwxMSArMTA1LDkgQEAgUmVnaW9uIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpjb21wdXRlTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3Qg
RnJhbWUqIGZyYW1lLAogICAgIGlmIChjb25zdCBGcmFtZVZpZXc6OlNjcm9sbGFibGVBcmVhU2V0
KiBzY3JvbGxhYmxlQXJlYXMgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhcygpKSB7CiAgICAg
ICAgIGZvciAoRnJhbWVWaWV3OjpTY3JvbGxhYmxlQXJlYVNldDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBzY3JvbGxhYmxlQXJlYXMtPmJlZ2luKCksIGVuZCA9IHNjcm9sbGFibGVBcmVhcy0+ZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFi
bGVBcmVhID0gKml0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAg
ICAgIC8vIENvbXBvc2l0ZWQgc2Nyb2xsYWJsZSBhcmVhcyBjYW4gYmUgc2Nyb2xsZWQgb2ZmIHRo
ZSBtYWluIHRocmVhZC4KICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYS0+dXNlc0NvbXBv
c2l0ZWRTY3JvbGxpbmcoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSNlbmRpZgogICAg
ICAgICAgICAgSW50UmVjdCBib3ggPSBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsYWJsZUFyZWFCb3Vu
ZGluZ0JveCgpOwogICAgICAgICAgICAgYm94Lm1vdmVCeShvZmZzZXQpOwogICAgICAgICAgICAg
bm9uRmFzdFNjcm9sbGFibGVSZWdpb24udW5pdGUoYm94KTsKQEAgLTE3OSw3ICsxNzAsNiBAQCB2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdGaXhlZE9iamVjdHNEaWRDaGFuZ2Uo
RnJhbWVWaWV3KiBmcmFtZVZpZXcpCiAgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBHcmFwaGljc0xh
eWVyKiBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsTGF5ZXJGb3JTY3JvbGxhYmxlQXJlYShT
Y3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCiB7CiAgICAgcmV0dXJuIHNjcm9sbGFibGVB
cmVhLT5sYXllckZvclNjcm9sbGluZygpOwpAQCAtMTk0LDIzICsxODQsMTcgQEAgR3JhcGhpY3NM
YXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXJGb3JTY3Jv
bGxhYmxlQXJlYShTY3IKIHsKICAgICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEtPmxheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXIoKTsKIH0KLSNlbmRpZgogCiBHcmFwaGljc0xheWVyKiBTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2Nyb2xsTGF5ZXJGb3JGcmFtZVZpZXcoRnJhbWVWaWV3KiBmcmFtZVZpZXcp
CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gZnJhbWVWaWV3LT5mcmFtZSgpLmNvbnRlbnRSZW5kZXJlcigpKQogICAg
ICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnNjcm9sbExheWVyKCk7CiAgICAg
cmV0dXJuIDA7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShmcmFtZVZpZXcpOwotICAgIHJldHVy
biAwOwotI2VuZGlmCiB9CiAKIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpo
ZWFkZXJMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBm
cmFtZVZpZXctPmZyYW1lKCkuY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlclZpZXct
PmNvbXBvc2l0b3IoKS5oZWFkZXJMYXllcigpOwogICAgIHJldHVybiAwOwpAQCAtMjIyLDcgKzIw
Niw3IEBAIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoZWFkZXJMYXllckZv
ckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmllCiAKIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmb290ZXJMYXllckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmll
dykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJf
QkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcq
IHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPmZyYW1lKCkuY29udGVudFJlbmRlcmVyKCkpCiAgICAg
ICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuZm9vdGVyTGF5ZXIoKTsKICAgICBy
ZXR1cm4gMDsKQEAgLTIzNCwxNCArMjE4LDkgQEAgR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OmZvb3RlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWUKIAog
R3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3JvbGxpbmdMYXll
ckZvckZyYW1lVmlldyhGcmFtZVZpZXcqIGZyYW1lVmlldykKIHsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPmZyYW1lKCkuY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiByZW5kZXJWaWV3
LT5jb21wb3NpdG9yKCkuZml4ZWRSb290QmFja2dyb3VuZExheWVyKCk7CiAgICAgcmV0dXJuIDA7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShmcmFtZVZpZXcpOwotICAgIHJldHVybiAwOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld1Jvb3RMYXllckRp
ZENoYW5nZShGcmFtZVZpZXcqIGZyYW1lVmlldykKQEAgLTI3OSw3ICsyNTgsNiBAQCBib29sIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpoYXNWaXNpYmxlU2xvd1JlcGFpbnRWaWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0cyhGcmFtZQogICAgIGlmICghdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBmb3IgKEZyYW1lVmlldzo6Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFNldDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+YmVnaW4oKSwgZW5kID0g
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMtPmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAg
ICAgICAgUmVuZGVyT2JqZWN0KiB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0ID0gKml0OwogICAg
ICAgICBpZiAoIXZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QtPmlzQm94TW9kZWxPYmplY3QoKSB8
fCAhdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdC0+aGFzTGF5ZXIoKSkKQEAgLTI5MCw5ICsyNjgs
NiBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYXNWaXNpYmxlU2xvd1JlcGFpbnRWaWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyhGcmFtZQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogICAgIHJldHVybiBmYWxzZTsKLSNlbHNlCi0gICAgcmV0dXJuIHZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzLT5zaXplKCk7Ci0jZW5kaWYKIH0KIAogU3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKaW5kZXggMGUwNWQ2OWZkZDhjOGI4ZDZlZTA3MjMyMjFhOTdmMWM1Zjcy
NmIwMy4uOTI0N2JhMzlhZjdlODNiMmQ2ZmIxYzlmYjAyZDZiYzIxMjY5ZGM3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
CkBAIC0xODIsMTEgKzE4Miw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgc3RhdGljIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyRm9yU2Nyb2xsYWJs
ZUFyZWEoU2Nyb2xsYWJsZUFyZWEqKTsKICAgICBzdGF0aWMgR3JhcGhpY3NMYXllciogaG9yaXpv
bnRhbFNjcm9sbGJhckxheWVyRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqKTsKICAg
ICBzdGF0aWMgR3JhcGhpY3NMYXllciogdmVydGljYWxTY3JvbGxiYXJMYXllckZvclNjcm9sbGFi
bGVBcmVhKFNjcm9sbGFibGVBcmVhKik7Ci0jZW5kaWYKIAogICAgIHVuc2lnbmVkIGNvbXB1dGVD
dXJyZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudCgpOwogICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9s
bExheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAppbmRleCAyZTgxZDIyYzlmZjQzNzcxYjQ2ZThiMTYxOGI5YTJmNTU2MTc0NjYx
Li41OTc0Zjg0MTM1ZmNkMmM1NzE4OWEyYWM0NjI3Nzk4ZTJmZjQ4YTQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtOTc2LDcgKzk3Niw2IEBAIHZvaWQgU2Nyb2xs
Vmlldzo6Y2xpcFJlY3RDaGFuZ2VkKCkKICAgICAgICAgKCpjdXJyZW50KS0+Y2xpcFJlY3RDaGFu
Z2VkKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBzdGF0aWMgdm9p
ZCBwb3NpdGlvblNjcm9sbGJhckxheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIFNj
cm9sbGJhciogc2Nyb2xsYmFyKQogewogICAgIGlmICghZ3JhcGhpY3NMYXllciB8fCAhc2Nyb2xs
YmFyKQpAQCAtMTAwOSwxNiArMTAwOCwxMiBAQCBzdGF0aWMgdm9pZCBwb3NpdGlvblNjcm9sbENv
cm5lckxheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIGNvbnN0IEludFJlYwogICAg
ICAgICBncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICBncmFwaGljc0xheWVy
LT5zZXRTaXplKGNvcm5lclJlY3Quc2l6ZSgpKTsKIH0KLSNlbmRpZgotCiAKIHZvaWQgU2Nyb2xs
Vmlldzo6cG9zaXRpb25TY3JvbGxiYXJMYXllcnMoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBwb3NpdGlvblNjcm9sbGJhckxheWVyKGxheWVyRm9ySG9yaXpvbnRh
bFNjcm9sbGJhcigpLCBob3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgIHBvc2l0aW9uU2Nyb2xs
YmFyTGF5ZXIobGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpLCB2ZXJ0aWNhbFNjcm9sbGJhcigp
KTsKICAgICBwb3NpdGlvblNjcm9sbENvcm5lckxheWVyKGxheWVyRm9yU2Nyb2xsQ29ybmVyKCks
IHNjcm9sbENvcm5lclJlY3QoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpyZXBh
aW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIG5vdykKQEAgLTEw
OTksMjMgKzEwOTQsMTQgQEAgdm9pZCBTY3JvbGxWaWV3OjppbnZhbGlkYXRlU2Nyb2xsQ29ybmVy
UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogCiB2b2lkIFNjcm9sbFZpZXc6OnBhaW50U2Nyb2xs
YmFycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0g
ICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhcgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICAgICAgJiYgIWxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpCi0jZW5kaWYK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgIGlmIChtX2hvcml6
b250YWxTY3JvbGxiYXIgJiYgIWxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKQogICAgICAg
ICBwYWludFNjcm9sbGJhcihjb250ZXh0LCBtX2hvcml6b250YWxTY3JvbGxiYXIuZ2V0KCksIHJl
Y3QpOwotICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgICAgICAmJiAhbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpCi0jZW5k
aWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICBpZiAobV92ZXJ0
aWNhbFNjcm9sbGJhciAmJiAhbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKQogICAgICAgICBw
YWludFNjcm9sbGJhcihjb250ZXh0LCBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpLCByZWN0KTsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobGF5ZXJGb3JTY3Jv
bGxDb3JuZXIoKSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCisKICAgICBwYWludFNjcm9sbENv
cm5lcihjb250ZXh0LCBzY3JvbGxDb3JuZXJSZWN0KCkpOwogfQogCkBAIC0xMTYyLDcgKzExNDgs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcGFpbnRDb250ZW50cyhjb250ZXh0LCBkb2N1bWVu
dERpcnR5UmVjdCk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAg
IGlmICghbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCkpCiAgICAgICAgIGNhbGN1bGF0ZUFuZFBhaW50
T3ZlcmhhbmdBcmVhcyhjb250ZXh0LCByZWN0KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggODhkMDI5MzhmNjUxZjNjZGE4MDM5OTU3MTZh
MjAzMjI1YzI0ZTE3My4uODVmNTg1MjliNjViMmEwYzFmMGQ0NGQ3NjQ1ZjVjY2YzZGJjZmFhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtMzIyLDcg
KzMyMiw2IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNldFNjcm9sbGJhck92ZXJsYXlTdHlsZShT
Y3JvbGxiYXJPdmVybGF5U3R5bGUgb3ZlcmxheVN0eWxlCiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6
OmludmFsaWRhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChzY3Jv
bGxiYXIgPT0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIGlmIChHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyID0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAg
ICAgICAgICAgIGdyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwpAQCAtMzM2LDIyICsz
MzUsMjAgQEAgdm9pZCBTY3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNjcm9sbGJhcihTY3JvbGxi
YXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmUKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KLSNlbmRpZgorCiAgICAgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3Qoc2Ny
b2xsYmFyLCByZWN0KTsKIH0KIAogdm9pZCBTY3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNjcm9s
bENvcm5lcihjb25zdCBJbnRSZWN0JiByZWN0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBpZiAoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciA9IGxheWVyRm9y
U2Nyb2xsQ29ybmVyKCkpIHsKICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKKwogICAgIGludmFsaWRhdGVTY3Jv
bGxDb3JuZXJSZWN0KHJlY3QpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogdm9pZCBTY3JvbGxhYmxlQXJlYTo6dmVydGljYWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSgp
CiB7CiAgICAgc2Nyb2xsQW5pbWF0b3IoKS0+dmVydGljYWxTY3JvbGxiYXJMYXllckRpZENoYW5n
ZSgpOwpAQCAtMzYxLDMzICszNTgsMjAgQEAgdm9pZCBTY3JvbGxhYmxlQXJlYTo6aG9yaXpvbnRh
bFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKIHsKICAgICBzY3JvbGxBbmltYXRvcigpLT5ob3Jp
em9udGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoKTsKIH0KLSNlbmRpZgogCiBib29sIFNjcm9s
bGFibGVBcmVhOjpoYXNMYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gbGF5ZXJGb3JIb3Jpem9u
dGFsU2Nyb2xsYmFyKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiBi
b29sIFNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJuIGxheWVyRm9y
VmVydGljYWxTY3JvbGxiYXIoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9
CiAKIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhhc0xheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3QK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJuIGxheWVyRm9y
U2Nyb2xsQ29ybmVyKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB2
b2lkIFNjcm9sbGFibGVBcmVhOjpzZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCA4ZDZmNDBjYTJmZWVjNGNjMTUyNjRj
Yjk4NGJkYWEwNWQ2ZmM2M2ZkLi43YjQwNzcwZjEyOTViZGRmOWE0YjU0MTc0OGQ2N2QxZGIyMGMz
N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTM2LDEw
ICszNiw4IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVu
dDsKIGNsYXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKIGNsYXNzIFNjcm9sbEFuaW1hdG9yOwotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFz
cyBUaWxlZEJhY2tpbmc7Ci0jZW5kaWYKIAogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgewogcHVibGlj
OgpAQCAtMjIxLDcgKzIxOSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGlubmVkVmVydGljYWxs
eUluRGlyZWN0aW9uKGludCB2ZXJ0aWNhbFNjcm9sbERlbHRhKSBjb25zdDsKICNlbmRpZgogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgVGlsZWRCYWNraW5n
KiB0aWxlZEJhY2tpbmcoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBib29sIHVz
ZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMjMw
LDcgKzIyNyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmVydGljYWxTY3JvbGxiYXJMYXllckRp
ZENoYW5nZSgpOwogICAgIHZvaWQgaG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7
Ci0jZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIFNjcm9sbGFibGVBcmVhKCk7CkBAIC0yNDIsMTQg
KzIzOCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSA9IDA7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZnJpZW5kIGNsYXNzIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxpbmco
KSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZv
clNjcm9sbENvcm5lcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNpZiBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvck92ZXJoYW5nQXJlYXMo
KSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKLSNlbmRpZgorCiAgICAgYm9vbCBoYXNMYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICBib29sIGhhc0xheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICBib29sIGhhc0xheWVyRm9yU2Nyb2xsQ29ybmVy
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJU
aGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAppbmRleCBk
NjhlMDYyODgzODAzYjRlZmE1OTZmMzU4NGRiOGJmZTgzZmJhZmM5Li41ODk4YmQ4YThlZTM2OGM2
YmRkZTY3Y2FmNGVhYmMyZjU4MDdhNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhclRoZW1lLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50Owog
Y2xhc3MgU2Nyb2xsYmFyVGhlbWVDbGllbnQ7CiBjbGFzcyBTY3JvbGxWaWV3OwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogY2xhc3MgR3JhcGhpY3NMYXllcjsKICNlbmRpZgogCkBA
IC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUaWNrbWFya3Mo
R3JhcGhpY3NDb250ZXh0KiwgU2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBJbnRSZWN0Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHBhaW50T3ZlcmhhbmdBcmVhcyhTY3JvbGxWaWV3KiwgR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRS
ZWN0JikgeyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShS
VUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgdmlydHVhbCB2
b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciosIGNvbnN0
IENvbG9yJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVudFNoYWRvd0xheWVyKEdy
YXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcAppbmRleCAxMzNhMWFjZmQ0ZWQwODlmNzMwZDE5
MDdiYjIyYThiYzRlNjM0NGQzLi41ZGMwOTFhYmZlZmU1NjM4ZWZhNWQ5MWJmOGEyMTFmZWQwMjI4
OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRp
bGl0aWVzLmNwcApAQCAtMTE0LDEyICsxMTQsMTAgQEAgdm9pZCBhcHBseUZhbGxiYWNrQ3Vyc29y
KEVjb3JlX0V2YXMqIGVjb3JlRXZhcywgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nKQogICAgIH0K
IAogICAgIEVjb3JlX1hfV2luZG93IHdpbmRvdzsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgd2luZG93ID0gZWNvcmVfZXZhc19nbF94MTFfd2luZG93X2dldChlY29yZUV2
YXMpOwogICAgIC8vIEZhbGxiYWNrIHRvIHNvZnR3YXJlIG1vZGUgaWYgbmVjZXNzYXJ5LgogICAg
IGlmICghd2luZG93KQotI2VuZGlmCi0gICAgd2luZG93ID0gZWNvcmVfZXZhc19zb2Z0d2FyZV94
MTFfd2luZG93X2dldChlY29yZUV2YXMpOworICAgICAgICB3aW5kb3cgPSBlY29yZV9ldmFzX3Nv
ZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CiAKICAgICBFY29yZV9YX0N1cnNvciBj
dXJzb3IgPSBlY29yZV94X2N1cnNvcl9zaGFwZV9nZXQoc2hhcGUpOwogICAgIGVjb3JlX3hfd2lu
ZG93X2N1cnNvcl9zZXQod2luZG93LCBjdXJzb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggNzA1YzMyNzJiYjdk
NWNjYjJiOTBjY2FkZGU1NWZjNGFiZTRhZTE0MC4uYzNmM2U3OWJmY2QyNjI5ZTY0NDk2NzgzNTUw
MTcwMDE1MDAyOWEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC00OTEsMTAgKzQ5MSw4IEBAIHB1YmxpYzoKICNl
bHNlCiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCk7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBjb25zdDsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIAogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdDsKICNlbmRpZgotI2VuZGlmCiAKICAgICBib29sIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCAwNDlmZGQyZDEyZjFk
ZTI1YTEyNDY4Mjk5YzlkOTI0ZmVlNGE0NTdmLi45NTYxNjZkYWNiZTMxNmYxYmI3N2FkODM4ZWVi
YzcyOTg0NzUzYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQogI2luY2x1ZGUgPHRleG1hcC9UZXh0dXJlTWFwcGVyR0wuaD4KICNlbmRpZgogCkBAIC02OCw3
ICs2OCw3IEBAIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHCiAKIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQogICAgIGlmIChjbGllbnQoKSkKICAgICAgICAgY2xpZW50KCktPnBsYXRmb3JtTGF5ZXJX
aWxsQmVEZXN0cm95ZWQoKTsKICNlbmRpZgpAQCAtODQsNyArODQsNyBAQCBQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGxhdGZvcm1Db250ZXh0KCkK
ICAgICByZXR1cm4gbV9nbENvbnRleHQgPyBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkg
OiBHTENvbnRleHQ6OmdldEN1cnJlbnQoKS0+cGxhdGZvcm1Db250ZXh0KCk7CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRU
b1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9h
dCBvcGFjaXR5KQogewogICAgIGlmICghbV9nbENvbnRleHQpCkBAIC0xNTAsOSArMTUwLDkgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1
cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIKICAgICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdz
ID0gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRGbGlwVGV4dHVyZSB8IChtX2NvbnRleHQtPm1fYXR0
cnMuYWxwaGEgPyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMCk7CiAgICAgSW50U2l6
ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3Vy
cmVudEhlaWdodCk7CiAgICAgdGV4bWFwR0wtPmRyYXdUZXh0dXJlKG1fY29udGV4dC0+bV90ZXh0
dXJlLCBmbGFncywgdGV4dHVyZVNpemUsIHRhcmdldFJlY3QsIG1hdHJpeCwgb3BhY2l0eSk7Ci0j
ZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HX0dMKQorI2VuZGlmIC8vIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKIH0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggNDJlYjZjMmU3MDUxYzkwMjc1MGIyODgw
ZGVjNGZhMzc0M2IyMTBmZC4uYjZmZDQ0ODI3NjQyZTFmOTJmOTc3N2Y1OTlkZGVkNmQ0M2U4YjJh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTI0LDE0ICsyNCwxNCBAQAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lm
IFVTRShURVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
ci5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIDogcHVibGljIFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyCiAjZW5kaWYKIHsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGlj
OgogCiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKCkgeyBy
ZXR1cm4gbV9yZW5kZXJTdHlsZTsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIHZp
cnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0
eSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcAppbmRleCAzZDQxMGI3MDFjY2YwMTJiOTY5MzAzN2YzMjIyYjU1MjIx
NzRkYTJkLi45MzQ0YTM4NzNlOGUwNTgxMWE0MjM1NTljYThjMTM0YjdkMTM4NDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcApA
QCAtMjUsOCArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAKICNpbmNs
dWRlICJGbG9hdFBvaW50LmgiCkBAIC03OTMsNSArNzkxLDMgQEAgdm9pZCBzaG93R3JhcGhpY3NM
YXllclRyZWUoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgZnByaW50
ZihzdGRlcnIsICIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOwogfQogI2VuZGlmCi0KLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggM2Q1N2U4MDRhZWVlMWFm
NmI5NjcyMzFjOGExZGNiMzgzMTRlOTkyYi4uZmYwYzE1OWQ4YmU3MWFjM2E0YWRhMzdhNWRhZTFj
NGJmODg3NTk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHcmFwaGljc0xheWVyX2gK
ICNkZWZpbmUgR3JhcGhpY3NMYXllcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKQEAgLTYyNSw2ICs2MjMsNCBAQCBwcm90ZWN0ZWQ6CiB2b2lkIHNo
b3dHcmFwaGljc0xheWVyVHJlZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcik7
CiAjZW5kaWYKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2Vu
ZGlmIC8vIEdyYXBoaWNzTGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcAppbmRleCBhZGQ2ODZm
NjYxNTJlYzE1YjRiMzU1MmJkYjgyY2E1MjQ0M2Y4NmMwLi42NDUwNjZlOWViYzdhNzUyZWUyYmQx
Y2I3ZTQ1MDE3NTRmZjAxZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcApAQCAtMTksNyArMTks
NiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oIgogCiAjaW5jbHVkZSAi
TGF5b3V0U2l6ZS5oIgpAQCAtNDAxLDUgKzQwMCwzIEBAIEdyYXBoaWNzTGF5ZXJBbmltYXRpb25z
IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25zOjpnZXRBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAg
ICByZXR1cm4gYWN0aXZlOwogfQogfQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaAppbmRleCAy
ZDJmNjg1NzM1NDQyM2ZmODFlZjE2MTQ5ZjE2NmI4M2MxNTYxMzY0Li44ZjM3ZmU0MTM3ZTI4ZDYx
ZjhlMzg3OWI2N2NjNGRhZGY1MzJlOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlvbi5oCkBAIC0yMCw4ICsy
MCw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJBbmltYXRpb25faAogI2RlZmluZSBHcmFwaGlj
c0xheWVyQW5pbWF0aW9uX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQog
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJp
eC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xMDUsNiArMTAzLDUgQEAgcHJpdmF0
ZToKIH07CiAKIH0KLSNlbmRpZgogCiAjZW5kaWYgLy8gR3JhcGhpY3NMYXllckFuaW1hdGlvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyQ2xpZW50LmgKaW5kZXggOTBmOWU4MjNiNGE5N2VkN2Q5MDQwNmU1ZmRlZmY0ZjAxM2MwMzk5
Yy4uM2Q1MTNjZDFlMjM4NDhkNmEyNGM4ZWY0NGNiNWRhY2YzZmRhODZjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHcmFwaGljc0xheWVyQ2xpZW50X2gKICNkZWZp
bmUgR3JhcGhpY3NMYXllckNsaWVudF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKQEAgLTEwNyw2
ICsxMDUsNCBAQCBwdWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8v
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIEdyYXBoaWNzTGF5ZXJD
bGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllckZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJGYWN0b3J5LmgKaW5kZXggNjQxM2U5M2NiNDJhMWYxYWVjNTJmNWZhOTAyNTk1
MGY5OThmOTgzNi4uNzA4YzhjNjk5YTkxZTU2ZWZiYzE4YjdlMWJiNWE1MTIyZjYyOWUxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZh
Y3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyRmFjdG9yeS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJGYWN0
b3J5X2gKICNkZWZpbmUgR3JhcGhpY3NMYXllckZhY3RvcnlfaAogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDQsNiArNDIsNCBAQCBwdWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlm
IC8vIEdyYXBoaWNzTGF5ZXJGYWN0b3J5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcAppbmRleCBiM2M5NDM2
NDQ2MTUyMTVhYWFlYWJjNzJiMGIzNmQzN2QyOGEzNDI3Li4wNTY5OTJkMWU2ZjhlMmFlNDZmMjAw
ZDk5YjUzN2UyM2NhYjlhODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCkBAIC0yNSw4ICsyNSw2IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJVcGRhdGVyLmgiCiAKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCkBAIC04MSw1ICs3OSwzIEBAIHZvaWQgR3JhcGhpY3NMYXllclVwZGF0ZXI6
OmRpc3BsYXlSZWZyZXNoRmlyZWQoZG91YmxlIHRpbWVzdGFtcCkKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVw
ZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJV
cGRhdGVyLmgKaW5kZXggMTA4MDk5YWU2YTk1ZWEyMzQzNGUzNGJmNDg0MDY2ZjVlMjliMzFmNS4u
ZjQyNDZkZjU5N2FiNmRjMWFjMTZlMjkzMWE5ZjAyZTRmYmVhODBhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJVcGRhdGVyX2gKICNkZWZp
bmUgR3JhcGhpY3NMYXllclVwZGF0ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TY3JlZW4uaCIKIApAQCAtNjIsNiArNjAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNlbmRpZiAvLyBHcmFwaGljc0xheWVyVXBkYXRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggODMzNTM0YzZjNmI4ZDljYTUy
MzJiZTZiN2FjYWUyM2JmZWY1YjlhNC4uZTZmYWNkYTgwZGMzMDViZjhiY2YzNjI1ZjNiYmJhODM3
NWI5ZWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIEltYWdlQnVmZmVyOjpjb252ZXJ0VG9M
dW1pbmFuY2VNYXNrKCkKICAgICBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogfQog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAhVVNFKENBSVJPKQorI2lmICFV
U0UoQ0FJUk8pCiBQbGF0Zm9ybUxheWVyKiBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuaAppbmRleCBiNjJlNTA2OWY0NjljM2Y1OGU2NmMyNzVlYjE3NjkxYjEy
NzJjZDQxLi41YTRkZjIxNjk3OWU4YTg1MzcxODQ5NDUyMTdjN2E2NzNkZTk3MTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTMyLDEz
ICszMiwxMSBAQAogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2VuZGlmCiAjaW5jbHVkZSAi
R3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgogI2luY2x1ZGUg
IkludFNpemUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckRhdGEuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTE5LDkg
KzExNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbHNlCiAgICAgICAgIEFmZmluZVRyYW5z
Zm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKDEsIDAs
IDAsIC0xLCAwLCBtX2RhdGEubV9iYWNraW5nU3RvcmVTaXplLmhlaWdodCgpKTsgfQogI2VuZGlm
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgICAgICAvLyBGSVhNRTogY3Vy
cmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2QgaGF2ZSB0aGUgcmVzdHJpY3Rpb24g
dGhhdCB0aGV5IG9ubHkgd29yawogICAgICAgICAvLyB3aXRoIHRleHR1cmVzIHRoYXQgYXJlIFJH
QiBvciBSR0JBIGZvcm1hdCwgYW5kIFVOU0lHTkVEX0JZVEUgdHlwZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBlYWMyNTU0MGIz
ZGFjYjI5MjFkMGM3YWQ4ZTA4NDExNDg0NDU5NzM1Li5lM2Y3NzI0N2U0YmNlMmQ4NDQxNDU3MTkz
MjUyZTU4NzYwMzRmZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC05NSw5ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcGF1c2UoKSB7IH0gICAgCiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxhdGZv
cm1NZWRpYSgpIGNvbnN0IHsgcmV0dXJuIE5vUGxhdGZvcm1NZWRpYTsgfQotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgSW50U2l6
ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoMCwgMCk7IH0KIApAQCAtNjEy
LDEyICs2MTAsMTAgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllcjo6cGxhdGZvcm1NZWRpYSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGxhdGZvcm1NZWRpYSgpOwogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXI6
OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnBsYXRmb3Jt
TGF5ZXIoKTsKIH0KLSNlbmRpZgogCiBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIE1lZGlhUGxh
eWVyOjpuZXR3b3JrU3RhdGUoKQogewpAQCAtODkwLDcgKzg4Niw2IEBAIGJvb2wgTWVkaWFQbGF5
ZXI6OmNhbkVudGVyRnVsbHNjcmVlbigpIGNvbnN0CiB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgTWVkaWFQbGF5ZXI6OmFjY2VsZXJhdGVkUmVuZGVy
aW5nU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBtX3ByaXZhdGUtPmFjY2VsZXJhdGVkUmVuZGVyaW5n
U3RhdGVDaGFuZ2VkKCk7CkBAIC05MDAsNyArODk1LDYgQEAgYm9vbCBNZWRpYVBsYXllcjo6c3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpOwogfQotI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIAogYm9vbCBNZWRpYVBsYXllcjo6c2hvdWxkTWFpbnRhaW5B
c3BlY3RSYXRpbygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjNjQ4MGU0YjBmZDA4ODI1MGY1NmZkYmI1ODQ3ZTc2Mzhl
NTUwNjI0Li40NzE4OTFjZGY3YWY2YjI4YzJiZmJiZmVmZWU0OTdhNjhmOWQ4MTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvVWludDhBcnJheS5oPgpAQCAtNDksMTAgKzUwLDYgQEAKICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0j
ZW5kaWYKLQogI2lmIFVTRShQTEFURk9STV9URVhUX1RSQUNLX01FTlUpCiAjaW5jbHVkZSAiUGxh
dGZvcm1UZXh0VHJhY2tNZW51LmgiCiAjZW5kaWYKQEAgLTE5OSwxNCArMTk2LDEyIEBAIHB1Ymxp
YzoKICAgICAvLyBBIGNoYXJhY3RlcmlzdGljIG9mIHRoZSBtZWRpYSBmaWxlLCBlZy4gdmlkZW8s
IGF1ZGlvLCBjbG9zZWQgY2FwdGlvbnMsIGV0YywgaGFzIGNoYW5nZWQuCiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKE1lZGlhUGxheWVyKikgeyB9CiAg
ICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIHdoZXRoZXIgdGhl
IHJlbmRlcmluZyBzeXN0ZW0gY2FuIGFjY2VsZXJhdGUgdGhlIGRpc3BsYXkgb2YgdGhpcyBNZWRp
YVBsYXllci4KICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2Vs
ZXJhdGVkKE1lZGlhUGxheWVyKikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIGNhbGxlZCB3
aGVuIHRoZSBtZWRpYSBwbGF5ZXIncyByZW5kZXJpbmcgbW9kZSBjaGFuZ2VkLCB3aGljaCBpbmRp
Y2F0ZXMgYSBjaGFuZ2UgaW4gdGhlCiAgICAgLy8gYXZhaWxhYmlsaXR5IG9mIHRoZSBwbGF0Zm9y
bUxheWVyKCkuCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKSB7IH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBtZWRpYVBs
YXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciopIGNvbnN0IHsgcmV0
dXJuIDA7IH0KQEAgLTI5NCw5ICsyODksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1Nj
YW5uaW5nKCkgY29uc3Q7CiAgICAgYm9vbCByZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkg
Y29uc3Q7CiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpOwogICAgIGJv
b2wgaGFzVmlkZW8oKSBjb25zdDsKQEAgLTQ1NywxMiArNDUwLDEwIEBAIHB1YmxpYzoKICAgICBi
b29sIGNhbkVudGVyRnVsbHNjcmVlbigpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gd2hldGhlciBhY2NlbGVyYXRlZCByZW5kZXJpbmcg
aXMgc3VwcG9ydGVkIGJ5IHRoZSBtZWRpYSBlbmdpbmUgZm9yIHRoZSBjdXJyZW50IG1lZGlhLgog
ICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0OwogICAgIC8vIGNh
bGxlZCB3aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBzIHRoZSBpbnRvIG9yIG91dCBvZiBh
Y2NlbGVyYXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5n
U3RhdGVDaGFuZ2VkKCk7Ci0jZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkTWFpbnRhaW5Bc3BlY3RS
YXRpbygpIGNvbnN0OwogICAgIHZvaWQgc2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKaW5kZXggZmJhZmQ3MGNkOWVmMzRhMDc4MDRhMjVhNzkyOTNiODc4MjM5YjM1
MC4uNTUzNzg4YzM4NTI1MWE1YmEyODcyMDE5OTk2YTE2YTA4ZjY1MTY0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
QEAgLTUyLDkgKzUyLDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJl
VG9QbGF5KCkgeyB9CiAgICAgdmlydHVhbCBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBj
b25zdCB7IHJldHVybiBOb1BsYXRmb3JtTWVkaWE7IH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3QgeyByZXR1cm4gMDsgfQotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSA9IDA7ICAgIApAQCAtMTYwLDEyICsxNTgsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5FbnRlckZ1bGxzY3JlZW4oKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgLy8gd2hldGhlciBhY2NlbGVyYXRlZCByZW5kZXJpbmcgaXMgc3VwcG9ydGVkIGJ5IHRo
ZSBtZWRpYSBlbmdpbmUgZm9yIHRoZSBjdXJyZW50IG1lZGlhLgogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50byBvciBv
dXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgeyB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oCmlu
ZGV4IGExOGY5YjljM2Y0OTc0N2YxZGQ3ZTJjNmE5NjhhNTU2Nzg4MmE0ZWEuLjJjN2QyNmIyYjQw
N2JhNTc5MGQzNGYzOTlkMjJkMTdiZTI2NjE3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybUxheWVyLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5k
ZWYgUGxhdGZvcm1MYXllcl9oCiAjZGVmaW5lIFBsYXRmb3JtTGF5ZXJfaAogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBD
QUxheWVyOwogdHlwZWRlZiBDQUxheWVyIFBsYXRmb3JtTGF5ZXI7CkBAIC01Niw2ICs1NCw0IEBA
IHR5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIgUGxhdGZvcm1MYXllcjsKIHR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1MYXllcjsKICNlbmRpZgogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1MYXllcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5jcHAKaW5kZXggZDE3OGU1ODZmNzhmMjAxNjkwZWVjMzNmMjJhMjYzNDkzYmExYWRl
OS4uZmNmNThiOGMyOTZjYWI0OWEyZGQ4NzliNDQ2NTAwZjM1NzQ0N2NhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJl
c2VudGF0aW9uLmNwcApAQCAtMzUsOSArMzUsNyBAQCBjbGFzcyBOdWxsVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24gOiBwdWJsaWMgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24gewogcHVibGljOgogICAg
IHZpcnR1YWwgfk51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGUoKSB7IH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgeyByZXR1cm4gMDsgfQotI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRTY2FsZShmbG9hdCkgeyB9CiAgICAgdmly
dHVhbCBJbnRSZWN0IGJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJl
c2VudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5oCmluZGV4IDVmODQ0NDgzZGE2YmQyMGQ5ZTc1YjQ4ZjI1MzM0MDc2OTRj
MjI4ODIuLjllMWM4M2JkOGE5ODY3ZmJhOTlkODU1Y2MyMGZiMDlkMjg0NDE2MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uaApAQCAtNTMsOSArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoKSA9
IDA7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpID0gMDsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50U2NhbGUoZmxvYXQpID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzKCkg
Y29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggZDA3MjBjNWQxZDRiZDYwZmNmOTAxNDBjMmViY2Nj
NjNjMTVkMDkzZi4uNThhMjQ2ODFhZTIyNTcwYzQ5YTg2ZjUwZDAxZDI4ZjZlY2U5ZjIxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5jcHAKQEAgLTkxLDEwICs5MSw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
fk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6Y3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAocGxhdGZvcm1MYXllcigpKQogICAgICAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdUb0xheWVyOwotI2VuZGlmCiAKICAgICBpZiAoaGFzQ29udGV4dFJlbmRl
cmVyKCkpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKQEAgLTEwNywx
MCArMTA1LDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmlu
Z01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KICAgICBpZiAoIW1fcGxheWVyLT52
aXNpYmxlKCkgfHwgIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8fCBhc3NldFN0YXR1cygpID09IE1l
ZGlhUGxheWVyQVZBc3NldFN0YXR1c1Vua25vd24pCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRl
cmluZ05vbmU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+bWVkaWFQbGF5ZXJDbGll
bnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKICAg
ICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9MYXllcjsKLSNlbmRpZgogCiAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OwogfQpAQCAtMTQwLDIxICsxMzYsMTcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlkZW9SZW5kZXJpbmcoKQogICAg
IGNhc2UgTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ6CiAgICAgICAgIGNyZWF0ZUNvbnRleHRWaWRl
b1JlbmRlcmVyKCk7CiAgICAgICAgIGJyZWFrOwotICAgICAgICAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisKICAgICBjYXNlIE1lZGlhUmVuZGVyaW5nVG9MYXllcjoKICAgICAg
ICAgY3JlYXRlVmlkZW9MYXllcigpOwogICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB1c2luZyBhIG1vdmll
IGxheWVyLCBpbmZvcm0gdGhlIGNsaWVudCBzbyB0aGUgY29tcG9zaXRpbmcgdHJlZSBpcyB1cGRh
dGVkLgogICAgIGlmIChjdXJyZW50TW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJl
ZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpIHsKICAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCVw
KSAtIGNhbGxpbmcgbWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpIiwgdGhpcyk7CiAg
ICAgICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmlu
Z01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnRlYXJEb3duVmlkZW9SZW5kZXJpbmcoKQpAQCAtMTYz
LDEwICsxNTUsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRv
d25WaWRlb1JlbmRlcmluZygpCiAKICAgICBkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKTsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAocGxhdGZvcm1MYXll
cigpKQogICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwotI2VuZGlmCiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5nKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaAppbmRleCAxOTJlYzM5ZmIyNmViMGY5ZWE2MmQzNTZjYjU0NjA5ZjI2YTZlNzkxLi4wY2Zh
NTFmNzAzOTJlNjZiYTNkMzFkYWU0Yzg3M2Y2YzIyODhiMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xODAsMTEgKzE4
MCw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCkgb3ZlcnJpZGU7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSNlbmRpZgog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zaG91bGRNYWludGFpbkFzcGVjdFJhdGlvOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMWYyMDYyMTUzMmY5OWNhZDY3NzgyNGEwYjRmNzcxN2M3
ZDA1NTdkYy4uZjVhOGIxMTMxNDAxNjY2Mjc3YTc0MDQ4YjFhODk3MzFkY2U3YjM1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTgwLDkgKzgwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlVG9QbGF5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQbGF0Zm9y
bU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdCBvdmVycmlkZTsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKQEAgLTEyOCwxMSArMTI2LDkgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKICAg
ICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50byBvciBv
dXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIHZp
cnR1YWwgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggNTIwODc5OTIwYjI1OTM3
MGFkMjQ4YWZmMGVhYTBkZjRjOGZiMjcyYS4uNmM0NjU2ODdmNjllNzIwNDMwMDNiNTAzNjg0YmQ4
YjlhZGFjYzkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjU4LDEyICsyNTgs
MTAgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBsYXRmb3JtTWVkaWEoKSBjb25zdAogICAgIHJldHVybiBwbTsKIH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
c2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmdldCgpOwogfQotI2VuZGlmCiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF5KCkKIHsKQEAgLTQzNyw3ICs0MzUs
NiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6aGFzQXZhaWxh
YmxlVmlkZW9GcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzQXZhaWxhYmxlVmlkZW9GcmFt
ZTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ1MCw3ICs0NDcsNiBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdT
dGF0ZUNoYW5nZWQoKQogICAgIGVsc2UKICAgICAgICAgZGVzdHJveUxheWVyKCk7CiB9Ci0jZW5k
aWYKIAogTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4
IGFiNDRjN2M2NTNjYmMwYzQ5ODJiOWNmZWFjZDcyNDAyMTRhY2ExZjguLjA4MmQ5ZWMyOGMxYmVm
MjNmOGJmMWUyNjQ2YTMzMTJmOWM4YWZjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMjUsOCArMjUs
NiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCi0KICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKIAogI2luY2x1ZGUgIkFuaW1h
dGlvbi5oIgpAQCAtMzUwOCw1ICszNTA2LDMgQEAgZG91YmxlIEdyYXBoaWNzTGF5ZXJDQTo6YmFj
a2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmlu
ZGV4IGUzZTc5Mjg3NzRlNWFmYzViMTA5ODg3YTQ0YjAzZjkwMDllMmFhMjguLjBlZjVkOTkxMjU0
NGNiNjBjNmIwY2QyNmE5YjdmNzk5NTQ5NDFjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0yNiw4ICsyNiw2
IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJDQV9oCiAjZGVmaW5lIEdyYXBoaWNzTGF5ZXJDQV9o
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHcmFwaGlj
c0xheWVyLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0
aW9uLmgiCkBAIC01NTEsNyArNTQ5LDQgQEAgR1JBUEhJQ1NMQVlFUl9UWVBFX0NBU1RTKEdyYXBo
aWNzTGF5ZXJDQSwgaXNHcmFwaGljc0xheWVyQ0EoKSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYg
Ly8gR3JhcGhpY3NMYXllckNBX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAKaW5kZXggZmM4ZGU3Mzg0
ZTU4M2I0YTliMzE1ZDgwODFmNTY3ZTM5YmMzNjllMy4uOTljZTY5MzhiM2U0YTZkZDdjODgxOGM0
YjlhNTZkM2VlYzEwN2FkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAKQEAgLTI1LDggKzI1LDYg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjaW5jbHVkZSAiTGF5ZXJGbHVzaFNjaGVkdWxlci5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01MCw1ICs0OCwzIEBAIHZvaWQgTGF5ZXJGbHVzaFNjaGVkdWxlcjo6cmVzdW1l
KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCmluZGV4IGZlMGI1MmQ4OGMxZTA2MzZj
MGI1OTE5YTc3ZWM2NDYwZjQ3MzI0NWYuLjYwMTg4ZjM2NzA0NTBhN2NkZDA0NWE1YWMyMmYxNWNl
MzlmYmQzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L0xheWVyRmx1c2hTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYg
TGF5ZXJGbHVzaFNjaGVkdWxlcl9oCiAjZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJfaAogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTYzLDYgKzYxLDQgQEAgcHJvdGVjdGVkOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXJD
bGllbnQuaAppbmRleCBmNzljYjM4MjdhNzc1ZWJkM2ZkZDhhZDMyMTEzOTViMmIxNWZkNjg5Li5l
YjBiOTZjMWJhMjhhOTgyZTllOGU2OGNjNThlODEwZThlMTYxM2VhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIExheWVyRmx1c2hTY2hl
ZHVsZXJDbGllbnRfaAogI2RlZmluZSBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50X2gKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50IHsKQEAgLTQxLDYgKzM5LDQgQEAgcHVibGlj
OgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FB
bmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FBbmltYXRpb24uaAppbmRleCBjZTMyMzZmNDhmNTQyN2I1ZWZhYjRjMjJhN2Y0NWU2OTNiZmIw
ZGY2Li5hY2JhZWEyMDE3MGY2OTNjODNkODc2NDA2NGZjZGE0MDgwZDdmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUFu
aW1hdGlvbi5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3JtQ0FBbmltYXRpb25f
aAogI2RlZmluZSBQbGF0Zm9ybUNBQW5pbWF0aW9uX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludDNELmgiCkBAIC0xNjUsNiArMTYzLDQgQEAgcHJp
dmF0ZToKIAogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAj
ZW5kaWYgLy8gUGxhdGZvcm1DQUFuaW1hdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUZpbHRlcnMuaAppbmRleCA5YzM1MDdi
MjM5NDQ5NTE1NTU3NjI5MzljZGIxYjJmZjQwYTc0NjI3Li43OTdkM2I2MDI3YWY4NjkzZDE3OGUx
YjhmMTAxYzBhMDZhNzU5NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNp
Zm5kZWYgUGxhdGZvcm1DQUZpbHRlcnNfaAogI2RlZmluZSBQbGF0Zm9ybUNBRmlsdGVyc19oCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaWYgRU5BQkxFKENTU19GSUxURVJT
KQogCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgpAQCAtNjUsNiArNjQsNSBAQCBwdWJs
aWM6CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUZpbHRlcnNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
TGF5ZXIuaAppbmRleCAzN2E0OTVmMDhjZGU4YmFkMjhmNDQ3N2E5YTZjMTllZGUyYTEzZDU4Li5l
NDc0NGIwODRkMGJhMDg2MzBkODM3NzFhZjc0YmRmMDc0Nzc5OWJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAt
MjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJfaAogI2RlZmluZSBQbGF0Zm9y
bUNBTGF5ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKQEAgLTIzOCw2ICsyMzYsNCBAQCBwcm90ZWN0ZWQ6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNs
aWVudC5oCmluZGV4IGEyMjNmMTZkYzg4YzIzNmYzNGM5YTVhNzA4MzdkODBhNTM2YTY4ZDIuLjM2
YjhiMGY2NGMzNTQyMDk5NDg2ZmFmYzZjYTVlYzZmMWRiYTRmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNs
aWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3JtQ0FMYXllckNsaWVudF9o
CiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllckNsaWVudF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJH
cmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvbi5oIgpAQCAtNzEs
NiArNjksNCBAQCBwcm90ZWN0ZWQ6CiAKIH0KIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllckNsaWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvTGF5ZXJGbHVzaFNj
aGVkdWxlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
TGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAKaW5kZXggYmZjM2U1YWY2YzMwNmZiZDVlY2E2ODEw
YzNiMDQ3MTE5OGVhYzcwNy4uYWRlOWU4Y2U1Zjg4ZmE2MTAzYjkwZGVhMWYwY2M5MzJhNDM4Y2U2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL0xh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcApAQCAtMjUsOCArMjUsNiBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNpbmNsdWRlICJMYXllckZsdXNoU2NoZWR1bGVyLmgiCiAKICNpbmNsdWRlIDx3dGYv
QXV0b2RyYWluZWRQb29sLmg+CkBAIC0xMTEsNSArMTA5LDMgQEAgdm9pZCBMYXllckZsdXNoU2No
ZWR1bGVyOjppbnZhbGlkYXRlKCkKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMubW0KaW5kZXggZTZlNTlmM2FiZGY4YTk1ZjljMTczODVhOGM2MjU0ZGE3YWU4
Y2FmNS4uZDFmOGJlNTZlMmEyZDA3ZmVjMzYzN2JlNzc1NTc5OGVmOTAyYzNhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0KQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0
ICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAKICNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgpA
QCAtNTgzLDUgKzU4MSwzIEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1
bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1hdGlvbiogdmFsCiAgICAgQ0FLZXlmcmFt
ZUFuaW1hdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxDQUtleWZyYW1lQW5pbWF0aW9uKj4odmFs
dWUtPm1fYW5pbWF0aW9uLmdldCgpKTsKICAgICBbc3RhdGljX2Nhc3Q8Q0FLZXlmcmFtZUFuaW1h
dGlvbio+KG1fYW5pbWF0aW9uLmdldCgpKSBzZXRUaW1pbmdGdW5jdGlvbnM6W290aGVyIHRpbWlu
Z0Z1bmN0aW9uc11dOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FGaWx0ZXJzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tCmluZGV4IDZmZjY0ODU2YmNhN2U2NDljZmNm
YmM3ODRmMDg2M2ZlMTdlMmRmZmEuLjk2ZWRhYzFkMDk3OWIyYmNmM2Y4OTU3OTE5MmNkN2EwNjEw
MmMxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0KQEAgLTI1LDcgKzI1LDYgQEAK
IAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIAogI2ltcG9ydCAiUGxhdGZvcm1DQUZpbHRlcnMu
aCIKQEAgLTcxMSw0ICs3MTAsMyBAQCBjb25zdCBjaGFyKiBQbGF0Zm9ybUNBRmlsdGVyczo6YW5p
bWF0ZWRGaWx0ZXJQcm9wZXJ0eU5hbWUoRmlsdGVyT3BlcmF0aW9uOjpPcGVyYQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAppbmRleCA2ZmM0ZDM4ZjVhZDk3ZTg4ZTYy
M2UyMjRiMjg3OWRhZGIzYWJlYTI4Li5iOTlkY2VlZTMyMzk0NGJiZGZkOGEyMDRhY2U5Mzg2MjUz
MjI4NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZu
ZGVmIFBsYXRmb3JtQ0FMYXllck1hY19oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllck1hY19oCiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJQbGF0Zm9ybUNB
TGF5ZXIuaCIKIAogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTE2NSw2ICsxNjMsNCBAQCBQTEFU
Rk9STV9DQUxBWUVSX1RZUEVfQ0FTVFMoUGxhdGZvcm1DQUxheWVyTWFjLCBpc1BsYXRmb3JtQ0FM
YXllck1hYygpKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBQbGF0Zm9ybUNBTGF5ZXJNYWNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KaW5kZXggNTY3ZGMyYTM3OGZkNDUyYzQyY2ZmZGY3MzFi
NmE5ODI4OTlmYWZiNS4uOWFkZGQ3MjY2MzVmZWVlNmEwMjZlY2VlNmRhNTcwMTc2ODk0ODY3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2ltcG9y
dCAiUGxhdGZvcm1DQUxheWVyTWFjLmgiCiAKICNpbXBvcnQgIkFuaW1hdGlvblV0aWxpdGllcy5o
IgpAQCAtODMxLDUgKzgyOSwzIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyTWFjOjplbnVtZXJhdGVS
ZWN0c0JlaW5nRHJhd24oQ0dDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQgKF5iCiB7CiAgICAgd2tD
QUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrKG1fbGF5ZXIuZ2V0KCksIGNv
bnRleHQsIGJsb2NrKTsKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9B
YnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDEzYzY3NDY0MGRi
ZjcwMjY5NTNhYTFhMDFjMWZhMjI4NDM0ZmI2NjMuLjAxZjIzYzNlOWMzNjFkN2FmMzEzZTlmOTVj
ODMwNGUwNGMwM2Q1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9BYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0Fic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaApA
QCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0X2gKICNk
ZWZpbmUgQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00Nyw2ICs0NSw0IEBAIHByb3RlY3RlZDoKIAogfQogCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gQWJzdHJhY3RDQUNGTGF5ZXJU
cmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcAppbmRleCA1ZDBjMzQ2ODZjZGVkOTgy
Yzk1YzgzN2QyOWNkMGQ2MGY1OGY3NTFjLi41ZTU0MTFhNDlkNjYyMGYyMmJmYjFmMzI0ODY5NTNi
NzY5YWE4OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTI2LDggKzI2LDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDQUNGTGF5ZXJUcmVlSG9zdC5oIgogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiQ0FDRkxheWVyVHJl
ZUhvc3RDbGllbnQuaCIKICNpbmNsdWRlICJEZWZXbmRQcm9jV2luZG93Q2xhc3MuaCIKICNpbmNs
dWRlICJMYXllckNoYW5nZXNGbHVzaGVyLmgiCkBAIC0zMjgsNSArMzI2LDMgQEAgQ0dSZWN0IENB
Q0ZMYXllclRyZWVIb3N0Ojpib3VuZHMoKSBjb25zdAogfQogCiB9Ci0KLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDljZWEx
YzAxZGU2N2JkZDQwNGFhNWJhNWFlZDg1NDJkNGJiZmRhMTkuLjI0ZjMyMDg3OTg0MzI1N2NhYmRl
ODQ5MmUxZjNhMjQ5NmUwNTlmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNiw4ICsy
Niw2IEBACiAjaWZuZGVmIENBQ0ZMYXllclRyZWVIb3N0X2gKICNkZWZpbmUgQ0FDRkxheWVyVHJl
ZUhvc3RfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAi
QWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgIkNPTVB0ci5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCkBAIC0xMjAsNiArMTE4LDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gQ0FDRkxheWVyVHJl
ZUhvc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL0NBQ0ZMYXllclRyZWVIb3N0Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaAppbmRleCA4NDVmOTM0ZGMw
NzBlOGEyNGYxYzBiNjlkYzI3MTY4ODk3NWIyYTRiLi5mOWVlYzBkYTk4YTRhNTM1Njg4YWFjNjM5
ZDM5ODg4YTZhODhkMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaApAQCAt
MjYsOCArMjYsNiBAQAogI2lmbmRlZiBDQUNGTGF5ZXJUcmVlSG9zdENsaWVudF9oCiAjZGVmaW5l
IENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQUNGTGF5ZXJUcmVlSG9zdENs
aWVudCB7CkBAIC0zOCw2ICszNiw0IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8g
Q0FDRkxheWVyVHJlZUhvc3RDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwCmlu
ZGV4IDFiMTllYTRiN2M3OWYxNDVlZWY0Zjg0ODYzMjYyMTVhYzUzNDIxNTIuLmZkNDRhYTA2M2Ey
OWMwNDBmYTljMDA5NTJmMTlkOGFiNTFhZGI1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hl
ci5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJM
YXllckNoYW5nZXNGbHVzaGVyLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiU3Ry
dWN0dXJlZEV4Y2VwdGlvbkhhbmRsZXJTdXBwcmVzc29yLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgpAQCAtMTMxLDUgKzEyOSwzIEBAIHZvaWQgTGF5ZXJDaGFuZ2VzRmx1c2hlcjo6
cmVtb3ZlSG9vaygpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5oCmluZGV4
IDFlN2FiMzE0NzE5YWY2YTIxZDA3NGJkZTJiYjU5NTY5ZGFjMmU5MjguLjM3YzMxNDAyMGNjNzg2
YzdiZmMwZTk5MGM1OWRjZWQ1MWY2ZGE5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuaApA
QCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBMYXllckNoYW5nZXNGbHVzaGVyX2gKICNkZWZpbmUg
TGF5ZXJDaGFuZ2VzRmx1c2hlcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTYwLDYgKzU4LDQgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjZW5kaWYgLy8gTGF5ZXJDaGFuZ2VzRmx1c2hlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhv
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNB
Q0ZMYXllclRyZWVIb3N0LmNwcAppbmRleCAyMjhlMTZlNTc3ZjE5ZmI4MjQ3ODg2ZDA4MWIxNDY1
NWQ1NDkxMTZkLi44ZjM0NWJkMzFmY2RhZDZmMzYzY2ZlNjFkNjlmMTVmNzU5NDc2ZTZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FD
RkxheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5oIgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1D
QUxheWVyLmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9DQUJhc2UuaD4KICNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CkBAIC0zOTgsNSArMzk2
LDMgQEAgYm9vbCBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdDo6cmVzZXREZXZpY2UoUmVzZXRSZWFz
b24gcmVhc29uKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5o
CmluZGV4IDVhNjc4YzY4ZjE3ZTE2YzY4Y2ZmOWQzY2U1NjM3YTQ5MWE4MzNmNTkuLjMzMWRhNzgz
ODhkN2JhYmQwNmIzNWU2MjU4NjY1Nzc3ZGNjMjU2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5
ZXJUcmVlSG9zdC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIExlZ2FjeUNBQ0ZMYXllclRy
ZWVIb3N0X2gKICNkZWZpbmUgTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3RfaAogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiQ0FDRkxheWVyVHJlZUhvc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODEsNiArNzksNCBAQCBwcml2YXRlOgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNlbmRpZiAvLyBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUFuaW1hdGlvbldpbi5jcHAKaW5kZXggYzU4NGI5NmY3NjkzZGY3OWQzMjBhMTUxY2Q2ODM5
MTc2NGMwNzI3OC4uZDI0NTQwMTRkNzlmNTc0ZmI1NTNhY2VhNzhkNzNjNjdlMzNjYzg3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FBbmltYXRpb25XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcApAQCAtMjUsOCArMjUsNiBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAKICNpbmNsdWRlICJGbG9hdENvbnZl
cnNpb24uaCIKQEAgLTU1OSw1ICs1NTcsMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OmNv
cHlUaW1pbmdGdW5jdGlvbnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb24qIHZhbAogewog
ICAgIENBQ0ZBbmltYXRpb25TZXRUaW1pbmdGdW5jdGlvbnMobV9hbmltYXRpb24uZ2V0KCksIENB
Q0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbnModmFsdWUtPnBsYXRmb3JtQW5pbWF0aW9uKCkp
KTsKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBRmls
dGVyc1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxh
dGZvcm1DQUZpbHRlcnNXaW4uY3BwCmluZGV4IDMwYzQwYTdlMzliNDA2NzYzNTM1ZjYwNjhmMGE0
OWNlMTE3OTZmMjguLjNhMGQwNWNmYTU2NDNmNGM1ZDMwZWEwZGJmZDUyMDE1YjliMjRiNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBRmlsdGVyc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcApAQCAtMjUsNyArMjUsNiBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaWYg
RU5BQkxFKENTU19GSUxURVJTKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUZpbHRlcnMuaCIKQEAg
LTUwLDQgKzQ5LDMgQEAgY29uc3QgY2hhciogUGxhdGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmls
dGVyUHJvcGVydHlOYW1lKEZpbHRlck9wZXJhdGlvbjo6T3BlcmEKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShDU1NfRklMVEVSUykKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxh
dGZvcm1DQUxheWVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCmluZGV4IDE4YmU4NjdjMzU3YTM4NDQyZDdiYjhk
ZDU3ZDNlNWU3Y2ZlNjA3ZjMuLmU4MGMyNDQzMTI0YzIwYjZjNTRhM2VhMDRlN2NhN2UwNDc5YmNk
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNp
bmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQog
I2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllcldpbi5oIgogCiAjaW5jbHVkZSAiQWJzdHJhY3RDQUNG
TGF5ZXJUcmVlSG9zdC5oIgpAQCAtNjc1LDUgKzY3MywzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBQbGF0Zm9ybUNBTGF5ZXJXaW46OmNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9y
bUNBCiB7CiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlKGxheWVyVHlwZSwg
Y2xpZW50KTsKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9Q
bGF0Zm9ybUNBTGF5ZXJXaW4uaAppbmRleCAyNjJhYTJjZDk2ZjEzNTYzNGNmMWQ4OTI2YzEyMjNj
NDJlMWU2Yjc3Li4wMWIwNTZlMjdlNmJkNmEwZDM1YzQ4Mjk4MGRjYmQwNGI5ZTlkYjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1D
QUxheWVyV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1BsYXRmb3JtQ0FMYXllcldpbi5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3Jt
Q0FMYXllcldpbl9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllcldpbl9oCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU0LDYgKzE1Miw0IEBAIHByaXZhdGU6CiAKIH0KIAot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRm
b3JtQ0FMYXllcldpbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNw
cAppbmRleCBmMDEyMWFhOWIxMTNhMzAzODNiNzg0Yjk0NzBkZjUyNjY2Yzg3MmIzLi5mNjgzNWQ2
OTg4MzJiYTAyZWQ3ZjFiYjc0OWIyYjIyYjRmOTA1YzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9y
bUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKQEAgLTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAi
UGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwuaCIKIAogI2luY2x1ZGUgIkZvbnQuaCIKQEAgLTQ4
OCw1ICs0ODYsMyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFsOjpkcmF3VGlsZShD
QUNGTGF5ZXJSZWYgdGlsZSwgQ0dDb250ZXh0UmVmIGNvbnRleAogCiAgICAgQ0dDb250ZXh0UmVz
dG9yZUdTdGF0ZShjb250ZXh0KTsKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmgKaW5kZXggMzll
ZjNiMzU3NmYyZmNmYTA2ZTdmOTM3YjM1MjcwNDMyYWM4ZDY4Ni4uOWVkYmJhNDZiNzY0YzRmZTg4
MTJmNzI4NjE1ZjVjMDMwYzBiNzIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1DQUxheWVyV2luSW50
ZXJuYWxfaAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbF9oCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dHZW9t
ZXRyeS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CkBAIC04NCw2ICs4Miw0IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllcldpbkludGVy
bmFsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dp
bi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDJmNjRhYjE2
MGNmODhjMGYwZjQzNmJkNmRlMjRlNTUxNjQzMGQxZmIuLjRhMjVjNmRkN2QzNWY0OTMyMjIyYzA3
ZmVhOThmNTA1OTMxZWFiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNw
cApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldLQ0FD
RlZpZXdMYXllclRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRlICJTb2Z0TGlua2luZy5o
IgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTg3LDUgKzE4NSwzIEBAIEdyYXBo
aWNzRGV2aWNlQWRhcHRlciogV0tDQUNGVmlld0xheWVyVHJlZUhvc3Q6OmdyYXBoaWNzRGV2aWNl
QWRhcHRlcigpIGNvbnN0CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVy
VHJlZUhvc3QuaAppbmRleCBjNmY0YTkwMmMwNzk2ZjEyYzhkZmMzNzQwN2IyM2M5ZGI5Zjc3ODYw
Li4wZGQxOGNhMzM5MmQxMDE0NTFlMDU1YTcwNmJjMTgzZDI2YmZhNDcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJl
ZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tD
QUNGVmlld0xheWVyVHJlZUhvc3QuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBXS0NBQ0ZW
aWV3TGF5ZXJUcmVlSG9zdF9oCiAjZGVmaW5lIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0X2gKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkNBQ0ZMYXllclRy
ZWVIb3N0LmgiCiAKIHR5cGVkZWYgc3RydWN0IF9XS0NBQ0ZWaWV3KiBXS0NBQ0ZWaWV3UmVmOwpA
QCAtNjUsNiArNjMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBXS0NBQ0ZW
aWV3TGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcAppbmRleCA3MzhlNDkz
ODE1Mzg5M2QwZTJmNWExNWU3MmQ2NDNmMTFmNTJkYmE4Li5kNzEwNDAwMTI4ZWE4NzhjYTQ0OTY2
MDRhMDBkNDZkM2U1NTYwNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJDYWlyby5jcHAKQEAgLTMzLDgg
KzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiB1bnNpZ25lZCBEcmF3aW5nQnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gY29sb3JCdWZmZXIoKTsKQEAgLTQzLDcgKzQxLDYgQEAgdW5z
aWduZWQgRHJhd2luZ0J1ZmZlcjo6ZnJvbnRDb2xvckJ1ZmZlcigpIGNvbnN0CiB2b2lkIERyYXdp
bmdCdWZmZXI6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciopCiB7
CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCmluZGV4
IDg2NDFmZDQ4MzlmYTI5YWNjNWQxNTJhNjY3YThjMTU2ZDI0ZGMxNTcuLjgwYjkxZTQ2YTBhNWQ0
NGRmYjUxZjBjMWJjOGZjYjhmMzlmYjYyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fp
cm8uY3BwCkBAIC0zMDYsMTIgKzMwNiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dM
RVMyQ29tcGxpYW50KCkgY29uc3QKICNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7CiB9Ci0jZW5kaWYKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDAwNDgy
YWQ2ZDQ2OTEwM2IwNGYyMTA1M2Y4ODEyYjlhNjZjZmE3YWIuLjg2ZDgyNjljZmNmZDA4OTg2ODg5
YTNhMGJhZGZlYTkyNjc5NDIzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC00MDYsNyAr
NDA2LDYgQEAgdm9pZCBJbWFnZUJ1ZmZlckRhdGE6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1
cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEYKIH0KICNlbmRpZgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogSW1hZ2VCdWZmZXI6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdAogewogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCkBA
IC00MTUsNiArNDE0LDUgQEAgUGxhdGZvcm1MYXllciogSW1hZ2VCdWZmZXI6OnBsYXRmb3JtTGF5
ZXIoKSBjb25zdAogI2VuZGlmCiAgICAgcmV0dXJuIDA7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKaW5kZXggMTJjYTcyNjY0YzMy
OTBmZWEyNzRjOTYzMTgxYjFmZjEyMzNmMjg4Zi4uOTQ2MTgyNTRhZWUyOGRmZGE0OTQxNWI1NzI5
NmIyNjRhZjliMDEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwCkBAIC0yMSw4ICsyMSw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIK
IAotI2lmIFVTRSgzRF9HUkFQSElDUykgfHwgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW5jbHVkZSAiR0xEZWZzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKQEAgLTE3NSw3ICsxNzMsNiBAQCBQbGF0Zm9ybTNET2Jq
ZWN0IEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybVRleHR1cmUoKSBjb25zdAogICAgIHJldHVy
biBtX3RleHR1cmU7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0
Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpAQCAtMTg1LDcgKzE4Miw2IEBAIFBsYXRmb3JtTGF5
ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4g
MDsKICNlbmRpZgogfQotI2VuZGlmCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudCgpCiB7CkBAIC0zMTAsNSArMzA2LDMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQz
RDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxwaGEsIGJv
b2wKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKDNEX0dSQVBI
SUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCBjMWI3YjZjYTA2ZTg2
OTBmOTQzZmU5NWQ5ODZlYTg5ZDU1MjQyZjVjLi4zNDNkYWI2YTlhMzBmMWM4NWFlZWZhODU0YzZh
ZjYzYjM3NTA3NjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtMjEs
OCArMjEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oIgogCi0jaWYgVVNFKDNEX0dSQVBISUNTKSB8fCBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKIApAQCAtMjc1LDUgKzI3MywzIEBAIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3Mg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpncmFwaGljc1N1cmZhY2VGbGFncygpIGNvbnN0CiAj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKDNEX0dSQVBI
SUNTKSB8fCBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmgKaW5kZXggY2M0MWRjMzBkMzZmYjkxNzQ1NWU5MzQ2ZjQ1NDBmNzdiNjg3NzJmNS4u
MTMzMmE0OGI4ZmNjMzI4Zjc0YWY1MjYxOTMwNGU3NGEwYmRjYzRmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaApAQCAtMjEsOCArMjEsNiBAQAogI2lmbmRlZiBHcmFwaGljc0NvbnRl
eHQzRFByaXZhdGVfaAogI2RlZmluZSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGVfaAogCi0jaWYg
VVNFKDNEX0dSQVBISUNTKSB8fCBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpA
QCAtOTYsNSArOTQsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0RyYXdpbmdCdWZmZXIuaAppbmRleCBlMjM0ZTQyMGNkZjQ5Njk3NDQ0MzcwZjQzOGIzNTJk
ZjEzOTAwMDYzLi4wYjc1Zjc2ODY5OTllMWYwMGExMDExYzNjNjE2NjBkYjU4YjhiMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVm
ZmVyLmgKQEAgLTExNywxMSArMTE3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYXJrQ29udGVu
dHNDaGFuZ2VkKCkgeyBtX2NvbnRlbnRzQ2hhbmdlZCA9IHRydWU7IH0KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCk7
CiAgICAgdW5zaWduZWQgZnJvbnRDb2xvckJ1ZmZlcigpIGNvbnN0OwogICAgIHZvaWQgcGFpbnRD
b21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKik7Ci0jZW5kaWYKIAogICAgIEdy
YXBoaWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGV4dC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvTG9vcEJsaW5uTWF0aFV0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCmluZGV4IDMyYTU0ZmI5MGRiYjc1
MjRlOTliYTMwOTg0YmVjMWIyMTdjZDdiNGMuLjg3ZDcyZGZmNDk4ZDg5NTVlOTQ4ZjMyZmI3NDZm
ZmE4ZWUyZGIzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAK
ICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
fHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLQogI2luY2x1ZGUgIkxvb3BCbGlubk1h
dGhVdGlscy5oIgogCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgpAQCAtNjY2LDUgKzY2NCwzIEBA
IGJvb2wgaXNDb252ZXgoY29uc3QgRmxvYXRQb2ludCogdmVydGljZXMsIGludCBuVmVydGljZXMp
CiAKIH0gLy8gbmFtZXNwYWNlIExvb3BCbGlubk1hdGhVdGlscwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UaWxpbmdEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9UaWxpbmdEYXRhLmNwcAppbmRleCAyM2RmMzdkYTBhOGUyNjM5NTU1MTI0NzFlYmZlMGFi
MDY4MjRlMzFhLi42YTNkMDRjNGQ5ZTFhMjNiMGQ2NjUzNzQzOWQyZDEyZGQzYWUxZTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEu
Y3BwCkBAIC0zMCw4ICszMCw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykK
LQogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpAQCAt
MjAzLDUgKzIwMSwzIEBAIHZvaWQgVGlsaW5nRGF0YTo6cmVjb21wdXRlTnVtVGlsZXMoKQogfQog
CiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCmluZGV4IDUxYzI2NTdmMWQxOTc2
YzlkMzI4NzU4YjM4YWU4ZDdiZmZhMGVhMjkuLjQyYzBlMGU1MmEwYzY1NWUxMjY2OTYzZGY3YmEx
MzEyNjEzMmVjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW0KQEAgLTk0LDcgKzk0LDYgQEAg
RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIoKQogICAgIGNsZWFyKCk7CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBEcmF3aW5nQnVmZmVy
OjpwbGF0Zm9ybUxheWVyKCkKIHsKICAgICByZXR1cm4gbV9wbGF0Zm9ybUxheWVyLmdldCgpOwpA
QCAtMTA0LDcgKzEwMyw2IEBAIHVuc2lnbmVkIERyYXdpbmdCdWZmZXI6OmZyb250Q29sb3JCdWZm
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBjb2xvckJ1ZmZlcigpOwogfQotI2VuZGlmCiAKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2Uu
Y3BwCmluZGV4IDM3NjNhMDA2ZmIyZWM3NGIxODNmZjExOWQ2ZmU0N2NkMzQ4ODJjMTEuLjJiY2M2
MzY5ODA1NTllYmUzYmE3NjlmYmNiYzMzZDg2N2YwOTAxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAKIAogI2luY2x1ZGUgPGdzdC9hdWRpby9zdHJlYW12b2x1bWUuaD4KIAotI2lmIEdTVF9DSEVD
S19WRVJTSU9OKDEsIDEsIDApICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIEdTVF9DSEVDS19WRVJTSU9OKDEsIDEsIDApICYmIFVT
RShURVhUVVJFX01BUFBFUl9HTCkKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0wuaCIKICNlbmRp
ZgogCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjptdXRlQ2hhbmdlZCgpCiB9CiAKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZTo6dXBkYXRlVGV4dHVyZShUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogewogICAg
IEdNdXRleExvY2tlciBsb2NrKG1fYnVmZmVyTXV0ZXgpOwpAQCAtMzU3LDcgKzM1Nyw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dHJpZ2dlclJlcGFpbnQoR3N0QnVm
ZmVyKiBidWZmZXIpCiAgICAgICAgIGdzdF9idWZmZXJfcmVwbGFjZSgmbV9idWZmZXIsIGJ1ZmZl
cik7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xp
ZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikgJiYg
Y2xpZW50KCkpIHsKICAgICAgICAgY2xpZW50KCktPnNldFBsYXRmb3JtTGF5ZXJOZWVkc0Rpc3Bs
YXkoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzc0LDcgKzM3NCw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYK
QEAgLTQwMSw3ICs0MDEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UgogICAgICAgICByZWN0
LCBnc3RJbWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24oKSwgZmFsc2UpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludFRvVGV4dHVyZU1hcHBl
cihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJl
Y3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHkpCiB7
CiAgICAgaWYgKHRleHR1cmVNYXBwZXItPmFjY2VsZXJhdGlvbk1vZGUoKSAhPSBUZXh0dXJlTWFw
cGVyOjpPcGVuR0xNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXJCYXNlLmgKaW5kZXggMGY2NTA5NDRhNWViYTQ5ZGMyMzJhOWI1NzYyZjM1ZTA0NmFl
Mjg0ZC4uY2I3YmIwYjJlYjllYzU2YzQzY2RiYzMwMjRhYWE1ZDdkZDA0MzhjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0zMSw3
ICszMSw3IEBACiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgi
CiAjZW5kaWYKIApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgSW50UmVj
dDsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSA6IHB1YmxpYyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
KyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiAgICAgLCBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIKICNlbmRpZgogewpAQCAt
OTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9EZWNvZGVkQnl0ZUNvdW50
KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNvdW50KCkgY29uc3Q7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9H
TCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlKj4odGhpcyk7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQpOwpAQCAtMTI1LDcgKzEy
NSw3IEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBsb25nIG1fdm9sdW1lU2lnbmFsSGFuZGxl
cjsKICAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVNpZ25hbEhhbmRsZXI7CiAgICAgbXV0YWJsZSBJ
bnRTaXplIG1fdmlkZW9TaXplOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
VVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAg
ICBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IHVwZGF0ZVRleHR1cmUoVGV4dHVyZU1hcHBlciop
OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oCmluZGV4IDgxMTZmODNkZGYxYjkz
ZDczNmZmOTE2ZTQ4NDNmMGI1NDU0ODIwMDEuLjE2Mjc0YjI1YmU1MTRlYjk1NDY1OTdiNjY1N2Y3
YTMwY2Q1MTdlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmgKQEAgLTE0Miw5ICsxNDIsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUxpc3RlbmVycyhib29sKSBvdmVycmlkZTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVu
ZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRN
ZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqKSBvdmVycmlkZTsKICAgICB2b2lk
IHByb2Nlc3NQZW5kaW5nUmVxdWVzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLm1tCmluZGV4
IDllZWE3Mjc5ZGFlY2YwMWNkMDkxMWUxMWU1MDQ3YzQ5MDE4ZGQ2MGMuLjUyYmIwMTkwMTc4NTQ0
MTUyNDAzYWZjNTE1MmQ4ZWJiOTAzODBhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbQpA
QCAtNjYzLDEyICs2NjMsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVJT1M6OnNldEhhc1Bs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKGJvb2wgaGFzTGkKIH0KICNlbmRpZgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVJT1M6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAgIHJldHVy
biB0cnVlOwogfQotI2VuZGlmCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlSU9TOjplbnRlckZ1
bGxzY3JlZW4oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCA5ZWE0MzhjMzlk
ZGRhODcyMDZkMzFjODFmMmVjNzhmY2Y3M2Y3MDM2Li4yNWU2NzkyMDZkNjVhOGJlMTNmY2QzYWIy
MmQ1ODRiNjFkMjg3Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtNjUsOSAr
NjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgdGltZUNo
YW5nZWQoKTsKICAgICB2b2lkIGRpZEVuZCgpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2b2lkIGxheWVySG9zdENoYW5nZWQoUGxhdGZvcm1MYXllciogcm9vdExheWVy
KTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0KE1lZGlh
UGxheWVyKik7CkBAIC04Myw5ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNB
dmFpbGFibGUoKTsKIAogICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0Owot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIEludFNpemUgbmF0dXJhbFNpemUoKSBj
b25zdDsKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7CkBAIC0xMzgsMTEgKzEzNCw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JSZW5kZXJp
bmcoKTsKIAotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0OwogICAgIHZvaWQgYWNjZWxlcmF0ZWRS
ZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKLSNlbmRpZgogCiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1
cml0eU9yaWdpbigpIGNvbnN0OwogICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmll
TG9hZFR5cGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBkOTIy
Y2VkMzU3ODVlNTUzN2RhOTQwYjM1ODE3MWEzMWIzNTEyMGIzLi43ODliOWVmOTdhMjc2MzY5ZTUy
ODE0NGEyNGM1YzZhZGM1ZTY0YzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBA
IC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJVUkwuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNp
bXBvcnQgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKICNp
bXBvcnQgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9y
dCAiVGltZVJhbmdlcy5oIgpAQCAtNDUsMTAgKzQ2LDYgQEAKICNpbXBvcnQgPFFUS2l0L1FUS2l0
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jZW5kaWYKLQogI2lmIERSQVdf
RlJBTUVfUkFURQogI2ltcG9ydCAiRm9udC5oIgogI2ltcG9ydCAiRG9jdW1lbnQuaCIKQEAgLTUw
OCw3ICs1MDUsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkZXN0cm95UVRWaWRl
b1JlbmRlcmVyKCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92aWVM
YXllcigpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0
ZVFUTW92aWVMYXllciglcCkiLCB0aGlzKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgaWYgKCFtX3F0TW92aWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTI1LDIwICs1
MjEsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVy
KCkKICNlbmRpZgogICAgICAgICAvLyBUaGUgbGF5ZXIgd2lsbCBnZXQgaG9va2VkIHVwIHZpYSBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkuCiAg
ICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmRlc3Ryb3lR
VE1vdmllTGF5ZXIoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpkZXN0cm95UVRNb3ZpZUxheWVyKCVwKSIsIHRoaXMpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBpZiAoIW1fcXRWaWRlb0xheWVyKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBkaXNhc3NvY2lhdGUgb3VyIG1vdmllIGZyb20gb3VyIGluc3RhbmNlIG9mIFFUTW92
aWVMYXllcgogICAgIFttX3F0VmlkZW9MYXllci5nZXQoKSBzZXRNb3ZpZTpuaWxdOyAgICAKICAg
ICBtX3F0VmlkZW9MYXllciA9IG5pbDsKLSNlbmRpZgogfQogCiBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjdXJyZW50
UmVuZGVyaW5nTW9kZSgpIGNvbnN0CkBAIC01NjAsMTAgKzU1Myw4IEBAIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBy
ZWZlcnJlZFJlCiAgICAgaWYgKCFtX3BsYXllci0+ZnJhbWVWaWV3KCkgfHwgIW1fcXRNb3ZpZSkK
ICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYm
IG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb3Zp
ZUxheWVyOwotI2VuZGlmCiAKICAgICBpZiAoIVFUVmlkZW9SZW5kZXJlckNsYXNzKCkpCiAgICAg
ICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmllVmlldzsKQEAgLTY5MSwxMiArNjgyLDEwIEBA
IFBsYXRmb3JtTWVkaWEgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnBsYXRmb3JtTWVkaWEoKSBj
b25zdAogICAgIHJldHVybiBwbTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9xdFZpZGVvTGF5ZXIuZ2V0KCk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxheSgpCiB7CkBAIC04OTcsMTIgKzg4
NiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRDbG9zZWRDYXB0aW9uc1Zp
c2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zpc2libAogICAgIGlmIChtZXRhRGF0YUF2YWlsYWJs
ZSgpKSB7CiAgICAgICAgIHdrUVRNb3ZpZVNldFNob3dDbG9zZWRDYXB0aW9ucyhtX3F0TW92aWUu
Z2V0KCksIGNsb3NlZENhcHRpb25zVmlzaWJsZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgICAgIGlmIChjbG9zZWRDYXB0aW9uc1Zpc2libGUgJiYgbV9xdFZpZGVv
TGF5ZXIpIHsKICAgICAgICAgICAgIC8vIENhcHRpb25zIHdpbGwgYmUgcmVuZGVyZWQgdXBzaWRl
IGRvd24gdW5sZXNzIHdlIGZsYWcgdGhlIG1vdmllIGFzIGZsaXBwZWQgKGFnYWluKS4gU2VlIDxy
ZGFyOi8vNzQwODQ0MD4uCiAgICAgICAgICAgICBbbV9xdFZpZGVvTGF5ZXIuZ2V0KCkgc2V0R2Vv
bWV0cnlGbGlwcGVkOllFU107CiAgICAgICAgIH0KLSNlbmRpZgogICAgIH0KIH0KIApAQCAtMTIy
NSwxMiArMTIxMiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaWRFbmQoKQog
ICAgIG1fcGxheWVyLT50aW1lQ2hhbmdlZCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6bGF5ZXJIb3N0Q2hhbmdl
ZChQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHJvb3RMYXll
cik7CiB9Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJikgCiB7IApAQCAtMTYxNyw3ICsxNjAyLDYgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVRVEtpdDo6c2F3VW5zdXBwb3J0ZWRUcmFja3MoKQogICAgIG1fcGxheWVyLT5tZWRp
YVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKG1fcGxheWVy
KTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewog
ICAgIHJldHVybiBpc1JlYWR5Rm9yVmlkZW9TZXR1cCgpICYmIGdldFFUTW92aWVMYXllckNsYXNz
KCkgIT0gTmlsOwpAQCAtMTYyOCw3ICsxNjEyLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogICAgIC8vIFNldCB1cCBv
ciBjaGFuZ2UgdGhlIHJlbmRlcmluZyBwYXRoIGlmIG5lY2Vzc2FyeS4KICAgICBzZXRVcFZpZGVv
UmVuZGVyaW5nKCk7CiB9Ci0jZW5kaWYKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogewpAQCAtMTc4MCwxMiArMTc2Myw4IEBA
IC0gKHZvaWQpbmV3SW1hZ2VBdmFpbGFibGU6KE5TTm90aWZpY2F0aW9uICopdW51c2VkTm90aWZp
Y2F0aW9uCiAKIC0gKHZvaWQpbGF5ZXJIb3N0Q2hhbmdlZDooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQ0FMYXll
ciogcm9vdExheWVyID0gc3RhdGljX2Nhc3Q8Q0FMYXllcio+KFtub3RpZmljYXRpb24gb2JqZWN0
XSk7CiAgICAgbV9jYWxsYmFjay0+bGF5ZXJIb3N0Q2hhbmdlZChyb290TGF5ZXIpOwotI2Vsc2UK
LSAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKLSNlbmRpZgogfQogCiAtICh2b2lkKXNl
dERlbGF5Q2FsbGJhY2tzOihCT09MKXNob3VsZERlbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIuaAppbmRleCBlYWRlNTIwMzRjZGQ4MTBh
NjAyZmU4MWZkYTI4NDJiMjMxODZhMDllLi4wMGM4MWY2YWFlMDlhNjUzZjI3MzQ1ZDZiMzFhZjYz
MzNlYzIyODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9XZWJHTExheWVyLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV2ViR0xMYXllcl9oCiAj
ZGVmaW5lIFdlYkdMTGF5ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNTEsNiArNDksNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBlbmQKIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFdlYkdMTGF5ZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdM
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXll
ci5tbQppbmRleCA2NDgyOTllNzU5NmMzNDU2MmUxNTQ0NTBlNzdlYTI0YTc4MmIyMWVjLi43MWY4
MWZjYTZjM2EzN2QyZWE0MDkzZDI1NjBlYzA5MzZlZjY0NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQpAQCAtMjUsNyArMjUs
NiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW1wb3J0ICJXZWJHTExheWVyLmgiCkBAIC0x
NzcsNCArMTc2LDMgQEAgLShHcmFwaGljc0xheWVyKilsYXllck93bmVyCiBAZW5kCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaApp
bmRleCA1MmRjYjIzODhlMTIwYmJiZDk3OTY5ZGY4YmE3MDk2NzQ3MTk2MjdlLi4xMjIyYTYzMzdl
Y2Q1OTRiYTIwMDcxZDFlYzlkMmZlZGYwNGJjOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRl
ZiBXZWJMYXllcl9oCiAjZGVmaW5lIFdlYkxheWVyX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAtNTQsNiAr
NTIsNCBAQCB2b2lkIGRyYXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxh
eWVyKiwgUmVwYWludFJlY3RMaXN0JiBkaXJ0eVJlYwogdm9pZCBkcmF3UmVwYWludEluZGljYXRv
cihDR0NvbnRleHRSZWYsIFBsYXRmb3JtQ0FMYXllciosIGludCByZXBhaW50Q291bnQsIENHQ29s
b3JSZWYgY3VzdG9tQmFja2dyb3VuZENvbG9yKTsKIH0KIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFdlYkxheWVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQppbmRleCBkOTlkZjJlYjAz
YWNmNDVmODFiYWIzMjdjYTNiN2MyYzEzZTBkNjQxLi45ZjIxNzlkNjA5MmZlNWE0OGZmNjBkZjIx
MzQyNjkzZTI5YjJmZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYkxheWVyLm1tCkBAIC0yNCw5ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJX
ZWJMYXllci5oIgogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTMzMCw1ICszMjcs
MyBAQCAtIChOU1N0cmluZyopZXh0ZW5kZWREZXNjcmlwdGlvbgogQGVuZCAgLy8gaW1wbGVtZW50
YXRpb24gV2ViTGF5ZXIoRXh0ZW5kZWREZXNjcmlwdGlvbikKIAogI2VuZGlmIC8vIE5ERUJVRwot
Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVyLmgKaW5kZXggNmY1
NTllM2QzMjAxZjJhMzRjMjI3NmUxMTA3NDMyZDU3YTlkMGZiOC4uNDZkNThhOWRhYjQwYzA2NzFi
NTAwYzY2NzE4YjhkYmUxOWEyNzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZu
ZGVmIFdlYlRpbGVkTGF5ZXJfaAogI2RlZmluZSBXZWJUaWxlZExheWVyX2gKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2ltcG9ydCAiV2ViTGF5ZXIuaCIKIAogQGludGVy
ZmFjZSBXZWJUaWxlZExheWVyIDogQ0FUaWxlZExheWVyIApAQCAtMzgsNyArMzYsNSBAQAogCiBA
ZW5kCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAv
LyBXZWJUaWxlZExheWVyX2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbQppbmRleCBjODZhZmE2ODg0YmVjZDJmMzY4NDdm
M2JkMjBkNzhkMDk0Y2EyMWVmLi43MTM4NjA0M2UzNTg2MzY2ZTg3YzE2NDNiYzVmMGIyNTFmZTE0
NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2Vi
VGlsZWRMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViVGlsZWRMYXllci5tbQpAQCAtMjQsOSArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2ltcG9ydCAiV2Vi
VGlsZWRMYXllci5oIgogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTE0MSw1ICsx
MzgsMyBAQCAtICh2b2lkKWRyYXdJbkNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0CiB9CiAK
IEBlbmQgLy8gaW1wbGVtZW50YXRpb24gV2ViVGlsZWRMYXllcgotCi0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMRGVmcy5oCmluZGV4IDY1OWQyNDk3NDljNzMxMTgyZDVkOGE1NzFhMWEy
NTJmMzkzMWNkNzEuLmEwOTFmMTM1ODI5ZWY4ZmM3NWVmZjQwNWQ4ZGI3NjJmM2FmNDJjNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgK
QEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR0xEZWZzX2gKICNkZWZpbmUgR0xEZWZzX2gKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2RlZmluZSBHTF9HTEVYVF9QUk9U
T1RZUEVTIDEKIAogI2lmIFVTRShPUEVOR0xfRVNfMikKQEAgLTgyLDUgKzgwLDMgQEAgdHlwZWRl
ZiB2b2lkKiBQbGF0Zm9ybURyYXdhYmxlOwogfQogCiAjZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1Db250ZXh0LmNwcAppbmRleCA5YWIzZGVhOTUzOGZjYjVmNmEzOTA1MWEwYzk3OGZiODU2
NzA5NDVhLi4wNmY2MWM0ZTdhMDg5MmU5NDhhMjcxYmI2MmNjNjExY2Y0OTIxY2RlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
TFBsYXRmb3JtQ29udGV4dC5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJHTFBsYXRmb3JtQ29udGV4dC5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCiAjaWYgVVNFKEdMWCkKICNpbmNsdWRlICJHTFhDb250ZXh0LmgiCiAj
ZWxpZiBVU0UoRUdMKQpAQCAtMjg1LDUgKzI4MywzIEBAIHZvaWQgR0xQbGF0Zm9ybUNvbnRleHQ6
OmRlc3Ryb3koKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0
Zm9ybUNvbnRleHQuaAppbmRleCAyZTQxZGIzZGEyYzQ5MGQ1Njk2YzQzMzZkODZiY2M0N2Y1MGMx
YjQ3Li4wMzE0N2M4OGJlYmM2MjY1YWNjMWExZjRiMWFkZGVlMGM5ZjJjY2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0
Zm9ybUNvbnRleHQuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHTFBsYXRmb3JtQ29udGV4
dF9oCiAjZGVmaW5lIEdMUGxhdGZvcm1Db250ZXh0X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2luY2x1ZGUgIkdMRGVmcy5oIgogI2luY2x1ZGUgIkdMUGxhdGZvcm1T
dXJmYWNlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKQEAgLTk2LDYgKzk0LDQg
QEAgcHJvdGVjdGVkOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZgotCiAjZW5k
aWYgLy8gR0xOYXRpdmVDb250ZXh0X0gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDQz
YjY1MzA4ZDBhZmZhYTBiODkxMmQ4ODk4MzgyYWRkOTA4ZTAzODYuLmRkMjdmNzY5OTJiNzUzOGY3
ZGM2ZmUyMTM0MTAwMjNhOWEyNTAxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMUGxhdGZvcm1T
dXJmYWNlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpZiBVU0Uo
R0xYKQogI2luY2x1ZGUgIkdMWFN1cmZhY2UuaCIKICNlbmRpZgpAQCAtMTMzLDUgKzEzMSwzIEBA
IEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBHTFBsYXRmb3JtU3VyZmFjZTo6
YXR0cmlidXRlcygpIGNvbnN0CiB9CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5o
CmluZGV4IGQyNzZmYTVlOGUwYjY3MmY1YWEzMGM5YmUyYWUzNWUzMjg4YjdmMTEuLmFmN2Y3YmNi
NzM4OWYzYmJkNGNkOTYwYmIzOWIyNmMwYjU2Zjg3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdMUGxhdGZvcm1TdXJmYWNlX2gKICNkZWZpbmUg
R0xQbGF0Zm9ybVN1cmZhY2VfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW5jbHVkZSAiR0xEZWZzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgpAQCAtOTUsNiArOTMsMyBAQCBwcm90ZWN0ZWQ6CiB9CiAKICNlbmRp
ZgotCi0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5jcHAKaW5kZXggODE5OWQ2
YmE2YjY3ZDUxMzA3YjNiZWM1NzY5YTQ2OThmYTU3MjU1Ny4uMjVkNmNlOWYxZTVlYmFhOTRiMGRi
NjI2NmFlM2Y1MDc4ZjEyODc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwCkBA
IC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR0xUcmFuc3Bv
cnRTdXJmYWNlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKIAogI2lmIFVTRShHTFgpCkBAIC0yNTksNSArMjU3LDMgQEAgdm9p
ZCBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ6OmNyZWF0ZVRleHR1cmUoKQogfQogCiB9Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuaAppbmRleCAyZmRkMWY4ZGZiMTU5ZjI3NmY3
MjU5OTk3ZGJlYWQ4ZWUwYTQ4ZDFhLi5iNTc5Yzg1OWFmNDMwZGNkMjJiM2I2ZTIwNmY0MmIzY2Ux
Y2YyMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuaApAQCAtMjYsOCArMjYsNiBAQAog
I2lmbmRlZiBHTFRyYW5zcG9ydFN1cmZhY2VfaAogI2RlZmluZSBHTFRyYW5zcG9ydFN1cmZhY2Vf
aAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiR0xQbGF0
Zm9ybVN1cmZhY2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC03Nyw1ICs3
NSwzIEBAIHByb3RlY3RlZDoKIH0KIAogI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbmZpZ1NlbGVj
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
Q29uZmlnU2VsZWN0b3IuaAppbmRleCAyZmVhN2IwMDQ0NzFmNmJjZjRkYzMwN2EyM2ZmYzE3MTkx
Nzk3ZmI1Li44YTYxMDlhMmZjNGUxMDUzZjJmZWFkMWM4ZWYxOWFjZWIwNmYzODFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
ZmlnU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYQ29uZmlnU2VsZWN0b3IuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBH
TFhDb25maWdTZWxlY3Rvcl9oCiAjZGVmaW5lIEdMWENvbmZpZ1NlbGVjdG9yX2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKKyNpZiBVU0UoR0xYKQogCiAj
aW5jbHVkZSAiWDExSGVscGVyLmgiCiAjaW5jbHVkZSA8b3BlbmdsL0dMRGVmcy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWENvbnRleHQuY3BwCmluZGV4IDEwZDQ0Zjg4MmVjYWI4OTBmMTU3Njk4MDlhMDkwZDQzZjAz
ODdlN2IuLmY0MmQzYWZhMzNjNmI0ODczMTAwYjMwNzhlMDMzMjlkOGYyYmI2NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYQ29udGV4dC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJHTFhDb250ZXh0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShHTFgpCisjaWYgVVNFKEdMWCkKIAogI2luY2x1ZGUgIlgxMUhlbHBlci5oIgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuaAppbmRleCBiMDhiNTNlODNjMGNkOWQ2MDM5OTE3MjViOTkyZmRi
NDNlMWNkYTkzLi45NWU5NjkyMzlkNDAyYjMyMjc1NzA2NWZkMGEzZTk4ODExYzIxN2VmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb250ZXh0LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgR0xYQ29udGV4dF9o
CiAjZGVmaW5lIEdMWENvbnRleHRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoR0xYKQorI2lmIFVTRShHTFgpCiAKICNpbmNsdWRlICJHTFBsYXRmb3JtQ29udGV4
dC5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKaW5kZXggNGRiOWM4OTg3NWI4ZWZkN2Q4MDIy
NjlmNTA3YjYyZmYwYjk0OTYyNC4uMTZmNTZjMTcwNzBiY2ZmNTYzNzk5ZDU4MTMyZDhmNWVjY2Ix
NTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMWFN1cmZhY2UuaCIKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKKyNpZiBVU0UoR0xYKQogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCmluZGV4IGJiNzZmYzAxZmZiNDlmMTA2YTcw
NzVhYWQxM2UxODE3OGVjNGRhYTcuLjBiMTlmZTM5Njg4YzhjYzcxMDY1ODNhZGJmNWNkYjFlZmEy
NDIwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBH
TFhTdXJmYWNlX2gKICNkZWZpbmUgR0xYU3VyZmFjZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShHTFgpCisjaWYgVVNFKEdMWCkKIAogI2luY2x1ZGUgIkdMVHJh
bnNwb3J0U3VyZmFjZS5oIgogI2luY2x1ZGUgIkdMWENvbmZpZ1NlbGVjdG9yLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAKaW5kZXggNGM4ZWU2YTJiNzhkMWNkM2FmMGQ5NWY4ZWU1MDU4ZjE3MmEwZmViNC4u
NGNmNDQ2MjgyYTE0ZGMyZDAzZGNmMWNhMDA5NTg1OTEyMmRmY2VmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVT
RShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggYTBhMTcxZTA1NjVjNTM2YzVmZTljNzU5Yzlj
MjlhMjNmYTAyYzU1Ny4uMmM4NmQ3MjdjNjlmNjM3ZWRiZDA4M2ZlZTA5MzdjNjgwNmE2YTFmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJf
aAogI2RlZmluZSBUZXh0dXJlTWFwcGVyX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIAog
I2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpICYmIFVTRShPUEVOR0xfRVNfMikK
ICNkZWZpbmUgVEVYTUFQX09QRU5HTF9FU18yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5jcHAKaW5kZXggZTY4YmMwOTE0MTQ1YzY2ODQ4YjNkZTVhYjI0NDg3ZDM1ODQyZGQ4
My4uN2EwMGUyMmFlNWFjN2U1NWYxM2Q3YzFiN2JhODQ2YjBjZWQ2ZmRiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcApAQCAtMTksNyArMTksNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVT
RShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAjaW5jbHVkZSAiVGV4
dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKaW5kZXggNGJhZTQ1YjRmMTgwNjU4
MjM1YTY0Y2E5NDY1ZDAzMmVlMjQ1ZTA5NS4uNzkyN2E0OWI0Mzg1M2RjYzEzMWU3Yjc1Njc4MmE0
MDI3NGZiMzU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCkBAIC0y
MCw3ICsyMCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmVfaAogI2RlZmlu
ZSBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikK
IAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQ
U0NvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcAppbmRleCBkNzQ0NzcwMTBhMzhiM2IxMDhmZGM5Nzg5
NmQ2OWIwYzdjOTc1MzU5Li4yZDMzM2FmMzkwZTUzODJlMWFlYzhlNTM2NGJiNDJmZmUwZTE4NmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKQEAgLTIxLDcgKzIxLDcg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCIKIApAQCAtNjQsNCArNjQsNCBAQCB2
b2lkIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyOjp1cGRhdGVGUFNBbmREaXNwbGF5KFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIsCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9N
QVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oCmluZGV4IDAwNjIzNzM4MzVi
NzZlY2NmZGUxYjcwYTU5YzFjNGVjNjkxYmYwZmMuLjY0OTk4OWM3NmM0MTgzOWE5ZGNmYjBkOWQ5
NjlmNzM4NjQ1NGVlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oCkBAIC0y
Miw3ICsyMiw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyX2gKICNkZWZpbmUg
VGV4dHVyZU1hcHBlckZQU0NvdW50ZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2lu
Y2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjZW5kaWYgLy8gVGV4
dHVyZU1hcHBlckZQU0NvdW50ZXJfaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDA1Yjg4
NGJkNWQ0MjcxOGY4ZWVhNDFjZWJmNDE0ZDFkYzU0MmJhNDUuLmYwOWJiYTUxMThmNGI5YzBhM2Uz
NDU5OTM4Zjk4ZWYzYzdkZjVmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC01MCw3ICs1
MCw3IEBACiAjZGVmaW5lIEdMX1VOUEFDS19TS0lQX1JPV1MgMHgwQ0YzCiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lm
IFVTRShURVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFRleHR1
cmVNYXBwZXJHTERhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IDA4MTQwM2YwMDNhMmM0NzYy
YmY1OTFkZmNiMzU1OTlhN2Q4ODg2MGMuLmYwZmQxYjFiNGUxMmU1ZDljMDEzYTYyNDdlZTNiNTRm
NGUyYmQwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYg
VGV4dHVyZU1hcHBlckdMX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlckdMX2gKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUikKIAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUg
IkZsb2F0UXVhZC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCA3ZTdiYWJiY2Qw
YzkxZGU0YjI3MjI2MzgyNTVlNjQ1NTlhNzljYjczLi44NjU5MmM2YTdjN2I3NzQzOTUzMGUzMWU3
ZWVhOThiOWZjYWVjOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMjQsNyAr
MjQsNyBAQAogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBF
UikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5oCmluZGV4IDg3ZmYzZjRhN2FlMjA2YmVjNDBkNTY2ZDA2NjFjMTVk
NGRlOWZmZWQuLjkwNDZhYTUzNzA4YTQwYmQ0NzVhNWY4OTFiZDkyMDc4NTE2ZWQzYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1h
cHBlckxheWVyX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlckxheWVyX2gKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhU
VVJFX01BUFBFUikKIAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCmlu
ZGV4IGY0YjlhN2U5ODMwMjVjZWM5NDI4YzNiZDAwN2RlNDMxZTkwOTIzMDQuLjcyNDc1MDI5YTg0
ODQyNTJmN2Y5OGY4ZWQ2ZGJhNGFkNWQ2NjUxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtLmNwcApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgiCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVY
VFVSRV9NQVBQRVIpCiAjaW5jbHVkZSAiTGVuZ3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHTC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTdXJmYWNlQmFj
a2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5jcHAKaW5kZXggOGQzODc3NmU5YjVmNTMz
YTYwNWU3M2NhNzZlMzNjYWJmZDk4YjdjOS4uYjMzYmJiNjI5MzAwNWVmZjZhZjM3NmM0MTQxOGVk
YWM1NTA4YTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNr
aW5nU3RvcmUuY3BwCkBAIC0xOSw3ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdSQVBISUNTX1NVUkZBQ0Up
CisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmUuaCIKIAogI2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTdXJmYWNlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaAppbmRleCA3OTNjNjFk
YzM0MmZmMDI2MzUyNzg3NGM3MTIwZDM1ZWIyODBjNTc4Li4zMWQxODE5MmNkM2VmMGFiNDY4Njgx
Y2JmZTVhZGZlOTY4MzUzOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmUuaApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVy
U3VyZmFjZUJhY2tpbmdTdG9yZV9oCiAjZGVmaW5lIFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2lu
Z1N0b3JlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCisjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAKICNpbmNsdWRlICJHcmFw
aGljc1N1cmZhY2UuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclRpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlLmNwcAppbmRleCAyZWE3ZmI2ZWQ4ODY1NjRjOTU5OTllYjVjZGI4
YTU0NjE1YWQ1ZTlkLi5lNmYzZmU4MGVlNjgyMmJjMGE0NTA2ZjcwN2Y1MTk3OGU0NjU2YWEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5jcHAKQEAgLTE4LDcgKzE4LDcgQEAKICAqLwogI2luY2x1
ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
VEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIlRleHR1
cmVNYXBwZXJUaWxlLmgiCiAKICNpbmNsdWRlICJJbWFnZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUu
aAppbmRleCBlZTY4MDlmMjA0NDM0Njg1ZjA5YmU4ZTRhM2UwZmYxNGRlZTlhMDU0Li42NDhlNzFm
MDBhMDlhYWY3YmJmZTM5MjgwZWMwZWE3N2ViMTQ4NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUu
aApAQCAtMjAsNyArMjAsNyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVyVGlsZV9oCiAjZGVmaW5l
IFRleHR1cmVNYXBwZXJUaWxlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIAogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2lu
Z1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGVmNTY0MDIzZDY4ZWY4NzZmMmEz
M2I0ZWE0MjFhODBhZmQ5OTBhMzUuLmI4MWI4OWYwYzA0NzY5MzM3NDdmMmM4MTkyYmZiNTczYWFk
YjNkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUu
Y3BwCkBAIC0xOSw3ICsxOSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUu
aCIKIAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggMzgxNjFjNDc1M2MwZDcyNjViZGQzMGVlY2QwZWI3
ZTljNTc5MjAyOC4uMmY3OTJkY2Y5NDg0OGQ0YjhhYmIwYTI5ZjEwZDgzMTg0ZTMwZjU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtMjAsNyAr
MjAsNyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmVfaAogI2RlZmlu
ZSBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHQzRFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhp
Y3NDb250ZXh0M0RXaW4uY3BwCmluZGV4IDA1ZTE1MDg0OGY3MGEwMGU3ODY4NjBlYjIzZjdiYWIw
OTFmM2FmNjguLjJmMzVlZjU0MGM4NzAzZDJkMTdiOGRlNDQ1NGRiYWU1YTVmNzhiNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHQzRFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dDNEV2luLmNwcApAQCAtMTk3LDEyICsxOTcsMTAgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAjZW5kaWYKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4
dDNEOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93ZWJHTExheWVyLT5w
bGF0Zm9ybUxheWVyKCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAKaW5kZXgg
NjA3N2YyZGYzNjE4N2M0OGYyNjY4ODliMDBhNzFhODEyNTFhYzNjYy4uMGQwOThiZGYzZjIzYzg5
OWU0YWViMjdiNGYyMDU1ZmUyYjY2NmNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPENv
cmVHcmFwaGljcy9DR0NvbG9yLmg+CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICNpbmNsdWRlICJDQUNGTGF5ZXJUcmVl
SG9zdC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2VuZGlmCkBAIC04NCw3ICs4
NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6Y3JlYXRlV2lu
ZG93KEhXTkQgcGFyZW50SHduZCkKICAgICAgICAgcGFyZW50SHduZCwgMCwgaW5zdGFuY2VIYW5k
bGUoKSwgdGhpcyk7CiAgICAgQVNTRVJUKElzV2luZG93KG1faHduZCkpOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogICAgIGlmICht
X2xheWVyVHJlZUhvc3QpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0V2luZG93KG1faHdu
ZCk7CiAjZW5kaWYKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVGdWxs
c2NyZWVuV2luZG93OjpjcmVhdGVXaW5kb3coSFdORCBwYXJlbnRId25kKQogICAgIDo6U2V0Rm9j
dXMobV9od25kKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KENBKQorI2lmIFVTRShDQSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dzo6c2V0Um9vdENoaWxkTGF5ZXIoUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IHJvb3RDaGls
ZCkKIHsKICAgICBpZiAobV9yb290Q2hpbGQgPT0gcm9vdENoaWxkKQpAQCAtMTU2LDcgKzE1Niw3
IEBAIExSRVNVTFQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6d25kUHJvYyhI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV01f
REVTVFJPWToKICAgICAgICAgbV9od25kID0gMDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgICAgIGlmIChtX2xheWVyVHJlZUhv
c3QpCiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFdpbmRvdygwKTsKICNlbmRpZgpA
QCAtMTY2LDcgKzE2Niw3IEBAIExSRVNVTFQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldp
bmRvdzo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBCiAgICAgICAgICAgICBM
UFdJTkRPV1BPUyB3cCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBXSU5ET1dQT1M+KGxQYXJhbSk7CiAg
ICAgICAgICAgICBpZiAod3AtPmZsYWdzICYgU1dQX05PU0laRSkKICAgICAgICAgICAgICAgICBi
cmVhazsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBV
U0UoQ0EpCiAgICAgICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7CiAgICAgICAgICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5yZXNpemUoKTsKICAgICAgICAgICAgICAgICBQbGF0Zm9ybUNB
TGF5ZXIqIHJvb3RMYXllciA9IG1fcm9vdENoaWxkLT5yb290TGF5ZXIoKTsKQEAgLTE3OSw3ICsx
NzksNyBAQCBMUkVTVUxUIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OnduZFBy
b2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQQogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV01fUEFJTlQ6Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBVU0UoQ0EpCisjaWYgVVNFKENBKQogICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7CiAg
ICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhaW50KCk7CiAgICAgICAgICAgICA6OlZhbGlk
YXRlUmVjdChtX2h3bmQsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2Ny
ZWVuV2luZG93LmgKaW5kZXggOWYyZDYzYTgzNTI4YTM2ZGZjYTAxNzZhMTQ2YTk4MmY3NzZlNGY0
YS4uY2RkMGNhMzA0MTBiYTRhNmM5MjhkZmI5ZTlmZjZhOWM1NWU4ZDE5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1
bGxzY3JlZW5XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oCkBAIC0yOSwxMyArMjksMTMg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMu
aD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVT
RShDQSkKICNpbmNsdWRlICJDQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oIgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
VVNFKENBKQorI2lmIFVTRShDQSkKIGNsYXNzIENBQ0ZMYXllclRyZWVIb3N0OwogY2xhc3MgUGxh
dGZvcm1DQUxheWVyOwogI2VuZGlmCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICAKICAg
ICBIV05EIGh3bmQoKSBjb25zdCB7IHJldHVybiBtX2h3bmQ7IH0KIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICBQbGF0Zm9ybUNB
TGF5ZXIqIHJvb3RDaGlsZExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290Q2hpbGQuZ2V0KCk7
IH0KICAgICB2b2lkIHNldFJvb3RDaGlsZExheWVyKFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
Pik7CiAjZW5kaWYKQEAgLTY2LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBMUkVTVUxUIHduZFBy
b2MoSFdORCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0sIExQQVJBTSk7CiAKICAgICBNZWRpYVBsYXll
clByaXZhdGVGdWxsc2NyZWVuQ2xpZW50KiBtX2NsaWVudDsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgUmVmUHRyPENBQ0ZMYXll
clRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4g
bV9yb290Q2hpbGQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCBkMTJjYzBkYjIwZGM4MmMyOWE0NGI0
YTAzNTIwNzY3MTRiNzI4NjRjLi4zMTg1ZTViOWI3NzUyNDYyOWY2ODkzODY1MzFlYjhlOTJjN2Mz
NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlVGFza1RpbWVyLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllcldpbi5oIgogI2luY2x1ZGUgIlFU
Q0ZEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiUVREZWNvbXByZXNzaW9uU2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIlFUTW92aWUuaCIKQEAgLTQ4LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJUaW1lUmFuZ2Vz
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlICJXS0NB
SW1hZ2VRdWV1ZS5oIgogI2luY2x1ZGUgPEFzc2VydE1hY3Jvcy5oPgogI2luY2x1ZGUgPENvcmVH
cmFwaGljcy9DR0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0Nv
bnRleHQuaD4KQEAgLTYxLDExICs2Myw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJXaW4uaCIKLSNp
bmNsdWRlICJXS0NBSW1hZ2VRdWV1ZS5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg4LDcgKzg1LDYgQEAgcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0KiBtX3BhcmVudDsKIH07CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpMYXllckNsaWVudCA6IHB1YmxpYyBQbGF0Zm9ybUNB
TGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIExheWVyQ2xpZW50KE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQqIHBhcmVudCkgOiBtX3BhcmVudChwYXJlbnQpIHt9CkBA
IC0xMzcsNyArMTMzLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0OjpMYXllckNsaWVudDo6cGxhdGZvcm1DQUxheWVyTGF5b3UKICAgICBtX3BhcmVudC0+
bV9xdFZpZGVvTGF5ZXItPnNldEJvdW5kcyh2aWRlb0JvdW5kcyk7CiAgICAgbV9wYXJlbnQtPm1f
cXRWaWRlb0xheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbik7CiB9Ci0jZW5kaWYKIAogY2xhc3Mg
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6VmlzdWFsQ29udGV4dENs
aWVudCA6IHB1YmxpYyBRVE1vdmllVmlzdWFsQ29udGV4dENsaWVudCB7CiBwdWJsaWM6CkBAIC0x
NzUsMTAgKzE3MCw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRlCiAgICAgLCBtX3Zpc2libGUo
ZmFsc2UpCiAgICAgLCBtX25ld0ZyYW1lQXZhaWxhYmxlKGZhbHNlKQogICAgICwgbV9tb3ZpZUNs
aWVudChhZG9wdFB0cihuZXcgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4
dDo6TW92aWVDbGllbnQodGhpcykpKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAsIG1fbGF5ZXJDbGllbnQoYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50KHRoaXMpKSkKICAgICAsIG1fbW92aWVUcmFu
c2Zvcm0oQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eSkKLSNlbmRpZgogICAgICwgbV92aXN1YWxD
b250ZXh0Q2xpZW50KGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1
YWxDb250ZXh0OjpWaXN1YWxDb250ZXh0Q2xpZW50KHRoaXMpKSkKICAgICAsIG1fZGVsYXlpbmdM
b2FkKGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmcoZmFsc2UpCkBAIC0xOTUsMTEgKzE4
OCwxMCBAQCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojp+TWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0CiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllck93bmluZ0RvY3VtZW50
KCk7IAogICAgIGlmIChkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5zZXR0aW5n
cygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwotI2VuZGlmCisKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKQEAgLTIxMCwxMyArMjAyLDExIEBAIFBsYXRmb3JtTWVkaWEgTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0
CiAgICAgcC5tZWRpYS5xdE1vdmllVmlzdWFsQ29udGV4dCA9IG1fdmlzdWFsQ29udGV4dC5nZXQo
KTsKICAgICByZXR1cm4gcDsKIH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAK
IFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3RyYW5zZm9ybUxheWVyID8g
bV90cmFuc2Zvcm1MYXllci0+cGxhdGZvcm1MYXllcigpIDogMDsKIH0KLSNlbmRpZgogCiBTdHJp
bmcgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cmZjMjYxNkRhdGVT
dHJpbmdGcm9tVGltZShDRkFic29sdXRlVGltZSB0aW1lKQogewpAQCAtNDk4LDEzICs0ODgsOSBA
QCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Om5hdHVy
YWxTaXplKCkgY29uc3QKICAgICBpbnQgd2lkdGg7CiAgICAgaW50IGhlaWdodDsKICAgICBtX21v
dmllLT5nZXROYXR1cmFsU2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgQ0dTaXplIG9yaWdpbmFsU2l6ZSA9IHt3aWR0aCwgaGVpZ2h0fTsK
ICAgICBDR1NpemUgdHJhbnNmb3JtZWRTaXplID0gQ0dTaXplQXBwbHlBZmZpbmVUcmFuc2Zvcm0o
b3JpZ2luYWxTaXplLCBtX21vdmllVHJhbnNmb3JtKTsKICAgICByZXR1cm4gSW50U2l6ZShhYnMo
dHJhbnNmb3JtZWRTaXplLndpZHRoKSwgYWJzKHRyYW5zZm9ybWVkU2l6ZS5oZWlnaHQpKTsKLSNl
bHNlCi0gICAgcmV0dXJuIEludFNpemUod2lkdGgsIGhlaWdodCk7Ci0jZW5kaWYKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpoYXNWaWRlbygpIGNv
bnN0CkBAIC03NDAsNyArNzI2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVW
aXN1YWxDb250ZXh0OjpwYWludChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEkKIAogICAgIFFU
UGl4ZWxCdWZmZXIgYnVmZmVyID0gbV92aXN1YWxDb250ZXh0LT5pbWFnZUZvclRpbWUoMCk7CiAg
ICAgaWYgKGJ1ZmZlci5waXhlbEJ1ZmZlclJlZigpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgICAgICBpZiAobV9xdFZpZGVvTGF5ZXIpIHsKICAgICAgICAgICAgIC8v
IFdlIGFyZSBwcm9iYWJseSBiZWluZyBhc2tlZCB0byByZW5kZXIgdGhlIHZpZGVvIGludG8gYSBj
YW52YXMsIGJ1dCAKICAgICAgICAgICAgIC8vIHRoZXJlJ3MgYSBnb29kIGNoYW5jZSB0aGUgUVRQ
aXhlbEJ1ZmZlciBpcyBub3QgQVJHQiBhbmQgdGh1cyBjYW4ndCBiZQpAQCAtNzU1LDcgKzc0MCw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJCiAgICAgICAgICAgICAgICAgYnVmZmVyID0gbV9k
ZWNvbXByZXNzaW9uU2Vzc2lvbi0+ZGVjb21wcmVzcyhidWZmZXIpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0jZW5kaWYKKwogICAgICAgICBDR0ltYWdlUmVmIGltYWdlID0gQ3JlYXRlQ0dJ
bWFnZUZyb21QaXhlbEJ1ZmZlcihidWZmZXIpOwogICAgICAgICAKICAgICAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSBwLT5wbGF0Zm9ybUNvbnRleHQoKTsKQEAgLTgwNyw3ICs3OTIsNiBAQCBz
dGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIFFUQ0ZEaWN0aW9uYXJ5Q3JlYXRlV2l0aERhdGFDYWxsYmFj
ayhDRkFsbG9jYXRvclJlZiBhbGxvYwogCiBzdGF0aWMgQ0dJbWFnZVJlZiBDcmVhdGVDR0ltYWdl
RnJvbVBpeGVsQnVmZmVyKFFUUGl4ZWxCdWZmZXIgYnVmZmVyKQogewotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBDR0RhdGFQcm92aWRlclJlZiBwcm92aWRlciA9IDA7CiAg
ICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UgPSAwOwogICAgIENHSW1hZ2VSZWYgaW1hZ2Ug
PSAwOwpAQCAtODU2LDkgKzg0MCw2IEBAIEJhaWw6CiAgICAgICAgIENHQ29sb3JTcGFjZVJlbGVh
c2UoY29sb3JTcGFjZSk7CiAgCiAgICAgcmV0dXJuIGltYWdlOwotI2Vsc2UKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgogfQogCiAKQEAgLTg2Nyw3ICs4NDgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJpZXZlQ3VycmVudEltYWdlKCkKICAgICBp
ZiAoIW1fdmlzdWFsQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3F0VmlkZW9MYXllcikgewogCiAgICAgICAgIFFU
UGl4ZWxCdWZmZXIgYnVmZmVyID0gbV92aXN1YWxDb250ZXh0LT5pbWFnZUZvclRpbWUoMCk7CkBA
IC05MTEsNyArODkxLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0OjpyZXRyaWV2ZUN1cnJlbnRJbWFnZSgpCiAgICAgICAgICAgICBsYXllci0+c2V0TmVl
ZHNDb21taXQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotI2VuZGlmCiAgICAgICAgIG1fcGxh
eWVyLT5yZXBhaW50KCk7CiAKICAgICBtX3Zpc3VhbENvbnRleHQtPnRhc2soKTsKQEAgLTEwODEs
MTAgKzEwNjAsOCBAQCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpN
ZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUQogICAgIGlmICghbV9tb3ZpZSkK
ICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBpZiAobV9xdFZpZGVvTGF5ZXIpCiAgICAgICAgIHJldHVybiBN
ZWRpYVJlbmRlcmluZ01vdmllTGF5ZXI7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX3Zpc3VhbENv
bnRleHQgPyBNZWRpYVJlbmRlcmluZ1NvZnR3YXJlUmVuZGVyZXIgOiBNZWRpYVJlbmRlcmluZ05v
bmU7CiB9CkBAIC0xMDk0LDEwICsxMDcxLDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZVEKICAg
ICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8fCAhbV9tb3ZpZSkKICAgICAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nTm9uZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5tZWRp
YVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9w
bGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb3ZpZUxheWVyOwotI2VuZGlm
CiAKICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdTb2Z0d2FyZVJlbmRlcmVyOwogfQpAQCAtMTEw
NywxMCArMTA4Miw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29u
dGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZygpCiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIGN1cnJl
bnRNb2RlID0gY3VycmVudFJlbmRlcmluZ01vZGUoKTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUg
cHJlZmVycmVkTW9kZSA9IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKTsKIAotI2lmICFVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgQVNTRVJUKHByZWZlcnJlZE1vZGUgIT0gTWVkaWFS
ZW5kZXJpbmdNb3ZpZUxheWVyKTsKLSNlbmRpZgotCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IHBy
ZWZlcnJlZE1vZGUgJiYgY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTExMjAsMTAgKzEwOTEsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnNldFVwVmlkZW9SZW5kZXJpbmcoKQogICAgIGlmIChw
cmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcikKICAgICAgICAgY3JlYXRl
TGF5ZXJGb3JNb3ZpZSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChjdXJyZW50TW9kZSA9PSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIgfHwgcHJlZmVycmVk
TW9kZSA9PSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5tZWRp
YVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVy
KTsKLSNlbmRpZgogCiAgICAgUVRQaXhlbEJ1ZmZlcjo6VHlwZSBjb250ZXh0VHlwZSA9IHJlcXVp
cmVkRGxsc0F2YWlsYWJsZSgpICYmIHByZWZlcnJlZE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdNb3Zp
ZUxheWVyID8gUVRQaXhlbEJ1ZmZlcjo6Q29uZmlndXJlRm9yQ0FJbWFnZVF1ZXVlIDogUVRQaXhl
bEJ1ZmZlcjo6Q29uZmlndXJlRm9yQ0dJbWFnZTsKICAgICBtX3Zpc3VhbENvbnRleHQgPSBRVE1v
dmllVmlzdWFsQ29udGV4dDo6Y3JlYXRlKG1fdmlzdWFsQ29udGV4dENsaWVudC5nZXQoKSwgY29u
dGV4dFR5cGUpOwpAQCAtMTEzMiwyNiArMTEwMSwxOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnNldFVwVmlkZW9SZW5kZXJpbmcoKQogCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnRlYXJEb3duVmlkZW9SZW5k
ZXJpbmcoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9x
dFZpZGVvTGF5ZXIpCiAgICAgICAgIGRlc3Ryb3lMYXllckZvck1vdmllKCk7Ci0jZW5kaWYKIAog
ICAgIG1fdmlzdWFsQ29udGV4dCA9IDA7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6aGFzU2V0VXBWaWRlb1JlbmRlcmluZygpIGNvbnN0CiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVybiBtX3F0VmlkZW9MYXll
ciB8fCAoY3VycmVudFJlbmRlcmluZ01vZGUoKSAhPSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIg
JiYgbV92aXN1YWxDb250ZXh0KTsKLSNlbHNlCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpyZXRyaWV2
ZUFuZFJlc2V0TW92aWVUcmFuc2Zvcm0oKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICAvLyBGaXJzdCB0aGluZ3MgZmlyc3QsIHJlc2V0IHRoZSB0b3RhbCBtb3ZpZSB0
cmFuc2Zvcm0gc28gdGhhdAogICAgIC8vIHdlIGNhbiBiYWlsIG91dCBlYXJseToKICAgICBtX21v
dmllVHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eTsKQEAgLTExODAsMTIgKzEx
NDIsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojpy
ZXRyaWV2ZUFuZFJlc2V0TW92aWVUcmFuc2Zvcm0oKQogICAgIC8vIE11bHRpcGx5IHRoZSB0d28g
dHJhbnNmb3JtcyB0b2dldGhlciwgdGFraW5nIGNhcmUgdG8gCiAgICAgLy8gZG8gc28gaW4gdGhl
IGNvcnJlY3Qgb3JkZXIsIHRyYWNrICogbW92aWUgPSBmaW5hbDoKICAgICBtX21vdmllVHJhbnNm
b3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1Db25jYXQodHJhY2tUcmFuc2Zvcm0sIG1vdmllVHJhbnNm
b3JtKTsKLSNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQ6OmNyZWF0ZUxheWVyRm9yTW92aWUoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBBU1NFUlQoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpKTsK
IAogICAgIGlmICghbV9tb3ZpZSB8fCBtX3F0VmlkZW9MYXllcikKQEAgLTEyMjAsNyArMTE4MCw2
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3JlYXRl
TGF5ZXJGb3JNb3ZpZSgpCiAgICAgbV90cmFuc2Zvcm1MYXllci0+YXBwZW5kU3VibGF5ZXIobV9x
dFZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIG1fdHJhbnNmb3JtTGF5ZXItPnNldE5lZWRzTGF5b3V0
KCk7CiAgICAgLy8gVGhlIGxheWVyIHdpbGwgZ2V0IGhvb2tlZCB1cCB2aWEgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpLgotI2VuZGlmCiAKICAg
ICAvLyBGaWxsIHRoZSBuZXdseSBjcmVhdGVkIGxheWVyIHdpdGggaW1hZ2UgZGF0YSwgc28gd2Un
cmUgbm90IGxvb2tpbmcgYXQgCiAgICAgLy8gYW4gZW1wdHkgbGF5ZXIgdW50aWwgdGhlIG5leHQg
dGltZSBhIG5ldyBpbWFnZSBpcyBhdmFpbGFibGUsIHdoaWNoIGNvdWxkCkBAIC0xMjMxLDcgKzEx
OTAsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmNy
ZWF0ZUxheWVyRm9yTW92aWUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6OmRlc3Ryb3lMYXllckZvck1vdmllKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fcXRWaWRlb0xheWVyKSB7CiAgICAgICAgIG1fcXRW
aWRlb0xheWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwogICAgICAgICBtX3F0VmlkZW9MYXll
ciA9IDA7CkBAIC0xMjQyLDEwICsxMjAwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVWaXN1YWxDb250ZXh0OjpkZXN0cm95TGF5ZXJGb3JNb3ZpZSgpCiAKICAgICBpZiAobV9p
bWFnZVF1ZXVlKQogICAgICAgICBtX2ltYWdlUXVldWUgPSBudWxscHRyOwotI2VuZGlmCiB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBj
b25zdAogewogICAgIHJldHVybiBpc1JlYWR5Rm9yUmVuZGVyaW5nKCk7CkBAIC0xMjYzLDkgKzEy
MTksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnNl
dFByaXZhdGVCcm93c2luZ01vZGUoYm9vbCBwcml2YQogICAgIGlmIChtX21vdmllKQogICAgICAg
ICBtX21vdmllLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKG1fcHJpdmF0ZUJyb3dzaW5nKTsKIH0K
LSAgICAKLSNlbmRpZgotCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgKaW5kZXggMmNhZTkxNzFkYzkzNWMwYzhhN2VkM2Yy
N2MyYTFiYjg4ODE3NjcwNy4uYzkyYjQ5NmJjNDZmMTZhN2FiZmRmODg4NGIzZDBiZjYzZjQ5ZmZi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5oCkBAIC00OSwxMSArNDksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgSW50UmVjdDsKLQotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIFBsYXRmb3JtQ0FMYXllcjsKIGNsYXNz
IFdLQ0FJbWFnZVF1ZXVlOwotI2VuZGlmCiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlIHsK
IHB1YmxpYzoKQEAgLTY2LDkgKzYzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxh
dGZvcm1NZWRpYSgpIGNvbnN0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKLSNlbmRpZgog
CiAgICAgSW50U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzVmlkZW8oKSBj
b25zdDsKQEAgLTEzMSwxMCArMTI2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJp
bmdTdGF0ZUNoYW5nZWQoKTsKLSNlbmRpZgogCiAgICAgZW51bSBNZWRpYVJlbmRlcmluZ01vZGUg
eyBNZWRpYVJlbmRlcmluZ05vbmUsIE1lZGlhUmVuZGVyaW5nU29mdHdhcmVSZW5kZXJlciwgTWVk
aWFSZW5kZXJpbmdNb3ZpZUxheWVyIH07CiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIGN1cnJlbnRS
ZW5kZXJpbmdNb2RlKCkgY29uc3Q7CkBAIC0xNjIsMTEgKzE1NSw5IEBAIHByaXZhdGU6CiAgICAg
ZnJpZW5kIGNsYXNzIE1vdmllQ2xpZW50OwogICAgIE93blB0cjxNb3ZpZUNsaWVudD4gbV9tb3Zp
ZUNsaWVudDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBjbGFzcyBM
YXllckNsaWVudDsKICAgICBmcmllbmQgY2xhc3MgTGF5ZXJDbGllbnQ7CiAgICAgT3duUHRyPExh
eWVyQ2xpZW50PiBtX2xheWVyQ2xpZW50OwotI2VuZGlmCiAKICAgICBjbGFzcyBWaXN1YWxDb250
ZXh0Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBWaXN1YWxDb250ZXh0Q2xpZW50OwpAQCAtMTc4
LDEzICsxNjksMTEgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKICAg
ICBSZWZQdHI8UVRNb3ZpZT4gbV9tb3ZpZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbV9xdFZpZGVvTGF5ZXI7CiAgICAgUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4gbV90cmFuc2Zvcm1MYXllcjsKICAgICBPd25QdHI8V0tDQUlt
YWdlUXVldWU+IG1faW1hZ2VRdWV1ZTsKICAgICBPd25QdHI8UVREZWNvbXByZXNzaW9uU2Vzc2lv
bj4gbV9kZWNvbXByZXNzaW9uU2Vzc2lvbjsKICAgICBDR0FmZmluZVRyYW5zZm9ybSBtX21vdmll
VHJhbnNmb3JtOyAKLSNlbmRpZgogICAgIFJlZlB0cjxRVE1vdmllVmlzdWFsQ29udGV4dD4gbV92
aXN1YWxDb250ZXh0OwogICAgIGZsb2F0IG1fc2Vla1RvOwogICAgIFRpbWVyPE1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ+IG1fc2Vla1RpbWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5jcHAK
aW5kZXggZWY4YTFjNTczY2E1Yzk3Nzk1YTNiYjRhMjFiNjNlMDg3MTdmMWMzYy4uNjIyYTM2NDJm
ZTlkYmNkZDVkZDg4MmRhZDNlMTA2MGFjYzk0OWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3BwCkBAIC0yNiw4
ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0tDQUltYWdlUXVldWUu
aCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJm
YWNlL1dlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CkBAIC0xMDEsNSArOTksMyBAQCBDRlR5cGVSZWYgV0tDQUltYWdlUXVldWU6OmdldCgpCiB9CiAK
IH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vV0tDQUltYWdlUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9XS0NBSW1hZ2VRdWV1ZS5oCmluZGV4IDNkMjViNDhhOTZmOWQ1MDlkNTFmNTY2YTNlY2I3
NmFiMTQ0NWUxNmUuLjI1NjA3NjUwZmZkMmUzMzJmYzE0MmFiMGJkYTU0MGFmN2Y1MDAyNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VR
dWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1h
Z2VRdWV1ZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdLQ0FJbWFnZVF1ZXVlX2gKICNk
ZWZpbmUgV0tDQUltYWdlUXVldWVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotCiB0eXBlZGVmIGNvbnN0IHZvaWQgKiBDRlR5cGVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfX0NGRGljdGlvbmFyeSAqIENGRGljdGlvbmFyeVJlZjsKIApAQCAtODgsNSArODYsMyBAQCBw
cml2YXRlOgogfQogCiAjZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oCmluZGV4IGRjZWM0OWM1MzMyYTIxZjM1MGVmYTdh
NWE2MzMzZDZhNTQ3Yjg1NjAuLjIxMzQ5YTBhODVmMzdlZTUzZGFmYTIwYjhhMmI0MTViMWUzMmVj
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0N1cnJlbnRs
eURyYXdpbmdJbnRvTGF5ZXIoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRJc0N1cnJlbnRseURyYXdp
bmdJbnRvTGF5ZXIoYm9vbCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAg
c3RhdGljIHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFCYWNrZ3JvdW5kKENBTGF5ZXIgKiwgY29uc3Qg
Q29sb3ImIGN1c3RvbUJhY2tncm91bmRDb2xvciA9IENvbG9yKCkpOwogICAgIHN0YXRpYyB2b2lk
IHJlbW92ZU92ZXJoYW5nQXJlYUJhY2tncm91bmQoQ0FMYXllciAqKTsKIApAQCAtODgsNyArODgs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYWdEb2N1bWVudEluc3Rl
YWRPZlRodW1iKFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
Jik7CiAgICAgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlKFNjcm9sbGJhclBhcnQp
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIHZpcnR1YWwgdm9pZCBzZXRV
cE92ZXJoYW5nQXJlYXNMYXllckNvbnRlbnRzKEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBDb2xvciYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRVcENvbnRlbnRTaGFkb3dMYXllcihHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCA5ZWFjMTVlOGY0NDk4NWNkNjIxMzEy
MTI4MzM3ZWNkNjYyMTVhMGRhLi43N2I5NmE2MWVhZTFiZGMzMTYzZmU1NDdjODlmNzBmODU2ZTM0
ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tCkBAIC01MzAsNyArNTMwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQo
U2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0KgogICAgIHJl
dHVybiB0cnVlOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogc3RhdGljIFJl
dGFpblB0cjxDR0NvbG9yUmVmPiBsaW5lbkJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgTlNJbWFn
ZSAqaW1hZ2UgPSBbTlNDb2xvciBfbGluZW5QYXR0ZXJuSW1hZ2VdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3QmFzZS5oCmluZGV4IDg0Y2Q1ZjgxYjFkNTljMWE4NWU0YTg5ODUzMzI0
NGFlMDE2OGIxNTYuLmI0MmQxNDRhZDljOTYwNTg1YzU4N2ZhZTQ1ZWFjZWQwYWU2NjZmOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgKQEAgLTQ0LDE0ICs0NCwxMiBA
QCBjbGFzcyBTY3JvbGxiYXI7CiAvLyBJdCdzIGludGVuZGVkIGFzIGEgc3RvcGdhcCBtZWFzdXJl
IHVudGlsIHdlIGNhbiBtZXJnZSBhbGwgcGx1Zy1pbiB2aWV3cyBpbnRvIGEgc2luZ2xlIHBsdWct
aW4gdmlldy4KIGNsYXNzIFBsdWdpblZpZXdCYXNlIDogcHVibGljIFdpZGdldCB7CiBwdWJsaWM6
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNpZiBQTEFURk9STShJ
T1MpCiAgICAgdmlydHVhbCBib29sIHdpbGxQcm92aWRlUGx1Z2luTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hQbHVnaW5MYXllcigpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hQbHVnaW5MYXllcigpIHsgfQogI2VuZGlmCi0jZW5kaWYK
IAogICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0T2JqZWN0KEpTQzo6SlNHbG9iYWxP
YmplY3QqKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3JhZ2VCbG9ja2luZ1N0
YXRlQ2hhbmdlZCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAKaW5kZXggZjY5ZDMyNDRjMWE5ODE4MTI0ZGZiZDZiOThhMjBjMmEz
MmEyNTNkZS4uYTAwZjg4OGJlMWYwZmJkMjY1Y2RiNjdmNGFmZDlkZjY0MTg0YTNlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBA
IC0yNjMsNyArMjYzLDYgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1Ro
cmVhZHNJbnRvRmluYWxQaGFzZSgpCiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKCkKIHsKICAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJl
dmVyc2Ugb3JkZXIgYmVjYXVzZSBSZW5kZXJSZWdpb25zIG1pZ2h0IGJlY29tZSBSZW5kZXJMYXll
cnMgZm9yIHRoZSBmb2xsb3dpbmcgZmxvdyB0aHJlYWRzLgpAQCAtMjcyLDcgKzI3MSw2IEBAIHZv
aWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZVJlbmRlckZsb3dUaHJlYWRMYXllcnNJZk5l
ZWRlZCgpCiAgICAgICAgIGZsb3dSZW5kZXJlci0+dXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBp
bmdzSWZOZWVkZWQoKTsKICAgICB9CiB9Ci0jZW5kaWYKIAogYm9vbCBGbG93VGhyZWFkQ29udHJv
bGxlcjo6aXNDb250ZW50RWxlbWVudFJlZ2lzdGVyZWRXaXRoQW55TmFtZWRGbG93KGNvbnN0IEVs
ZW1lbnQmIGNvbnRlbnRFbGVtZW50KSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAppbmRleCBlMDA0Njk5NTU0ODhiNzVmYjlmOWYx
MTJiNWVhY2ZkZTQzMmNlZTlmLi5lYjRkYWM4MzNiOGJhOTRiZGUxZjJlOTUzOWYxOWRkM2EzYmE0
MGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xs
ZXIuaApAQCAtODUsOSArODUsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2UgbGF5ZXJzIGFyZSBw
YWludGVkIGFuZCBoaXQtdGVzdGVkIGJ5IFJlbmRlclZpZXcKICAgICB2b2lkIGNvbGxlY3RGaXhl
ZFBvc2l0aW9uZWRMYXllcnMoVmVjdG9yPFJlbmRlckxheWVyKj4mIGZpeGVkUG9zTGF5ZXJzKSBj
b25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIHVwZGF0
ZVJlbmRlckZsb3dUaHJlYWRMYXllcnNJZk5lZWRlZCgpOwotI2VuZGlmCiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgYm9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAyMmRmY2Q2
YTQwMmU4NjQ0N2RkMmIzZGVhM2Q0Y2ZjYjZmYTY0NzM1Li44OWQwYzI0NDIwZDI2ZDc5MDQ4MjVi
YzhjZDU4ZjNiODYzNGRkNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUg
IlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJS
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNs
dWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgpAQCAtNTks
MTAgKzYwLDYgQEAKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMu
aD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJM
YXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjZW5kaWYKQEAgLTI3NSwxMCArMjcyLDggQEAgdm9pZCBSZW5kZXJCb3g6
OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUm
IG5ld1N0eWwKICAgICAgICAgLy8gdGhlIGNhbnZhcy4gSXNzdWUgZnVsbCByZXBhaW50LCB3aGVu
IG91ciBzdHlsZSBjaGFuZ2VzIHN1YnN0YW50aWFsbHkuCiAgICAgICAgIGlmIChkaWZmID49IFN0
eWxlRGlmZmVyZW5jZVJlcGFpbnQgJiYgKGlzUm9vdCgpIHx8IGlzQm9keSgpKSkgewogICAgICAg
ICAgICAgdmlldygpLnJlcGFpbnRSb290Q29udGVudHMoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgICAgICAgICBpZiAob2xkU3R5bGUtPmhhc0VudGlyZWx5Rml4ZWRC
YWNrZ3JvdW5kKCkgIT0gbmV3U3R5bGUuaGFzRW50aXJlbHlGaXhlZEJhY2tncm91bmQoKSkKICAg
ICAgICAgICAgICAgICB2aWV3KCkuY29tcG9zaXRvcigpLnJvb3RGaXhlZEJhY2tncm91bmRzQ2hh
bmdlZCgpOwotI2VuZGlmCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFdoZW4gYSBs
YXlvdXQgaGludCBoYXBwZW5zIGFuZCBhbiBvYmplY3QncyBwb3NpdGlvbiBzdHlsZSBjaGFuZ2Vz
LCB3ZSBoYXZlIHRvIGRvIGEgbGF5b3V0CkBAIC0xMzQ2LDEwICsxMzQxLDggQEAgc3RhdGljIGJv
b2wgaXNDYW5kaWRhdGVGb3JPcGFxdWVuZXNzVGVzdChjb25zdCBSZW5kZXJCb3gmIGNoaWxkQm94
KQogICAgIGlmICghY2hpbGRCb3gud2lkdGgoKSB8fCAhY2hpbGRCb3guaGVpZ2h0KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoUmVuZGVyTGF5ZXIqIGNoaWxkTGF5ZXIgPSBjaGls
ZEJveC5sYXllcigpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBpZiAoY2hpbGRMYXllci0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0jZW5kaWYKICAgICAgICAgLy8gRklYTUU6IERlYWwgd2l0aCB6LWluZGV4LgogICAgICAg
ICBpZiAoIWNoaWxkU3R5bGUuaGFzQXV0b1pJbmRleCgpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMTU0MCw3ICsxNTMzLDYgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVy
KGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBDb2xvciYgYywgY29uc3QKICAgICBw
YWludEZpbGxMYXllckV4dGVuZGVkKHBhaW50SW5mbywgYywgZmlsbExheWVyLCByZWN0LCBibGVl
ZEF2b2lkYW5jZSwgMCwgTGF5b3V0U2l6ZSgpLCBvcCwgYmFja2dyb3VuZE9iamVjdCk7CiB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBzdGF0aWMgYm9vbCBsYXllcnNVc2VJ
bWFnZShXcmFwcGVkSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IEZpbGxMYXllciogbGF5ZXJzKQogewog
ICAgIGZvciAoY29uc3QgRmlsbExheWVyKiBjdXJMYXllciA9IGxheWVyczsgY3VyTGF5ZXI7IGN1
ckxheWVyID0gY3VyTGF5ZXItPm5leHQoKSkgewpAQCAtMTU1MCw3ICsxNTQyLDYgQEAgc3RhdGlj
IGJvb2wgbGF5ZXJzVXNlSW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBGaWxsTGF5
ZXIqIGxheWVycykKIAogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCiB2b2lkIFJlbmRl
ckJveDo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgSW50UmVjdCop
CiB7CkBAIC0xNTY3LDggKzE1NTgsNiBAQCB2b2lkIFJlbmRlckJveDo6aW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgSW50UmVjdCopCiAgICAgaWYgKCFkaWRGdWxsUmVw
YWludCkKICAgICAgICAgcmVwYWludExheWVyUmVjdHNGb3JJbWFnZShpbWFnZSwgc3R5bGUoKS5t
YXNrTGF5ZXJzKCksIGZhbHNlKTsKIAotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmICghaXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3Niw3
ICsxNTY1LDYgQEAgdm9pZCBSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIg
aW1hZ2UsIGNvbnN0IEludFJlY3QqKQogICAgICAgICBsYXllcigpLT5jb250ZW50Q2hhbmdlZChN
YXNrSW1hZ2VDaGFuZ2VkKTsKICAgICBpZiAobGF5ZXJzVXNlSW1hZ2UoaW1hZ2UsIHN0eWxlKCku
YmFja2dyb3VuZExheWVycygpKSkKICAgICAgICAgbGF5ZXIoKS0+Y29udGVudENoYW5nZWQoQmFj
a2dyb3VuZEltYWdlQ2hhbmdlZCk7Ci0jZW5kaWYKIH0KIAogYm9vbCBSZW5kZXJCb3g6OnJlcGFp
bnRMYXllclJlY3RzRm9ySW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBGaWxsTGF5
ZXIqIGxheWVycywgYm9vbCBkcmF3aW5nQmFja2dyb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDc2N2ZhOTE5YmI0MTYw
ZGZhNDUzMDQ0MjIyY2FiMTAxY2Y3YjBiOWEuLmEzODg3MmVlYzk0NjdiYmEyZWNiMzA1ZTJlMWQw
M2IyMWNkMmE4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlJlbmRlckJsb2Nr
LmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNv
bXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIgogI2luY2x1
ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgpA
QCAtNDYsMTEgKzQ4LDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybVN0YXRlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwpAQCAtODksNyArODYsNiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzZXRT
ZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSBzdGF0ZSkKICAgICAgICAgY29udGFpbmluZ0Js
b2NrLT5zZXRTZWxlY3Rpb25TdGF0ZShzdGF0ZSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb250ZW50Q2hhbmdlZChD
b250ZW50Q2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogewogICAgIGlmICghaGFzTGF5ZXIoKSkKQEAg
LTE1MSw3ICsxNDcsNiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzdXNwZW5kQW5pbWF0
aW9ucyhkb3VibGUgdGltZSkKICAgICBBU1NFUlQoaXNDb21wb3NpdGVkKCkpOwogICAgIGxheWVy
KCktPmJhY2tpbmcoKS0+c3VzcGVuZEFuaW1hdGlvbnModGltZSk7CiB9Ci0jZW5kaWYKIAogYm9v
bCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBJbWFnZSogaW1hZ2UsIGNvbnN0IHZvaWQqIGxheWVyLCBjb25zdCBM
YXlvdXRTaXplJiBzaXplKQogewpAQCAtMTAyOCw3ICsxMDIzLDYgQEAgSW50UG9pbnQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OkJhY2tncm91bmRJbWFnZUdlb21ldHJ5OjpyZWxhdGl2ZVBoYXNlKCkg
Y29uc3QKIAogYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zml4ZWRCYWNrZ3JvdW5kUGFpbnRz
SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKCFpc1Jvb3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0x
MDQwLDkgKzEwMzQsNiBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpmaXhlZEJhY2tncm91
bmRQYWludHNJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gcm9vdExheWVyLT5iYWNraW5nKCktPmJhY2tncm91bmRMYXllclBhaW50
c0ZpeGVkUm9vdEJhY2tncm91bmQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlm
CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IGdldFNwYWNlKGludCBhcmVhU2l6ZSwgaW50IHRpbGVT
aXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCA2ZWQyMjY5OTEzNjYwZjZmZTgxOTFlYjNmMzY3YzgwMTZjMmQ3YjA3Li41NzJiMzU3
MWJjOTdkNTQ0MjVjZGFkMjQxMzNlNzE0OTYzMThkOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMTgyLDcgKzE4Miw2IEBAIHB1
YmxpYzoKICAgICBib29sIGNhbkhhdmVCb3hJbmZvSW5SZWdpb24oKSBjb25zdCB7IHJldHVybiAh
aXNGbG9hdGluZygpICYmICFpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lKCkgJiYgIWhhc0NvbHVt
bnMoKSAmJiAhaXNUYWJsZUNlbGwoKSAmJiBpc1JlbmRlckJsb2NrKCkgJiYgIWlzUmVuZGVyU1ZH
QmxvY2soKTsgfQogCiAgICAgdm9pZCBnZXRHZW9tZXRyeUZvckJhY2tncm91bmRJbWFnZShjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciwgSW50UmVjdCYgZGVzdFJl
Y3QsIEludFBvaW50JiBwaGFzZSwgSW50U2l6ZSYgdGlsZVNpemUpIGNvbnN0OwotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIGNvbnRlbnRDaGFuZ2VkKENvbnRlbnRD
aGFuZ2VUeXBlKTsKICAgICBib29sIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsK
IApAQCAtMTk1LDcgKzE5NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFuaW1hdGlvbkZpbmlzaGVk
KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJs
ZSB0aW1lID0gMCk7Ci0jZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIFJlbmRlckJveE1vZGVsT2Jq
ZWN0KEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPiwgdW5zaWduZWQgYmFzZVR5cGVGbGFn
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMTA4
NzkxZGIzNjY5YjhhNmY0NzM3YTY0YjY1NjFhYmVmY2Y5YzQxZS4uMzE4YzY2MDUwZTcwOTJmODRi
MjY0M2RiN2M0ZjQ0OWUzMDA4MzgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlJlbmRlckltYWdlUmVz
b3VyY2VTdHlsZUltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxpbmVCcmVhay5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAj
aW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCkBAIC01NiwxMCArNTcsNiBAQAogI2luY2x1ZGUgIlN0
eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5o
IgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBSZW5kZXJFbGVtZW50Ojpz
X2FmZmVjdHNQYXJlbnRCbG9jayA9IGZhbHNlOwpAQCAtMjM3LDcgKzIzNCw2IEBAIFJlbmRlclN0
eWxlKiBSZW5kZXJFbGVtZW50OjpjYWNoZWRGaXJzdExpbmVTdHlsZSgpIGNvbnN0CiAKIFN0eWxl
RGlmZmVyZW5jZSBSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIHVuc2lnbmVkIGNvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSBjb25zdAog
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBJZiB0cmFuc2Zvcm0g
Y2hhbmdlZCwgYW5kIHdlIGFyZSBub3QgY29tcG9zaXRlZCwgbmVlZCB0byBkbyBhIGxheW91dC4K
ICAgICBpZiAoY29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMgJiBDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydHlUcmFuc2Zvcm0pIHsKICAgICAgICAgLy8gVGV4dCBub2RlcyBzaGFyZSBzdHlsZSB3aXRo
IHRoZWlyIHBhcmVudHMgYnV0IHRyYW5zZm9ybXMgZG9uJ3QgYXBwbHkgdG8gdGhlbSwKQEAgLTI4
Miw5ICsyNzgsNiBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyRWxlbWVudDo6YWRqdXN0U3R5bGVE
aWZmZXJlbmNlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCB1bnNpZwogICAgICAgICBpZiAoaGFzTGF5
ZXIoKSAhPSB0b1JlbmRlckxheWVyTW9kZWxPYmplY3QodGhpcyktPnJlcXVpcmVzTGF5ZXIoKSkK
ICAgICAgICAgICAgIGRpZmYgPSBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CiAgICAgfQotI2Vsc2UK
LSAgICBVTlVTRURfUEFSQU0oY29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpOwotI2VuZGlmCiAK
ICAgICAvLyBJZiB3ZSBoYXZlIG5vIGxheWVyKCksIGp1c3QgdHJlYXQgYSBSZXBhaW50TGF5ZXIg
aGludCBhcyBhIG5vcm1hbCBSZXBhaW50LgogICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5j
ZVJlcGFpbnRMYXllciAmJiAhaGFzTGF5ZXIoKSkKQEAgLTM4NSwxMyArMzc4LDExIEBAIHZvaWQg
UmVuZGVyRWxlbWVudDo6c2V0U3R5bGUoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAKICAg
ICBpZiAoJm1fc3R5bGUuZ2V0KCkgPT0gJnN0eWxlLmdldCgpKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBDYW4gd2UgY2hhbmdlIHRoaW5ncyBzbyB3ZSBuZXZlciBoaXQgdGhpcyBjb2RlIHBhdGg/Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAvLyBXZSBuZWVkIHRvIHJ1
biB0aHJvdWdoIGFkanVzdFN0eWxlRGlmZmVyZW5jZSgpIGZvciBpZnJhbWVzLCBwbHVnaW5zLCBh
bmQgY2FudmFzIHNvCiAgICAgICAgIC8vIHN0eWxlIHNoYXJpbmcgaXMgZGlzYWJsZWQgZm9yIHRo
ZW0uIFRoYXQgc2hvdWxkIGVuc3VyZSB0aGF0IHdlIG5ldmVyIGhpdCB0aGlzIGNvZGUgcGF0aC4K
ICAgICAgICAgQVNTRVJUKCFpc1JlbmRlcklGcmFtZSgpKTsKICAgICAgICAgQVNTRVJUKCFpc0Vt
YmVkZGVkT2JqZWN0KCkpOwogICAgICAgICBBU1NFUlQoIWlzQ2FudmFzKCkpOwotI2VuZGlmCiAg
ICAgICAgIHN0eWxlLmRyb3BSZWYoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg4OCw4
ICs4NzksNiBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZl
cmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUmIG5ldwogCiAgICAgYm9vbCBuZXdTdHlsZVNs
b3dTY3JvbGwgPSByZXBhaW50Rml4ZWRCYWNrZ3JvdW5kc09uU2Nyb2xsICYmIG5ld1N0eWxlLmhh
c0ZpeGVkQmFja2dyb3VuZEltYWdlKCk7CiAgICAgYm9vbCBvbGRTdHlsZVNsb3dTY3JvbGwgPSBv
bGRTdHlsZSAmJiByZXBhaW50Rml4ZWRCYWNrZ3JvdW5kc09uU2Nyb2xsICYmIG1fc3R5bGUtPmhh
c0ZpeGVkQmFja2dyb3VuZEltYWdlKCk7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgYm9vbCBkcmF3c1Jvb3RCYWNrZ3JvdW5kID0gaXNSb290KCkgfHwgKGlzQm9keSgp
ICYmICFyZW5kZXJlckhhc0JhY2tncm91bmQoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+
cmVuZGVyZXIoKSkpOwogICAgIGlmIChkcmF3c1Jvb3RCYWNrZ3JvdW5kICYmIHJlcGFpbnRGaXhl
ZEJhY2tncm91bmRzT25TY3JvbGwpIHsKICAgICAgICAgaWYgKHZpZXcoKS5jb21wb3NpdG9yKCku
c3VwcG9ydHNGaXhlZFJvb3RCYWNrZ3JvdW5kQ29tcG9zaXRpbmcoKSkgewpAQCAtOTAwLDcgKzg4
OSw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgICAgICAgICAgb2xkU3R5bGVT
bG93U2Nyb2xsID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKKwogICAgIGlmIChv
bGRTdHlsZVNsb3dTY3JvbGwgIT0gbmV3U3R5bGVTbG93U2Nyb2xsKSB7CiAgICAgICAgIGlmIChv
bGRTdHlsZVNsb3dTY3JvbGwpCiAgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVtb3Zl
U2xvd1JlcGFpbnRPYmplY3QodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCBjZjkwMzkwMTA2OTRiYzFhZTRkNDI1MTk3
MWI2NGZiNDBhMDZmYTg2Li4wNGVkM2QyYTYzNTJiYTg2ZTNiMDhiZjkwYTE4ZjNkMDZkMDg1ZDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKQEAgLTEyMyw3ICsxMjMsNiBAQCBSZW5kZXJQdHI8UmVuZGVyRW1iZWRkZWRPYmplY3Q+
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpjcmVhdGVGb3JBcHBsZXQoSFRNTEFwcGxldAogICAgIHJl
dHVybiByZW5kZXJlcjsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJv
b2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAogewogICAgIGlm
IChSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSkKQEAgLTE0MSw3ICsxNDAsNiBAQCBib29s
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29u
c3QKICAgICByZXR1cm4gd2lkZ2V0KCkgJiYgd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAm
JiB0b1BsdWdpblZpZXdCYXNlKHdpZGdldCgpKS0+cGxhdGZvcm1MYXllcigpOwogI2VuZGlmCiB9
Ci0jZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCiBzdGF0aWMgU3RyaW5nIHVuYXZhaWxhYmxl
UGx1Z2luUmVwbGFjZW1lbnRUZXh0KFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggYjU1ZDIxMzcwYTVm
MjZjN2M2YjNiYmFmOWQ1ZjhlMGUwNjIyYmJlZi4uNTM4Yzc3M2FkYTlhMWE4MmYyOWYxZTEzYmJi
MGZmNzkyM2EyOTk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmgKQEAgLTU4LDkgKzU4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Jl
cGxhY2VtZW50T2JzY3VyZWQoKSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKLSNl
bmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZSBmaW5hbDsKQEAgLTc4LDkgKzc2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50U25hcHNob3RJbWFnZShQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYsIEltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZSBmaW5hbDsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXll
cigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggMDVkMmEyZTJm
NDA2OWI1YjQ2ZmUwNWFlNTQ2NWZkYTBjZTZkMzVmMC4uNmZiYjlhZDRiYmI3N2M2YzU1NGJhZDYy
MjViZmVmNWU5Y2FhMDZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcApAQCAtNjIsOSArNjIsNyBAQCBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJG
bG93VGhyZWFkKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bAog
ICAgICwgbV9wYWdlTG9naWNhbFNpemVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9sYXlvdXRQaGFz
ZShMYXlvdXRQaGFzZU1lYXN1cmVDb250ZW50KQogICAgICwgbV9uZWVkc1R3b1BoYXNlc0xheW91
dChmYWxzZSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2xheWVy
c1RvUmVnaW9uTWFwcGluZ3NEaXJ0eSh0cnVlKQotI2VuZGlmCiB7CiAgICAgc2V0Rmxvd1RocmVh
ZFN0YXRlKEluc2lkZU91dE9mRmxvd1RocmVhZCk7CiB9CkBAIC0yMjYsNyArMjI0LDYgQEAgdm9p
ZCBSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAgIGlmIChsYXN0UmVnaW9uKCkpCiAgICAg
ICAgIGxhc3RSZWdpb24oKS0+ZXhwYW5kVG9FbmNvbXBhc3NGbG93VGhyZWFkQ29udGVudHNJZk5l
ZWRlZCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIElmIHRo
ZXJlIGFyZSBjaGlsZHJlbiBsYXllcnMgaW4gdGhlIFJlbmRlckZsb3dUaHJlYWQgdGhlbiB3ZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZQogICAgIC8vIGNvbXBvc2l0ZWQgY2hpbGRyZW4gbGF5
ZXJzIHdpbGwgbGFuZCBpbiB0aGUgcmlnaHQgUmVuZGVyUmVnaW9ucy4gQWxzbywgdGhlIHBhcmVu
dCBSZW5kZXJSZWdpb25zCiAgICAgLy8gd2lsbCBnZXQgUmVuZGVyTGF5ZXJzIGFuZCBiZWNvbWUg
Y29tcG9zaXRlZCBhcyBuZWVkZWQuCkBAIC0yMzgsNyArMjM1LDYgQEAgdm9pZCBSZW5kZXJGbG93
VGhyZWFkOjpsYXlvdXQoKQogICAgICAgICBpZiAodXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBp
bmdzKCkpCiAgICAgICAgICAgICBsYXllcigpLT5jb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRpbmdM
YXllcnNOZWVkUmVidWlsZCgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKHNob3VsZERpc3Bh
dGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSkKICAgICAgICAgZGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCgpOwpAQCAtMjQ3LDcgKzI0Myw2IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVh
ZDo6bGF5b3V0KCkKICAgICAgICAgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQoKTsK
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgUmVuZGVyRmxvd1Ro
cmVhZDo6aGFzQ29tcG9zaXRpbmdSZWdpb25EZXNjZW5kYW50KCkgY29uc3QKIHsKICAgICBmb3Ig
KGF1dG8mIHJlZ2lvbiA6IG1fcmVnaW9uTGlzdCkKQEAgLTM1MCw3ICszNDUsNiBAQCBib29sIFJl
bmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9SZWdpb25NYXBwaW5ncygpCiAKICAgICBy
ZXR1cm4gbmVlZHNMYXllclVwZGF0ZTsKIH0KLSNlbmRpZgogCiBib29sIFJlbmRlckZsb3dUaHJl
YWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggZjM5NmI5YTNmZDMy
NmM2MzJlNjkxNmJmMzI4MDdmNGI4NjllNzYyNS4uNGEyZDc2ZmU0MDhmNTJlNDY5OGY2OWFkYjk3
OWQxMTAzNjBkZmUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCkBAIC00NywxMCArNDcsOCBAQCBjbGFzcyBSZW5kZXJSZWdpb247CiAKIHR5cGVkZWYg
TGlzdEhhc2hTZXQ8UmVuZGVyUmVnaW9uKj4gUmVuZGVyUmVnaW9uTGlzdDsKIHR5cGVkZWYgVmVj
dG9yPFJlbmRlckxheWVyKj4gUmVuZGVyTGF5ZXJMaXN0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHR5cGVkZWYgSGFzaE1hcDxSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCosIFJl
bmRlckxheWVyTGlzdD4gUmVnaW9uVG9MYXllckxpc3RNYXA7CiB0eXBlZGVmIEhhc2hNYXA8UmVu
ZGVyTGF5ZXIqLCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCo+IExheWVyVG9SZWdpb25NYXA7Ci0j
ZW5kaWYKIAogLy8gUmVuZGVyRmxvd1RocmVhZCBpcyB1c2VkIHRvIGNvbGxlY3QgYWxsIHRoZSBy
ZW5kZXIgb2JqZWN0cyB0aGF0IHBhcnRpY2lwYXRlIGluIGEKIC8vIGZsb3cgdGhyZWFkLiBJdCB3
aWxsIGFsc28gaGVscCBpbiBkb2luZyB0aGUgbGF5b3V0LiBIb3dldmVyLCBpdCB3aWxsIG5vdCBy
ZW5kZXIKQEAgLTE3OSw3ICsxNzcsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc1R3b1BoYXNl
c0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNUd29QaGFzZXNMYXlvdXQ7IH0KICAgICB2
b2lkIGNsZWFyTmVlZHNUd29QaGFzZXNMYXlvdXQoKSB7IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQg
PSBmYWxzZTsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFdo
ZXRoZXIgYW55IG9mIHRoZSByZWdpb25zIGhhcyBhIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnQuCiAg
ICAgYm9vbCBoYXNDb21wb3NpdGluZ1JlZ2lvbkRlc2NlbmRhbnQoKSBjb25zdDsKIApAQCAtMTk1
LDcgKzE5Miw2IEBAIHB1YmxpYzoKICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogcmVnaW9u
Rm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyJik7IC8vIEJ5IG1lYW5zIG9mIGdldFJlZ2lv
blJhbmdlRm9yQm94IG9yIHJlZ2lvbkF0QmxvY2tPZmZzZXQuCiAgICAgUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQqIGNhY2hlZFJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciYpOwog
Ci0jZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgY29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVn
aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCBwdXNoRmxvd1RocmVhZExheW91dFN0YXRlKGNvbnN0
IFJlbmRlck9iamVjdCYpOwpAQCAtMjM2LDcgKzIzMiw2IEBAIHByb3RlY3RlZDoKIAogICAgIExh
eW91dFJlY3QgY29tcHV0ZVJlZ2lvbkNsaXBwaW5nUmVjdChjb25zdCBMYXlvdXRQb2ludCYsIGNv
bnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCB1cGRhdGVBbGxMYXllclRvUmVnaW9uTWFw
cGluZ3MoKTsKIAogICAgIC8vIFRyaWdnZXJzIGEgbGF5ZXJzJyB1cGRhdGUgaWYgYSBsYXllciBo
YXMgbW92ZWQgZnJvbSBhIHJlZ2lvbiB0byBhbm90aGVyIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS4K
QEAgLTI0NCw3ICsyMzksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQqIHJlZ2lvbkZvckNvbXBvc2l0ZWRMYXllcihSZW5kZXJMYXllciopOwogICAgIGJvb2wgdXBk
YXRlTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzKCk7CiAgICAgdm9pZCB1cGRhdGVSZWdpb25Gb3JSZW5k
ZXJMYXllcihSZW5kZXJMYXllciosIExheWVyVG9SZWdpb25NYXAmLCBSZWdpb25Ub0xheWVyTGlz
dE1hcCYsIGJvb2wmIG5lZWRzTGF5ZXJVcGRhdGUpOwotI2VuZGlmCiAKICAgICB2b2lkIHNldERp
c3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoYm9vbCB2YWx1ZSkgeyBtX2Rpc3BhdGNoUmVn
aW9uTGF5b3V0VXBkYXRlRXZlbnQgPSB2YWx1ZTsgfQogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hS
ZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpIHsgcmV0dXJuIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRV
cGRhdGVFdmVudDsgfQpAQCAtMzIyLDEzICszMTYsMTEgQEAgcHJvdGVjdGVkOgogICAgICAgICBS
ZW5kZXJSZWdpb24qIG1fcmVzdWx0OwogICAgIH07CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgLy8gVG8gZWFzaWx5IGZpbmQgdGhlIHJlZ2lvbiB3aGVyZSBhIGxheWVy
IHNob3VsZCBiZSBwYWludGVkLgogICAgIE93blB0cjxMYXllclRvUmVnaW9uTWFwPiBtX2xheWVy
VG9SZWdpb25NYXA7CiAKICAgICAvLyBUbyBlYXNpbHkgZmluZCB0aGUgbGlzdCBvZiBsYXllcnMg
dGhhdCBwYWludCBpbiBhIHJlZ2lvbi4KICAgICBPd25QdHI8UmVnaW9uVG9MYXllckxpc3RNYXA+
IG1fcmVnaW9uVG9MYXllckxpc3RNYXA7Ci0jZW5kaWYKIAogICAgIC8vIE1hcCBhIGJveCB0byB0
aGUgbGlzdCBvZiByZWdpb25zIGluIHdoaWNoIHRoZSBib3ggaXMgcmVuZGVyZWQuCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJveCosIFJlbmRlclJlZ2lvblJhbmdlPiBSZW5kZXJS
ZWdpb25SYW5nZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2Ny
ZWVuLmNwcAppbmRleCBlMjY3NTZiYzVlM2FlMzNmMjkxMDE1OTkyMGM5NDgwNDc2OGQ0MWFlLi45
N2U4ZWZkMzViNDUwYjNlMjg0MzcwNTlhYzRkZWM3OWIwYmEzYmY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCkBAIC0zMCwxMCArMzAsNyBAQAog
CiAjaW5jbHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
LQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlICJSZW5kZXJMYXll
ckNvbXBvc2l0b3IuaCIKLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDg2ZTM4N2VjZWM5NWQ2ZmE0YWY2
M2Y5MGM0MTZhOWU5YTNmY2QyZjcuLjUyNjQzNzVlZmMxZTAwMzg2YjU4NDIyM2Q1YmQ0ODE0MjVk
MWZkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzUy
LDEwICszNTIsOCBAQCB2b2lkIFJlbmRlckltYWdlOjppbWFnZURpbWVuc2lvbnNDaGFuZ2VkKGJv
b2wgaW1hZ2VTaXplQ2hhbmdlZCwgY29uc3QgSW50UmVjdCogcgogICAgICAgICAKICAgICAgICAg
cmVwYWludFJlY3RhbmdsZShyZXBhaW50UmVjdCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgICAgIC8vIFRlbGwgYW55IHBvdGVudGlhbCBjb21wb3NpdGluZyBsYXll
cnMgdGhhdCB0aGUgaW1hZ2UgbmVlZHMgdXBkYXRpbmcuCiAgICAgICAgIGNvbnRlbnRDaGFuZ2Vk
KEltYWdlQ2hhbmdlZCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAgLTM2NiwxNSArMzY0LDExIEBA
IHZvaWQgUmVuZGVySW1hZ2U6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBuZXdJbWFn
ZSkKIAogICAgIGludmFsaWRhdGVCYWNrZ3JvdW5kT2JzY3VyYXRpb25TdGF0dXMoKTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobmV3SW1hZ2UgPT0gaW1hZ2VS
ZXNvdXJjZSgpLmNhY2hlZEltYWdlKCkpIHsKICAgICAgICAgLy8gdGVsbCBhbnkgcG90ZW50aWFs
IGNvbXBvc2l0aW5nIGxheWVycwogICAgICAgICAvLyB0aGF0IHRoZSBpbWFnZSBpcyBkb25lIGFu
ZCB0aGV5IGNhbiByZWZlcmVuY2UgaXQgZGlyZWN0bHkuCiAgICAgICAgIGNvbnRlbnRDaGFuZ2Vk
KEltYWdlQ2hhbmdlZCk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obmV3SW1hZ2Up
OwotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDY1ZTBkMjMxZGZmM2QwZTU4NWRjOWNm
NjVlZWY0ODhmNGM2ZDliZDMuLjBkYzMyNjVjMTBlZjk4MzIxODU1Yzc1MGQyZTA0NjgxYzU2M2Qw
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODEsNiAr
ODEsOCBAQAogI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJH
ZW9tZXRyeU1hcC5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgorI2luY2x1ZGUgIlJlbmRl
ckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgpAQCAtMTE3LDExICsxMTks
NiBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyRmlsdGVySW5mby5oIgogI2VuZGlmCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5n
LmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQogI2lmIEVO
QUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNlbmRpZgpAQCAtMTcwLDExICsxNjcs
OSBAQCBSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVu
ZGVyZXJMYXllck1vZGVsT2JqZWN0KQogICAgICwgbV9pc1BhZ2luYXRlZChmYWxzZSkKICAgICAs
IG1fM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRTdGF0dXNEaXJ0eSh0cnVlKQogICAgICwgbV9oYXMz
RFRyYW5zZm9ybWVkRGVzY2VuZGFudChmYWxzZSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgLCBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudChmYWxzZSkKICAgICAsIG1f
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbihOb0luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24pCiAg
ICAgLCBtX3ZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKE5vTm90Q29tcG9z
aXRlZFJlYXNvbikKLSNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICAsIG1fYWRqdXN0Rm9y
SU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKQogICAgICwgbV9yZWdpc3RlcmVkQXNUb3VjaEV2
ZW50TGlzdGVuZXJGb3JTY3JvbGxpbmcoZmFsc2UpCkBAIC0yNTgsOSArMjUzLDcgQEAgUmVuZGVy
TGF5ZXI6On5SZW5kZXJMYXllcigpCiAgICAgLy8gQ2hpbGQgbGF5ZXJzIHdpbGwgYmUgZGVsZXRl
ZCBieSB0aGVpciBjb3JyZXNwb25kaW5nIHJlbmRlciBvYmplY3RzLCBzbwogICAgIC8vIHdlIGRv
bid0IG5lZWQgdG8gZGVsZXRlIHRoZW0gb3Vyc2VsdmVzLgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGNsZWFyQmFja2luZyh0cnVlKTsKLSNlbmRpZgogfQogCiBTdHJp
bmcgUmVuZGVyTGF5ZXI6Om5hbWUoKSBjb25zdApAQCAtMjk1LDggKzI4OCw2IEBAIFN0cmluZyBS
ZW5kZXJMYXllcjo6bmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG5hbWUudG9TdHJpbmcoKTsKIH0K
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogUmVuZGVyTGF5ZXJDb21wb3Np
dG9yJiBSZW5kZXJMYXllcjo6Y29tcG9zaXRvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHJlbmRl
cmVyKCkudmlldygpLmNvbXBvc2l0b3IoKTsKQEAgLTMxMiwxNSArMzAzLDkgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6Y29udGVudENoYW5nZWQoQ29udGVudENoYW5nZVR5cGUgY2hhbmdlVHlwZSkKICAg
ICAgICAgbV9iYWNraW5nLT5jb250ZW50Q2hhbmdlZChjaGFuZ2VUeXBlKTsKIH0KIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogYm9vbCBSZW5kZXJMYXllcjo6Y2Fu
UmVuZGVyM0RUcmFuc2Zvcm1zKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKTsK
LSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCkBAIC0zMzAsNyArMzE1LDYgQEAgYm9vbCBSZW5kZXJMYXllcjo6cGFpbnRzV2l0aEZp
bHRlcnMoKSBjb25zdAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoZXJlIHdpbGwgYmUgY2Fz
ZXMgd2hlcmUgd2UgcGFpbnQgd2l0aCBmaWx0ZXJzIGV2ZW4gd2l0aG91dCBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZywKICAgICAvLyBhbmQgdGhpcyB3aG9sZSBmdW5jdGlvbiB3b24ndCBiZSBpbnNp
ZGUgdGhlICNpZiBiZWxvdy4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAoIXJlbmRlcmVyKCkuaGFzRmlsdGVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgCkBAIC0zMzksNyArMzIzLDYgQEAgYm9vbCBSZW5kZXJMYXllcjo6cGFpbnRzV2l0aEZp
bHRlcnMoKSBjb25zdAogCiAgICAgaWYgKCFtX2JhY2tpbmcgfHwgIW1fYmFja2luZy0+Y2FuQ29t
cG9zaXRlRmlsdGVycygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpAQCAtNDY3LDEyICs0NTAsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVM
YXkKICAgICBpZiAobV9yZWZsZWN0aW9uKQogICAgICAgICBtX3JlZmxlY3Rpb24tPmxheW91dCgp
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIENsZWFyIHRoZSBJ
c0NvbXBvc2l0aW5nVXBkYXRlUm9vdCBmbGFnIG9uY2Ugd2UndmUgZm91bmQgdGhlIGZpcnN0IGNv
bXBvc2l0aW5nIGxheWVyIGluIHRoaXMgdXBkYXRlLgogICAgIGJvb2wgaXNVcGRhdGVSb290ID0g
KGZsYWdzICYgSXNDb21wb3NpdGluZ1VwZGF0ZVJvb3QpOwogICAgIGlmIChpc0NvbXBvc2l0ZWQo
KSkKICAgICAgICAgZmxhZ3MgJj0gfklzQ29tcG9zaXRpbmdVcGRhdGVSb290OwotI2VuZGlmCiAK
ICAgICBpZiAodXNlUmVnaW9uQmFzZWRDb2x1bW5zKCkgJiYgcmVuZGVyZXIoKS5pc0luRmxvd1Jl
bmRlckZsb3dUaHJlYWQoKSkgewogICAgICAgICB1cGRhdGVQYWdpbmF0aW9uKCk7CkBAIC00ODUs
NyArNDY2LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVy
R2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBVcGRhdGVMYXkKICAgICBmb3IgKFJlbmRlckxheWVy
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpCiAgICAgICAgIGNoaWxkLT51cGRhdGVMYXllclBvc2l0aW9ucyhnZW9tZXRyeU1hcCwgZmxh
Z3MpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICgoZmxhZ3Mg
JiBVcGRhdGVDb21wb3NpdGluZ0xheWVycykgJiYgaXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAg
UmVuZGVyTGF5ZXJCYWNraW5nOjpVcGRhdGVBZnRlckxheW91dEZsYWdzIHVwZGF0ZUZsYWdzID0g
UmVuZGVyTGF5ZXJCYWNraW5nOjpDb21wb3NpdGluZ0NoaWxkcmVuT25seTsKICAgICAgICAgaWYg
KGZsYWdzICYgTmVlZHNGdWxsUmVwYWludEluQmFja2luZykKQEAgLTQ5NCw3ICs0NzQsNiBAQCB2
b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCog
Z2VvbWV0cnlNYXAsIFVwZGF0ZUxheQogICAgICAgICAgICAgdXBkYXRlRmxhZ3MgfD0gUmVuZGVy
TGF5ZXJCYWNraW5nOjpJc1VwZGF0ZVJvb3Q7CiAgICAgICAgIGJhY2tpbmcoKS0+dXBkYXRlQWZ0
ZXJMYXlvdXQodXBkYXRlRmxhZ3MpOwogICAgIH0KLSNlbmRpZgogICAgICAgICAKICAgICAvLyBX
aXRoIGFsbCBvdXIgY2hpbGRyZW4gcG9zaXRpb25lZCwgbm93IHVwZGF0ZSBvdXIgbWFycXVlZSBp
ZiB3ZSBuZWVkIHRvLgogICAgIGlmIChtX21hcnF1ZWUpIHsKQEAgLTY5NywxNCArNjc2LDEwIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzQXJlQ29udGlndW91c0luU3RhY2tp
bmdPcmRlclJlY3Vyc2l2ZShjb25zdCBICiAKICAgICBpZiAoIWlzU3RhY2tpbmdDb250ZXh0KCkp
IHsKICAgICAgICAgYm9vbCBuZXdWYWx1ZSA9IG1heEluZGV4IC0gbWluSW5kZXggPT0gY291bnQ7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBib29sIGRpZFVwZGF0
ZSA9IG5ld1ZhbHVlICE9IG1fZGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVy
OwotI2VuZGlmCiAgICAgICAgIG1fZGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09y
ZGVyID0gbmV3VmFsdWU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBpZiAoZGlkVXBkYXRlKQogICAgICAgICAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xs
aW5nKCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAgLTgxMiw4ICs3ODcsNiBAQCB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFw
KiBnZW9tZXRyeU1hcAogICAgICAgICBnZW9tZXRyeU1hcC0+cG9wTWFwcGluZ3NUb0FuY2VzdG9y
KHBhcmVudCgpKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogdm9p
ZCBSZW5kZXJMYXllcjo6cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCkKIHsK
ICAgICBpZiAoIWJhY2tpbmcoKS0+aGFzVW5wb3NpdGlvbmVkT3ZlcmZsb3dDb250cm9sc0xheWVy
cygpKQpAQCAtODI3LDggKzgwMCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBvc2l0aW9uTmV3bHlD
cmVhdGVkT3ZlcmZsb3dDb250cm9scygpCiAgICAgcG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzKHRv
SW50U2l6ZShyb3VuZGVkSW50UG9pbnQob2Zmc2V0RnJvbVJvb3QpKSk7CiB9CiAKLSNlbmRpZgot
CiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
QmxlbmRNb2RlKCkKQEAgLTg3OCw3ICs4NDksNiBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShSZW5kZXJTdHlsZTo6QXBwbHlUcmFuc2Zvcm1Pcgog
ICAgIGlmICghbV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChyZW5kZXJl
cigpLnN0eWxlKCkuaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24oKSkgewogICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwogICAgICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmltYXRpb24oKS5nZXRBbmltYXRlZFN0eWxlRm9y
UmVuZGVyZXIoJnJlbmRlcmVyKCkpOwpAQCAtODk1LDkgKzg2NSw2IEBAIFRyYW5zZm9ybWF0aW9u
TWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBseVRy
YW5zZm9ybU9yCiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKGN1cnJUcmFuc2Zvcm0sIGNh
blJlbmRlcjNEVHJhbnNmb3JtcygpKTsKICAgICAgICAgcmV0dXJuIGN1cnJUcmFuc2Zvcm07CiAg
ICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oYXBwbHlPcmlnaW4pOwotI2VuZGlmCiAKICAg
ICByZXR1cm4gKm1fdHJhbnNmb3JtOwogfQpAQCAtMTEyNSwxMCArMTA5Miw5IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJl
bmRlck9iamVjdCo+KiBvCiAgICAgICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9
IGZhbHNlOwogICAgICAgICBtX2hhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudERpcnR5ID0g
ZmFsc2U7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmICht
X2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50RGlydHkpCiAgICAgICAgICAgICB1cGRh
dGVOZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKTsKLSNlbmRpZgorCiAgICAgICAgIG1faGFzT3V0
T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSA9IGZhbHNlOwogICAgIH0KIApAQCAtMTE2
NCw3ICsxMTMwLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudERlcGVuZGVu
dEZsYWdzKEhhc2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4qIG8KICAgICB9CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmV3IGNs
aXBwaW5nIGJlaGF2aW91ciByZXF1aXJlcyBsYXllciB1cGRhdGUuCiBib29sIFJlbmRlckxheWVy
OjpjaGVja0lmRGVzY2VuZGFudENsaXBwaW5nQ29udGV4dE5lZWRzVXBkYXRlKGJvb2wgaXNDbGlw
cGluZykKIHsKQEAgLTExNzksNyArMTE0NCw2IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmNoZWNrSWZE
ZXNjZW5kYW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRhdGUoYm9vbCBpc0NsaXBwaW5nKQogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZW5kaWYKIAogdm9pZCBSZW5kZXJMYXllcjo6ZGly
dHkzRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1cygpCiB7CkBAIC0xNDE5LDcgKzEzODMsNiBA
QCBzdGF0aWMgaW5saW5lIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIpCiAKIGlubGluZSBib29sIFJlbmRlckxheWVyOjpzaG91
bGRSZXBhaW50QWZ0ZXJMYXlvdXQoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBpZiAobV9yZXBhaW50U3RhdHVzID09IE5lZWRzTm9ybWFsUmVwYWludCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTE0MjcsMTMgKzEzOTAsOCBAQCBpbmxpbmUgYm9v
bCBSZW5kZXJMYXllcjo6c2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkgY29uc3QKICAgICAvLyBs
YXlvdXQsIGRvbid0IG5lZWQgdG8gYmUgcmVwYWludGVkLiBUaGV5IGp1c3QgbmVlZCB0byBiZSBy
ZWNvbXBvc2l0ZWQuCiAgICAgQVNTRVJUKG1fcmVwYWludFN0YXR1cyA9PSBOZWVkc0Z1bGxSZXBh
aW50Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KTsKICAgICByZXR1cm4gIWlzQ29tcG9zaXRl
ZCgpIHx8IGJhY2tpbmcoKS0+cGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpOwotI2Vsc2UK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotCiBzdGF0aWMgYm9vbCBjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShjb25z
dCBSZW5kZXJMYXllciogbGF5ZXIpCiB7CiAgICAgcmV0dXJuIGxheWVyLT5pc0NvbXBvc2l0ZWQo
KSAmJiAhbGF5ZXItPmJhY2tpbmcoKS0+cGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpOwpA
QCAtMTQ2NSw4ICsxNDIzLDYgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdD
b21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGkKICAgICByZXR1cm4g
MDsKIH0KIAotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKIFJlbmRlckxheWVy
KiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCBpbmNs
dWRlU2VsZikgY29uc3QKQEAgLTE0ODMsMTIgKzE0MzksNyBAQCBSZW5kZXJMYXllciogUmVuZGVy
TGF5ZXI6OmVuY2xvc2luZ0ZpbHRlckxheWVyKEluY2x1ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYp
IGNvbgogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdGaWx0ZXJSZXBhaW50TGF5
ZXIoKSBjb25zdAogewogICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnIgPSB0aGlzOyBj
dXJyOyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKChjdXJyICE9IHRoaXMg
JiYgY3Vyci0+cmVxdWlyZXNGdWxsTGF5ZXJJbWFnZUZvckZpbHRlcnMoKSkKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICAgICB8fCBjb21wb3NpdGVkV2l0aE93bkJh
Y2tpbmdTdG9yZShjdXJyKQotI2VuZGlmCi0gICAgICAgICAgICB8fCBjdXJyLT5pc1Jvb3RMYXll
cigpCi0gICAgICAgICkKKyAgICAgICAgaWYgKChjdXJyICE9IHRoaXMgJiYgY3Vyci0+cmVxdWly
ZXNGdWxsTGF5ZXJJbWFnZUZvckZpbHRlcnMoKSkgfHwgY29tcG9zaXRlZFdpdGhPd25CYWNraW5n
U3RvcmUoY3VycikgfHwgY3Vyci0+aXNSb290TGF5ZXIoKSkKICAgICAgICAgICAgIHJldHVybiBj
b25zdF9jYXN0PFJlbmRlckxheWVyKj4oY3Vycik7CiAgICAgfQogICAgIHJldHVybiAwOwpAQCAt
MTUwOSw4ICsxNDYwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5lZWRz
UmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0LAogICAgIEFTU0VSVChwYXJl
bnRMYXllcik7CiAgICAgRmxvYXRRdWFkIHJlcGFpbnRRdWFkKHJlY3RGb3JSZXBhaW50KTsKICAg
ICBMYXlvdXRSZWN0IHBhcmVudExheWVyUmVjdCA9IHJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5l
clF1YWQocmVwYWludFF1YWQsICZwYXJlbnRMYXllci0+cmVuZGVyZXIoKSkuZW5jbG9zaW5nQm91
bmRpbmdCb3goKTsKLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAg
ICBpZiAocGFyZW50TGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIGlmICghcGFyZW50
TGF5ZXItPmJhY2tpbmcoKS0+cGFpbnRzSW50b1dpbmRvdygpKSB7CiAgICAgICAgICAgICBwYXJl
bnRMYXllci0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVjdChwYXJlbnRMYXllclJlY3QpOwpA
QCAtMTUyMCw3ICsxNDcwLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5l
ZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0LAogICAgICAgICBwYXJl
bnRMYXllciA9IHJlbmRlcmVyKCkudmlldygpLmxheWVyKCk7CiAgICAgICAgIHBhcmVudExheWVy
UmVjdCA9IHJlbmRlcmVyKCkubG9jYWxUb0NvbnRhaW5lclF1YWQocmVwYWludFF1YWQsICZwYXJl
bnRMYXllci0+cmVuZGVyZXIoKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICB9Ci0jZW5k
aWYKIAogICAgIGlmIChwYXJlbnRMYXllci0+cGFpbnRzV2l0aEZpbHRlcnMoKSkgewogICAgICAg
ICBwYXJlbnRMYXllci0+c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChwYXJl
bnRMYXllclJlY3QsIGltbWVkaWF0ZSk7CkBAIC0xNTQ4LDEwICsxNDk3LDggQEAgYm9vbCBSZW5k
ZXJMYXllcjo6aGFzQW5jZXN0b3JXaXRoRmlsdGVyT3V0c2V0cygpIGNvbnN0CiAKIFJlbmRlckxh
eWVyKiBSZW5kZXJMYXllcjo6Y2xpcHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNDb21wb3NpdGVkKCkpCiAg
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PFJlbmRlckxheWVyKj4odGhpcyk7Ci0jZW5kaWYKIAog
ICAgIGNvbnN0IFJlbmRlckxheWVyKiBjdXJyZW50ID0gdGhpczsKICAgICB3aGlsZSAoY3VycmVu
dCkgewpAQCAtMTU2MCwxMSArMTUwNyw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6Y2xp
cHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogCiAgICAgICAgIGN1cnJlbnQgPSBjb21wb3Np
dGluZ0NvbnRhaW5lcihjdXJyZW50KTsKICAgICAgICAgQVNTRVJUKGN1cnJlbnQpOwotICAgICAg
ICBpZiAoY3VycmVudC0+dHJhbnNmb3JtKCkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0gICAgICAgICAgICB8fCBjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShjdXJyZW50
KQotI2VuZGlmCi0gICAgICAgICkKKyAgICAgICAgaWYgKGN1cnJlbnQtPnRyYW5zZm9ybSgpIHx8
IGNvbXBvc2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGN1cnJlbnQpKQogICAgICAgICAgICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPihjdXJyZW50KTsKICAgICB9CiAKQEAgLTE3OTgs
MTcgKzE3NDEsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6YWRkQ2hpbGQoUmVuZGVyTGF5ZXIqIGNo
aWxkLCBSZW5kZXJMYXllciogYmVmb3JlQ2hpbGQpCiAgICAgaWYgKGNoaWxkLT5yZW5kZXJlcigp
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGNoaWxkLT5oYXNPdXRPZkZsb3dQb3NpdGlvbmVk
RGVzY2VuZGFudCgpKQogICAgICAgICBzZXRBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnQoY2hpbGQtPnJlbmRlcmVyKCkuY29udGFpbmluZ0Jsb2NrKCkpOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGNvbXBvc2l0b3IoKS5sYXllcldh
c0FkZGVkKCp0aGlzLCAqY2hpbGQpOwotI2VuZGlmCiB9CiAKIFJlbmRlckxheWVyKiBSZW5kZXJM
YXllcjo6cmVtb3ZlQ2hpbGQoUmVuZGVyTGF5ZXIqIG9sZENoaWxkKQogewotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWluZ0Rl
c3Ryb3llZCgpKQogICAgICAgICBjb21wb3NpdG9yKCkubGF5ZXJXaWxsQmVSZW1vdmVkKCp0aGlz
LCAqb2xkQ2hpbGQpOwotI2VuZGlmCiAKICAgICAvLyByZW1vdmUgdGhlIGNoaWxkCiAgICAgaWYg
KG9sZENoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkKQEAgLTE4NTYsOSArMTc5NSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnJlbW92ZU9ubHlUaGlzTGF5ZXIoKQogICAgIC8vIHdhbGtzIGlnbm9yZSB0
aGlzIGxheWVyIHdoaWxlIHdlJ3JlIHJlbW92aW5nIGl0LgogICAgIHJlbmRlcmVyKCkuc2V0SGFz
TGF5ZXIoZmFsc2UpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGNv
bXBvc2l0b3IoKS5sYXllcldpbGxCZVJlbW92ZWQoKm1fcGFyZW50LCAqdGhpcyk7Ci0jZW5kaWYK
IAogICAgIC8vIERpcnR5IHRoZSBjbGlwIHJlY3RzLgogICAgIGNsZWFyQ2xpcFJlY3RzSW5jbHVk
aW5nRGVzY2VuZGFudHMoKTsKQEAgLTIxMjUsOCArMjA2Miw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnVucmVnaXN0ZXJBc1RvdWNoRXZlbnRMaXN0ZW5lckZvclNjcm9sbGluZygpCiB9CiAjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TKQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBi
b29sIFJlbmRlckxheWVyOjp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGlzQ29tcG9zaXRlZCgpICYmIGJhY2tpbmcoKS0+c2Nyb2xsaW5nTGF5ZXIoKTsKQEAg
LTIxNzcsOCArMjExMiw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZU5lZWRzQ29tcG9zaXRl
ZFNjcm9sbGluZygpCiAgICAgfQogfQogCi0jZW5kaWYKLQogc3RhdGljIGlubGluZSBpbnQgYWRq
dXN0ZWRTY3JvbGxEZWx0YShpbnQgYmVnaW5uaW5nRGVsdGEpIHsKICAgICAvLyBUaGlzIGltcGxl
bWVudGlvbiBtYXRjaGVzIEZpcmVmb3gncy4KICAgICAvLyBodHRwOi8vbXhyLm1vemlsbGEub3Jn
L2ZpcmVmb3gvc291cmNlL3Rvb2xraXQvY29udGVudC93aWRnZXRzL2Jyb3dzZXIueG1sIzg1Ni4K
QEAgLTIzNTIsMTEgKzIyODUsOCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwg
aW50IHkpCiAgICAgZnJhbWUuZXZlbnRIYW5kbGVyKCkuZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZl
bnRTb29uSW5RdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogCiAgICAgYm9vbCByZXF1
aXJlc1JlcGFpbnQgPSB0cnVlOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChjb21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01vZGUoKSAmJiB1c2VzQ29tcG9zaXRl
ZFNjcm9sbGluZygpKQogICAgICAgICByZXF1aXJlc1JlcGFpbnQgPSBmYWxzZTsKLSNlbmRpZgog
CiAgICAgLy8gSnVzdCBzY2hlZHVsZSBhIGZ1bGwgcmVwYWludCBvZiBvdXIgb2JqZWN0LgogI2lm
IFBMQVRGT1JNKElPUykKQEAgLTI0ODYsNyArMjQxNiw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgU2Nyb2xsQWxp
Z25tCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3Jv
bGwoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoY29tcG9z
aXRvcigpLmluQ29tcG9zaXRpbmdNb2RlKCkpIHsKICAgICAgICAgLy8gT3VyIHN0YWNraW5nIGNv
bnRhaW5lciBpcyBndWFyYW50ZWVkIHRvIGNvbnRhaW4gYWxsIG9mIG91ciBkZXNjZW5kYW50cyB0
aGF0IG1heSBuZWVkCiAgICAgICAgIC8vIHJlcG9zaXRpb25pbmcsIHNvIHVwZGF0ZSBjb21wb3Np
dGluZyBsYXllcnMgZnJvbSB0aGVyZS4KQEAgLTI0OTcsNyArMjQyNiw2IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGwoKQogICAgICAgICAgICAg
ICAgIGNvbXBvc2l0b3IoKS51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0
ZU9uU2Nyb2xsLCBjb21wb3NpdGluZ0FuY2VzdG9yKTsKICAgICAgICAgfQogICAgIH0KLSNlbmRp
ZgogfQogCiBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpnZXRSZWN0VG9FeHBvc2UoY29uc3QgTGF5
b3V0UmVjdCAmdmlzaWJsZVJlY3QsIGNvbnN0IExheW91dFJlY3QgJnZpc2libGVSZWN0UmVsYXRp
dmVUb0RvY3VtZW50LCBjb25zdCBMYXlvdXRSZWN0ICZleHBvc2VSZWN0LCBjb25zdCBTY3JvbGxB
bGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkpCkBAIC0yOTI2
LDcgKzI4NTQsNiBAQCB2b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChT
Y3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcgogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoc2Nyb2xs
YmFyID09IG1fdkJhci5nZXQoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NMYXllciogbGF5ZXIg
PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgICAgIGxheWVyLT5zZXRO
ZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7CkBAIC0yOTM4LDcgKzI4NjUsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2Vu
ZGlmCisKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwogICAgIFJlbmRlckJveCogYm94
ID0gcmVuZGVyQm94KCk7CiAgICAgQVNTRVJUKGJveCk7CkBAIC0yOTYzLDEyICsyODkwLDExIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9yU2Ny
b2xsQ29ybmVyKCkpIHsKICAgICAgICAgbGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgorCiAgICAgaWYgKG1fc2Nyb2xsQ29y
bmVyKQogICAgICAgICBtX3Njcm9sbENvcm5lci0+cmVwYWludFJlY3RhbmdsZShyZWN0KTsKICAg
ICBpZiAobV9yZXNpemVyKQpAQCAtMzE1MiwxMCArMzA3OCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OnBvc2l0aW9uT3ZlcmZsb3dDb250cm9scyhjb25zdCBJbnRTaXplJiBvZmZzZXRGcm9tUm9vdCkK
ICAgICBpZiAobV9yZXNpemVyKQogICAgICAgICBtX3Jlc2l6ZXItPnNldEZyYW1lUmVjdChyZXNp
emVyQ29ybmVyUmVjdCh0aGlzLCBib3JkZXJCb3gpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgICAgCiAgICAgaWYgKGlzQ29tcG9zaXRlZCgpKQogICAgICAgICBiYWNraW5n
KCktPnBvc2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycygpOwotI2VuZGlmCiB9CiAKIGludCBS
ZW5kZXJMYXllcjo6c2Nyb2xsV2lkdGgoKSBjb25zdApAQCAtMzM1MCwxMSArMzI3NCw5IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpCiAgICAgaWYgKG9y
aWdpbmFsU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKQogICAgICAgICBzY3JvbGxUb09m
ZnNldFdpdGhvdXRBbmltYXRpb24oSW50UG9pbnQoc2Nyb2xsT2Zmc2V0KCkpKTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBDb21wb3NpdGVkIHNjcm9sbGluZyBt
YXkgbmVlZCB0byBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGlmIHRoZSBhbW91bnQgb2Ygb3ZlcmZs
b3cgY2hhbmdlZC4KICAgICBpZiAoY29tcG9zaXRvcigpLnVwZGF0ZUxheWVyQ29tcG9zaXRpbmdT
dGF0ZSgqdGhpcykpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5zZXRDb21wb3NpdGluZ0xheWVyc05l
ZWRSZWJ1aWxkKCk7Ci0jZW5kaWYKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250
cm9sc0ludGVyc2VjdFJlY3QoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdApAQCAtMzM5
NiwyMCArMzMxOCwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHMo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRQb2ludAogICAgIC8vIHNlY29uZCBw
YXNzIGRvZXNuJ3QgbmVlZCB0byByZS1lbnRlciB0aGUgUmVuZGVyVHJlZSB0byBnZXQgaXQgcmln
aHQuCiAgICAgaWYgKGhhc092ZXJsYXlTY3JvbGxiYXJzKCkgJiYgIXBhaW50aW5nT3ZlcmxheUNv
bnRyb2xzKSB7CiAgICAgICAgIG1fY2FjaGVkT3ZlcmxheVNjcm9sbGJhck9mZnNldCA9IHBhaW50
T2Zmc2V0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgICAgICAvLyBJ
dCdzIG5vdCBuZWNlc3NhcnkgdG8gZG8gdGhlIHNlY29uZCBwYXNzIGlmIHRoZSBzY3JvbGxiYXJz
IHBhaW50IGludG8gbGF5ZXJzLgogICAgICAgICBpZiAoKG1faEJhciAmJiBsYXllckZvckhvcml6
b250YWxTY3JvbGxiYXIoKSkgfHwgKG1fdkJhciAmJiBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
KCkpKQogICAgICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgICAgIEludFJlY3QgbG9jYWxE
YW1nZVJlY3QgPSBkYW1hZ2VSZWN0OwogICAgICAgICBsb2NhbERhbWdlUmVjdC5tb3ZlQnkoLXBh
aW50T2Zmc2V0KTsKICAgICAgICAgaWYgKCFvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0UmVjdChs
b2NhbERhbWdlUmVjdCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgUmVuZGVyTGF5
ZXIqIHBhaW50aW5nUm9vdCA9IDA7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
ICAgICAgICBwYWludGluZ1Jvb3QgPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKCk7Ci0jZW5k
aWYKKyAgICAgICAgUmVuZGVyTGF5ZXIqIHBhaW50aW5nUm9vdCA9IGVuY2xvc2luZ0NvbXBvc2l0
aW5nTGF5ZXIoKTsKICAgICAgICAgaWYgKCFwYWludGluZ1Jvb3QpCiAgICAgICAgICAgICBwYWlu
dGluZ1Jvb3QgPSByZW5kZXJlcigpLnZpZXcoKS5sYXllcigpOwogCkBAIC0zNDMxLDIzICszMzQ5
LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmZsb3dDb250cm9scyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50CiAgICAgcG9zaXRpb25PdmVyZmxvd0NvbnRy
b2xzKHRvSW50U2l6ZShhZGp1c3RlZFBhaW50T2Zmc2V0KSk7CiAKICAgICAvLyBOb3cgdGhhdCB3
ZSdyZSBzdXJlIHRoZSBzY3JvbGxiYXJzIGFyZSBpbiB0aGUgcmlnaHQgcGxhY2UsIHBhaW50IHRo
ZW0uCi0gICAgaWYgKG1faEJhcgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICAgICAgJiYgIWxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpCi0jZW5kaWYKLSAgICAgICAg
ICAgICAgKQorICAgIGlmIChtX2hCYXIgJiYgIWxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigp
KQogICAgICAgICBtX2hCYXItPnBhaW50KGNvbnRleHQsIGRhbWFnZVJlY3QpOwotICAgIGlmICht
X3ZCYXIKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICYmICFsYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkKLSNlbmRpZgotICAgICAgICAgICAgICApCisgICAgaWYg
KG1fdkJhciAmJiAhbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKQogICAgICAgICBtX3ZCYXIt
PnBhaW50KGNvbnRleHQsIGRhbWFnZVJlY3QpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChsYXllckZvclNjcm9sbENvcm5lcigpKQogICAgICAgICByZXR1cm47
Ci0jZW5kaWYKIAogICAgIC8vIFdlIGZpbGwgb3VyIHNjcm9sbCBjb3JuZXIgd2l0aCB3aGl0ZSBp
ZiB3ZSBoYXZlIGEgc2Nyb2xsYmFyIHRoYXQgZG9lc24ndCBydW4gYWxsIHRoZSB3YXkgdXAgdG8g
dGhlCiAgICAgLy8gZWRnZSBvZiB0aGUgYm94LgpAQCAtMzcwMSwxNCArMzYwOSwxMCBAQCBzdGF0
aWMgdm9pZCBwZXJmb3JtT3ZlcmxhcFRlc3RzKE92ZXJsYXBUZXN0UmVxdWVzdE1hcCYgb3Zlcmxh
cFRlc3RSZXF1ZXN0cywgY29ucwogICAgICAgICBvdmVybGFwVGVzdFJlcXVlc3RzLnJlbW92ZShv
dmVybGFwcGVkUmVxdWVzdENsaWVudHNbaV0pOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkRG9Tb2Z0d2FyZVBhaW50KGNv
bnN0IFJlbmRlckxheWVyKiBsYXllciwgYm9vbCBwYWludGluZ1JlZmxlY3Rpb24pCiB7CiAgICAg
cmV0dXJuIHBhaW50aW5nUmVmbGVjdGlvbiAmJiAhbGF5ZXItPmhhczNEVHJhbnNmb3JtKCk7CiB9
Ci0KLSNlbmRpZgogICAgIAogc3RhdGljIGlubGluZSBib29sIHNob3VsZFN1cHByZXNzUGFpbnRp
bmdMYXllcihSZW5kZXJMYXllciogbGF5ZXIpCiB7CkBAIC0zNzI2LDE4ICszNjMwLDEzIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzaG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIoUmVuZGVyTGF5ZXIq
IGxheWVyKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLQogc3RhdGljIGlubGluZSBib29sIHBhaW50Rm9yRml4ZWRSb290QmFja2dyb3Vu
ZChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZ3Mg
cGFpbnRGbGFncykKIHsKICAgICByZXR1cm4gbGF5ZXItPnJlbmRlcmVyKCkuaXNSb290KCkgJiYg
KHBhaW50RmxhZ3MgJiBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nUm9vdEJhY2tncm91
bmRPbmx5KTsKIH0KIAotI2VuZGlmCi0KIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgcGFpbnRpbmdJ
bmZvLCBQYWludExheWVyRmxhZ3MgcGFpbnRGbGFncykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIC8vIFRoZSB1
cGRhdGluZ0NvbnRyb2xUaW50cygpIHBhaW50aW5nIHBhc3MgZ29lcyB0aHJvdWdoIGNvbXBvc2l0
aW5nIGxheWVycywKICAgICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgZG9u
J3QgY2FjaGUgY2xpcCByZWN0cyBjb21wdXRlZCB3aXRoIHRoZSB3cm9uZyByb290IGluIHRoaXMg
Y2FzZS4KQEAgLTM3NTYsNyArMzY1NSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYKICAgICAg
ICAgQVNTRVJUKHJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24p
OwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICAvLyBOb24gc2VsZi1wYWlu
dGluZyBsZWFmIGxheWVycyBkb24ndCBuZWVkIHRvIGJlIHBhaW50ZWQgYXMgdGhlaXIgcmVuZGVy
ZXIoKSBzaG91bGQgcHJvcGVybHkgcGFpbnQgaXRzZWxmLgogICAgIGlmICghaXNTZWxmUGFpbnRp
bmdMYXllcigpICYmICFoYXNTZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKSkKQEAgLTU5MDks
OCArNTgwNyw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyQ2xpcFJlY3RzKENsaXBSZWN0c1R5
cGUgdHlwZVRvQ2xlYXIpCiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiBSZW5kZXJMYXllckJhY2tpbmcqIFJlbmRlckxheWVyOjplbnN1cmVCYWNraW5nKCkK
IHsKICAgICBpZiAoIW1fYmFja2luZykgewpAQCAtNTk2NiwxNSArNTg2Miw5IEBAIEdyYXBoaWNz
TGF5ZXIqIFJlbmRlckxheWVyOjpsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0CiAgICAgcmV0
dXJuIG1fYmFja2luZyA/IG1fYmFja2luZy0+bGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSA6IDA7CiB9
CiAKLSNlbmRpZgotCiBib29sIFJlbmRlckxheWVyOjpwYWludHNXaXRoVHJhbnNmb3JtKFBhaW50
QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgYm9vbCBwYWludHNUb1dpbmRvdyA9ICFpc0NvbXBvc2l0ZWQoKSB8fCBi
YWNraW5nKCktPnBhaW50c0ludG9XaW5kb3coKTsKLSNlbHNlCi0gICAgYm9vbCBwYWludHNUb1dp
bmRvdyA9IHRydWU7Ci0jZW5kaWYgICAgCiAgICAgcmV0dXJuIHRyYW5zZm9ybSgpICYmICgocGFp
bnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3JGbGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpIHx8IHBh
aW50c1RvV2luZG93KTsKIH0KIApAQCAtNjA1MCwxNyArNTk0MCwxMyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzZXRQYXJlbnQoUmVuZGVyTGF5ZXIqIHBhcmVudCkKICAgICBpZiAocGFyZW50ID09IG1f
cGFyZW50KQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgaWYgKG1fcGFyZW50ICYmICFyZW5kZXJlcigpLmRvY3VtZW50QmVpbmdEZXN0cm95
ZWQoKSkKICAgICAgICAgY29tcG9zaXRvcigpLmxheWVyV2lsbEJlUmVtb3ZlZCgqbV9wYXJlbnQs
ICp0aGlzKTsKLSNlbmRpZgogICAgIAogICAgIG1fcGFyZW50ID0gcGFyZW50OwotICAgIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGlmIChtX3BhcmVudCAmJiAhcmVu
ZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5s
YXllcldhc0FkZGVkKCptX3BhcmVudCwgKnRoaXMpOwotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMoKQpAQCAtNjA3NCw3ICs1OTYwLDYgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygpCiAgICAgICAgIG1fbmVnWk9yZGVyTGlzdC0+Y2xl
YXIoKTsKICAgICBtX3pPcmRlckxpc3RzRGlydHkgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5kb2N1bWVudEJlaW5nRGVzdHJv
eWVkKCkpIHsKICAgICAgICAgaWYgKGlzRmxvd1RocmVhZENvbGxlY3RpbmdHcmFwaGljc0xheWVy
c1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKHJlbmRlcmVy
KCkpLnNldE5lZWRzTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzVXBkYXRlKCk7CkBAIC02MDgyLDcgKzU5
NjcsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICAgICAgICAgaWYg
KGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKICAgICAg
ICAgICAgIGNvbXBvc2l0b3IoKS5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxh
eW91dCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVN0YWNr
aW5nQ29udGFpbmVyWk9yZGVyTGlzdHMoKQpAQCAtNjEwMCw3ICs1OTg0LDYgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAgICAgICAgIG1fbm9ybWFsRmxvd0xpc3Qt
PmNsZWFyKCk7CiAgICAgbV9ub3JtYWxGbG93TGlzdERpcnR5ID0gdHJ1ZTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWlu
Z0Rlc3Ryb3llZCgpKSB7CiAgICAgICAgIGlmIChpc0Zsb3dUaHJlYWRDb2xsZWN0aW5nR3JhcGhp
Y3NMYXllcnNVbmRlclJlZ2lvbnMoKSkKICAgICAgICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZChy
ZW5kZXJlcigpKS5zZXROZWVkc0xheWVyVG9SZWdpb25NYXBwaW5nc1VwZGF0ZSgpOwpAQCAtNjEw
OCw3ICs1OTkxLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlOb3JtYWxGbG93TGlzdCgpCiAg
ICAgICAgIGlmIChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVk
KCkpCiAgICAgICAgICAgICBjb21wb3NpdG9yKCkuc2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0
aW5nQWZ0ZXJMYXlvdXQoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
cmVidWlsZFpPcmRlckxpc3RzKCkKQEAgLTYxMjEsMTEgKzYwMDMsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQogCiB2b2lkIFJlbmRlckxheWVyOjpyZWJ1aWxkWk9y
ZGVyTGlzdHMoQ29sbGVjdExheWVyc0JlaGF2aW9yIGJlaGF2aW9yLCBPd25QdHI8VmVjdG9yPFJl
bmRlckxheWVyKj4+JiBwb3NaT3JkZXJMaXN0LCBPd25QdHI8VmVjdG9yPFJlbmRlckxheWVyKj4+
JiBuZWdaT3JkZXJMaXN0KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMgPSBjb21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01v
ZGUoKTsKLSNlbHNlCi0gICAgYm9vbCBpbmNsdWRlSGlkZGVuTGF5ZXJzID0gZmFsc2U7Ci0jZW5k
aWYKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGlmICghbV9yZWZsZWN0aW9uIHx8
IHJlZmxlY3Rpb25MYXllcigpICE9IGNoaWxkKQogICAgICAgICAgICAgY2hpbGQtPmNvbGxlY3RM
YXllcnMoaW5jbHVkZUhpZGRlbkxheWVycywgYmVoYXZpb3IsIHBvc1pPcmRlckxpc3QsIG5lZ1pP
cmRlckxpc3QpOwpAQCAtNjI1MSwxMyArNjEyOSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVEZXNjZW5kYW50c0xheWVyTGlzdHNJZk5lZWRlZChib29sIHJlY3Vyc2l2ZSkKIAogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdBbmRMYXllckxpc3RzSWZOZWVkZWQoKQogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoY29tcG9zaXRvcigpLmlu
Q29tcG9zaXRpbmdNb2RlKCkpIHsKICAgICAgICAgaWYgKGlzRGlydHlTdGFja2luZ0NvbnRhaW5l
cigpIHx8IG1fbm9ybWFsRmxvd0xpc3REaXJ0eSkKICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS51
cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZU9uSGl0VGVzdCwgdGhpcyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKKwogICAgIHVwZGF0ZUxheWVyTGlzdHNJ
Zk5lZWRlZCgpOwogfQogCkBAIC02Mjc2LDggKzYxNTMsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpy
ZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKQogICAgIH0KIH0KIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogdm9pZCBSZW5kZXJMYXllcjo6c2V0QmFja2luZ05lZWRzUmVw
YWludChHcmFwaGljc0xheWVyOjpTaG91bGRDbGlwVG9MYXllciBzaG91bGRDbGlwKQogewogICAg
IEFTU0VSVChpc0NvbXBvc2l0ZWQoKSk7CkBAIC02MzE4LDggKzYxOTMsNiBAQCB2b2lkIFJlbmRl
ckxheWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhSZW5kZXJM
YXllck1vZGVsT2JqZQogICAgIH0KIH0KIAotI2VuZGlmCi0KIGJvb2wgUmVuZGVyTGF5ZXI6OnNo
b3VsZEJlTm9ybWFsRmxvd09ubHkoKSBjb25zdAogewogICAgIHJldHVybiAocmVuZGVyZXIoKS5o
YXNPdmVyZmxvd0NsaXAoKQpAQCAtNjUwOSw5ICs2MzgyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
c2V0QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KFJlbmRlckJs
b2NrKgogCiAgICAgICAgIGxheWVyLT5tX2hhc091dE9mRmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50
RGlydHkgPSBmYWxzZTsKICAgICAgICAgbGF5ZXItPm1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERl
c2NlbmRhbnQgPSB0cnVlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAg
ICAgbGF5ZXItPnVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwotI2VuZGlmCiAKICAg
ICAgICAgaWYgKCZsYXllci0+cmVuZGVyZXIoKSA9PSBjb250YWluaW5nQmxvY2spCiAgICAgICAg
ICAgICBicmVhazsKQEAgLTY1MzAsMTUgKzY0MDEsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlT3V0T2ZGbG93UG9zaXRpb25lZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiAgICAg
Ym9vbCB3YXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gb2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5wb3Np
dGlvbigpID09IEFic29sdXRlUG9zaXRpb24gfHwgb2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gRml4
ZWRQb3NpdGlvbik7CiAgICAgaWYgKHBhcmVudCgpICYmIChyZW5kZXJlcigpLmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpICE9IHdhc091dE9mRmxvd1Bvc2l0aW9uZWQpKSB7CiAgICAgICAgIHBhcmVu
dCgpLT5kaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudFN0
YXR1cygpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKCFy
ZW5kZXJlcigpLmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSAmJiBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKCkpCiAgICAgICAgICAgICBjb21wb3NpdG9yKCku
c2V0U2hvdWxkUmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQoKTsKLSNlbmRpZgogICAg
IH0KIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogaW5saW5lIGJvb2wg
UmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRpbmdMYXllcnNSZWJ1aWx0Rm9yQ2xpcChjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkgY29uc3QK
IHsKICAgICBBU1NFUlQobmV3U3R5bGUpOwpAQCAtNjU1MSw4ICs2NDE4LDYgQEAgaW5saW5lIGJv
b2wgUmVuZGVyTGF5ZXI6Om5lZWRzQ29tcG9zaXRpbmdMYXllcnNSZWJ1aWx0Rm9yT3ZlcmZsb3co
Y29uc3QgUmVuZGVyU3QKICAgICByZXR1cm4gIWlzQ29tcG9zaXRlZCgpICYmIG9sZFN0eWxlICYm
IChvbGRTdHlsZS0+b3ZlcmZsb3dYKCkgIT0gbmV3U3R5bGUtPm92ZXJmbG93WCgpKSAmJiBzdGFj
a2luZ0NvbnRhaW5lcigpLT5oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKTsKIH0KIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogdm9pZCBSZW5kZXJMYXllcjo6c3R5
bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpCiB7CiAgICAgYm9vbCBpc05vcm1hbEZsb3dPbmx5ID0gc2hvdWxkQmVOb3JtYWxGbG93T25s
eSgpOwpAQCAtNjYwOSw3ICs2NDc0LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2Vk
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICB1
cGRhdGVPclJlbW92ZUZpbHRlckNsaWVudHMoKTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwog
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlID0gcmVuZGVyZXIoKS5zdHlsZSgpOwpA
QCAtNjYzMSw3ICs2NDk1LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICAgICAgICAg
ICAgICBjb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZCgpOwogICAg
ICAgICB9CiAgICAgfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpICYmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlUmVjb21wb3NpdGVMYXll
ciB8fCBkaWZmID49IFN0eWxlRGlmZmVyZW5jZUxheW91dFBvc2l0aW9uZWRNb3ZlbWVudE9ubHkp
CkBAIC02NjQyLDcgKzY1MDUsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogCiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0UmVuZGVyZXIo
KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBiYWNraW5nRGlk
Q29tcG9zaXRlTGF5ZXJzID0gaXNDb21wb3NpdGVkKCkgJiYgYmFja2luZygpLT5jYW5Db21wb3Np
dGVGaWx0ZXJzKCk7CiAgICAgaWYgKGlzQ29tcG9zaXRlZCgpICYmIGJhY2tpbmdEaWRDb21wb3Np
dGVMYXllcnMgJiYgIWJhY2tpbmcoKS0+Y2FuQ29tcG9zaXRlRmlsdGVycygpKSB7CiAgICAgICAg
IC8vIFRoZSBmaWx0ZXJzIHVzZWQgdG8gYmUgZHJhd24gYnkgcGxhdGZvcm0gY29kZSwgYnV0IG5v
dyB0aGUgcGxhdGZvcm0gY2Fubm90IGRyYXcgdGhlbSBhbnltb3JlLgpAQCAtNjY1MCw3ICs2NTEy
LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVyZW5jZSBkaWZm
LCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICAgICAgc2V0QmFja2luZ05lZWRzUmVw
YWludCgpOwogICAgIH0KICNlbmRpZgotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVw
ZGF0ZVNjcm9sbGFibGVBcmVhU2V0KGJvb2wgaGFzT3ZlcmZsb3cpCkBAIC02NjY4LDExICs2NTI5
LDggQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoYm9vbCBoYXNP
dmVyZmxvdykKICAgICBlbHNlCiAgICAgICAgIGFkZGVkT3JSZW1vdmVkID0gZnJhbWVWaWV3LnJl
bW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogICAgIAotICAgIGlmIChhZGRlZE9yUmVtb3ZlZCkg
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAoYWRkZWRPclJlbW92
ZWQpCiAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwotI2VuZGlmCi0g
ICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChhZGRlZE9yUmVtb3ZlZCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyMzkyMTQzNTgyODM5YzJkZTQz
NjM4YjU3NTM2ODIyMjVlODc3OThiLi41NDhmMDllOGQyMjlmZDg5N2MxNjg5YjJkZWQxYjk2MTE1
MzM4M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtMzQ0LDcg
KzM0NCw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVwYWludEluY2x1ZGluZ0Rlc2NlbmRhbnRz
KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gSW5kaWNhdGUg
dGhhdCB0aGUgbGF5ZXIgY29udGVudHMgbmVlZCB0byBiZSByZXBhaW50ZWQuIE9ubHkgaGFzIGFu
IGVmZmVjdAogICAgIC8vIGlmIGxheWVyIGNvbXBvc2l0aW5nIGlzIGJlaW5nIHVzZWQuCiAgICAg
dm9pZCBzZXRCYWNraW5nTmVlZHNSZXBhaW50KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xh
eWVyID0gR3JhcGhpY3NMYXllcjo6Q2xpcFRvTGF5ZXIpOwpAQCAtMzUyLDcgKzM1MSw2IEBAIHB1
YmxpYzoKICAgICAvLyBUaGUgcmVjdCBpcyBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUg
bGF5ZXIncyByZW5kZXIgb2JqZWN0LgogICAgIHZvaWQgc2V0QmFja2luZ05lZWRzUmVwYWludElu
UmVjdChjb25zdCBMYXlvdXRSZWN0JiwgR3JhcGhpY3NMYXllcjo6U2hvdWxkQ2xpcFRvTGF5ZXIg
PSBHcmFwaGljc0xheWVyOjpDbGlwVG9MYXllcik7CiAgICAgdm9pZCByZXBhaW50SW5jbHVkaW5n
Tm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyKTsKLSNlbmRpZgogCiAgICAgdm9pZCBzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJl
bmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCkBAIC00NzMsMTMgKzQ3MSwxMSBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9pc1Jv
b3RMYXllcjsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJlbmRl
ckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvcigpIGNvbnN0OwogICAgIAogICAgIC8vIE5vdGlm
aWNhdGlvbiBmcm9tIHRoZSByZW5kZXJlciB0aGF0IGl0cyBjb250ZW50IGNoYW5nZWQgKGUuZy4g
Y3VycmVudCBmcmFtZSBvZiBpbWFnZSBjaGFuZ2VkKS4KICAgICAvLyBBbGxvd3MgdXBkYXRlcyBv
ZiBsYXllciBjb250ZW50IHdpdGhvdXQgcmVwYWludGluZy4KICAgICB2b2lkIGNvbnRlbnRDaGFu
Z2VkKENvbnRlbnRDaGFuZ2VUeXBlKTsKLSNlbmRpZgogCiAgICAgYm9vbCBjYW5SZW5kZXIzRFRy
YW5zZm9ybXMoKSBjb25zdDsKIApAQCAtNDk4LDkgKzQ5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCgpOwogICAgIHZvaWQgdXBk
YXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xsKCk7CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBwb3NpdGlvbk5ld2x5Q3JlYXRlZE92ZXJmbG93
Q29udHJvbHMoKTsKLSNlbmRpZgogICAgIAogICAgIGJvb2wgaXNQYWdpbmF0ZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzUGFnaW5hdGVkOyB9CiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1BhZ2lu
YXRpb25MYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyOyB9
CkBAIC02MDQsMTMgKzU5OCwxMSBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJMYXllciogZW5jbG9z
aW5nT3ZlcmZsb3dDbGlwTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCkgY29uc3Q7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gRW5jbG9zaW5nIGNvbXBvc2l0aW5nIGxh
eWVyOyBpZiBpbmNsdWRlU2VsZiBpcyB0cnVlLCBtYXkgcmV0dXJuIHRoaXMuCiAgICAgUmVuZGVy
TGF5ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1
ZGVTZWxmKSBjb25zdDsKICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXll
ckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKICAgICAv
LyBBbmNlc3RvciBjb21wb3NpdGluZyBsYXllciwgZXhjbHVkaW5nIHRoaXMuCiAgICAgUmVuZGVy
TGF5ZXIqIGFuY2VzdG9yQ29tcG9zaXRpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIGVuY2xvc2lu
Z0NvbXBvc2l0aW5nTGF5ZXIoRXhjbHVkZVNlbGYpOyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVk
ZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKQEAgLTc5Miw3ICs3ODQsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNCbGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBpc0NvbXBv
c2l0ZWQoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmcgIT0gMDsgfQogICAgIGJvb2wgaGFzQ29t
cG9zaXRpbmdEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDb21wb3NpdGluZ0Rlc2Nl
bmRhbnQ7IH0KICAgICBib29sIGhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3Q7CkBAIC04MDcsMTIg
Kzc5OCw2IEBAIHB1YmxpYzoKICAgICBib29sIG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0OwogICAgIGJvb2wgbmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRGb3JDbGlwKGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKSBjb25z
dDsKICAgICBib29sIG5lZWRzQ29tcG9zaXRpbmdMYXllcnNSZWJ1aWx0Rm9yT3ZlcmZsb3coY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpIGNv
bnN0OwotI2Vsc2UKLSAgICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgYm9vbCBoYXNDb21wb3NpdGVkTWFzaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgYm9vbCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotI2VuZGlmCiAKICAgICBib29sIHBhaW50c1dpdGhUcmFuc3BhcmVuY3koUGFpbnRC
ZWhhdmlvciBwYWludEJlaGF2aW9yKSBjb25zdAogICAgIHsKQEAgLTg0MSw3ICs4MjYsNiBAQCBw
dWJsaWM6CiAKICAgICBFbGVtZW50KiBlbmNsb3NpbmdFbGVtZW50KCkgY29uc3Q7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZW51bSBWaWV3cG9ydENvbnN0cmFpbmVk
Tm90Q29tcG9zaXRlZFJlYXNvbiB7CiAgICAgICAgIE5vTm90Q29tcG9zaXRlZFJlYXNvbiwKICAg
ICAgICAgTm90Q29tcG9zaXRlZEZvckJvdW5kc091dE9mVmlldywKQEAgLTg1MSw3ICs4MzUsNiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVk
UmVhc29uKFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uIHJlYXNvbikgeyBt
X3ZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uID0gcmVhc29uOyB9CiAgICAg
Vmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gdmlld3BvcnRDb25zdHJhaW5l
ZE5vdENvbXBvc2l0ZWRSZWFzb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxWaWV3cG9y
dENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbj4obV92aWV3cG9ydENvbnN0cmFpbmVkTm90
Q29tcG9zaXRlZFJlYXNvbik7IH0KLSNlbmRpZgogICAgIAogICAgIGJvb2wgaXNSZW5kZXJGbG93
VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS5pc1JlbmRlckZsb3dUaHJlYWQoKTsg
fQogICAgIGJvb2wgaXNPdXRPZkZsb3dSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
cmVuZGVyZXIoKS5pc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKTsgfQpAQCAtMTA5Miw5ICsx
MDc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEFuY2VzdG9yQ2hhaW5IYXNWaXNpYmxlRGVz
Y2VuZGFudCgpOwogCiAgICAgdm9pZCB1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFz
aFNldDxjb25zdCBSZW5kZXJPYmplY3QqPiogb3V0T2ZGbG93RGVzY2VuZGFudENvbnRhaW5pbmdC
bG9ja3MgPSAwKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBj
aGVja0lmRGVzY2VuZGFudENsaXBwaW5nQ29udGV4dE5lZWRzVXBkYXRlKGJvb2wgaXNDbGlwcGlu
Zyk7Ci0jZW5kaWYKIAogICAgIC8vIFRoaXMgZmxhZyBpcyBjb21wdXRlZCBieSBSZW5kZXJMYXll
ckNvbXBvc2l0b3IsIHdoaWNoIGtub3dzIG1vcmUgYWJvdXQgM2QgaGllcmFyY2hpZXMgdGhhbiB3
ZSBkby4KICAgICB2b2lkIHNldEhhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50KGJvb2wgYikgeyBt
X2hhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50ID0gYjsgfQpAQCAtMTEzNiw4ICsxMTE3LDcgQEAg
cHJpdmF0ZToKICAgICAKICAgICAvLyBGSVhNRTogVGVtcG9yYXJ5LiBSZW1vdmUgd2hlbiBuZXcg
Y29sdW1ucyBjb21lIG9ubGluZS4KICAgICBib29sIHVzZVJlZ2lvbkJhc2VkQ29sdW1ucygpIGNv
bnN0OwotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgICAgCisKICAgICB2
b2lkIHNldEhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudChib29sIGIpICB7IG1faGFzQ29tcG9zaXRp
bmdEZXNjZW5kYW50ID0gYjsgfQogICAgIAogICAgIGVudW0gSW5kaXJlY3RDb21wb3NpdGluZ1Jl
YXNvbiB7CkBAIC0xMTUzLDcgKzExMzMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0SW5kaXJl
Y3RDb21wb3NpdGluZ1JlYXNvbihJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uIHJlYXNvbikgeyBt
X2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gPSByZWFzb247IH0KICAgICBJbmRpcmVjdENvbXBv
c2l0aW5nUmVhc29uIGluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uPihtX2luZGlyZWN0Q29tcG9zaXRp
bmdSZWFzb24pOyB9CiAgICAgYm9vbCBtdXN0Q29tcG9zaXRlRm9ySW5kaXJlY3RSZWFzb25zKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uOyB9Ci0jZW5kaWYKIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB6IG9yZGVyaW5nIHdvdWxkIG5vdCBjaGFuZ2UgaWYgdGhp
cyBsYXllciB3ZXJlIGEgc3RhY2tpbmcgY29udGFpbmVyLgogICAgIGJvb2wgY2FuQmVTdGFja2lu
Z0NvbnRhaW5lcigpIGNvbnN0OwpAQCAtMTIzMSwxMSArMTIxMCw5IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtXzNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzRGlydHkgOiAxOwogICAgIGJvb2wg
bV9oYXMzRFRyYW5zZm9ybWVkRGVzY2VuZGFudCA6IDE7ICAvLyBTZXQgb24gYSBzdGFja2luZyBj
b250ZXh0IGxheWVyIHRoYXQgaGFzIDNEIGRlc2NlbmRhbnRzIGFueXdoZXJlCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGEgcHJlc2VydmVzM0QgaGll
cmFyY2h5LiBIaW50IHRvIGRvIDNELWF3YXJlIGhpdCB0ZXN0aW5nLgotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBib29sIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50IDog
MTsgLy8gSW4gdGhlIHotb3JkZXIgdHJlZS4KICAgICB1bnNpZ25lZCBtX2luZGlyZWN0Q29tcG9z
aXRpbmdSZWFzb24gOiAzOwogICAgIHVuc2lnbmVkIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENv
bXBvc2l0ZWRSZWFzb24gOiAyOwotI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgYm9v
bCBtX2FkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyA6IDE7CkBAIC0xMzI0LDkgKzEzMDEs
NyBAQCBwcml2YXRlOgogCiAgICAgSW50UmVjdCBtX2Jsb2NrU2VsZWN0aW9uR2Fwc0JvdW5kczsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBPd25QdHI8UmVuZGVyTGF5
ZXJCYWNraW5nPiBtX2JhY2tpbmc7Ci0jZW5kaWYKIAogICAgIGNsYXNzIEZpbHRlckluZm87CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApp
bmRleCA5ZDdiZGRlYTYxOWIzOGRjYzRlMmMzZDBlYzk0MzMyYzY0OTZjNzFmLi5iM2U2NGMzODAw
YTBhNTc1NDkzYzlmNWRiMmZkNjkwNGMyYjVkZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjUsOCArMjUsNiBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNp
bmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRy
b2xsZXIuaCIKQEAgLTI2MjEsNSArMjYxOSwzIEBAIGRvdWJsZSBSZW5kZXJMYXllckJhY2tpbmc6
OmJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3QKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IGNlMGY0MjBm
MDg2MjUxODU1Njg5NDY3MmY3YjJiMzFmMGY0ODg2NzguLjA1OGZjODQ5OTc0YTBiMWZjNDg3NDMy
NWNlMDQ4NTk0YTNiNWI4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUmVuZGVyTGF5ZXJCYWNr
aW5nX2gKICNkZWZpbmUgUmVuZGVyTGF5ZXJCYWNraW5nX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJGbG9h
dFBvaW50M0QuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC0zMzQsNiArMzMyLDQg
QEAgQ2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneSBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KGNv
bnN0IFJlbmRlck9iamVjdCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBSZW5kZXJMYXllckJh
Y2tpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAppbmRleCA4NGEyNzFkOGNlYmY1NjY0OGRkODNlMGMzMzVhZDZlYmEyNmRiNmE1
Li41YmRkMzAzOGNjYjU4OTJhZTM0MDM3MjdiYzUyNzllYzQxZjMyNmFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjUs
NyArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAKICNpbmNs
dWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCkBAIC0zNzEyLDUgKzM3MTEsMyBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRSZWxhdGVkTWlsZXN0b25lc1RpbWVyRmlyZWQoVGlt
ZXI8UmVuZGVyTGF5ZXJDbwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggN2RlNGJmM2QwY2MwMTQzM2MzM2E2
OTc3M2U4N2NmMDYyYWM4ZjcwOC4uMTUzOTIzNTI4Y2I0ZjdmMzhjOTlhZWI1MmRiNGE3MWM4NTA0
YTY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBSZW5kZXJMYXllckNvbXBvc2l0b3Jf
aAogI2RlZmluZSBSZW5kZXJMYXllckNvbXBvc2l0b3JfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllckNsaWVudC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJVcGRhdGVyLmgiCkBA
IC01MjIsNiArNTIwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
ZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUmVuZGVy
TGF5ZXJDb21wb3NpdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggMWZiNWJhMzE4YTFlNjdlMjEwMWY4N2JkNGFiZTEy
MGQ5N2RmMjM1OS4uZTRlNzg2YjQ4MDI1NWYzNWIwY2U0MTA4NzIxMzlmOWEzYmY4ODljNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5j
cHAKQEAgLTcxOCw3ICs3MTgsNiBAQCB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Z2V0UmFu
Z2VzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYgcmFuZ2VPYmplY3RzLCBjb25zdAogICAgIH0KIH0K
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3QKIHsKICAg
ICAvLyBXZSBvbmx5IG5lZWQgdG8gbWFwIGxheWVycyB0byByZWdpb25zIGZvciBuYW1lZCBmbG93
IHRocmVhZHMuCkBAIC03MjcsNyArNzI2LDYgQEAgYm9vbCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6
OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMoKSBjb25zdAogCiAgICAgcmV0dXJu
IHRydWU7CiB9Ci0jZW5kaWYKIAogLy8gQ2hlY2sgaWYgdGhlIGNvbnRlbnQgaXMgZmxvd24gaW50
byBhdCBsZWFzdCBhIHJlZ2lvbiB3aXRoIHJlZ2lvbiBzdHlsaW5nIHJ1bGVzLgogdm9pZCBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQ6OmNoZWNrUmVnaW9uc1dpdGhTdHlsaW5nKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAppbmRleCBhODJlZmEz
ZTAxN2VjMTUwMWQ4NDBmMjU4NzEwYzg1MTUxMzY5N2ZiLi44NDExMGRjNzgzMmM2ZjUxM2JlZTUz
NDkyNjY3MmNlNTU3ZDJmYTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5oCkBAIC04MCw5ICs4MCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzTWFya2VkRm9yRGVzdHJ1Y3Rpb24oKSBjb25zdDsKICAgICB2b2lkIGdldFJhbmdlcyhWZWN0
b3I8UmVmUHRyPFJhbmdlPj4mLCBjb25zdCBSZW5kZXJSZWdpb24qKSBjb25zdDsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgY29sbGVjdHNHcmFw
aGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICAv
LyBDaGVjayBpZiB0aGUgY29udGVudCBpcyBmbG93biBpbnRvIGF0IGxlYXN0IGEgcmVnaW9uIHdp
dGggcmVnaW9uIHN0eWxpbmcgcnVsZXMuCiAgICAgYm9vbCBoYXNSZWdpb25zV2l0aFN0eWxpbmco
KSBjb25zdCB7IHJldHVybiBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZzsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBjMzBiNTI1YmI0ZjNhYmE3MDQ3NWFj
NDUzYzAxMzNiMDZlMDA3MmE1Li4yOGM5ODgwMjM3YmE2NjVmM2JlYjg2MzUxOWNiNWE2ZGFkNzI5
OGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTE5
NCw3ICsxMTk0LDYgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250
YWluZXJGb3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyID0gMDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAodmlldygpLnVzZXNDb21wb3NpdGluZygpKSB7CiAgICAgICAgIGlmIChSZW5kZXJM
YXllciogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7CiAgICAgICAgICAgICBSZW5k
ZXJMYXllciogY29tcExheWVyID0gcGFyZW50TGF5ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXJGb3JSZXBhaW50KCk7CkBAIC0xMjAyLDcgKzEyMDEsNiBAQCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgICAgICAg
ICAgICAgIHJlcGFpbnRDb250YWluZXIgPSAmY29tcExheWVyLT5yZW5kZXJlcigpOwogICAgICAg
ICB9CiAgICAgfQotI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGlm
ICh2aWV3KCkuaGFzU29mdHdhcmVGaWx0ZXJzKCkpIHsKQEAgLTEyNTUsNyArMTI1Myw2IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgUmVuZGVyVmlldyYgdiA9IHZpZXcoKTsKICAgICBpZiAocmVw
YWludENvbnRhaW5lci0+aXNSZW5kZXJWaWV3KCkpIHsKICAgICAgICAgQVNTRVJUKHJlcGFpbnRD
b250YWluZXIgPT0gJnYpOwpAQCAtMTI3MCwxMCArMTI2Nyw2IEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvCiAgICAgICAgIEFTU0VSVChyZXBhaW50Q29udGFpbmVyLT5oYXNMYXllcigpICYmIHJl
cGFpbnRDb250YWluZXItPmxheWVyKCktPmlzQ29tcG9zaXRlZCgpKTsKICAgICAgICAgcmVwYWlu
dENvbnRhaW5lci0+bGF5ZXIoKS0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVjdChyLCBzaG91
bGRDbGlwVG9MYXllciA/IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyIDogR3JhcGhpY3NMYXll
cjo6RG9Ob3RDbGlwVG9MYXllcik7CiAgICAgfQotI2Vsc2UKLSAgICBpZiAocmVwYWludENvbnRh
aW5lci0+aXNSZW5kZXJWaWV3KCkpCi0gICAgICAgIHRvUmVuZGVyVmlldygqcmVwYWludENvbnRh
aW5lcikucmVwYWludFZpZXdSZWN0YW5nbGUociwgaW1tZWRpYXRlKTsKLSNlbmRpZgogfQogCiB2
b2lkIFJlbmRlck9iamVjdDo6cmVwYWludChib29sIGltbWVkaWF0ZSkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBkODY2YmM2NGQw
YmE2MzY4MDA3NzlhNzFiNGMyODRkYTYwODU0NDQwLi44ZWNjZjQ1M2QzNTk5ZWZkNzE4MDBlZmZh
N2U1NGFhYWU1MjU5MGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgor
I2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxpbmVCcmVh
ay5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1h
cmtlci5oIgpAQCAtNzAsMTAgKzcxLDYgQEAKICNpbmNsdWRlICJTVkdSZW5kZXJUcmVlQXNUZXh0
LmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRl
ICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC02MzksMTUgKzYzNiwxMSBAQCBzdGF0aWMg
dm9pZCB3cml0ZShUZXh0U3RyZWFtJiB0cywgUmVuZGVyTGF5ZXImIGwsCiAgICAgICAgIHRzIDw8
ICIgbGF5ZXJUeXBlOiBiYWNrZ3JvdW5kIG9ubHkiOwogICAgIGVsc2UgaWYgKHBhaW50UGhhc2Ug
PT0gTGF5ZXJQYWludFBoYXNlRm9yZWdyb3VuZCkKICAgICAgICAgdHMgPDwgIiBsYXllclR5cGU6
IGZvcmVncm91bmQgb25seSI7Ci0gICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorCiAgICAgaWYgKGJlaGF2aW9yICYgUmVuZGVyQXNUZXh0U2hvd0NvbXBvc2l0ZWRMYXllcnMp
IHsKICAgICAgICAgaWYgKGwuaXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICB0cyA8PCAiIChj
b21wb3NpdGVkLCBib3VuZHM9IiA8PCBsLmJhY2tpbmcoKS0+Y29tcG9zaXRlZEJvdW5kcygpIDw8
ICIsIGRyYXdzQ29udGVudD0iIDw8IGwuYmFja2luZygpLT5ncmFwaGljc0xheWVyKCktPmRyYXdz
Q29udGVudCgpIDw8ICIsIHBhaW50cyBpbnRvIGFuY2VzdG9yPSIgPDwgbC5iYWNraW5nKCktPnBh
aW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSA8PCAiKSI7CiAgICAgfQotI2Vsc2UKLSAgICBV
TlVTRURfUEFSQU0oYmVoYXZpb3IpOwotI2VuZGlmCiAgICAgCiAgICAgdHMgPDwgIlxuIjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggZjYzOTgyYzBiYzA0
NmQxNzAxYTQxNjdmYjI4NzcyMjUwOWYyMDQzNi4uY2QyOGE2Y2NjZjA3ZTM2YmU0Y2Q5MzRmNmMy
MmM1YTBlZTNlOTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3Bw
CkBAIC0yMzAsOSArMjMwLDcgQEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlUGxheWVyKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBjb250ZW50Q2hhbmdlZChWaWRlb0NoYW5nZWQpOwotI2VuZGlmCiAgICAgCiAgICAgSW50
UmVjdCB2aWRlb0JvdW5kcyA9IHZpZGVvQm94KCk7IAogICAgIG1lZGlhUGxheWVyLT5zZXRGcmFt
ZVZpZXcoJnZpZXcoKS5mcmFtZVZpZXcoKSk7CkBAIC0yNTYsNyArMjU0LDYgQEAgTGF5b3V0VW5p
dCBSZW5kZXJWaWRlbzo6bWluaW11bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4g
UmVuZGVyUmVwbGFjZWQ6Om1pbmltdW1SZXBsYWNlZEhlaWdodCgpOyAKIH0KIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgUmVuZGVyVmlkZW86OnN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAgIGlmIChNZWRpYVBsYXllciogcGxheWVyID0g
dmlkZW9FbGVtZW50KCkucGxheWVyKCkpCkBAIC0yNjksNyArMjY2LDYgQEAgdm9pZCBSZW5kZXJW
aWRlbzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogICAgIGlmIChNZWRpYVBs
YXllciogcGxheWVyID0gdmlkZW9FbGVtZW50KCkucGxheWVyKCkpCiAgICAgICAgIHBsYXllci0+
YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKIH0KLSNlbmRpZiAgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiBib29sIFJlbmRlclZpZGVvOjpyZXF1aXJlc0ltbWVk
aWF0ZUNvbXBvc2l0aW5nKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmgKaW5kZXggMTY0MzA1NDI0N2VhYmJiMjJiMmY1MzM5OTgyOGY1MTdiYzRjYzU4My4uNDE2
MGE2NWNkNmYwMGJkYzg5NGJjMjdjN2MzYjc0YjRlMWFlY2IxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZGVvLmgKQEAgLTQ1LDEwICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBJbnRTaXplIGRlZmF1bHRTaXplKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAg
ICAgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwotI2VuZGlmCiAKICAg
ICBib29sIHJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGE2NzRlOGJmNzY3OWMyZDUzYzExYTYx
NTg0ZmExYWM1ZWUwOGNiMjMuLmM0NDliODgwZjFiNGI0MmY1ZmMwNzBhMjlkOTZhYTM2ZmIzNjQ3
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU2VsZWN0aW9uSW5mby5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgpA
QCAtNDcsMTAgKzQ4LDYgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1ZGUg
PHd0Zi9TdGFja1N0YXRzLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0j
aW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KERvY3VtZW50JiBkb2N1bWVudCwgUGFz
c1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCkBAIC01MzMsMTQgKzUzMCwxMiBAQCB2b2lkIFJlbmRl
clZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JikKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChSZW5kZXJMYXllciogY29tcG9zaXRp
bmdMYXllciA9IGxheWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpKSB7
CiAgICAgICAgICAgICBpZiAoIWNvbXBvc2l0aW5nTGF5ZXItPmJhY2tpbmcoKS0+cGFpbnRzSW50
b1dpbmRvdygpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWVWaWV3KCkuc2V0Q2Fubm90QmxpdFRv
V2luZG93KCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KLSNlbmRpZgogICAgIH0KIAogICAgIGlmIChkb2N1bWVudCgpLm93bmVyRWxlbWVudCgpKQpA
QCAtNTYwLDkgKzU1NSw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgIH0KIAogICAgIGJv
b2wgaGFzVGlsZWRNYXJnaW4gPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgaGFzVGlsZWRNYXJnaW4gPSBjb21wb3NpdG9yKCkubWFpbkZyYW1lQmFja2luZ0lz
VGlsZWRXaXRoTWFyZ2luKCk7Ci0jZW5kaWYKIAogICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgp
LnBhZ2UoKTsKICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IgPSBwYWdlID8gcGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgOiAxOwpAQCAtNTk2LDEyICs1ODksMTAgQEAgYm9vbCBSZW5kZXJWaWV3Ojpz
aG91bGRSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiAKIHZvaWQgUmVuZGVy
Vmlldzo6cmVwYWludFJvb3RDb250ZW50cygpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChsYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICBsYXll
cigpLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50KEdyYXBoaWNzTGF5ZXI6OkRvTm90Q2xpcFRvTGF5
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAgICAgcmVwYWludCgpOwogfQog
CkBAIC02NjAsMjQgKzY1MSwyMSBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRSZWN0YW5nbGVJ
blZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKGNvbnN0IExheW91dFJlY3QmIHVyLAogICAgICAgICBy
ZXR1cm47CiAKICAgICByZXBhaW50Vmlld1JlY3RhbmdsZSh1ciwgaW1tZWRpYXRlKTsKLSAgICAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBSZW5kZXJMYXllckNvbXBv
c2l0b3ImIGNvbXBvc2l0b3IgPSB0aGlzLT5jb21wb3NpdG9yKCk7CiAgICAgaWYgKGNvbXBvc2l0
b3IuaW5Db21wb3NpdGluZ01vZGUoKSkgewogICAgICAgICBJbnRSZWN0IHJlcGFpbnRSZWN0ID0g
cGl4ZWxTbmFwcGVkSW50UmVjdCh1cik7CiAgICAgICAgIGNvbXBvc2l0b3IucmVwYWludENvbXBv
c2l0ZWRMYXllcnMoJnJlcGFpbnRSZWN0KTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5k
ZXJWaWV3OjpyZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMoKQogewogICAgIHJlcGFpbnRS
b290Q29udGVudHMoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBS
ZW5kZXJMYXllckNvbXBvc2l0b3ImIGNvbXBvc2l0b3IgPSB0aGlzLT5jb21wb3NpdG9yKCk7CiAg
ICAgaWYgKGNvbXBvc2l0b3IuaW5Db21wb3NpdGluZ01vZGUoKSkKICAgICAgICAgY29tcG9zaXRv
ci5yZXBhaW50Q29tcG9zaXRlZExheWVycygpOwotI2VuZGlmCiB9CiAKIExheW91dFJlY3QgUmVu
ZGVyVmlldzo6dmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3QKQEAgLTgwMiw3ICs3OTAsNiBAQCB2
b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRTZWxlY3Rpb24oKSBjb25zdAogICAgIH0KIH0KIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC8vIENvbXBvc2l0aW5nIGxheWVyIGRpbWVu
c2lvbnMgdGFrZSBvdXRsaW5lIHNpemUgaW50byBhY2NvdW50LCBzbyB3ZSBoYXZlIHRvIHJlY29t
cHV0ZSBsYXllcgogLy8gYm91bmRzIHdoZW4gaXQgY2hhbmdlcy4KIC8vIEZJWE1FOiBUaGlzIGlz
IHVnbHk7IGl0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcy4K
QEAgLTgxNSw3ICs4MDIsNiBAQCB2b2lkIFJlbmRlclZpZXc6OnNldE1heGltYWxPdXRsaW5lU2l6
ZShpbnQgbykKICAgICAgICAgY29tcG9zaXRvcigpLnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJl
YnVpbGQoKTsgICAgLy8gRklYTUU6IHRoaXMgcmVhbGx5IGp1c3QgbmVlZHMgdG8gYmUgYSBnZW9t
ZXRyeSB1cGRhdGUuCiAgICAgfQogfQotI2VuZGlmCiAKIC8vIFdoZW4gZXhwbG9yaW5nIHRoZSBS
ZW5kZXJUcmVlIGxvb2tpbmcgZm9yIHRoZSBub2RlcyBpbnZvbHZlZCBpbiB0aGUgU2VsZWN0aW9u
LCBzb21ldGltZXMgaXQncwogLy8gcmVxdWlyZWQgdG8gY2hhbmdlIHRoZSB0cmF2ZXJzaW5nIGRp
cmVjdGlvbiBiZWNhdXNlIHRoZSAic3RhcnQiIHBvc2l0aW9uIGlzIGJlbG93IHRoZSAiZW5kIiBv
bmUuCkBAIC0xMTY3LDcgKzExNTMsNiBAQCB2b2lkIFJlbmRlclZpZXc6OnNldEJlc3RUcnVuY2F0
ZWRBdChpbnQgeSwgUmVuZGVyQm94TW9kZWxPYmplY3QqIGZvclJlbmRlcmVyLCBibwogICAgIH0K
IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgUmVuZGVyVmlldzo6
dXNlc0NvbXBvc2l0aW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb21wb3NpdG9yICYmIG1f
Y29tcG9zaXRvci0+aW5Db21wb3NpdGluZ01vZGUoKTsKQEAgLTExODAsMTYgKzExNjUsMTEgQEAg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBSZW5kZXJWaWV3Ojpjb21wb3NpdG9yKCkKIAogICAgIHJl
dHVybiAqbV9jb21wb3NpdG9yOwogfQotI2VuZGlmCiAKIHZvaWQgUmVuZGVyVmlldzo6c2V0SXNJ
bldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmIChtX2NvbXBvc2l0b3IpCiAgICAgICAgIG1fY29tcG9zaXRvci0+c2V0SXNJ
bldpbmRvdyhpc0luV2luZG93KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGlzSW5XaW5kb3cp
OwotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDBjNGY0YzNiYTdmMjNhMzhkOTliM2RhN2FkZGFlMmFj
MzkzMmVmOTEuLmJlMTk0YWViZWY0NGFjYjRkMjk0NTFmMDY0NTE2MTRiYjFiNWZjODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMzMsMTEgKzMzLDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG93VGhyZWFkQ29udHJvbGxlcjsKIGNsYXNzIEltYWdl
UXVhbGl0eUNvbnRyb2xsZXI7Ci1jbGFzcyBSZW5kZXJRdW90ZTsKLQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKLSNlbmRpZgor
Y2xhc3MgUmVuZGVyUXVvdGU7CiAKIGNsYXNzIFJlbmRlclZpZXcgZmluYWwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKQEAgLTk5LDExICs5Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
IG92ZXJyaWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQg
c2V0TWF4aW1hbE91dGxpbmVTaXplKGludCBvKTsKLSNlbHNlCi0gICAgdm9pZCBzZXRNYXhpbWFs
T3V0bGluZVNpemUoaW50IG8pIHsgbV9tYXhpbWFsT3V0bGluZVNpemUgPSBvOyB9Ci0jZW5kaWYK
ICAgICBpbnQgbWF4aW1hbE91dGxpbmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbWFsT3V0
bGluZVNpemU7IH0KIAogICAgIExheW91dFJlY3Qgdmlld1JlY3QoKSBjb25zdDsKQEAgLTE4MSwx
MCArMTc0LDggQEAgcHVibGljOgogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoaXMgdmlldyBt
b3ZlZCBpbnRvIG9yIG91dCBvZiBhIG5hdGl2ZSB3aW5kb3cuCiAgICAgdm9pZCBzZXRJc0luV2lu
ZG93KGJvb2wpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJlbmRl
ckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvcigpOwogICAgIGJvb2wgdXNlc0NvbXBvc2l0aW5n
KCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIEludFJlY3QgdW5zY2FsZWREb2N1bWVudFJlY3QoKSBj
b25zdDsKICAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRSZWN0KFJlbmRlckJveCogYmFja2dyb3Vu
ZFJlbmRlcmVyKSBjb25zdDsKQEAgLTM0NSw5ICszMzYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFN0
YXRlPiBtX2xheW91dFN0YXRlOwogICAgIHVuc2lnbmVkIG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291
bnQ7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxSZW5kZXJM
YXllckNvbXBvc2l0b3I+IG1fY29tcG9zaXRvcjsKLSNlbmRpZgogICAgIE93blB0cjxGbG93VGhy
ZWFkQ29udHJvbGxlcj4gbV9mbG93VGhyZWFkQ29udHJvbGxlcjsKICAgICBSZWZQdHI8SW50ZXJ2
YWxBcmVuYT4gbV9pbnRlcnZhbEFyZW5hOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwCmluZGV4IGVmODA0YjJiZTZjMzA1ZTY5MjBmMGM2ZTUyNWZjMmVmZGIyZDMy
ZTkuLjU4NjdhMTEyMTFlMzU5NWVhNmVhMzY3NjlmYzkyNjFjMjEwNTdiNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yOCwxNCArMjgsMTEgQEAKICNp
bmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tp
bmcuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMu
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgSGFzaE1hcDxjb25zdCBXaWRnZXQqLCBSZW5kZXJXaWRnZXQq
PiYgd2lkZ2V0UmVuZGVyZXJNYXAoKQpAQCAtMTQxLDEwICsxMzgsOSBAQCBib29sIFJlbmRlcldp
ZGdldDo6c2V0V2lkZ2V0R2VvbWV0cnkoY29uc3QgTGF5b3V0UmVjdCYgZnJhbWUpCiAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGJvdW5kc0NoYW5nZWQgJiYgaGFzTGF5ZXIoKSAmJiBsYXll
cigpLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgbGF5ZXIoKS0+YmFja2luZygpLT51cGRhdGVB
ZnRlcldpZGdldFJlc2l6ZSgpOwotI2VuZGlmCisKICAgICByZXR1cm4gb2xkRnJhbWVSZWN0LnNp
emUoKSAhPSBuZXdGcmFtZVJlY3Quc2l6ZSgpOwogfQogCkBAIC0zODQsNyArMzgwLDYgQEAgYm9v
bCBSZW5kZXJXaWRnZXQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0
LCBIaXRUZXN0UmVzdWx0JiByZXMKICAgICByZXR1cm4gaW5zaWRlOwogfQogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIo
KSBjb25zdAogewogICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cmVxdWlyZXNMYXllcigpIHx8
IHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwpAQCAtNDAwLDcgKzM5NSw2IEBAIGJv
b2wgUmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdAog
CiAgICAgcmV0dXJuIGZhbHNlOwogfQotI2VuZGlmCiAKIGJvb2wgUmVuZGVyV2lkZ2V0OjpuZWVk
c1ByZWZlcnJlZFdpZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGFmY2VmM2E4NzM1NGNlYzM2NzhhZTg1MjU1ZmM2
M2IwODM3YWZkNTEuLjc4OGRmOWI2YjQzMzZmNTU4NjY0MWUwNjU4NDA4OWZiMDMyZDhkMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTcwLDkgKzcwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgdXBkYXRlV2lkZ2V0UG9zaXRpb24oKTsKICAgICBJbnRSZWN0IHdp
bmRvd0NsaXBSZWN0KCkgY29uc3Q7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKLSNlbmRp
ZgogCiAgICAgV2Vha1B0cjxSZW5kZXJXaWRnZXQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCkBAIC04NCw5ICs4Miw3IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2Nh
dGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhp
dFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDcxYzYzNzZhODMzNWNhYzBkYTBmMGZhY2QwNDZiYTNmZTYyZGQ5M2QuLjE5NWJjMzUxZGRkOGVm
YzY5NTkzMjdhZDE4Y2ZjMWZkNTMxMTI1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtNDc0LDMwICs0NzQsMTQgQEAgYm9vbCBSZW5k
ZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1
bnNpZ25lZCYgY2hhbmcKIAogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fdHJh
bnNmb3JtLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0u
Z2V0KCkKICAgICAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0u
Z2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm0uZ2V0KCkp
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgICAgICBjaGFuZ2Vk
Q29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMgfD0gQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5VHJh
bnNmb3JtOwogICAgICAgICAgICAgLy8gRG9uJ3QgcmV0dXJuOyBrZWVwIGxvb2tpbmcgZm9yIGFu
b3RoZXIgY2hhbmdlCi0jZWxzZQotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGNoYW5nZWRDb250
ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRp
ZgogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQu
Z2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQuZ2V0KCkKICAgICAg
ICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJdGVtLmdldCgpICE9IG90aGVy
LT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS5nZXQoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0jaWYgIVVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVk
RGF0YS5nZXQoKSkgewotICAgICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Ry
YW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9y
bVN0eWxlM0QKLSAgICAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9iYWNr
ZmFjZVZpc2liaWxpdHkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNl
VmlzaWJpbGl0eQotICAgICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Bl
cnNwZWN0aXZlICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZQot
ICAgICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3Jp
Z2luWCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5Y
Ci0gICAgICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVP
cmlnaW5ZICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdp
blkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSNlbmRpZgotCiAj
aWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgICAgICAvLyBJZiByZWdpb25zIGNoYW5n
ZSwgdHJpZ2dlciBhIHJlbGF5b3V0IHRvIHJlLWNhbGMgcmVnaW9ucy4KICAgICAgICAgaWYgKHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2Rhc2hib2FyZFJlZ2lvbnMgIT0gb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX2Rhc2hib2FyZFJlZ2lvbnMpCkBAIC03MTMsMjQgKzY5NywxNSBAQCBi
b29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheWVyUmVwYWludChjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXIsIHVuc2lnbmVkJgogI2VuZGlmCiAKICAgICBpZiAocmFyZU5vbkluaGVyaXRl
ZERhdGEtPm9wYWNpdHkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5vcGFjaXR5KSB7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBjaGFuZ2VkQ29udGV4
dFNlbnNpdGl2ZVByb3BlcnRpZXMgfD0gQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5T3BhY2l0eTsK
ICAgICAgICAgLy8gRG9uJ3QgcmV0dXJuOyBrZWVwIGxvb2tpbmcgZm9yIGFub3RoZXIgY2hhbmdl
LgotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydGllcyk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgfQogCiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQogICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXIu
Z2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci5nZXQoKQogICAg
ICAgICAmJiAqcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpICE9ICpvdGhlci0+
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLmdldCgpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRp
ZXMgfD0gQ29udGV4dFNlbnNpdGl2ZVByb3BlcnR5RmlsdGVyOwogICAgICAgICAvLyBEb24ndCBy
ZXR1cm47IGtlZXAgbG9va2luZyBmb3IgYW5vdGhlciBjaGFuZ2UuCi0jZWxzZQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZgogICAgIH0KICNlbmRpZgogCkBAIC03OTEsNyArNzY2LDYgQEAg
Ym9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBhaW50SWZUZXh0T3JCb3JkZXJPck91
dGxpbmUoY29uc3QgUmVuZGVyU3R5bGUKIAogYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWly
ZXNSZWNvbXBvc2l0ZUxheWVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmKSBj
b25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAocmFyZU5v
bkluaGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgp
KSB7CiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNE
ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV90cmFuc2Zvcm1TdHlsZTNECiAgICAg
ICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9iYWNrZmFjZVZpc2liaWxpdHkgIT0g
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNlVmlzaWJpbGl0eQpAQCAtODAw
LDkgKzc3NCw3IEBAIGJvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUmVjb21wb3NpdGVM
YXllcihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnCiAgICAgICAgICAgICB8fCByYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJzcGVjdGl2ZU9yaWdpblkgIT0gb3RoZXItPnJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG90aGVyKTsKLSNlbmRpZgorCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC04NDAsMTAgKzgxMiw4IEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBj
aGFuZ2VkQ29uCiAgICAgaWYgKGNoYW5nZVJlcXVpcmVzUmVwYWludChvdGhlciwgY2hhbmdlZENv
bnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5j
ZVJlcGFpbnQ7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGNo
YW5nZVJlcXVpcmVzUmVjb21wb3NpdGVMYXllcihvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRp
dmVQcm9wZXJ0aWVzKSkKICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlY29tcG9zaXRl
TGF5ZXI7Ci0jZW5kaWYKIAogICAgIGlmIChjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRleHRPckJv
cmRlck9yT3V0bGluZShvdGhlciwgY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkK
ICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnRJZlRleHRPckJvcmRlck9yT3V0
bGluZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5k
ZXggNzNhNTM1MGNlMTRmY2UzZjI0ODA1ZWIyOWMzOGNlZmIzYjdlNTUyNi4uOWRiNzNmM2VlNTQz
MDFiNjY5NDU1YTEyNWEyYjhkMDZjNGMzNjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTkyNSwxMCArOTI1LDggQEAgcHVibGljOgogICAg
IGNvbnN0IExlbmd0aFNpemUmIHBhZ2VTaXplKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fcGFnZVNpemU7IH0KICAgICBQYWdlU2l6ZVR5cGUgcGFnZVNpemVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZVNpemVUeXBlPihyYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9wYWdlU2l6ZVR5cGUpOyB9CiAgICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIC8vIFdoZW4gc2V0LCB0aGlzIGVuc3VyZXMgdGhhdCBzdHlsZXMgY29tcGFy
ZSBhcyBkaWZmZXJlbnQuIFVzZWQgZHVyaW5nIGFjY2VsZXJhdGVkIGFuaW1hdGlvbnMuCiAgICAg
Ym9vbCBpc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVO
b25Jbmhlcml0ZWREYXRhLT5tX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbjsgfQotI2VuZGlm
CiAKICAgICBMaW5lQm94Q29udGFpbiBsaW5lQm94Q29udGFpbigpIGNvbnN0IHsgcmV0dXJuIHJh
cmVJbmhlcml0ZWREYXRhLT5tX2xpbmVCb3hDb250YWluOyB9CiAgICAgY29uc3QgTGluZUNsYW1w
VmFsdWUmIGxpbmVDbGFtcCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5s
aW5lQ2xhbXA7IH0KQEAgLTE0MzUsOSArMTQzMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBh
Z2VTaXplVHlwZShQYWdlU2l6ZVR5cGUgdCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LCBtX3BhZ2VTaXplVHlwZSwgdCk7IH0KICAgICB2b2lkIHJlc2V0UGFnZVNpemVUeXBlKCkgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3BhZ2VTaXplVHlwZSwgUEFHRV9TSVpFX0FV
VE8pOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRJ
c1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbihib29sIGIgPSB0cnVlKSB7IFNFVF9WQVIocmFy
ZU5vbkluaGVyaXRlZERhdGEsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uLCBiKTsgfQot
I2VuZGlmCiAKICAgICB2b2lkIHNldExpbmVCb3hDb250YWluKExpbmVCb3hDb250YWluIGMpIHsg
U0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgbV9saW5lQm94Q29udGFpbiwgYyk7IH0KICAgICB2
b2lkIHNldExpbmVDbGFtcChMaW5lQ2xhbXBWYWx1ZSBjKSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEsIGxpbmVDbGFtcCwgYyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggMTFiNDI4NTU5MmVkMWI5
Y2U1ZGVkZTA3MGNlMWQ4YjMyZGJhODQzMC4uZmE0YWMxYzZjYzViMGI0ZDhmMDQxN2ExYzZlZDBj
MjY0YmZiZTJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTQ2LDkgKzQ2LDcgQEAgZW51bSBQcmludENvbG9y
QWRqdXN0IHsKIC8vIC0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0IC0gQSBmdWxsIGxheW91dCBpcyBy
ZXF1aXJlZC4KIGVudW0gU3R5bGVEaWZmZXJlbmNlIHsKICAgICBTdHlsZURpZmZlcmVuY2VFcXVh
bCwKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgU3R5bGVEaWZmZXJlbmNl
UmVjb21wb3NpdGVMYXllciwKLSNlbmRpZgogICAgIFN0eWxlRGlmZmVyZW5jZVJlcGFpbnQsCiAg
ICAgU3R5bGVEaWZmZXJlbmNlUmVwYWludElmVGV4dE9yQm9yZGVyT3JPdXRsaW5lLAogICAgIFN0
eWxlRGlmZmVyZW5jZVJlcGFpbnRMYXllciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCBk
MmJkNTZmNzBjZjFmNjk0OWU1MmU4MDQ3ZDc0Yjc1YzhhM2MxNDE2Li42ODQwYzI1ODVmOThlYmJm
YzU1NzQ0YzJlMzgxMTcwZjA0NGE3ZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC04
Niw5ICs4Niw3IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEoKQogICAgICwgbV90ZXh0RGVjb3JhdGlvblN0eWxlKFJlbmRlclN0eWxlOjppbml0
aWFsVGV4dERlY29yYXRpb25TdHlsZSgpKQogICAgICwgbV93cmFwRmxvdyhSZW5kZXJTdHlsZTo6
aW5pdGlhbFdyYXBGbG93KCkpCiAgICAgLCBtX3dyYXBUaHJvdWdoKFJlbmRlclN0eWxlOjppbml0
aWFsV3JhcFRocm91Z2goKSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
LCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbihmYWxzZSkKLSNlbmRpZgogICAgICwgbV9o
YXNBc3BlY3RSYXRpbyhmYWxzZSkKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgICwg
bV9lZmZlY3RpdmVCbGVuZE1vZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxCbGVuZE1vZGUoKSkKQEAg
LTE2Niw5ICsxNjQsNyBAQCBpbmxpbmUgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25JbgogICAgICwgbV90ZXh0RGVj
b3JhdGlvblN0eWxlKG8ubV90ZXh0RGVjb3JhdGlvblN0eWxlKQogICAgICwgbV93cmFwRmxvdyhv
Lm1fd3JhcEZsb3cpCiAgICAgLCBtX3dyYXBUaHJvdWdoKG8ubV93cmFwVGhyb3VnaCkKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFu
aW1hdGlvbihvLm1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKQotI2VuZGlmCiAgICAgLCBt
X2hhc0FzcGVjdFJhdGlvKG8ubV9oYXNBc3BlY3RSYXRpbykKICNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQogICAgICwgbV9lZmZlY3RpdmVCbGVuZE1vZGUoby5tX2VmZmVjdGl2ZUJsZW5kTW9k
ZSkKQEAgLTI1Nyw5ICsyNTMsNyBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYgbykgYwogICAgICAgICAm
JiBtX3RleHREZWNvcmF0aW9uU3R5bGUgPT0gby5tX3RleHREZWNvcmF0aW9uU3R5bGUKICAgICAg
ICAgJiYgbV93cmFwRmxvdyA9PSBvLm1fd3JhcEZsb3cKICAgICAgICAgJiYgbV93cmFwVGhyb3Vn
aCA9PSBvLm1fd3JhcFRocm91Z2gKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgICAgICYmICFtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbiAmJiAhby5tX3J1bm5pbmdB
Y2NlbGVyYXRlZEFuaW1hdGlvbgotI2VuZGlmCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykK
ICAgICAgICAgJiYgbV9lZmZlY3RpdmVCbGVuZE1vZGUgPT0gby5tX2VmZmVjdGl2ZUJsZW5kTW9k
ZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA0NTIzZjNiZTRjNzY4YWNkZTZhOWZl
MzAzZTAwNWNlNTE0NWU0ZDcyLi4zYmMyODI1YjkzNjQ4Yzk3YjBmYzA1ZDk0YmRmMWIxYzdmYWMw
MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTE4Niw5ICsxODYsNyBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgbV93cmFwRmxvdzogMzsgLy8gV3JhcEZsb3cKICAgICB1bnNpZ25lZCBtX3dy
YXBUaHJvdWdoOiAxOyAvLyBXcmFwVGhyb3VnaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHVuc2lnbmVkIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uIDogMTsK
LSNlbmRpZgogCiAgICAgdW5zaWduZWQgbV9oYXNBc3BlY3RSYXRpbyA6IDE7IC8vIFdoZXRoZXIg
b3Igbm90IGFuIGFzcGVjdCByYXRpbyBoYXMgYmVlbiBzcGVjaWZpZWQuCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1ZjQ2MjM5M2JkMmIyNjljNDE1M2QwM2IyNDJmZWMx
MzA2ODBhNDk0Li43ZDhlZmM1NGI5ODVlY2JhM2Q3MDIxYjNiYTRjN2ViMTY4NWM3MTFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNjcsMTMgKzI2NywxMiBAQCB2b2lk
IEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIHBhZ2Ut
PnNldFBhZ2VTY2FsZUZhY3RvcigxLCBJbnRQb2ludCgwLCAwKSk7CiAgICAgcGFnZS0+c2V0UGFn
aW5hdGlvbihQYWdpbmF0aW9uKCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIEZyYW1lVmlldyogbWFpbkZyYW1lVmlldyA9IHBhZ2UtPm1haW5GcmFtZSgpLnZpZXco
KTsKICAgICBpZiAobWFpbkZyYW1lVmlldykgewogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRI
ZWFkZXJIZWlnaHQoMCk7CiAgICAgICAgIG1haW5GcmFtZVZpZXctPnNldEZvb3RlckhlaWdodCgw
KTsKICAgICB9Ci0jZW5kaWYKKwogICAgIFRleHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFja3Mo
ZmFsc2UpOwogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0
b3I8U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3Jv
bGxiYXJzKGZhbHNlKTsKQEAgLTE3NTQsMTIgKzE3NTMsOSBAQCB2b2lkIEludGVybmFsczo6c2V0
SGVhZGVySGVpZ2h0KGZsb2F0IGhlaWdodCkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250
ZXh0RG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKQog
ICAgICAgICByZXR1cm47Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOwogICAgIGZyYW1lVmlldy0+
c2V0SGVhZGVySGVpZ2h0KGhlaWdodCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShoZWlnaHQp
OwotI2VuZGlmCiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRGb290ZXJIZWlnaHQoZmxvYXQgaGVp
Z2h0KQpAQCAtMTc2NywxMCArMTc2Myw5IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGb290ZXJIZWln
aHQoZmxvYXQgaGVpZ2h0KQogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVu
dCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpCiAgICAgICAgIHJl
dHVybjsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCk7CiAgICAgZnJhbWVWaWV3LT5zZXRGb290ZXJI
ZWlnaHQoaGVpZ2h0KTsKLSNlbmRpZgogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCmluZGV4IDczMmRkYzFhZmMz
ZTUxM2E1YjY4YmNkYjQwMGU1ODRlZjQ2ODZkYjYuLjU1ZmNlMjM3YjY4MDZhZmQzNWUyNjIxNGYx
ZWEwNWM5OGI3MjQ1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5j
cHAKQEAgLTE5LDcgKzE5LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYgVVNF
KFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjaW5jbHVkZSAiQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuaCIKIApAQCAtMTIyLDQgKzEyMiw0IEBAIEdyYXBoaWNzQ29udGV4dDNEKiBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Y29udGV4dCgpCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCmluZGV4IDFlYjc5NmI4ZDg1NDk4YTU2YWQ0
N2Y4YTgxODUwMmE2NjY5ZmYxODEuLjI0ODE1MmVlM2RjOWEzZTljZGVjY2JkZDEzYmFkMmMzMTFm
YzBmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaApAQCAtMjMsNyAr
MjMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRlICJU
ZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oIgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC02
Miw1ICs2Miw1IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNlbmRpZiAvLyBBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dEVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCAyNDBhYzAxZTQ3MGFmM2RmMzBi
MTRmNTIxOGUwMjk5ZWQzY2E4YTRiLi45YTg4NWJlMzY0MDU1N2EyZDcxMjdjNmIzNTMxYWRmMWZm
ZGI5NjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAKQEAgLTYxNCw3ICs2MTQsNiBAQCBQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gQ2hyb21lQ2xpZW50RWZsOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51RWZsKGNsaWVudCkp
OwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJvbWVDbGll
bnRFZmw6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogcm9v
dExheWVyKQogewogICAgIGV3a192aWV3X3Jvb3RfZ3JhcGhpY3NfbGF5ZXJfc2V0KG1fdmlldywg
cm9vdExheWVyKTsKQEAgLTYzNCw3ICs2MzMsNiBAQCBDaHJvbWVDbGllbnQ6OkNvbXBvc2l0aW5n
VHJpZ2dlckZsYWdzIENocm9tZUNsaWVudEVmbDo6YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcgog
ewogICAgIHJldHVybiBBbGxUcmlnZ2VyczsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQogYm9vbCBDaHJvbWVDbGllbnRFZmw6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5oCmluZGV4IGYyM2NkMGNiM2JjOTgzNjI3MTM1NzJmMzEwZmE0YzIzYmY0OGRiNWEuLjBjMDky
ZTc4MWNlMDI0Y2MzNjI5MDc5YzZjMWUzZmE3YjU0MWE5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0xMjgsMTIgKzEy
OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKTsK
ICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpOwog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogICAgIHZp
cnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMo
KSBjb25zdDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQqLCBib29sIHdpdGhLZXlib2FyZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuY3BwCmluZGV4IDZkNDA5YzA3MzM2MDljOTFhMTY3MGY2
NzczOTNhNzY4YTdhMjAzNzkuLmQ3MDM4ODRiZDI1OWRlOTI2YzdhOTNiYTJlMmNiNGZhOGJhMjgw
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGll
bnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGll
bnRFZmwuY3BwCkBAIC0zNiw3ICszNiw2IEBAIFBhZ2VDbGllbnRFZmw6On5QYWdlQ2xpZW50RWZs
KCkKIHsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgUGFnZUNs
aWVudEVmbDo6Y3JlYXRlRXZhc09iamVjdEZvckFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoRXZhc19O
YXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVj
dCkKIHsKICAgICByZXR1cm4gZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0
X2NyZWF0ZShtX3ZpZXcsIG5hdGl2ZVN1cmZhY2UsIHJlY3QpOwpAQCAtNDYsNCArNDUsMyBAQCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogUGFnZUNsaWVudEVmbDo6YWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQoKQogewogICAgIHJldHVybiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19jb250ZXh0X2dldChtX3ZpZXcpOwogfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50RWZsLmgKaW5kZXggNDUxNmQ0NmJiMGM5
YzI0ZmM2ZTgxNDdlOWNhMDliYmYxMTkwOWRmYi4uYjk0NTNkNGM3MWZkZjRmZWI2MTY1MzIzZjA4
MGQzNjE4YWZjODFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvUGFnZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L1BhZ2VDbGllbnRFZmwuaApAQCAtMzMsMTAgKzMzLDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFBhZ2VDbGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpOwogICAgIHZpcnR1YWwgflBhZ2VDbGll
bnRFZmwoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGNy
ZWF0ZUV2YXNPYmplY3RGb3JBY2NlbGVyYXRlZENvbXBvc2l0aW5nKEV2YXNfTmF0aXZlX1N1cmZh
Y2UqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0QqIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KCk7Ci0jZW5kaWYKIAogICAgIEV2
YXNfT2JqZWN0KiB2aWV3KCkgeyByZXR1cm4gbV92aWV3OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19wcml2YXRlLmgKaW5kZXggMTFlYzFhZjAzMDBkZTJjZjNjZGQ4NjgzYzZhNzhjYzkwZDFlYWY3
YS4uY2M5MTQ5NDg0YTZlZDg0NjllZGI1ZjRmMGFjMzIzMTkwYTQzMjQxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTMwLDEwICszMCw4IEBACiAKIC8vIGZvcndhcmQgZGVj
bGFyYXRpb25zCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBHcmFwaGljc0xheWVyOwot
I2VuZGlmCiB9CiAKIHN0cnVjdCBFd2tfV2luZG93X09iamVjdF9DbGVhcmVkX0V2ZW50IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDhhMWZjZTc2M2Y2YWQ5ZDdkMDAwYjE5NmRk
ZmFjOTkzYzA4YmE4ZWIuLjRlZmU3MzM2ZmViNDlhOWEzODMyNzllNzRjN2Y1ZDJiMWNiNDJjZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgImV3a192aWV3LmgiCiAKKyNpbmNsdWRlICJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkTGlzdC5oIgogI2luY2x1ZGUgIkJyaWRnZS5o
IgpAQCAtMTEwLDEwICsxMTEsNiBAQAogI2luY2x1ZGUgIkJhdHRlcnlDbGllbnRFZmwuaCIKICNl
bmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIkFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShORVRX
T1JLX0lORk8pCiAjaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwuaCIKICNlbmRpZgpAQCAt
MjYwLDExICsyNTcsOSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgV2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHM7CiAgICAgRXdrX0hpc3Rv
cnkqIGhpc3Rvcnk7CiAgICAgT3duUHRyPFBhZ2VDbGllbnRFZmw+IHBhZ2VDbGllbnQ7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxXZWJDb3JlOjpBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dD4gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ7CiAg
ICAgYm9vbCBpc0NvbXBvc2l0aW5nQWN0aXZlOwogICAgIFJlZlB0cjxFdmFzX09iamVjdD4gY29t
cG9zaXRpbmdPYmplY3Q7Ci0jZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAg
ICBXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqIGNvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRp
ZgpAQCAtNzU3LDEzICs3NTIsMTEgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3
a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwYWdl
U2V0dGluZ3Muc2V0RnVsbFNjcmVlbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKICAgICBwYWdlU2V0
dGluZ3Muc2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQodHJ1ZSk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHBhZ2VTZXR0aW5ncy5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSk7CiAgICAgY2hhciogZGVidWdWaXN1YWxzRW52aXJv
bm1lbnQgPSBnZXRlbnYoIldFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKTsK
ICAgICBib29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCAmJiAh
c3RyY21wKGRlYnVnVmlzdWFsc0Vudmlyb25tZW50LCAiMSIpOwogICAgIHBhZ2VTZXR0aW5ncy5z
ZXRTaG93RGVidWdCb3JkZXJzKHNob3dEZWJ1Z1Zpc3VhbHMpOwogICAgIHBhZ2VTZXR0aW5ncy5z
ZXRTaG93UmVwYWludENvdW50ZXIoc2hvd0RlYnVnVmlzdWFscyk7Ci0jZW5kaWYKIAogICAgIHVy
bCA9IHBhZ2VTZXR0aW5ncy51c2VyU3R5bGVTaGVldExvY2F0aW9uKCk7CiAgICAgcHJpdi0+c2V0
dGluZ3MudXNlclN0eWxlc2hlZXQgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCh1cmwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CkBAIC04NDksOSArODQyLDcgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSkKICAgICBwcml2LT5jb250ZXh0TWVudSA9IDA7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBwcml2LT5pc0NvbXBvc2l0aW5nQWN0aXZlID0gZmFsc2U7
Ci0jZW5kaWYKIAogICAgIHJldHVybiBwcml2OwogfQpAQCAtODkwLDkgKzg4MSw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiAg
ICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShwcml2LT5jb250ZXh0TWVudSk7CiAjZW5kaWYK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBwcml2LT5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCA9IG51bGxwdHI7Ci0jZW5kaWYKIAogICAgIGRlbGV0ZSBwcml2
OwogfQpAQCAtNDY3Niw3ICs0NjY1LDYgQEAgdm9pZCBld2tfdmlld19pbnNwZWN0b3Jfdmlld19z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWUKICNlbmRp
ZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBfZXdrX3ZpZXdf
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfY2Iodm9pZCogZGF0YSwgRXZhc19PYmplY3QqKQogewog
ICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdiA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1By
aXZhdGVfRGF0YSo+KGRhdGEpOwpAQCAtNDc2NCw3ICs0NzUyLDYgQEAgdm9pZCBld2tfdmlld19t
YXJrX2Zvcl9zeW5jKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIC8vIEl0IHdpbGwgY2FsbCB0
aGUgcGl4ZWwgZ2V0IGNhbGxiYWNrIHRoZW4uCiAgICAgZXZhc19vYmplY3RfaW1hZ2VfcGl4ZWxz
X2RpcnR5X3NldChwcml2LT5jb21wb3NpdGluZ09iamVjdC5nZXQoKSwgdHJ1ZSk7CiB9Ci0jZW5k
aWYKIAogdm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfcHJpdmF0ZS5oCmluZGV4IDdlMjEzZDEyZDgwN2Q3MjRkYjM1MDdmYjFhYTQ2ZGFmZTQ1M2E3
ODkuLmRjMTFiMDFlMTAxMDY3ZDI0YTE2ZjQ3OWRmMjk4MjYzZjg4ZjBjYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzYsMTAgKzM2LDggQEAgY2xhc3Mg
Q29sb3JDaG9vc2VyQ2xpZW50OwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvcjsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7Ci0jZW5kaWYKIGNsYXNzIEhUTUxQbHVnSW5FbGVtZW50OwogY2xhc3MgSW50
UmVjdDsKIGNsYXNzIEludFNpemU7CkBAIC0xNTEsMTIgKzE0OSwxMCBAQCBXZWJDb3JlOjpGbG9h
dFJlY3QgZXdrX3ZpZXdfcGFnZV9yZWN0X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7
CiB2b2lkIGV3a192aWV3X21peGVkX2NvbnRlbnRfZGlzcGxheWVkX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBoYXNEaXNwbGF5ZWQpOwogdm9pZCBld2tfdmlld19taXhlZF9jb250ZW50
X3J1bl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgaGFzUnVuKTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19OYXRpdmVfU3Vy
ZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCk7CiBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRCogZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdf
Y29udGV4dF9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld19yb290X2dy
YXBoaWNzX2xheWVyX3NldChFdmFzX09iamVjdCogZXdrVmlldywgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciogcm9vdExheWVyKTsKIHZvaWQgZXdrX3ZpZXdfbWFya19mb3Jfc3luYyhFdmFzX09iamVj
dCogZXdrVmlldyk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQg
ZXdrX3ZpZXdfZnVsbHNjcmVlbl9lbnRlcihjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA2ZmQ3ZTNjMTE3YjBjZmRkYjJiYTI4
ZDVhZjFhYTEzZDg5NWMzNDA0Li41ZDRlODQ4MmRhMGE3YzYwZmE2ZTY1ZjYzNWVlOTczMDc4NjVm
Yzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKQEAgLTM3LDggKzM3LDYgQEAK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oIgogI2VuZGlmCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2xpZW50IHsKQEAgLTEwMSw1ICs5OSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2VuZGlm
IC8vIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRHTC5jcHAKaW5kZXggZjQyOTk2MDVmYWZhODRiY2ZlNGFlMjE0NWRhYzMxNTEw
ZjY4MGU2Yy4uNDUzNTY4NmYyMGRiNTJiOWEwMmJhODk2NzA3N2JiZDE2YzZmMWZjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dC5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCiAjaW5jbHVkZSAiQ2Fpcm9V
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQwNiw0ICs0MDYsNCBAQCB2
b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljcwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dM
KQorI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IDA0NDMxMzVi
YTk4NDMwZjJhNGM4OTZkOGFmNTI4ZTgyZDA5MzE1MDAuLmY2MWY5ZGFiYmY1MTlhMjBkNDkwNzRl
NGRiN2Y1MGU3M2FiODgwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNDU1LDEzICs0NTUsMTEgQEAgc3RhdGlj
IHZvaWQgY2xlYXJFdmVyeXdoZXJlSW5CYWNraW5nU3RvcmUoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY2Fpcm9fdCogY3IpCiAKIHZvaWQgQ2hyb21lQ2xpZW50Ojp3aWRnZXRTaXplQ2hhbmdlZChj
b25zdCBJbnRTaXplJiBvbGRXaWRnZXRTaXplLCBJbnRTaXplIG5ld1NpemUpCiB7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0KiBjb21wb3NpdGluZ0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0LmdldCgpOwogICAgIGlmIChjb21wb3NpdGluZ0NvbnRleHQtPmVuYWJs
ZWQoKSkgewogICAgICAgICBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LT5yZXNpemVSb290TGF5ZXIobmV3U2l6ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0jZW5kaWYKIAogICAgIC8vIEdyb3cgdGhlIGJhY2tpbmcgc3RvcmUgYnkgYXQgbGVhc3QgMS41
IHRpbWVzIHRoZSBjdXJyZW50IHNpemUuIFRoaXMgcHJldmVudHMKICAgICAvLyBsb3RzIG9mIHVu
bmVjZXNzYXJ5IGFsbG9jYXRpb25zIGR1cmluZyBhbiBvcGFxdWUgcmVzaXplLgpAQCAtNjMyLDEw
ICs2MzAsOCBAQCB2b2lkIENocm9tZUNsaWVudDo6cGFpbnQoV2ViQ29yZTo6VGltZXI8Q2hyb21l
Q2xpZW50PiopCiAKIHZvaWQgQ2hyb21lQ2xpZW50Ojpmb3JjZVBhaW50KCkKIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fd2ViVmlldy0+cHJpdi0+YWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotI2Vu
ZGlmCiAKICAgICBtX2ZvcmNlUGFpbnQgPSB0cnVlOwogICAgIHBhaW50KDApOwpAQCAtNjQ4LDEz
ICs2NDQsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpCiAKIHZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVk
aWF0ZSkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQqIGFjQ29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+YWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKGFjQ29udGV4dC0+ZW5hYmxl
ZCgpKSB7CiAgICAgICAgIGFjQ29udGV4dC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERp
c3BsYXkodXBkYXRlUmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAg
IGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjY2LDEzICs2
NjAsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm8KIHsKICAgICBtX2FkanVzdG1lbnRXYXRj
aGVyLnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnNMYXRlcigpOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
KiBhY0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmdldCgpOwogICAgIGlmIChhY0NvbnRleHQtPmVuYWJsZWQoKSkgewogICAgICAgICBhY0Nv
bnRleHQtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KHVwZGF0ZVJlY3QpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBpbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOwogfQpAQCAtNjgxLDcgKzY3Myw2IEBA
IHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IElu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiB7CiAgICAgbV9hZGp1c3RtZW50V2F0Y2hlci51cGRh
dGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzTGF0ZXIoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogY29tcG9z
aXRpbmdDb250ZXh0ID0gbV93ZWJWaWV3LT5wcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dC5nZXQoKTsKICAgICBpZiAoY29tcG9zaXRpbmdDb250ZXh0LT5lbmFibGVkKCkpIHsKICAg
ICAgICAgQVNTRVJUKCFyZWN0VG9TY3JvbGwuaXNFbXB0eSgpKTsKQEAgLTY5MCw3ICs2ODEsNiBA
QCB2b2lkIENocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJ
bnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbgogICAgICAgICBjb21wb3NpdGluZ0NvbnRleHQtPnNj
cm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhyZWN0VG9TY3JvbGwsIGRlbHRhKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgbV9yZWN0c1RvU2Nyb2xsLmFwcGVuZChyZWN0
VG9TY3JvbGwpOwogICAgIG1fc2Nyb2xsT2Zmc2V0cy5hcHBlbmQoZGVsdGEpOwpAQCAtMTAwMCw3
ICs5OTAsNiBAQCB2b2lkIENocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqKQogfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiB2b2lkIENocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUq
IGZyYW1lLCBHcmFwaGljc0xheWVyKiByb290TGF5ZXIpCiB7CiAgICAgQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQqIGNvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0LmdldCgpOwpAQCAtMTA0Miw2ICsxMDMxLDUgQEAgQ2hyb21lQ2xpZW50
OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGlu
Z1RyaWdnZXJzKCkKICAgICByZXR1cm4gQWxsVHJpZ2dlcnM7CiAjZW5kaWYKIH0KLSNlbmRpZgog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oCmluZGV4IDUxZDQzYWFkNjI0MGQyMzg2ZGQxMjhmZGRlNDQwYzJhZDBlMGFiNWUuLjFk
ZTdmMmY3MDg5ZTI5MDY1ZmZjY2RjMzQzN2ExZjQxOTA1NTJlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC0xNDQsMTIg
KzE0NCwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpIAogICAgICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCk7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogICAgICAgICB2aXJ0dWFsIENv
bXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3Q7
Ci0jZW5kaWYgCiAKICAgICAgICAgdm9pZCBwZXJmb3JtQWxsUGVuZGluZ1Njcm9sbHMoKTsKICAg
ICAgICAgdm9pZCBwYWludChUaW1lcjxDaHJvbWVDbGllbnQ+Kik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggNzU3ZmVlM2JhMGRkY2I4ZjY2YmRkNmNj
MDNmM2FhY2Y5YzVkMDk2ZS4uMDc5NzEzMTZiNzBhMjJmZmM1Zjc2OTgzNThlOTRjODc3MzU5ZDNh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMzYw
NiwxMyArMzYwNiwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRp
bmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRNZWRpYVN0cmVhbUVuYWJsZWQoc2V0dGluZ3NQ
cml2YXRlLT5lbmFibGVNZWRpYVN0cmVhbSk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nU2V0dGluZyhj
b3JlU2V0dGluZ3MsIHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Zyk7CiAgICAgY2hhciogZGVidWdWaXN1YWxzRW52aXJvbm1lbnQgPSBnZXRlbnYoIldFQktJVF9T
SE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKTsKICAgICBib29sIHNob3dEZWJ1Z1Zpc3Vh
bHMgPSBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCAmJiAhc3RyY21wKGRlYnVnVmlzdWFsc0Vudmly
b25tZW50LCAiMSIpOwogICAgIGNvcmVTZXR0aW5ncy5zZXRTaG93RGVidWdCb3JkZXJzKHNob3dE
ZWJ1Z1Zpc3VhbHMpOwogICAgIGNvcmVTZXR0aW5ncy5zZXRTaG93UmVwYWludENvdW50ZXIoc2hv
d0RlYnVnVmlzdWFscyk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgY29y
ZVNldHRpbmdzLnNldFdlYkF1ZGlvRW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVdlYkF1
ZGlvKTsKQEAgLTM3NTgsMTAgKzM3NTYsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1BhcgogICAg
ICAgICBzZXR0aW5ncy5zZXRXZWJHTEVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUp
KTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVsc2Ug
aWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmciKSkKICAgICAgICAgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ1NldHRpbmcoc2V0dGlu
Z3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShX
RUJfQVVESU8pCiAgICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS13
ZWJhdWRpbyIpKQpAQCAtMzg4NSwxMCArMzg4MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
dmlld19pbml0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAjZW5kaWYKIAogICAgIHByaXYtPnNl
bGZTY3JvbGxpbmcgPSBmYWxzZTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBwcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCA9IEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpjcmVhdGUod2ViVmlldyk7Ci0jZW5kaWYKIAogICAgIGdfc2lnbmFs
X2Nvbm5lY3Qod2ViVmlldywgImRpcmVjdGlvbi1jaGFuZ2VkIiwgR19DQUxMQkFDSyh3ZWJraXRX
ZWJWaWV3RGlyZWN0aW9uQ2hhbmdlZCksIDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAppbmRleCBiNWU2OTc4YTMyOTc5ZjE2NDJkYTQ2
MDVkNzhlNGQ1NjExMTUyZjBhLi4zZjY5MjdlMTYyZGIxZDIwOTYyNTBmNTZlMzgzMzNjYWUwZGY3
NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZh
dGUuaApAQCAtMTAxLDkgKzEwMSw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgewog
ICAgIFdlYkNvcmU6Okd0a0RyYWdBbmREcm9wSGVscGVyIGRyYWdBbmREcm9wSGVscGVyOwogICAg
IGJvb2wgc2VsZlNjcm9sbGluZzsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBPd25QdHI8V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dD4gYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShJQ09OREFUQUJB
U0UpCiAgICAgZ3Vsb25nIGljb25Mb2FkZWRIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2Vi
S2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAppbmRleCAxNmZiOWU0
ZTY4YzAyMWNlZDM2ZDJhMWM3MWM5OGE0OTg4MDM1ZGZkLi5iMWM5YTdmZGU1ZjAyOTNhMzdmNzU5
MDdiOTQxYTY2NDMyOGM0Zjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaApAQCAtNjcsOSArNjcsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6
Ok5vZGUqKSBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwg
dm9pZCBkaWRGbHVzaENvbXBvc2l0aW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQpp
bmRleCBiYWU0NmQzZTIzOTAwMTU5ZTA3MGU5MTQ1N2VjODJhMDQxYjI5MzFjLi5kODJkNTkzODJi
MzYzYTFiMmY5Mzc1ZTExNWU2NGY4MzJiMWZiOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC0yNDEsNyAr
MjQxLDYgQEAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNs
aWVudElPUzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFcKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNlYXJjaFBvcHVwTWVudUlPUyhjbGllbnQpKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIHZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjphdHRhY2hSb290R3JhcGhpY3NM
YXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgLy8gRklY
TUU6IGZvciBub24tcm9vdCBmcmFtZXMgd2UgcmVseSBvbiBSZW5kZXJWaWV3IHBvc2l0aW9uaW5n
IHRoZSByb290IGxheWVyLApAQCAtMjQ5LDcgKzI0OCw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
SU9TOjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzCiAgICAgLy8gU2VuZCB0aGUgZGVsZWdhdGUgbWVzc2FnZSBvbiB0aGUgd2ViIHRocmVhZCB0
byBhdm9pZCA8cmRhcjovL3Byb2JsZW0vODU2NzY3Nz4KICAgICBbW3dlYlZpZXcoKSBfVUlLaXRE
ZWxlZ2F0ZV0gX3dlYnRocmVhZF93ZWJWaWV3OndlYlZpZXcoKSBhdHRhY2hSb290TGF5ZXI6Z3Jh
cGhpY3NMYXllciA/IGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IDBdOwogfQotI2Vu
ZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpkaWRGbHVzaENvbXBvc2l0aW5nTGF5ZXJz
KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxl
Z2F0ZS5oIGIvU291cmNlL1dlYktpdC9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmgKaW5k
ZXggZGRkNjU4NmJkMGYyYmFmYzljYTJmM2U3Mzg3ZWVhZmQxYzVkNmQ5OC4uODk5MWQ4NGYzZGU2
MWMzYjMxMDAzM2M3ZDllZGJiMTc2ZmMxNGY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2Vi
Vmlldy9XZWJVSUtpdERlbGVnYXRlLmgKQEAgLTgyLDcgKzgyLDcgQEAKIC0gKHZvaWQpYWRkSW5w
dXRTdHJpbmc6KE5TU3RyaW5nICopc3RyIHdpdGhGbGFnczooTlNVSW50ZWdlcilmbGFnczsKIC0g
KHZvaWQpZGVsZXRlRnJvbUlucHV0OwogCi0vLyBBY2NlbGVyYXRlZCBjb21wb3NpdGluZzsgb25s
eSBjYWxsZWQgaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBpcyBkZWZpbmVkCisvLyBB
Y2NlbGVyYXRlZCBjb21wb3NpdGluZwogLSAodm9pZClfd2VidGhyZWFkX3dlYlZpZXc6KFdlYlZp
ZXcqKXdlYlZpZXcgYXR0YWNoUm9vdExheWVyOihpZClyb290TGF5ZXI7CiAtICh2b2lkKXdlYlZp
ZXdEaWRDb21taXRDb21wb3NpdGluZ0xheWVyQ2hhbmdlczooV2ViVmlldyopd2ViVmlldzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDdmNTkxMWFlZmUyYjdlNWI3M2U1Njkw
OGRlN2MyODgyMzkxZTJmYjIuLjU0YTNkNDgzZTU4N2EzOWJiODg2NjY4NjJlNjJiNTY5MjM0Njhi
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEyNyw5ICsxMjcsNyBAQCAt
IChCT09MKWNyZWF0ZVBsdWdpbgogCiAgICAgTlNTdHJpbmcgKnVzZXJBZ2VudCA9IFtbc2VsZiB3
ZWJWaWV3XSB1c2VyQWdlbnRGb3JVUkw6X2Jhc2VVUkwuZ2V0KCldOwogICAgIEJPT0wgYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBbW1tzZWxmIHdl
YlZpZXddIHByZWZlcmVuY2VzXSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZF07Ci0jZW5k
aWYKICAgICBfaG9zdHNMYXllcnNJbldpbmRvd1NlcnZlciA9IFtzZWxmIHdpbmRvd0hvc3RzTGF5
ZXJzSW5XaW5kb3dTZXJ2ZXJdOwogCiAgICAgX3Byb3h5ID0gTmV0c2NhcGVQbHVnaW5Ib3N0TWFu
YWdlcjo6c2hhcmVkKCkuaW5zdGFudGlhdGVQbHVnaW4oW19wbHVnaW5QYWNrYWdlLmdldCgpIHBh
dGhdLCBbX3BsdWdpblBhY2thZ2UuZ2V0KCkgcGx1Z2luSG9zdEFyY2hpdGVjdHVyZV0sIFtfcGx1
Z2luUGFja2FnZS5nZXQoKSBidW5kbGVJZGVudGlmaWVyXSwgc2VsZiwgX01JTUVUeXBlLmdldCgp
LCBfYXR0cmlidXRlS2V5cy5nZXQoKSwgX2F0dHJpYnV0ZVZhbHVlcy5nZXQoKSwgdXNlckFnZW50
LCBfc291cmNlVVJMLmdldCgpLApAQCAtMTUxLDkgKzE0OSw3IEBAIC0gKEJPT0wpY3JlYXRlUGx1
Z2luCiAtICh2b2lkKWNyZWF0ZVBsdWdpbkxheWVyCiB7CiAgICAgQk9PTCBhY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IFtbW3NlbGYgd2ViVmlld10g
cHJlZmVyZW5jZXNdIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkXTsKLSNlbmRpZgogCiAg
ICAgX3BsdWdpbkxheWVyID0gV0tNYWtlUmVuZGVyTGF5ZXIoX3Byb3h5LT5yZW5kZXJDb250ZXh0
SUQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2Nh
cGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBs
dWdpblZpZXcubW0KaW5kZXggNmQwZjNkZDhhZDkxMzZiZDgyYmUzZjM4MjVlNTViNDMzOGY4ZDk5
NS4uNTg5MGI2N2UyMDdjYjA0ZTlhZTUwM2ViYTEwNmVmOTMyNzk2YmQzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTEw
ODgsOSArMTA4OCw3IEBAIC0gKEJPT0wpY3JlYXRlUGx1Z2luCiAgICAgICAgICAgICBfcGx1Z2lu
TGF5ZXIgPSBhZG9wdE5TKChDQUxheWVyICopdmFsdWUpOwogCiAgICAgICAgICAgICBCT09MIGFj
Y2xlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgICAgICAgICBhY2NsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0g
W1tbc2VsZiB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWRdOwotI2VuZGlmCiAgICAgICAgICAgICBpZiAoYWNjbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZCkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgY2FuIGJlIHNoYXJlZCBi
ZXR3ZWVuIFdlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyBhbmQgV2ViTmV0c2NhcGVQbHVnaW5W
aWV3LgogICAgICAgICAgICAgICAgIC8vIFNpbmNlIHRoaXMgbGF5ZXIgaXNuJ3QgZ29pbmcgdG8g
YmUgaW5zZXJ0ZWQgaW50byBhIHZpZXcsIHdlIG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgbGF5ZXIg
YW5kIGZsaXAgaXRzIGdlb21ldHJ5CkBAIC0yMDc3LDEzICsyMDc1LDEzIEBAIC0gKE5QRXJyb3Ip
Z2V0VmFyaWFibGU6KE5QTlZhcmlhYmxlKXZhcmlhYmxlIHZhbHVlOih2b2lkICopdmFsdWUKICAg
ICAgICAgICAgICooV0tOQnJvd3NlckNvbnRhaW5lckNoZWNrRnVuY3MgKiopdmFsdWUgPSBicm93
c2VyQ29udGFpbmVyQ2hlY2tGdW5jcygpOwogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX05PX0VS
Uk9SOwogICAgICAgICB9Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAg
ICAgIGNhc2UgV0tOVlN1cHBvcnRzQ29tcG9zaXRpbmdDb3JlQW5pbWF0aW9uUGx1Z2luc0Jvb2w6
CiAgICAgICAgIHsKICAgICAgICAgICAgICooTlBCb29sICopdmFsdWUgPSBbW1tzZWxmIHdlYlZp
ZXddIHByZWZlcmVuY2VzXSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZF07CiAgICAgICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIH0KLSNlbmRpZgorCiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggZjJiNmU4Njk4ZmJlNTk4
MTBkMjg4MGVlOGRkY2ExNmU1NDg5ZjNiZS4uNDUwM2ViNGU3YTRkM2UzMDA3Zjg1MDllOWY3ZDNk
ZjhlNzgyZDhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVn
aW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udHJvbGxlci5tbQpAQCAtMjMxLDcgKzIzMSw2IEBAIC0gKEJPT0wpcGx1Z0luc0FyZVJ1bm5p
bmcKIAogLSAoQ0FMYXllciAqKXN1cGVybGF5ZXJGb3JQbHVnaW5WaWV3OihOU1ZpZXcgKil2aWV3
CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKFtzZWxmIHdlYkZyYW1lXSk7CiAgICAgRnJhbWVWaWV3KiBjb3JlVmlldyA9IGNv
cmVGcmFtZSA/IGNvcmVGcmFtZS0+dmlldygpIDogbnVsbHB0cjsKICAgICBpZiAoIWNvcmVWaWV3
KQpAQCAtMjQzLDkgKzI0Miw2IEBAIC0gKENBTGF5ZXIgKilzdXBlcmxheWVyRm9yUGx1Z2luVmll
dzooTlNWaWV3ICopdmlldwogICAgICAgICByZXR1cm4gbmlsOwogICAgIAogICAgIHJldHVybiBs
YXllckZvcldpZGdldC0+cGxhdGZvcm1MYXllcigpOwotI2Vsc2UKLSAgICByZXR1cm4gbmlsOwot
I2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBkNTA0ODkwZDdhNzhiZmRiODY4Y2VmOTNkYWI2
YmI5Nzk2M2JhZWJkLi4zM2E3NDA0NzU5ZGNlZmQ4ZTljZjdkOTRjOTYzZTI5MWU3MmYyMTRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMTY2LDcgKzE2Niw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkgb3ZlcnJpZGU7CkBAIC0xODMsNyArMTgyLDYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAg
ICAgICBBbmltYXRpb25UcmlnZ2VyKTsKICAgICB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
TykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBXZWJD
b3JlOjpOb2RlKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggMmM5ZWJmNjgyZjcxYTljMGRkM2IwN2Y3
Y2U3ODBiZDE4NGI5NDZlZC4uNzg3MzkxNzMxOTZlMjhjNzAxMjg5OTk0OTMyNDc4YzgxMGQwMTgy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQpAQCAtNjYsNiArNjYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE5hbWVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaD4KQEAgLTg0LDEwICs4
NSw2IEBACiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbXBvcnQgPFdlYkNv
cmUvR3JhcGhpY3NMYXllci5oPgotI2VuZGlmCi0KICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VT
UykgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaW1wb3J0ICJOZXRzY2FwZVBsdWdp
bkhvc3RNYW5hZ2VyLmgiCiAjZW5kaWYKQEAgLTkzMCw4ICs5MjcsNiBAQCBib29sIFdlYkNocm9t
ZUNsaWVudDo6c2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0CiAjZW5kaWYKIH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC05NjUs
OCArOTYwLDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCkKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi0jZW5kaWYKLQog
I2lmIEVOQUJMRShWSURFTykKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNj
cmVlbkZvck5vZGUoY29uc3QgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggZjdjZjY3
MjZiM2RjN2Y2ZTM4MzQ5ZjM0ZWE2OGUxYWQ2YjU4N2M4NC4uM2Y0YzMzNWFmYzA2NzdjMzBiMDcy
YTdkOTBlYzhmYjE1ZDk1YzViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTE4MjksMTIgKzE4Mjks
MTAgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKIEBpbnRlcmZhY2UgV0FLVmlldyAo
VUlLaXRTZWNyZXRzV2ViS2l0S25vd3NBYm91dFNlZVVJV2ViUGx1Z0luVmlldykKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAtIChQbGF0Zm9ybUxheWVyICopcGx1Z2luTGF5ZXI7
CiAtIChCT09MKXdpbGxQcm92aWRlUGx1Z2luTGF5ZXI7CiAtICh2b2lkKWF0dGFjaFBsdWdpbkxh
eWVyOwogLSAodm9pZClkZXRhY2hQbHVnaW5MYXllcjsKLSNlbmRpZgogQGVuZAogCiBjbGFzcyBQ
bHVnaW5XaWRnZXRJT1MgOiBwdWJsaWMgUGx1Z2luV2lkZ2V0IHsKQEAgLTE4NDQsNyArMTg0Miw2
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0CiAg
ICAgewogICAgICAgICBpZiAoIVtwbGF0Zm9ybVdpZGdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IocGx1Z2luTGF5ZXIpXSkKQEAgLTE4NzAsNyArMTg2Nyw2IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKFtwbGF0Zm9ybVdpZGdldCgpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
ZGV0YWNoUGx1Z2luTGF5ZXIpXSkKICAgICAgICAgICAgIFtwbGF0Zm9ybVdpZGdldCgpIGRldGFj
aFBsdWdpbkxheWVyXTsKICAgICB9Ci0jZW5kaWYKIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQogCkBAIC0xODgyLDEzICsxODc4LDExIEBAIHB1YmxpYzoKICAgICAgICAgOiBQbHVnaW5XaWRn
ZXQodmlldykKICAgICB7CiAgICAgfQotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
CiAgICAgewogICAgICAgICByZXR1cm4gWyhXZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3ICopcGxh
dGZvcm1XaWRnZXQoKSBwbHVnaW5MYXllcl07CiAgICAgfQotI2VuZGlmCiAKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYgdmFsdWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0KaW5kZXggMGVmYmYwODE1NjM2Nzg5YzU5NzA3Y2UyZTE1
YTgyMzgxZTRlN2IwZS4uYTJlOWU5ZTA0ZWM0Nzg3ODkxNzMxY2UxYTA3ODBhMmI2NDczZDBiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tCkBAIC04Miw3ICs4Miw2
IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAgIHJldHVybiBzZWxmOwog
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogLSAoTlNSZWN0KXZpc2libGVS
ZWN0CiB7CiAgICAgaWYgKCFfaXNTY3JvbGxpbmcpCkBAIC0xMTQsNyArMTEzLDYgQEAgLSAodm9p
ZClfaW1tZWRpYXRlU2Nyb2xsVG9Qb2ludDooTlNQb2ludCluZXdPcmlnaW4KIAogICAgIF9pc1Nj
cm9sbGluZyA9IE5POwogfQotI2VuZGlmCiAKIC0gKHZvaWQpcmVzZXRBZGRpdGlvbmFsQ2xpcAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMmE1ZTdkMDI3
MjZjNDBlNTQwNjkxYWNhMzEwYTg0ZWU3NzNiNzU4Ni4uZjQwNzU2NGY2YjQyNjE0OTE3Yzk5MTQ4
YzI3MTFmMjg0MWQ3Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCkBAIC0xMzUsOSArMTM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZh
Y3RvcnlNYWMuaD4KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JN
KElPUykKICNpbXBvcnQgIldlYlVJS2l0RGVsZWdhdGUuaCIKQEAgLTMyMyw3ICszMjEsNiBAQCAt
ICh2b2lkKWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6KGlkKXNlbmRlcjsKIEBlbmQKIAog
I2lmICFQTEFURk9STShJT1MpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogc3Rh
dGljIElNUCBvbGRTZXROZWVkc0Rpc3BsYXlJblJlY3RJTVA7CiAKIHN0YXRpYyB2b2lkIHNldE5l
ZWRzRGlzcGxheUluUmVjdChOU1ZpZXcgKnNlbGYsIFNFTCBjbWQsIE5TUmVjdCBpbnZhbGlkUmVj
dCkKQEAgLTM1Nyw3ICszNTQsNiBAQCBzdGF0aWMgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3Qo
TlNWaWV3ICpzZWxmLCBTRUwgY21kLCBOU1JlY3QgaW52YWxpZFJlY3QpCiAKICAgICBmcmFtZVZp
ZXctPmludmFsaWRhdGVSZWN0KGludmFsaWRSZWN0SW5GcmFtZVZpZXdDb29yZGluYXRlcyk7CiB9
Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiBAaW50ZXJmYWNlIE5T
QXBwbGljYXRpb24gKFdlYk5TQXBwbGljYXRpb25EZXRhaWxzKQogLSAodm9pZClzcGVha1N0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmc7CkBAIC01NTEsMTAgKzU0Nyw4IEBAIEBwdWJsaWMKICAgICBC
T09MIHN1YnZpZXdzU2V0QXNpZGU7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBOU1ZpZXcgKmxheWVySG9zdGluZ1ZpZXc7CiAgICAgQk9PTCBkcmF3aW5n
SW50b0xheWVyOwotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIE5TRXZlbnQgKm1v
dXNlRG93bkV2ZW50OyAvLyBLZXB0IGFmdGVyIGhhbmRsaW5nIHRoZSBldmVudC4KQEAgLTY2NCwx
NCArNjU4LDEyIEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICBBU1NFUlQob2xkU2V0Q3Vy
c29yRm9yTW91c2VMb2NhdGlvbklNUCk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmICghb2xkU2V0TmVlZHNEaXNwbGF5SW5SZWN0SU1QKSB7CiAgICAg
ICAgIE1ldGhvZCBzZXROZWVkc0Rpc3BsYXlJblJlY3RNZXRob2QgPSBjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChbTlNWaWV3IGNsYXNzXSwgQHNlbGVjdG9yKHNldE5lZWRzRGlzcGxheUluUmVjdDop
KTsKICAgICAgICAgQVNTRVJUKHNldE5lZWRzRGlzcGxheUluUmVjdE1ldGhvZCk7CiAgICAgICAg
IG9sZFNldE5lZWRzRGlzcGxheUluUmVjdElNUCA9IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihz
ZXROZWVkc0Rpc3BsYXlJblJlY3RNZXRob2QsIChJTVApc2V0TmVlZHNEaXNwbGF5SW5SZWN0KTsK
ICAgICAgICAgQVNTRVJUKG9sZFNldE5lZWRzRGlzcGxheUluUmVjdElNUCk7CiAgICAgfQotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2VuZGlmCiAKQEAgLTc2MCw5
ICs3NTIsNyBAQCAtICh2b2lkKWNsZWFyCiAgICAgcHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2Ug
PSAwOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbGF5
ZXJIb3N0aW5nVmlldyA9IG5pbDsKLSNlbmRpZgogfQogCiBAZW5kCkBAIC0xMzY3LDE2ICsxMzU3
LDEyIEBAIC0gKHZvaWQpX3NldEFzaWRlU3Vidmlld3MKICAgICBBU1NFUlQoIV9wcml2YXRlLT5z
dWJ2aWV3c1NldEFzaWRlKTsKICAgICBBU1NFUlQoX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPT0g
bmlsKTsKICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IF9zdWJ2aWV3czsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gV2UgbmVlZCB0byBrZWVwIHRoZSBsYXll
ci1ob3N0aW5nIHZpZXcgaW4gdGhlIHN1YnZpZXdzLCBvdGhlcndpc2UgdGhlIGxheWVycyBmbGFz
aC4KICAgICBpZiAoX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpIHsKICAgICAgICAgTlNBcnJh
eSogbmV3U3Vidmlld3MgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpfcHJpdmF0
ZS0+bGF5ZXJIb3N0aW5nVmlldywgbmlsXTsKICAgICAgICAgX3N1YnZpZXdzID0gbmV3U3Vidmll
d3M7CiAgICAgfSBlbHNlCiAgICAgICAgIF9zdWJ2aWV3cyA9IG5pbDsKLSNlbHNlCi0gICAgX3N1
YnZpZXdzID0gbmlsOwotI2VuZGlmICAgIAogICAgIF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRl
ID0gWUVTOwogI2VuZGlmCiAgfQpAQCAtMTM4NSw3ICsxMzcxLDYgQEAgLSAodm9pZClfc2V0QXNp
ZGVTdWJ2aWV3cwogIHsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEFTU0VSVChfcHJpdmF0ZS0+
c3Vidmlld3NTZXRBc2lkZSk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewogICAgICAgICBbX3N1YnZpZXdzIHJl
bGVhc2VdOwogICAgICAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKQEAg
LTEzOTMsMTAgKzEzNzgsNiBAQCAtICh2b2lkKV9zZXRBc2lkZVN1YnZpZXdzCiAgICAgICAgIEFT
U0VSVChfc3Vidmlld3MgPT0gbmlsKTsKICAgICAgICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNh
dmVkU3Vidmlld3M7CiAgICAgfQotI2Vsc2UKLSAgICBBU1NFUlQoX3N1YnZpZXdzID09IG5pbCk7
Ci0gICAgX3N1YnZpZXdzID0gX3ByaXZhdGUtPnNhdmVkU3Vidmlld3M7Ci0jZW5kaWYgICAgCiAg
ICAgX3ByaXZhdGUtPnNhdmVkU3Vidmlld3MgPSBuaWw7CiAgICAgX3ByaXZhdGUtPnN1YnZpZXdz
U2V0QXNpZGUgPSBOTzsKICNlbmRpZgpAQCAtMTYwNiwxMCArMTU4Nyw4IEBAIC0gKE5TVmlldyAq
KWhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKIAogICAgIGlmICghY2FwdHVyZUhpdHNPblN1YnZpZXdz
KSB7CiAgICAgICAgIE5TVmlldyogaGl0VmlldyA9IFtzdXBlciBoaXRUZXN0OnBvaW50XTsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChfcHJpdmF0ZSAmJiBo
aXRWaWV3ID09IF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KQogICAgICAgICAgICAgaGl0Vmll
dyA9IHNlbGY7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIGhpdFZpZXc7CiAgICAgfQogI2VuZGlm
IC8vICFQTEFURk9STShJT1MpCkBAIC0yMzQyLDIwICsyMzIxLDEyIEBAIC0gKHZvaWQpX3Jlc3Vt
ZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMKIAogLSAoQk9PTClfaXNVc2luZ0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgcmV0dXJuIF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3ICE9IG5pbDsKLSNlbHNlCi0gICAg
cmV0dXJuIE5POwotI2VuZGlmCiB9CiAKIC0gKE5TVmlldyAqKV9jb21wb3NpdGluZ0xheWVyc0hv
c3RpbmdWaWV3CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVy
biBfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldzsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKIH0KIAogLSAoQk9PTClfaXNJblByaW50TW9kZQpAQCAtMzE4MiwxMyArMzE1MywxMSBAQCAt
ICh2b2lkKXZpZXdEaWRNb3ZlVG9TdXBlcnZpZXcKICAgICBpZiAoW3NlbGYgc3VwZXJ2aWV3XSAh
PSBuaWwpCiAgICAgICAgIFtzZWxmIGFkZFN1cGVydmlld09ic2VydmVyc107CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFtzZWxmIHN1cGVydmlld10gJiYgW3Nl
bGYgX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nXSkgewogICAgICAgICBXZWJWaWV3ICp3
ZWJWaWV3ID0gW3NlbGYgX3dlYlZpZXddOwogICAgICAgICBpZiAoW3dlYlZpZXcgX3Bvc3RzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnNdKQogICAgICAgICAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpfV2ViVmll
d0RpZFN0YXJ0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbiBvYmplY3Q6d2ViVmll
dyB1c2VySW5mbzpuaWxdOwogICAgIH0KLSNlbmRpZgogfQogI2VuZGlmIC8vICFQTEFURk9STShJ
T1MpCiAKQEAgLTM2NTIsNyArMzYyMSw3IEBAIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0
CiAKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW3NlbGYgX3dlYlZpZXddOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiAhUExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShJ
T1MpCiAgICAgLy8gT25seSBkbyB0aGUgc3luY2hyb25pemF0aW9uIGRhbmNlIGlmIHdlJ3JlIGRy
YXdpbmcgaW50byB0aGUgd2luZG93LCBvdGhlcndpc2UKICAgICAvLyB3ZSByaXNrIGRpc2FibGlu
ZyBzY3JlZW4gdXBkYXRlcyB3aGVuIG5vIGZsdXNoIGlzIHBlbmRpbmcuCiAgICAgaWYgKFtOU0dy
YXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gPT0gW1tzZWxmIHdpbmRvd10gZ3JhcGhpY3ND
b250ZXh0XSAmJiBbd2ViVmlldyBfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbl0p
IHsKQEAgLTU5OTgsNyArNTk2Nyw2IEBAIC0gKEJPT0wpX25lZWRzTGF5b3V0CiAgICAgcmV0dXJu
IFtbc2VsZiBfZnJhbWVdIF9uZWVkc0xheW91dF07CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAtICh2b2lkKWF0dGFjaFJvb3RMYXllcjooQ0FMYXllciopbGF5ZXIKIHsK
ICNpZiAhUExBVEZPUk0oSU9TKQpAQCAtNjA3Myw4ICs2MDQxLDYgQEAgLSAoQk9PTClfd2ViX2lz
RHJhd2luZ0ludG9MYXllcgogI2VuZGlmCiB9CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkhUTUxWaWV3IChXZWJO
U1RleHRJbnB1dFN1cHBvcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXdJbnRlcm5hbC5oCmluZGV4IDk4NzU0MzlhNjFkYzYyZmFhOGUxYjFmYTU5MTRhYjMwNzdk
YzRmMTAuLmU0YWIwYTJkMTA1ZjMxYmFkZDM1NjYzZjhjZWRlMjI4YzA3Y2UyMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCkBAIC0zMCw5
ICszMCw3IEBACiAKICNpbXBvcnQgIldlYkhUTUxWaWV3UHJpdmF0ZS5oIgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogQGNsYXNzIENBTGF5ZXI7Ci0jZW5kaWYKIEBjbGFzcyBX
ZWJGcmFtZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjYsMTEgKzY0LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLSAodm9pZClfZGVzdHJveUFsbFdlYlBsdWdpbnM7CiAtIChCT09MKV9u
ZWVkc0xheW91dDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC0gKHZvaWQp
YXR0YWNoUm9vdExheWVyOihDQUxheWVyKilsYXllcjsKIC0gKHZvaWQpZGV0YWNoUm9vdExheWVy
OwogLSAoQk9PTClfd2ViX2lzRHJhd2luZ0ludG9MYXllcjsKLSNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TKQogLSAodm9pZClfbGF5b3V0SWZOZWVkZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlckxheWVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJSZW5kZXJMYXllci5tbQppbmRleCAzODRlZWZlNzc2ODgzNzBjOGMwMTEyYTRiYmUw
YWRhMGFhZWZjYjdhLi5lYzAwNjVhNjAxMzA4ODU4ZGJmNjk1NzZkMDgyYTUzMmFiYWNlMGM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlckxheWVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTGF5ZXIubW0KQEAgLTgwLDcg
KzgwLDYgQEAgKyAoTlNTdHJpbmcgKiljb21wb3NpdGluZ0luZm9Gb3JMYXllcjooUmVuZGVyTGF5
ZXIqKWxheWVyCiAgICAgICAgIHJldHVybiBAIiI7CiAKICAgICBOU1N0cmluZyAqbGF5ZXJUeXBl
ID0gQCIiOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJMYXll
ckJhY2tpbmcqIGJhY2tpbmcgPSBsYXllci0+YmFja2luZygpOwogICAgIHN3aXRjaCAoYmFja2lu
Zy0+Y29tcG9zaXRpbmdMYXllclR5cGUoKSkgewogICAgICAgICBjYXNlIE5vcm1hbENvbXBvc2l0
aW5nTGF5ZXI6CkBAIC0xMDIsNyArMTAxLDYgQEAgKyAoTlNTdHJpbmcgKiljb21wb3NpdGluZ0lu
Zm9Gb3JMYXllcjooUmVuZGVyTGF5ZXIqKWxheWVyCiAKICAgICBpZiAoYmFja2luZy0+aGFzQW5j
ZXN0b3JDbGlwcGluZ0xheWVyKCkpCiAgICAgICAgIGxheWVyVHlwZSA9IFtsYXllclR5cGUgc3Ry
aW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIgKGNsaXBwZWQpIl07Ci0jZW5kaWYKIAogICAgIHJldHVy
biBsYXllclR5cGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYzA4
MmY5MmY3ZWQwOGE1ZGQ3NjFmZDY4N2FjNTI1N2E4OTdhMjQ1MC4uYTU5Y2Y4NGYxOGFhM2E2MjM2
YzJhN2VkMDAzMDg3NWZmNjRhNzc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMjI5LDYgKzIyOSw3IEBACiAjaW1wb3J0IDxNb2JpbGVHZXN0YWx0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSWNvbkNv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0YXRlTm90aWZpZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmg+CkBAIC0yNDUsMTAg
KzI0Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJB
VktpdC5oPgogI2ltcG9ydCA8ZGlzcGF0Y2gvcHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0Zhc3RN
YWxsb2MuaD4KLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbXBvcnQgPFdl
YkNvcmUvR3JhcGhpY3NMYXllci5oPgotI2VuZGlmCiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykK
IAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKQEAgLTE3NDQsMTIgKzE3NDEsMTAgQEAg
LSAodm9pZClfY2xvc2UKICAgICB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBpZiAoX3ByaXZhdGUtPmxheWVyRmx1c2hDb250cm9sbGVyKSB7CiAgICAg
ICAgIF9wcml2YXRlLT5sYXllckZsdXNoQ29udHJvbGxlci0+aW52YWxpZGF0ZSgpOwogICAgICAg
ICBfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRyb2xsZXIgPSBudWxscHRyOwogICAgIH0KLSNlbmRp
ZgogICAgIAogI2lmIFVTRShHTElCKQogICAgIFtzZWxmIF9jbGVhckdsaWJMb29wT2JzZXJ2ZXJd
OwpAQCAtMzQ3Myw3ICszNDY4LDYgQEAgLSAodm9pZClfcmVzdG9yZVBsdWdJbnNGcm9tQ2FjaGUK
IAogLSAoQk9PTClfc2V0TWVkaWFMYXllcjooQ0FMYXllciopbGF5ZXIgZm9yUGx1Z2luVmlldzoo
TlNWaWV3KilwbHVnaW5WaWV3CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIFdlYlRocmVhZExvY2soKTsKIAogICAgIEZyYW1lKiBtYWluQ29yZUZyYW1lID0gW3NlbGYg
X21haW5Db3JlRnJhbWVdOwpAQCAtMzQ5NSw3ICszNDg5LDcgQEAgLSAoQk9PTClfc2V0TWVkaWFM
YXllcjooQ0FMYXllciopbGF5ZXIgZm9yUGx1Z2luVmlldzooTlNWaWV3KilwbHVnaW5WaWV3CiAg
ICAgICAgICAgICByZXR1cm4gWUVTOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmCisKICAgICBy
ZXR1cm4gTk87CiB9CiAKQEAgLTM4NzMsMzAgKzM4NjcsMjIgQEAgKyAoTlNDdXJzb3IgKilfcG9p
bnRpbmdIYW5kQ3Vyc29yCiAKIC0gKEJPT0wpX3Bvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05v
dGlmaWNhdGlvbnMKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0
dXJuIF9wcml2YXRlLT5wb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zOwot
I2Vsc2UKLSAgICByZXR1cm4gTk87Ci0jZW5kaWYKLQogfQogLSAodm9pZClfc2V0UG9zdHNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uczooQk9PTClmbGFnCiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIF9wcml2YXRlLT5wb3N0c0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdOb3RpZmljYXRpb25zID0gZmxhZzsKLSNlbmRpZgogfQogCiAtIChCT09MKV9pc1Vz
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZwogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOwogICAg
IGZvciAoRnJhbWUqIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIE5TVmlldyAqZG9jdW1lbnRW
aWV3ID0gW1traXQoZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYg
KFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSAmJiBbKFdl
YkhUTUxWaWV3ICopZG9jdW1lbnRWaWV3IF9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ10p
CiAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KLSNlbmRpZgorCiAgICAgcmV0dXJuIE5P
OwogfQogCkBAIC0zOTI3LDcgKzM5MTMsNiBAQCAtICh2b2lkKXNldFZhbGlkYXRpb25NZXNzYWdl
VGltZXJNYWduaWZpY2F0aW9uOihpbnQpbmV3VmFsdWUKIAogLSAoQk9PTClfaXNTb2Z0d2FyZVJl
bmRlcmFibGUKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IFtzZWxmIF9tYWluQ29yZUZyYW1lXTsKICAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
Y29yZUZyYW1lKSkgewogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXco
KSkgewpAQCAtMzkzNSw3ICszOTIwLDcgQEAgLSAoQk9PTClfaXNTb2Z0d2FyZVJlbmRlcmFibGUK
ICAgICAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKKwog
ICAgIHJldHVybiBZRVM7CiB9CiAKQEAgLTUyMTksNyArNTIwNCw3IEBAIC0gKHZvaWQpY2xvc2UK
ICAgICAvLyBfY2xvc2UgZXhpc3RlZCBmaXJzdCwgYW5kIHNvbWUgY2xpZW50cyBtaWdodCBiZSBj
YWxsaW5nIG9yIG92ZXJyaWRpbmcgaXQsIHNvIGNhbGwgdGhyb3VnaC4KICAgICBbc2VsZiBfY2xv
c2VdOwogCi0jaWYgUExBVEZPUk0oSU9TKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRyb2xs
ZXIpIHsKICAgICAgICAgX3ByaXZhdGUtPmxheWVyRmx1c2hDb250cm9sbGVyLT5pbnZhbGlkYXRl
KCk7CiAgICAgICAgIF9wcml2YXRlLT5sYXllckZsdXNoQ29udHJvbGxlciA9IG51bGxwdHI7CkBA
IC04MzQxLDggKzgzMjYsNiBAQCAtIChXZWJGcmFtZSAqKV9zZWxlY3RlZE9yTWFpbkZyYW1lCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LQogLSAoQk9PTClfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbgogewogICAgIHJl
dHVybiBfcHJpdmF0ZS0+bmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjsKQEAgLTg0
NjQsOCArODQ0Nyw2IEBAIC0gKHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxl
Q2FjaGVSZXBhaW50CiB9CiAjZW5kaWYKIAotI2VuZGlmCi0KICNpZiBFTkFCTEUoVklERU8pCiAt
ICh2b2lkKV9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOihXZWJDb3JlOjpOb2RlKilub2RlCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggZDcwNjhlZjg3NjJjZDVi
NmZjNDI1YjYxNDgwZDA3YTAyNjU5NzY5Mi4uMWQyOTFkN2M5MzEyMjg3MTFhYmZhYzc3ZDM1YTll
NjMyY2NmNTkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAt
ODAsNyArODAsNiBAQCBjbGFzcyBQYWdlOwogZXh0ZXJuIEJPT0wgYXBwbGljYXRpb25Jc1Rlcm1p
bmF0aW5nOwogZXh0ZXJuIGludCBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50OwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgTGF5ZXJGbHVzaENvbnRyb2xsZXI7CiAK
IGNsYXNzIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIDogcHVibGljIFdlYkNvcmU6OkxheWVy
Rmx1c2hTY2hlZHVsZXIgewpAQCAtMTE2LDcgKzExNSw2IEBAIHByaXZhdGU6CiAgICAgV2ViVmll
dyogbV93ZWJWaWV3OwogICAgIFdlYlZpZXdMYXllckZsdXNoU2NoZWR1bGVyIG1fbGF5ZXJGbHVz
aFNjaGVkdWxlcjsKIH07Ci0jZW5kaWYKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFt
ZWQgdG8gV2ViVmlld0RhdGEuCiBAaW50ZXJmYWNlIFdlYlZpZXdQcml2YXRlIDogTlNPYmplY3Qg
ewpAQCAtMjMyLDE0ICsyMzAsMTIgQEAgcHJpdmF0ZToKICAgICBCT09MIHNob3VsZFVwZGF0ZVdo
aWxlT2Zmc2NyZWVuOwogCiAgICAgQk9PTCBpbmNsdWRlc0ZsYXR0ZW5lZENvbXBvc2l0aW5nTGF5
ZXJzV2hlbkRyYXdpbmdUb0JpdG1hcDsKLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisKICAgICAvLyBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIG5leHQgdGltZSBhIFdlYkhU
TUxWaWV3IGRyYXdzLCBpdCBuZWVkcyB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHNjcmVlbiB1cGRh
dGVzCiAgICAgLy8gc28gdGhhdCB0aGUgTlNWaWV3IGRyYXdpbmcgaXMgdmlzdWFsbHkgc3luY2hy
b25pemVkIHdpdGggQ0FMYXllciB1cGRhdGVzLgogICAgIEJPT0wgbmVlZHNPbmVTaG90RHJhd2lu
Z1N5bmNocm9uaXphdGlvbjsKICAgICBCT09MIHBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05v
dGlmaWNhdGlvbnM7CiAgICAgUmVmUHRyPExheWVyRmx1c2hDb250cm9sbGVyPiBsYXllckZsdXNo
Q29udHJvbGxlcjsKLSNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBOU1Bhc3RlYm9h
cmQgKmluc2VydGlvblBhc3RlYm9hcmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbQppbmRleCAwYWIzNzNmYzc0NjUxMTRmNTc2MjE1MTNiMGU1ZGNlMWViMjlkZjNmLi42
MjMyNWFjYzI3OGFlMjI4ZTNkOWUwNTRhNDQ5YzIwZDFhYmM2N2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KQEAgLTQ2LDcgKzQ2LDYgQEAKIEJPT0wgYXBwbGlj
YXRpb25Jc1Rlcm1pbmF0aW5nID0gTk87CiBpbnQgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCA9
IDA7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIExheWVyRmx1c2hD
b250cm9sbGVyOjpzY2hlZHVsZUxheWVyRmx1c2goKQogewogICAgIG1fbGF5ZXJGbHVzaFNjaGVk
dWxlci5zY2hlZHVsZSgpOwpAQCAtNzAsNyArNjksNiBAQCBXZWJWaWV3TGF5ZXJGbHVzaFNjaGVk
dWxlcjo6V2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIoTGF5ZXJGbHVzaENvbnRyb2xsZXIqIGZs
dQogICAgICwgbV9mbHVzaENvbnRyb2xsZXIoZmx1c2hDb250cm9sbGVyKQogewogfQotI2VuZGlm
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3UHJpdmF0ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0MWQyZDE3N2QxM2U1MTg5ZDA1OWY1YTEz
YTIwNjM0OGRlZjk0N2ZjLi5mNjQ3NTc3YzkzOGMyNDBkZGQ1YzYwMDIyN2Q5N2RlNmU3NTdlNGE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTk5
LDExICs5OSw5IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfZGlz
cGF0Y2hEaWRSZWNlaXZlSWNvbkZyb21XZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZTsKICNl
bmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogLSAoQk9PTClfbmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjsKIC0gKHZvaWQpX3NldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb246KEJPT0wpbmVlZHNTeW5jaHJvbml6YXRpb247CiAtICh2b2lk
KV9zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaDsKLSNlbmRpZgogCiAjaWYgVVNFKEdMSUIp
CiAtICh2b2lkKV9zY2hlZHVsZUdsaWJDb250ZXh0SXRlcmF0aW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAKaW5kZXggN2ZmODYzYWM3NjM0
MWIwOTM2OTNlZjFjNjNjYTA3NTlkMWIwMDhlNi4uMTkzN2Y1ZjJhZmZiM2E5MTZlMWQzY2Y0MDQ2
OTQ1ODM0YTgyYTcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlci5jcHAKQEAgLTE3Niw3ICsxNzYsNiBAQCB2b2lkIEhVRFNsaWRlcjo6ZHJhZyhj
b25zdCBJbnRQb2ludCYgcG9pbnQsIGJvb2wgc3RhcnQpCiAgICAgbV9idXR0b25Qb3NpdGlvbiA9
IG1heCgwLCBtaW4obV9yZWN0LndpZHRoKCkgLSBtX2J1dHRvblNpemUsIHBvaW50LngoKSAtIG1f
ZHJhZ1N0YXJ0T2Zmc2V0KSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiBjbGFzcyBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpMYXllckNsaWVudCA6IHB1YmxpYyBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQgewogcHVibGljOgogICAgIExheWVyQ2xpZW50
KEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIqIHBhcmVudCkgOiBtX3BhcmVudChwYXJlbnQpIHsg
fQpAQCAtMjMyLDcgKzIzMSw2IEBAIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6TGF5
ZXJDbGllbnQ6OnBsYXRmb3JtQ0FMYXllckxheW91dFN1YmxheWVyc09mTGF5CiAgICAgdmlkZW9M
YXllci0+c2V0UG9zaXRpb24odmlkZW9PcmlnaW4pOwogICAgIHZpZGVvTGF5ZXItPnNldEJvdW5k
cyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCB2aWRlb1NpemUpKTsKIH0KLSNlbmRpZiAKIAogRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcigpCiAgICAg
OiBtX2h1ZFdpbmRvdygwKQpAQCAtMjQ3LDE5ICsyNDUsMTUgQEAgRnVsbHNjcmVlblZpZGVvQ29u
dHJvbGxlcjo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcigpCiAgICAgLCBtX2hpdFdpZGdldCgw
KQogICAgICwgbV9tb3ZpbmdXaW5kb3coZmFsc2UpCiAgICAgLCBtX3RpbWVyKHRoaXMsICZGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjp0aW1lckZpcmVkKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAsIG1fbGF5ZXJDbGllbnQoYWRvcHRQdHIobmV3IExheWVyQ2xpZW50
KHRoaXMpKSkKICAgICAsIG1fcm9vdENoaWxkKFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlKFBs
YXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIG1fbGF5ZXJDbGllbnQuZ2V0KCkpKQotI2Vu
ZGlmCiAgICAgLCBtX2Z1bGxzY3JlZW5XaW5kb3coYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJp
dmF0ZUZ1bGxzY3JlZW5XaW5kb3codGhpcykpKQogewogfQogCiBGdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyOjp+RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcigpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIG1fcm9vdENoaWxkLT5zZXRPd25lcigwKTsKLSNlbmRpZgog
fQogCiB2b2lkIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnNldE1lZGlhRWxlbWVudChIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCkBAIC0yODQsMTQgKzI3OCwxMiBAQCB2b2lkIEZ1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbigpCiAKICAgICBtX2Z1bGxz
Y3JlZW5XaW5kb3ctPmNyZWF0ZVdpbmRvdyhwYXJlbnRId25kKTsKICAgICA6OlNob3dXaW5kb3co
bV9mdWxsc2NyZWVuV2luZG93LT5od25kKCksIFNXX1NIT1cpOwotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBtX2Z1bGxzY3JlZW5XaW5kb3ctPnNldFJvb3RDaGlsZExheWVy
KG1fcm9vdENoaWxkKTsKIAogICAgIFBsYXRmb3JtQ0FMYXllciogdmlkZW9MYXllciA9IFBsYXRm
b3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1fbWVkaWFFbGVtZW50LT5wbGF0Zm9ybUxheWVy
KCkpOwogICAgIG1fcm9vdENoaWxkLT5hcHBlbmRTdWJsYXllcih2aWRlb0xheWVyKTsKICAgICBt
X3Jvb3RDaGlsZC0+c2V0TmVlZHNMYXlvdXQoKTsKICAgICBtX3Jvb3RDaGlsZC0+c2V0R2VvbWV0
cnlGbGlwcGVkKDEpOwotI2VuZGlmCiAKICAgICBSRUNUIHdpbmRvd1JlY3Q7CiAgICAgR2V0Q2xp
ZW50UmVjdChtX2Z1bGxzY3JlZW5XaW5kb3ctPmh3bmQoKSwgJndpbmRvd1JlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oCmluZGV4IDFjNzU1MTcw
MWQ4YjMzOTNjOTM1NTAyZGYxNWQ4N2E5YjhjNDRhMDYuLjhlMTU3ZDcwY2ZkNjViMDQ3MzNkNzQz
Y2FiNjBiY2FlMzYzZDY0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0Z1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyLmgKQEAgLTM5LDkgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IGNsYXNzIFBsYXRmb3JtQ0FMYXllcjsKLSNlbmRpZgogfQogCiBjbGFzcyBIVURXaWRnZXQgewpA
QCAtMTU4LDEyICsxNTYsMTEgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fZnVs
bHNjcmVlblNpemU7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9odWRQb3NpdGlvbjsKICAgICBP
d25QdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdz4gbV9mdWxs
c2NyZWVuV2luZG93OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGNs
YXNzIExheWVyQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBMYXllckNsaWVudDsKICAgICBPd25Q
dHI8TGF5ZXJDbGllbnQ+IG1fbGF5ZXJDbGllbnQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcj4gbV9yb290Q2hpbGQ7Ci0jZW5kaWYKIAogICAgIEhVREJ1dHRvbiBtX3BsYXlQ
YXVzZUJ1dHRvbjsKICAgICBIVURCdXR0b24gbV90aW1lU2xpZGVyQnV0dG9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggMWY0ZTlhOWQwNzY2NDZhYzhiMjhjNzIyZmQzNzNhODkyOWI5NDMzYi4uMzk2MjExOWY1NmM0
MzUzOWUxNjM4OGQyZmM0Y2VkMjgyMWZiYTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00OCw2ICs0OCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Z1bGxTY3JlZW5Db250cm9sbGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9I
VE1MTmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ljb24uaD4KQEAgLTYyLDEwICs2Myw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHdjaGFyLmg+CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+Ci0j
ZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC8vIFdoZW4geW91IGNhbGwgR2V0
T3BlbkZpbGVOYW1lLCBpZiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbCwKQEAg
LTc1MSw3ICs3NDgsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRv
Q3VycmVudEN1cnNvcigpCiAgICAgbV93ZWJWaWV3LT5zZXRMYXN0Q3Vyc29yKDo6R2V0Q3Vyc29y
KCkpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBtX3dlYlZpZXctPnNldFJvb3RDaGlsZExheWVy
KGdyYXBoaWNzTGF5ZXIpOwpAQCAtNzYxLDcgKzc1Nyw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiB7CiAgICAgbV93ZWJWaWV3LT5mbHVz
aFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KLSNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VB
ZGFwdGVyKiBXZWJDaHJvbWVDbGllbnQ6OmdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IGRhM2UxOTdmYjNlMGNmMzllNTkyZWY5MTA3M2Y4YjA1MjJlZDUzY2EuLjhhZGI5MTE1
MWRjZGRlZmU0YmMxNDRmZmEwNjMyNTQ0ODFmZGFjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzAsMTYgKzEzMCwx
NCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqKSB7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LSAgICAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJv
b3QgbGF5ZXIuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICAgICAgLy8gU2V0
cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0
byB0aGUgd2luZG93LAotICAgICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVl
biBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgotICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIHsgfQot
ICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8g
YmUgdXBkYXRlZCwgc28gd2UgbmVlZAotICAgICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQg
YmVmb3JlIHRoZSBkcmF3aW5nLgotICAgICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKTsKLSNlbmRpZgorICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NM
YXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hS
b290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKKyAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250
ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCisgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9u
IHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigp
IHsgfQorICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0
byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCisgICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJl
Zm9yZSB0aGUgZHJhd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKTsKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1YWwg
dm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCA1ZDZkYjk5NjA1YzQ5NTk0
NmYxMmE1YWU1NjA2MGQwMWUwZmE2MTNmLi5jMzM4MTZmZTkxNGFjZDRmYjdiZDU1ZTFkM2Q3ZjU5
ZTkzNWI2YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTUwLDE1
ICsxNTUwLDEyIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKEJPT0wgZW5hYmxlZCkKIAogSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6YWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoQk9PTCogZW5hYmxlZCkKIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaWYgVVNFKENBKQogICAgICplbmFibGVkID0gQ0FDRkxh
eWVyVHJlZUhvc3Q6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUoKSAmJiBib29sVmFs
dWVGb3JLZXkoV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
KTsKICNlbHNlCiAgICAgKmVuYWJsZWQgPSBUUlVFOwogI2VuZGlmCi0jZWxzZQotICAgICplbmFi
bGVkID0gRkFMU0U7Ci0jZW5kaWYKKwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCmluZGV4IGFhMmViOWQ4NzMzMzFhNWFmMGMwZjBlMGU2ZGNlNzZlYzBhMmYwZDkuLjll
Y2I0ZTcxYTI1N2QyMzdkOTM3YzMxN2I4ZDFjYjkwZjcxNTA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCkBAIC0xNjUsNyArMTY1LDcgQEAKICNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uv
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+IAogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9D
QUNGTGF5ZXJUcmVlSG9zdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+
CiAjZW5kaWYKQEAgLTM5Myw5ICszOTMsNyBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1f
bGFzdFBhblkoMCkKICAgICAsIG1feE92ZXJwYW4oMCkKICAgICAsIG1feU92ZXJwYW4oMCkKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyhmYWxzZSkKLSNlbmRpZgogICAgICwgbV9uZXh0RGlzcGxheUlzU3luY2hyb25vdXMo
ZmFsc2UpCiAgICAgLCBtX2xhc3RTZXRDdXJzb3IoMCkKICAgICAsIG1fdXNlc0xheWVyZWRXaW5k
b3coZmFsc2UpCkBAIC00MzQsMTIgKzQzMiw5IEBAIFdlYlZpZXc6On5XZWJWaWV3KCkKICAgICBB
U1NFUlQoIW1fcHJlZmVyZW5jZXMpOwogICAgIEFTU0VSVCghbV92aWV3V2luZG93KTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpZiBVU0UoQ0EpCiAgICAgQVNTRVJUKCFt
X2xheWVyVHJlZUhvc3QpOwogI2VuZGlmCi0gICAgQVNTRVJUKCFtX2JhY2tpbmdMYXllcik7Ci0j
ZW5kaWYKIAogICAgIFdlYlZpZXdDb3VudC0tOwogICAgIGdDbGFzc0NvdW50LS07CkBAIC03MDMs
OSArNjk4LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpjbG9zZSgpCiAK
ICAgICBtX2RpZENsb3NlID0gdHJ1ZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGZhbHNlKTsKLSNlbmRpZgogCiAgICAg
V2ViTm90aWZpY2F0aW9uQ2VudGVyOjpkZWZhdWx0Q2VudGVySW50ZXJuYWwoKS0+cG9zdE5vdGlm
aWNhdGlvbk5hbWUoX2JzdHJfdChXZWJWaWV3V2lsbENsb3NlTm90aWZpY2F0aW9uKS5HZXRCU1RS
KCksIHN0YXRpY19jYXN0PElXZWJWaWV3Kj4odGhpcyksIDApOwogCkBAIC03NzksMTQgKzc3Miwx
MiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmNsb3NlKCkKIAogdm9pZCBX
ZWJWaWV3OjpyZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wg
Y29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpKSB7CiAgICAgICAgIC8vIFRoZSBjb250ZW50Q2hhbmdlZCwgaW1tZWRp
YXRlLCBhbmQgcmVwYWludENvbnRlbnRPbmx5IHBhcmFtZXRlcnMgYXJlIGFsbCBiYXNlZCBvbiBh
IG5vbi0KICAgICAgICAgLy8gY29tcG9zaXRpbmcgcGFpbnRpbmcvc2Nyb2xsaW5nIG1vZGVsLgog
ICAgICAgICBhZGRUb0RpcnR5UmVnaW9uKHdpbmRvd1JlY3QpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotI2VuZGlmCiAKICAgICBpZiAoIXJlcGFpbnRDb250ZW50T25seSkgewogICAgICAgICBS
RUNUIHJlY3QgPSB3aW5kb3dSZWN0OwpAQCAtODQ1LDEyICs4MzYsMTAgQEAgdm9pZCBXZWJWaWV3
OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKICAgICAvLyBidXQg
aXQgd2FzIGJlaW5nIGhpdCBkdXJpbmcgb3VyIGxheW91dCB0ZXN0cywgYW5kIGlzIGJlaW5nIGlu
dmVzdGlnYXRlZCBpbgogICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvMjkzNTAuCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpKSB7CiAgICAgICAgIG1fYmFja2luZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3Qo
ZGlydHlSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgYXV0byBu
ZXdSZWdpb24gPSBhZG9wdEdESU9iamVjdCg6OkNyZWF0ZVJlY3RSZ24oZGlydHlSZWN0LngoKSwg
ZGlydHlSZWN0LnkoKSwKICAgICAgICAgZGlydHlSZWN0Lm1heFgoKSwgZGlydHlSZWN0Lm1heFko
KSkpOwpAQCAtODYxLDkgKzg1MCw3IEBAIHZvaWQgV2ViVmlldzo6YWRkVG9EaXJ0eVJlZ2lvbihH
RElPYmplY3Q8SFJHTj4gbmV3UmVnaW9uKQogewogICAgIG1fbmVlZHNEaXNwbGF5ID0gdHJ1ZTsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBBU1NFUlQoIWlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZygpKTsKLSNlbmRpZgogCiAgICAgTE9DQUxfR0RJX0NPVU5URVIoMCwg
X19GVU5DVElPTl9fKTsKIApAQCAtODgyLDE0ICs4NjksMTIgQEAgdm9pZCBXZWJWaWV3OjpzY3Jv
bGxCYWNraW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIGludCBkeCwgaW50IGR5LCBjb25z
dCBJbnQKIHsKICAgICBtX25lZWRzRGlzcGxheSA9IHRydWU7CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgZG9pbmcgc29tZXRoaW5nIHNtYXJ0ZXIgaGVy
ZSwgbGlrZSBtb3ZpbmcgdGlsZXMgYXJvdW5kIGFuZCBwYWludGluZwogICAgICAgICAvLyBhbnkg
bmV3bHktZXhwb3NlZCB0aWxlcy4gPGh0dHA6Ly93ZWJraXQub3JnL2IvNTI3MTQ+CiAgICAgICAg
IG1fYmFja2luZ0xheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3Qoc2Nyb2xsVmlld1JlY3QpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBMT0NBTF9HRElfQ09VTlRFUigw
LCBfX0ZVTkNUSU9OX18pOwogCkBAIC05NDEsNyArOTI2LDcgQEAgdm9pZCBXZWJWaWV3OjpzaXpl
Q2hhbmdlZChjb25zdCBJbnRTaXplJiBuZXdTaXplKQogICAgIGlmIChGcmFtZSogY29yZUZyYW1l
ID0gY29yZSh0b3BMZXZlbEZyYW1lKCkpKQogICAgICAgICBjb3JlRnJhbWUtPnZpZXcoKS0+cmVz
aXplKG5ld1NpemUpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0Uo
Q0EpCisjaWYgVVNFKENBKQogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+cmVzaXplKCk7CiAgICAgaWYgKG1fYmFja2luZ0xheWVyKSB7CkBAIC05OTUs
OSArOTgwLDcgQEAgc3RhdGljIHZvaWQgZ2V0VXBkYXRlUmVjdHMoSFJHTiByZWdpb24sIGNvbnN0
IEludFJlY3QmIGRpcnR5UmVjdCwgVmVjdG9yPEludFJlY3QKIAogdm9pZCBXZWJWaWV3Ojp1cGRh
dGVCYWNraW5nU3RvcmUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIEhEQyBkYywgYm9vbCBiYWNraW5n
U3RvcmVDb21wbGV0ZWx5RGlydHksIFdpbmRvd3NUb1BhaW50IHdpbmRvd3NUb1BhaW50KQogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBBU1NFUlQoIWlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZygpKTsKLSNlbmRpZgogCiAgICAgTE9DQUxfR0RJX0NPVU5URVIoMCwgX19G
VU5DVElPTl9fKTsKIApAQCAtMTA3OCw3ICsxMDYxLDcgQEAgdm9pZCBXZWJWaWV3OjpwYWludChI
REMgZGMsIExQQVJBTSBvcHRpb25zKQogewogICAgIExPQ0FMX0dESV9DT1VOVEVSKDAsIF9fRlVO
Q1RJT05fXyk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkK
KyNpZiBVU0UoQ0EpCiAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpICYmICF1c2Vz
TGF5ZXJlZFdpbmRvdygpKSB7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Zmx1c2hQZW5kaW5n
TGF5ZXJDaGFuZ2VzTm93KCk7CiAgICAgICAgIC8vIEZsdXNoaW5nIG1pZ2h0IGhhdmUgdGFrZW4g
dXMgb3V0IG9mIGNvbXBvc2l0aW5nIG1vZGUuCkBAIC0yMTQzLDcgKzIxMjYsNyBAQCB2b2lkIFdl
YlZpZXc6OnNldFNob3VsZEludmVydENvbG9ycyhib29sIHNob3VsZEludmVydENvbG9ycykKIAog
ICAgIG1fc2hvdWxkSW52ZXJ0Q29sb3JzID0gc2hvdWxkSW52ZXJ0Q29sb3JzOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0U2hvdWxkSW52
ZXJ0Q29sb3JzKHNob3VsZEludmVydENvbG9ycyk7CiAjZW5kaWYKQEAgLTIzODcsMTAgKzIzNzAs
OCBAQCBMUkVTVUxUIENBTExCQUNLIFdlYlZpZXc6OldlYlZpZXdXbmRQcm9jKEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLAogICAgICAgICAgICAgICAgIFJFQ1Qgd2luZG93
UmVjdDsKICAgICAgICAgICAgICAgICA6OkdldENsaWVudFJlY3QoaFduZCwgJndpbmRvd1JlY3Qp
OwogICAgICAgICAgICAgICAgIDo6SW52YWxpZGF0ZVJlY3QoaFduZCwgJndpbmRvd1JlY3QsIGZh
bHNlKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgICAgICAgICAg
aWYgKHdlYlZpZXctPmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQogICAgICAgICAgICAgICAg
ICAgICB3ZWJWaWV3LT5tX2JhY2tpbmdMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0jZW5kaWYK
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV01fTU9VU0VB
Q1RJVkFURToKQEAgLTQ5ODgsMTIgKzQ5NjksMTAgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAg
ICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChlbmFi
bGVkKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBociA9IHByZWZz
UHJpdmF0ZS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlm
IChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci0jZW5kaWYKIAogICAgIGhyID0gcHJl
ZnNQcml2YXRlLT5zaG93RGVidWdCb3JkZXJzKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhy
KSkKQEAgLTY1NjcsNyArNjU0Niw2IEBAIHZvaWQgV2ViVmlldzo6ZG93bmxvYWRVUkwoY29uc3Qg
VVJMJiB1cmwpCiAgICAgZG93bmxvYWQtPnN0YXJ0KCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiB2b2lkIFdlYlZpZXc6OnNldFJvb3RDaGlsZExheWVyKEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQogewogICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcobGF5ZXIgPyB0
cnVlIDogZmFsc2UpOwpAQCAtNjYzMCw3ICs2NjA4LDYgQEAgdm9pZCBXZWJWaWV3OjpzZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgYWNjZWxlcmF0ZWQpCiAgICAgfQogI2VuZGlmCiB9Ci0j
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKIFdlYkNvcmU6
OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogV2ViVmlldzo6Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkg
Y29uc3QKQEAgLTY3NDIsNyArNjcxOSw2IEBAIEhSRVNVTFQgV2ViVmlldzo6bmV4dERpc3BsYXlJ
c1N5bmNocm9ub3VzKCkKICAgICByZXR1cm4gU19PSzsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHZvaWQgV2ViVmlldzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25z
dCBHcmFwaGljc0xheWVyKiwgZG91YmxlKQogewogICAgIC8vIFdlIG5ldmVyIHNldCBhbnkgYW5p
bWF0aW9ucyBvbiBvdXIgYmFja2luZyBsYXllci4KQEAgLTY3ODYsOCArNjc2Miw2IEBAIHZvaWQg
V2ViVmlldzo6Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKQogICAgIHZpZXctPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogfQogCi0jZW5kaWYKLQog
Y2xhc3MgRW51bVRleHRNYXRjaGVzIDogcHVibGljIElFbnVtVGV4dE1hdGNoZXMKIHsKICAgICBs
b25nIG1fcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDNmNDZhZTAwNTBjZWVhNmQ5ODVmYmE1MjAz
ODUyNzAzOGE3NjEwZjIuLmJkZWIxZDAzZWM2NmRhN2FmZDkwMzg3Njg3MDY5ZDdiNGY1ZjVlNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmgKQEAgLTMxLDkgKzMxLDExIEBACiAjaW5jbHVkZSAiV2ViS2l0Lmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5
ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlZEdESU9iamVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VzcGVuZGFibGVUaW1l
ci5oPgpAQCAtNDIsMTcgKzQ0LDEyIEBACiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNp
bmNsdWRlIDxXZWJDb3JlL0NBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0xheWVyQ2xpZW50Lmg+Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICNpbmNsdWRlIDxXZWJDb3JlL0Z1bGxTY3JlZW5Db250cm9sbGVyQ2xpZW50Lmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICBjbGFzcyBDQUNGTGF5ZXJUcmVl
SG9zdDsKICNlbmRpZgogICAgIGNsYXNzIEZ1bGxTY3JlZW5Db250cm9sbGVyOwpAQCAtODcsMTAg
Kzg0LDggQEAgY2xhc3MgV2ViVmlldwogICAgICwgcHVibGljIElXZWJOb3RpZmljYXRpb25PYnNl
cnZlcgogICAgICwgcHVibGljIElEcm9wVGFyZ2V0CiAgICAgLCBXZWJDb3JlOjpXaW5kb3dNZXNz
YWdlTGlzdGVuZXIKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgLCBXZWJDb3JlOjpDQUNGTGF5ZXJUcmVlSG9z
dENsaWVudAotI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwgV2ViQ29y
ZTo6RnVsbFNjcmVlbkNvbnRyb2xsZXJDbGllbnQKICNlbmRpZgpAQCAtOTUwLDEwICs5NDUsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgZmx1c2hQZW5kaW5n
R3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiAgICAgdm9pZCBzZXRSb290Q2hpbGRMYXllcihX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYg
VVNFKEFWRk9VTkRBVElPTikKICAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdy
YXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0OwpAQCAtMTAyMyw3ICsxMDE2LDYgQEAgcHJpdmF0
ZToKICAgICAvLyAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTI2NCkKICAgICBEV09SRCBtX2xhc3REcm9wRWZmZWN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKQEAgLTEwMzEsNyArMTAyMyw2IEBAIHByaXZhdGU6
CiAKICAgICAvLyBDQUNGTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBmbHVz
aFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygpOwotI2VuZGlmCiAKICAgICBib29sIG1fc2hv
dWxkSW52ZXJ0Q29sb3JzOwogICAgIHZvaWQgc2V0U2hvdWxkSW52ZXJ0Q29sb3JzKGJvb2wpOwpA
QCAtMTE1Miw3ICsxMTQzLDYgQEAgcHJvdGVjdGVkOgogICAgIE93blB0cjxGdWxsc2NyZWVuVmlk
ZW9Db250cm9sbGVyPiBtX2Z1bGxTY3JlZW5WaWRlb0NvbnRyb2xsZXI7CiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOyB9CiAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wpOwogI2lmIFVTRShDQSkKQEAg
LTExNjAsNyArMTE1MCw2IEBAIHByb3RlY3RlZDoKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX2JhY2tpbmdMYXllcjsKICAgICBib29sIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nOwotI2VuZGlmCiAKICAgICBib29sIG1fbmV4dERpc3BsYXlJ
c1N5bmNocm9ub3VzOwogICAgIGJvb2wgbV91c2VzTGF5ZXJlZFdpbmRvdzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5j
cHAKaW5kZXggOWVhZDQ1MWE1NjQwMzhjZmQxN2VlMzdkZThjMDhlNzAzOWEyZWRlYy4uMGVhMTU5
NDI3NGFjNmI0N2JkNWU1MTIzZTQ5YjA1NzUwOWI4NzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAg
LTMxNyw3ICszMTcsNiBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpuZWVkVG91Y2hFdmVudHMo
Ym9vbCkKIH0KICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9p
ZCBDaHJvbWVDbGllbnRXaW5DRTo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFw
aGljc0xheWVyKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMzMyLDcgKzMzMSw2IEBA
IHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlmCiAKIHZvaWQgQ2hyb21lQ2xpZW50
V2luQ0U6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZp
bGVDaG9vc2VyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDMxODQ3MjAxYWFmNDhhZmU4Y2U4ZThmNTQx
NGFkZGI2MDgzZTUzNTIuLjFhYzkwNjJiZDgyNDUzMmVhNWQ1M2QxNzEzNmQwODkwYmFiMmFmNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgLy8gd2lsbCBi
ZSBjYWxsZWQgZnJlcXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFzdC4KICAg
ICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBv
dmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBQYXNz
IDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KICAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3Bl
Y2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LApA
QCAtMTQ2LDcgKzE0NSw2IEBAIHB1YmxpYzoKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5
IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2UgbmVlZAogICAgIC8vIHRv
IGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAppbmRleCAyNzdiMDg5MGVkMzU0ODUwN2JjNjU4ZTA5M2ZjNzU4ZDRkYTJmM2QzLi4zYzdiMWYw
Y2EyOGU4NzNhMzY5ZjgyMjhiMzA2NGRmNGQzNDAwNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC01OSw5
ICs1OSw3IEBAIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1Z2luQ29udHJvbGxlclByb3h5KFdl
YlByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjCiAgICAgLCBtX3BsdWdpbkluc3RhbmNl
SUQoY3JlYXRpb25QYXJhbWV0ZXJzLnBsdWdpbkluc3RhbmNlSUQpCiAgICAgLCBtX3VzZXJBZ2Vu
dChjcmVhdGlvblBhcmFtZXRlcnMudXNlckFnZW50KQogICAgICwgbV9pc1ByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoY3JlYXRpb25QYXJhbWV0ZXJzLmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2lzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQoY3JlYXRpb25QYXJhbWV0ZXJzLmlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQpCi0jZW5kaWYKICAgICAsIG1faXNJbml0aWFsaXppbmcoZmFsc2UpCiAgICAgLCBt
X3BhaW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUGx1Z2luQ29udHJvbGxlclByb3h5
OjpwYWludCkKICAgICAsIG1fcGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0Q291bnQoMCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCAzZDI0OTJmOTYyMzQ3YmRkODNiMDBhMzQ4N2Q2NGQ1MzkxYWUwNGFm
Li5mNGJhNGNiYzVhNTc2NjBkNDJmYTdmMjU2MjUwMjEzOWI3YjdjMTZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC0zOSw5ICszOSw3IEBAIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6UGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICAsIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmYWxz
ZSkKICAgICAsIGFzeW5jaHJvbm91c0NyZWF0aW9uSW5jb21wbGV0ZShmYWxzZSkKICAgICAsIGFy
dGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChmYWxzZSkKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGZhbHNlKQotI2VuZGlmCiB7CiB9CiAKQEAgLTU1LDEwICs1Myw3IEBAIHZvaWQgUGx1
Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiAgICAg
ZW5jb2RlciA8PCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGU7CiAgICAgZW5jb2RlciA8
PCBhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQ7Ci0KLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZW5jb2RlciA8PCBpc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkOwotI2VuZGlmCiB9CiAKIGJvb2wgUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFBsdWdpbkNyZWF0aW9u
UGFyYW1ldGVycyYgcmVzdWx0KQpAQCAtODcsMTAgKzgyLDggQEAgYm9vbCBQbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUGx1Z2lu
Q3JlYXQKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hcnRpZmljaWFsUGx1Z2luSW5p
dGlhbGl6YXRpb25EZWxheUVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAzODlm
NzU1Y2I4NWUxZDA2ZmI1MTIwYjUzODlhYTc3MTRkMjE4OWQ1Li5kMjUzZDFjYjJiM2EwOTVmZTM5
YTQxNzJkMmEyM2ZmMzE0ODVjMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTY3LDEwICs2Nyw4IEBA
IHN0cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIC8vIFNpbXVsYXRlZCBpbml0
aWFsaXphdGlvbiBkZWxheSB0ZXN0IGFzeW5jaHJvbm91cyBwbHVnaW4gaW5pdGlhbGl6YXRpb24K
ICAgICBib29sIGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZDsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBXaGV0aGVyIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQuCiAgICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggYTg3YTM4ODI0
YTBlMmNhMGQ5MzVmMGJjZDRlMjBkYTAyMjY5NTEzZC4uMmFlZjIwNjU3NzJmMWU0Y2Q2NWNkMjJk
OTMzZTQzMGQzYmIxOTk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Qcm9jZXNzLmgKQEAgLTU1LDkgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9kYWxX
aW5kb3dJc1Nob3dpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRGdWxsc2NyZWVuV2luZG93SXNTaG93
aW5nKGJvb2wpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1hY2hf
cG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fY29t
cG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0OyB9Ci0jZW5kaWYKIAogICAgIGJvb2wgbGF1bmNoUHJv
Y2Vzcyhjb25zdCBTdHJpbmcmIGxhdW5jaFBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhcmd1
bWVudHMpOwogICAgIGJvb2wgbGF1bmNoQXBwbGljYXRpb25BdFVSTChjb25zdCBTdHJpbmcmIHVy
bFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFyZ3VtZW50cyk7CkBAIC0xMTMsNyArMTEx
LDcgQEAgcHJpdmF0ZToKIAogICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpblByb2Nlc3M+IG1fbWlu
aW11bUxpZmV0aW1lVGltZXI7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gVGhlIE1hY2ggcG9ydCB1
c2VkIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4KICAgICBtYWNoX3BvcnRfdCBtX2NvbXBv
c2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJS
ZW5kZXJMYXllci5jcHAKaW5kZXggZjRiYWFkMzMxYjQ1ZDM0YzE4YmMyOTNlY2VmNjU0N2Y3YWNi
ZDQ3Ni4uZDY2YmQwNmQ0MzIxZjMzNGI0NWFmZmQwOTZkYmQwMWFjOTZmOTljMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCkBAIC04NSw3ICs4NSw2IEBAIFdlYlJl
bmRlckxheWVyOjpXZWJSZW5kZXJMYXllcihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgbV9yZW5k
ZXJlciA9IFdlYlJlbmRlck9iamVjdDo6Y3JlYXRlKCZsYXllci0+cmVuZGVyZXIoKSk7CiAgICAg
bV9pc1JlZmxlY3Rpb24gPSBsYXllci0+aXNSZWZsZWN0aW9uKCk7CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewogICAg
ICAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBsYXllci0+YmFja2luZygpOwogICAg
ICAgICBtX2lzQ2xpcHBpbmcgPSBiYWNraW5nLT5oYXNDbGlwcGluZ0xheWVyKCk7CkBAIC0xMDUs
MTMgKzEwNCwxMCBAQCBXZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXIq
IGxheWVyKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotI2Vu
ZGlmCiAgICAgICAgIG1faXNDbGlwcGluZyA9IGZhbHNlOwogICAgICAgICBtX2lzQ2xpcHBlZCA9
IGZhbHNlOwogICAgICAgICBtX2NvbXBvc2l0aW5nTGF5ZXJUeXBlID0gTm9uZTsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgfQotI2VuZGlmCiAKICAgICBtX2Fic29sdXRl
Qm91bmRpbmdCb3ggPSBsYXllci0+YWJzb2x1dGVCb3VuZGluZ0JveCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKaW5kZXgg
NjlkZjdlNmEwODg2YjIxYmZhY2VlMjYxMzljODFhMzg2ODliMzAwMC4uMTQ5YTI2ZGYwNTRkMTNi
YmQxNDcxNDI4NjVhNzkwYTkyZmNlOTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaApAQCAtMjYsOCArMjYsNiBAQAogI2lm
bmRlZiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZV9oCiAjZGVmaW5lIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KQEAgLTEwMiw2ICsxMDAsNCBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLQogI2VuZGlmIC8vIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4
IDdkZDUyYjYwOTcxZDUxZWY2MjNhNzdhNGIwNzczNzNkODU0MzA1NzguLjk1Mzk0YWZiZDE2OWE1
YmFmMGRkYWM3MGFkN2ZmNGYxZTU0YTEyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMjYsOCArMjYsNiBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJBcmd1bWVudENv
ZGVycy5oIgogI2ltcG9ydCAiTWFjaFBvcnQuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJl
bW90ZS5oIgpAQCAtMzQ5LDUgKzM0NywzIEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6
OmVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bihDR0NvbnRleHRSZWYgY29udGV4dCwgdm9pCiAgICAg
ICAgIGJsb2NrKHJlY3RUb0RyYXcpOwogICAgIH0KIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V2YXNHTENvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMQ29udGV4dC5jcHAKaW5kZXggODYyZGRiYjM5ZTExY2EwYzMxYjQ2ZDhhMTM0N2I1
ZjI5ZjBjOWI4YS4uODE5OGQ2MWVhOGI4MzBkNmQwZmRmNjVhNDY0MmVhOTc0OGFkNWZiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5j
cHAKQEAgLTI0LDkgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJFdmFzR0xDb250ZXh0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsNCArNDIsMyBAQCBFdmFzR0xDb250ZXh0Ojp+
RXZhc0dMQ29udGV4dCgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmgKaW5kZXgg
MmVmNzM2NGRjYTNjNzg4Yjk1ZjVlYjc1MDkxYjYxOGM4ZWRkMmUwNC4uODg2MTU5YjkyMzI1NTU0
MWUyOWNkZjQyODZkZjI5NWZlNDMxMTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMjUsNyArMjUsNiBAQAogCiAjaWZuZGVm
IEV2YXNHTENvbnRleHRfaAogI2RlZmluZSBFdmFzR0xDb250ZXh0X2gKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAKICNpbmNsdWRlIDxFdmFzX0dMLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KQEAgLTU3LDUgKzU2LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjZW5k
aWYgLy8gRXZhc0dMQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwCmluZGV4IGM3ZWMxM2M4ZTAwOTIxMzU2ZTQxMTRiYjhl
OTQ2YTM5YzI5YmJjYzQuLjE2MzAxY2FmYmE1ZjE2Yzg4ZjJjNzY3MTlmYzhlNjVjMTFkYWQ4MWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZh
Y2UuY3BwCkBAIC0yNCw4ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkV2YXNHTFN1cmZhY2Uu
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NCw0ICs0MiwzIEBAIEV2YXNHTFN1cmZhY2U6
On5FdmFzR0xTdXJmYWNlKCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2Uu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaAppbmRl
eCBmNmZiMmI1YjBlMzQ3NDVjNmQ5NmRhNjgyOGQyMmRhM2RkOWQ1MGE0Li5kYTc2YjFjMWQzNTBh
MzEzZGQxYjZkYWM0MjI1NjYwMGQ3ZWFhNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpZm5k
ZWYgRXZhc0dMU3VyZmFjZV9oCiAjZGVmaW5lIEV2YXNHTFN1cmZhY2VfaAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1ZGUgPEV2YXNfR0wuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ludFNpemUuaD4KQEAgLTY1LDUgKzY0LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAj
ZW5kaWYgLy8gRXZhc0dMU3VyZmFjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDBkOTVhMjZhYTcwNGZkMGZhMTQzZmE0NzQyM2VkM2FjMWY5
YmFiOTkuLjk3MDBjNWM2OTc0MTVlMTRkOWYzNzNlZjk0Yjk0ZWUwNjI3NjI2ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCkBAIC02Niw5ICs2Niw3
IEBACiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNs
dWRlIDxFZGplLmg+Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUg
PEV2YXNfR0wuaD4KLSNlbmRpZgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KQEAgLTI4NSwxMCArMjgzLDggQEAgRXdrVmlldzo6RXdrVmlldyhXS1ZpZXdS
ZWYgdmlldywgRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAjZW5kaWYKICAgICAsIG1fZGlzcGxh
eVRpbWVyKHRoaXMsICZFd2tWaWV3OjpkaXNwbGF5VGltZXJGaXJlZCkKICAgICAsIG1faW5wdXRN
ZXRob2RDb250ZXh0KElucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlKHRoaXMsIHNtYXJ0RGF0
YSgpLT5iYXNlLmV2YXMpKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAs
IG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCh0aGlzKQogICAgICwgbV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyKHBhZ2UoKSwgJm1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCkKLSNl
bmRpZgogICAgICwgbV9pc0FjY2VsZXJhdGVkKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fZXZhc09i
amVjdCk7CkBAIC0yOTYsNyArMjkyLDYgQEAgRXdrVmlldzo6RXdrVmlldyhXS1ZpZXdSZWYgdmll
dywgRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHdoZW4g
cG9zc2libGUuCiAgICAgc3RhdGljX2Nhc3Q8V2ViVmlld0VmbCo+KHdlYlZpZXcoKSktPnNldEV3
a1ZpZXcodGhpcyk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fZXZh
c0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhc19vYmplY3RfZXZhc19nZXQobV9ldmFzT2Jq
ZWN0KSkpOwogICAgIGlmIChtX2V2YXNHTCkKICAgICAgICAgbV9ldmFzR0xDb250ZXh0ID0gRXZh
c0dMQ29udGV4dDo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpKTsKQEAgLTMwNywxNCArMzAyLDExIEBA
IEV3a1ZpZXc6OkV3a1ZpZXcoV0tWaWV3UmVmIHZpZXcsIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0
KQogICAgIH0KIAogICAgIG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSBtX2lzQWNjZWxlcmF0ZWQ7
Ci0jZW5kaWYKICAgICBXS1ZpZXdJbml0aWFsaXplKHdrVmlldygpKTsKIAogICAgIFdLUGFnZUdy
b3VwUmVmIHdrUGFnZUdyb3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdrUGFnZSgpKTsKICAgICBX
S1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2Vz
KHdrUGFnZUdyb3VwKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgV0tQ
cmVmZXJlbmNlc1NldFdlYkdMRW5hYmxlZCh3a1ByZWZlcmVuY2VzLCB0cnVlKTsKLSNlbmRpZgog
ICAgIFdLUHJlZmVyZW5jZXNTZXRGdWxsU2NyZWVuRW5hYmxlZCh3a1ByZWZlcmVuY2VzLCB0cnVl
KTsKICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViQXVkaW9FbmFibGVkKHdrUHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQod2tQcmVmZXJlbmNlcywgdHJ1ZSk7CkBAIC01NTksNyArNTUxLDYgQEAgdm9pZCBFd2tWaWV3
OjpkaXNwbGF5VGltZXJGaXJlZChUaW1lcjxFd2tWaWV3PiopCiB7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAobV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkgewogICAgICAgICAvLyBDcmVh
dGUgYSBHTCBzdXJmYWNlIGhlcmUgc28gdGhhdCBFdmFzIGhhcyBubyBjaGFuY2Ugb2YgcGFpbnRp
bmcgdG8gYW4gZW1wdHkgR0wgc3VyZmFjZS4KICAgICAgICAgaWYgKCFjcmVhdGVHTFN1cmZhY2Uo
KSkKQEAgLTU2OSw3ICs1NjAsNiBAQCB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRp
bWVyPEV3a1ZpZXc+KikKIAogICAgICAgICBtX3BlbmRpbmdTdXJmYWNlUmVzaXplID0gZmFsc2U7
CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkgewogICAgICAgICBS
ZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3VyZmFjZUZvckltYWdlKHNk
LT5pbWFnZSk7CkBAIC01ODAsMTEgKzU3MCwxMSBAQCB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1l
ckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKICAgICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91
cGRhdGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAg
ICAgZXZhc19nbF9tYWtlX2N1cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+
c3VyZmFjZSgpLCBtX2V2YXNHTENvbnRleHQtPmNvbnRleHQoKSk7CiAKICAgICBXS1ZpZXdQYWlu
dFRvQ3VycmVudEdMQ29udGV4dCh3a1ZpZXcoKSk7Ci0jZW5kaWYKKwogICAgIC8vIHNkLT5pbWFn
ZSBpcyB0aWVkIHRvIGEgbmF0aXZlIHN1cmZhY2UsIHdoaWNoIGlzIGluIHRoZSBwYXJlbnQncyBj
b29yZGluYXRlcy4KICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmlt
YWdlLCBzZC0+dmlldy54LCBzZC0+dmlldy55LCBzZC0+dmlldy53LCBzZC0+dmlldy5oKTsKIH0K
QEAgLTgxMiw3ICs4MDIsNiBAQCB2b2lkIEV3a1ZpZXc6OmRvbmVXaXRoVG91Y2hFdmVudChXS1Rv
dWNoRXZlbnRSZWYgZXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQogfQogI2VuZGlmCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3Vy
ZmFjZSgpCiB7CiAgICAgaWYgKCFtX2lzQWNjZWxlcmF0ZWQpCkBAIC04NDYsNyArODM1LDYgQEAg
Ym9vbCBFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UoKQogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0j
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogLyoqCkBAIC0xMjExLDEyICsx
MTk5LDEwIEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZShFdmFzX09i
amVjdCogZXZhc09iamVjdCkKICAgICAgICAgc21hcnREYXRhLT52aWV3LmggPSBoZWlnaHQ7CiAK
ICAgICAgICAgV0tWaWV3U2V0U2l6ZShzZWxmLT53a1ZpZXcoKSwgV0tTaXplTWFrZSh3aWR0aCwg
aGVpZ2h0KSk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAo
V0tQYWdlVXNlRml4ZWRMYXlvdXQoc2VsZi0+d2tQYWdlKCkpKQogICAgICAgICAgICAgc2VsZi0+
cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLmRpZENoYW5nZVZpZXdwb3J0U2l6ZShzZWxmLT5zaXpl
KCkpOwogCiAgICAgICAgIHNlbGYtPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwotI2VuZGlmCiAg
ICAgfQogfQogCkBAIC0xMjI1LDkgKzEyMTEsNyBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNP
YmplY3RTaG93KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSA9IHRvU21hcnREYXRhKGV2YXNPYmplY3QpOwogICAgIEFTU0VSVChzbWFy
dERhdGEpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghdG9F
d2tWaWV3KHNtYXJ0RGF0YSktPm1fcGVuZGluZ1N1cmZhY2VSZXNpemUpCi0jZW5kaWYKICAgICAg
ICAgc2hvd0V2YXNPYmplY3RzSWZOZWVkZWQoc21hcnREYXRhKTsKIH0KIApAQCAtMTM5NSw3ICsx
Mzc5LDYgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6OnRha2VTbmFwc2hv
dCgpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiAKICAgICBFd2tfVmlld19T
bWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAobV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IHNuYXBzaG90ID0gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKDAsIDAs
IHNkLT52aWV3LncsIHNkLT52aWV3LmgpOwogICAgICAgICAvLyBSZXN1bWUgYWxsIGFuaW1hdGlv
bnMuCkBAIC0xNDAzLDcgKzEzODYsNyBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdr
Vmlldzo6dGFrZVNuYXBzaG90KCkKIAogICAgICAgICByZXR1cm4gc25hcHNob3QucmVsZWFzZSgp
OwogICAgIH0KLSNlbmRpZgorCiAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25hcHNob3Qg
PSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uoc2QtPmltYWdlKTsKICAgICAvLyBSZXN1bWUgYWxsIGFu
aW1hdGlvbnMuCiAgICAgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMo
d2tWaWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCmlu
ZGV4IGM1M2NjYmIwYmYyZjM2MmFiY2UyYTE1ZTcwOTliYjBmM2JkYzRkY2EuLmI0YjFhNWRlMjQx
NWY3NDBlY2JjOGZkMzQ1N2U3ZGU3NzFlY2I4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTI1LDYgKzI1LDggQEAKICNpbmNsdWRlICJFdmFzR0xT
dXJmYWNlLmgiCiAjaW5jbHVkZSAiRXdrVmlld0NhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkltbXV0
YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgogI2luY2x1ZGUgIlJl
ZlB0ckVmbC5oIgogI2luY2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgogI2luY2x1ZGUgIldL
UmV0YWluUHRyLmgiCkBAIC01MCwxMSArNTIsNiBAQAogI2luY2x1ZGUgImV3a190b3VjaC5oIgog
I2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUGFn
ZVZpZXdwb3J0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRFZmwuaCIKLSNlbmRpZgotCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWly
b19zdXJmYWNlX3Q7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTIsMTAgKzg5LDggQEAgY2xh
c3MgRXdrUG9wdXBNZW51OwogY2xhc3MgRXdrU2V0dGluZ3M7CiBjbGFzcyBFd2tXaW5kb3dGZWF0
dXJlczsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHR5cGVkZWYgc3RydWN0
IF9FdmFzX0dMX0NvbnRleHQgRXZhc19HTF9Db250ZXh0OwogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNf
R0xfU3VyZmFjZSBFdmFzX0dMX1N1cmZhY2U7Ci0jZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgRXdr
X1ZpZXdfU21hcnRfRGF0YSBFd2tfVmlld19TbWFydF9EYXRhOwogdHlwZWRlZiBzdHJ1Y3QgRXdr
X1ZpZXdfU21hcnRfQ2xhc3MgRXdrX1ZpZXdfU21hcnRfQ2xhc3M7CkBAIC0xMjAsOSArMTE1LDcg
QEAgcHVibGljOgogICAgIEV3a0JhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0KCkgeyBy
ZXR1cm4gbV9iYWNrRm9yd2FyZExpc3QuZ2V0KCk7IH0KICAgICBFd2tXaW5kb3dGZWF0dXJlcyog
d2luZG93RmVhdHVyZXMoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXImIHBhZ2VWaWV3cG9ydENvbnRyb2xsZXIo
KSB7IHJldHVybiBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXI7IH0KLSNlbmRpZgogCiAgICAgdm9p
ZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSk7CiAgICAgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IoKSBjb25zdDsKQEAgLTE2MSwxMCArMTU0LDkgQEAgcHVibGljOgogCiAgICAgV0tS
ZWN0IHdpbmRvd0dlb21ldHJ5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRXaW5kb3dHZW9tZXRyeShj
b25zdCBXS1JlY3QmKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKICAgICBi
b29sIGNyZWF0ZUdMU3VyZmFjZSgpOwogICAgIHZvaWQgc2V0TmVlZHNTdXJmYWNlUmVzaXplKCkg
eyBtX3BlbmRpbmdTdXJmYWNlUmVzaXplID0gdHJ1ZTsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKICAgICB2b2lkIHJlcXVlc3RDb2xvclBpY2tlcihXS0NvbG9yUGlj
a2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CkBA
IC0yNTcsMTIgKzI0OSwxMSBAQCBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmpl
Y3Q7CiAgICAgUmVmUHRyPEV3a0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBSZWZQdHI8RXdrUGFn
ZUdyb3VwPiBtX3BhZ2VHcm91cDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTENv
bnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJmYWNl
PiBtX2V2YXNHTFN1cmZhY2U7CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNlUmVzaXplOwotI2Vu
ZGlmCisKICAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3VzZXJWaWV3cG9ydFRy
YW5zZm9ybTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbD4g
bV9wYWdlTG9hZENsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlUG9saWN5
Q2xpZW50RWZsPiBtX3BhZ2VQb2xpY3lDbGllbnQ7CkBAIC0yOTUsMTAgKzI4NiwxMCBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxF
d2tDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNlbmRpZgotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKwogICAgIFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbCBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQ7CiAgICAgV2ViS2l0OjpQYWdlVmll
d3BvcnRDb250cm9sbGVyIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcjsKLSNlbmRpZgorCiAgICAg
Ym9vbCBtX2lzQWNjZWxlcmF0ZWQ7CiAKICAgICBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBwYXJl
bnRTbWFydENsYXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvU25hcHNob3RJbWFnZUdMLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L1NuYXBzaG90SW1hZ2VHTC5jcHAKaW5kZXggOGUwYjlkODMzMjU4ZGM3ZTI5MzczZWZmYjlhMzli
NDEwMzg4ZWU0OS4uZWZkMjYxOTQ4YjkzYjNiYmJmMjNlMzk5YzU2MjI0YzIwYmE4ZDA2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdl
R0wuY3BwCkBAIC0yNCw5ICsyNCw2IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJTbmFwc2hvdEltYWdl
R0wuaCIKIAogI2lmIFVTRShPUEVOR0xfRVNfMikKQEAgLTczLDQgKzcwLDMgQEAgUGFzc1JlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcihpbnQgeCwg
aW50IHksIGludCB3aWQKICAgICBjYWlyb19zdXJmYWNlX21hcmtfZGlydHkobmV3U3VyZmFjZS5n
ZXQoKSk7CiAgICAgcmV0dXJuIG5ld1N1cmZhY2U7CiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmgKaW5kZXggOWJlOWNj
NTVkZmE2NjAzMmI4ZjVmMzJlMDEyZDg2N2I3ZGJlOGM0My4uYjc2ZDliODEzOTA1MzIwYTZkMjEx
NTM0YjE0NmNmNWQ4ZjM3MDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmgKQEAgLTI2LDExICsyNiw4IEBACiAjaWZuZGVmIFNu
YXBzaG90SW1hZ2VHTF9oCiAjZGVmaW5lIFNuYXBzaG90SW1hZ2VHTF9oCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlIDxSZWZQdHJDYWlyby5oPgogCiBQYXNz
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1lQnVmZmVyKGlu
dCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIAotI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICNlbmRpZiAvLyBTbmFwc2hvdEltYWdlR0xfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGls
cy9FV0syVW5pdFRlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L3Rlc3RzL1VuaXRUZXN0VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5jcHAKaW5kZXggYzY3MWNiNzdj
MTViZTZhNGFiMWQwZGFhYzVkMzI0ZjlhNzc3ZDM4Zi4uZGU0MTc1NWViODE2NTNmZGRlMjQ3OWQy
YTRiNTg3NDM1NzQzYmM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0
VGVzdEJhc2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgRVdLMlVuaXRUZXN0QmFzZTo6U2V0
VXAoKQogICAgIHVuc2lnbmVkIGludCB3aWR0aCA9IGVudmlyb25tZW50LT5kZWZhdWx0V2lkdGgo
KTsKICAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gZW52aXJvbm1lbnQtPmRlZmF1bHRIZWlnaHQo
KTsKIAotI2lmIGRlZmluZWQoV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVm
aW5lZChIQVZFX0VDT1JFX1gpCisjaWYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCiAgICAgY29uc3Qg
Y2hhciogZW5naW5lID0gIm9wZW5nbF94MTEiOwogICAgIG1fZWNvcmVFdmFzID0gZWNvcmVfZXZh
c19uZXcoZW5naW5lLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCAwKTsKICAgICAvLyBHcmFjZWZ1bCBm
YWxsYmFjayB0byBzb2Z0d2FyZSByZW5kZXJpbmcgaWYgZXZhc19nbCBlbmdpbmUgaXMgbm90IGF2
YWlsYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmNwcAppbmRleCBjMTc2MDgyYWIwYjkzN2UxNjA2YTIxMzQ4YjE3ZDE2M2E4NGM0
Yjc5Li4wOWQwYjk1MzAwNTVlYjg3MzdjNzU1N2RiNTdlNGI3YTU3MWU1YWQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBA
IC0yMzcsNyArMjM3LDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RmluZEluZGljYXRvcihQ
YXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQsIGIKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjUyLDcgKzI1MSw2IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpwYWdlQ2xvc2VkKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDM3YmVlMTJlOGM3YzVlOGU2NzZhYjY0MzU1NjlhYTk0
NjhlNGZjZDYuLjhkZjM1YmFhZGRlZTNlZWFlNTg2NDhjZTE4M2Y3YTI3ZWVjNWNmNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApA
QCAtOTcsMTEgKzk3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dElu
cHV0U3RhdGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKGNvbnN0IFdl
YkNvcmU6OkRyYWdEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSkg
b3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29u
dGV4dCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwotI2VuZGlm
CiAKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkq
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKaW5kZXggZjc2YjAzOTNhOWFjN2VkZTU4ZWM4NGEzNDUzMmVmN2Vm
YTIzY2JhNy4uN2VjZDNiMzU2NzU0ZDEzNjdjN2EzYTc0Njk1NTUxNzhmZWE4M2QzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC04OSwxMyArODksMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSopIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVh
dGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRGaW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFk
ZU91dCwgYm9vbCBhbmltYXRlKSBvdmVycmlkZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4
aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdS
b290TGF5ZXIoQ0FMYXllciAqcm9vdExheWVyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIENBTGF5
ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSNl
bmRpZgogCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gdGFrZVZpZXdTbmFwc2hv
dCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5
V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IDg5NmM2NWIyNzVlMzg3YjYyODAwMzZhNDA0NzEwM2Q1MGJjZjY1MDYuLmU2NDQyYWFmYjAx
MTg4ZDhhOTIyNGVjOTdlYmYwOGNmMzNhY2Q4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0yOTUsOCArMjk1
LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZp
bmRJbmRpY2F0b3I+LCBib29sLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0g
ICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiB9CkBAIC0zMjAsNyArMzE5LDYgQEAgQ0FMYXllciAq
UGFnZUNsaWVudEltcGw6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdAog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9Ci0jZW5kaWYKIAog
UmV0YWluUHRyPENHSW1hZ2VSZWY+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3Bw
CmluZGV4IDA1Mjc2MzA0MzEwODkwMGIwNjdmZDYyY2M2ZTY3MWFmYTc2Njk2MGQuLjI5Njc5NmJi
OTFlNWNhZGQ3N2Y1ODU2OTU5YTIyZDhhNzU3ZjBmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmNwcApAQCAtNjAsMTEgKzYwLDkgQEAgQ29v
cmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkoV2Vi
UGFnZVByb3h5KiB3ZWJQYWdlUHIKIAogQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp+Q29v
cmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5KCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgLy8gTWFrZSBzdXJlIHRvIGV4aXQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcg
bW9kZS4KICAgICBpZiAoaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAg
IGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjpwYWludChCYWNraW5nU3RvcmU6OlBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIFJlZ2lvbiYgdW5wYWlu
dGVkUmVnaW9uKQpAQCAtMTMwLDcgKzEyOCw2IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YVByb3h5OjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCiAgICAgYmFja2luZ1N0b3JlU3Rh
dGVEaWRDaGFuZ2UoUmVzcG9uZEltbWVkaWF0ZWx5KTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp2aXNpYmls
aXR5RGlkQ2hhbmdlKCkKIHsKICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgYmFja2luZyBzdG9y
ZSwgZ28gYWhlYWQgYW5kIG1hcmsgdGhlIGJhY2tpbmcgc3RvcmUgYXMgYmVpbmcgY2hhbmdlZCBz
bwpAQCAtMTM4LDcgKzEzNSw2IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp2
aXNpYmlsaXR5RGlkQ2hhbmdlKCkKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlICYmIG1fbGF5ZXJU
cmVlQ29udGV4dC5pc0VtcHR5KCkpCiAgICAgICAgIGJhY2tpbmdTdG9yZVN0YXRlRGlkQ2hhbmdl
KERvTm90UmVzcG9uZEltbWVkaWF0ZWx5KTsKIH0KLSNlbmRpZgogCiB2b2lkIENvb3JkaW5hdGVk
RHJhd2luZ0FyZWFQcm94eTo6c2V0QmFja2luZ1N0b3JlSXNEaXNjYXJkYWJsZShib29sIGlzQmFj
a2luZ1N0b3JlRGlzY2FyZGFibGUpCiB7CkBAIC0xODAsNyArMTc2LDYgQEAgdm9pZCBDb29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90
IGJhY2tpbmdTdG8KICAgICAvLyBTdG9wIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciB0aGF0IHdh
cyBzdGFydGVkIGluIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZS4KICAgICBtX3dlYlBhZ2VQ
cm94eS0+cHJvY2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RvcCgpOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChsYXllclRyZWVDb250ZXh0ICE9IG1f
bGF5ZXJUcmVlQ29udGV4dCkgewogICAgICAgICBpZiAoIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwpA
QCAtMTkyLDIxICsxODcsMTYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG8KICAgICAgICAgICAg
IEFTU0VSVChsYXllclRyZWVDb250ZXh0ID09IG1fbGF5ZXJUcmVlQ29udGV4dCk7CiAgICAgICAg
IH0KICAgICB9Ci0jZW5kaWYKIAogICAgIGlmIChtX25leHRCYWNraW5nU3RvcmVTdGF0ZUlEICE9
IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHNlbmRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZShSZXNwb25kSW1tZWRpYXRlbHkpOwogICAgIGVsc2UKICAgICAgICAgbV9oYXNS
ZWNlaXZlZEZpcnN0VXBkYXRlID0gdHJ1ZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAoaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpIHsKICAgICAg
ICAgQVNTRVJUKCFtX2JhY2tpbmdTdG9yZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0KTsKLSNlbmRpZgogCiAgICAgLy8g
SWYgd2UgaGF2ZSBhIGJhY2tpbmcgc3RvcmUgdGhlIHJpZ2h0IHNpemUsIHJldXNlIGl0LgogICAg
IGlmIChtX2JhY2tpbmdTdG9yZSAmJiAobV9iYWNraW5nU3RvcmUtPnNpemUoKSAhPSB1cGRhdGVJ
bmZvLnZpZXdTaXplIHx8IG1fYmFja2luZ1N0b3JlLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IHVw
ZGF0ZUluZm8uZGV2aWNlU2NhbGVGYWN0b3IpKQpAQCAtMjIwLDExICsyMTAsNyBAQCB2b2lkIENv
b3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSh1aW50NjRfdCBiYWNraQogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlEIDwgbV9jdXJyZW50
QmFja2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5
ZXJUcmVlQ29udGV4dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0
KTsKLSNlbmRpZgogfQogCiB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZXhpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCkBAIC0yMzMsOSArMjE5LDcgQEAgdm9pZCBDb29y
ZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1
aW50NjRfdCBiYWNraW4KICAgICBpZiAoYmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3VycmVudEJh
Y2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKLSNl
bmRpZgogCiAgICAgaW5jb3Jwb3JhdGVVcGRhdGUodXBkYXRlSW5mbyk7CiB9CkBAIC0yNDYsMTEg
KzIzMCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNrCiAgICAgaWYgKGJhY2tpbmdTdG9yZVN0
YXRlSUQgPCBtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlEKQogICAgICAgICByZXR1cm47CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TShsYXllclRyZWVDb250ZXh0KTsKLSNlbmRpZgogfQogCiB2b2lkIENvb3JkaW5hdGVkRHJhd2lu
Z0FyZWFQcm94eTo6aW5jb3Jwb3JhdGVVcGRhdGUoY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5m
bykKQEAgLTMxMSwxMyArMjkxLDExIEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5
OjpzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoUmVzcG9uZEltbWVkaWF0ZWx5CiAgICAgICAg
IG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkucmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgp
OwogICAgIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9p
c1dhaXRpbmdGb3JEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSAmJiAhbV9sYXllclRyZWVDb250
ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBXYWl0IGZvciB0aGUgRGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGUgbWVzc2FnZS4gTm9ybWFsbHkgd2UgZG8gdGhpcyBpbiBDb29yZGluYXRlZERy
YXdpbmdBcmVhUHJveHk6OnBhaW50LCBidXQgdGhhdAogICAgICAgICAvLyBmdW5jdGlvbiBpcyBu
ZXZlciBjYWxsZWQgd2hlbiBpbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2RlLgogICAgICAg
ICB3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpOwogICAgIH0K
LSNlbmRpZgogfQogCiB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckFu
ZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKQpAQCAtMzI5LDcgKzMwNyw2IEBA
IHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpCiAgICAgaWYgKG1fd2ViUGFnZVByb3h5LT5wcm9jZXNz
KCkuaXNMYXVuY2hpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIC8vIEZJWE1FOiB3YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVs
eSB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIG9sZGVzdCBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlIHRoYXQKICAgICAvLyBoYXNuJ3QgeWV0IGJlZW4gcHJvY2Vzc2VkLiBCdXQgaXQg
bWlnaHQgYmUgYmV0dGVyIHRvIHNraXAgYWhlYWQgdG8gc29tZSBvdGhlciBEaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZQogICAgIC8vIG1lc3NhZ2UsIGlmIG11bHRpcGxlIERpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlIG1lc3NhZ2VzIGFyZSB3YWl0aW5nIHRvIGJlIHByb2Nlc3NlZC4gRm9yIGlu
c3RhbmNlLCB3ZSBjb3VsZApAQCAtMzM3LDEwICszMTQsOCBAQCB2b2lkIENvb3JkaW5hdGVkRHJh
d2luZ0FyZWFQcm94eTo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3Rh
dGUoKQogCiAgICAgLy8gVGhlIHRpbWVvdXQsIGluIHNlY29uZHMsIHdlIHVzZSB3aGVuIHdhaXRp
bmcgZm9yIGEgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSB3aGVuIHdlJ3JlIGFz
a2VkIHRvIHBhaW50LgogICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuY29ubmVjdGlvbigp
LT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94
eTo6RGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGU+KG1fd2ViUGFnZVByb3h5LT5wYWdlSUQoKSwg
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKLSNlbmRpZgogfQogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYg
bGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBBU1NFUlQoIWlzSW5BY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpKTsKQEAgLTM3Myw3ICszNDgsNiBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcgog
ICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRleHQ7CiAgICAgbV93ZWJQYWdl
UHJveHktPnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQp
OwogfQotI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjpkaXNjYXJk
QmFja2luZ1N0b3JlU29vbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJh
d2luZ0FyZWFQcm94eS5oCmluZGV4IDlhYTQzYzU0OWFhZDI5Y2ViMTI2N2Y5NTk3NmFlMmJkYmI1
ZDUzMjUuLjg4YWE4ZTQ4MTllMjZhOTEyNzM3MmI2ZjdiNjhmMTJmNjZlMzlmN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oCkBAIC01MCwxMiAr
NTAsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludChCYWNraW5nU3RvcmU6OlBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6UmVnaW9u
JiB1bnBhaW50ZWRSZWdpb24pOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
IW1fbGF5ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHZpc2liaWxpdHlEaWRD
aGFuZ2UoKTsKIAogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHRyYWplY3RvcnkpOwotI2VuZGlmCiAKICAgICBib29sIGhhc1JlY2VpdmVkRmlyc3RVcGRh
dGUoKSBjb25zdCB7IHJldHVybiBtX2hhc1JlY2VpdmVkRmlyc3RVcGRhdGU7IH0KIApAQCAtODgs
MTMgKzg2LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZShSZXNwb25kSW1tZWRpYXRlbHlPck5vdCk7CiAgICAgdm9pZCB3YWl0Rm9yQW5kRGlzcGF0Y2hE
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0Jik7CiAgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoKTsKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKTsKLSNlbHNlCi0gICAgYm9vbCBpc0luQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCiAKICAgICB2b2lkIGRp
c2NhcmRCYWNraW5nU3RvcmVTb29uKCk7CiAgICAgdm9pZCBkaXNjYXJkQmFja2luZ1N0b3JlKCk7
CkBAIC0xMTAsMTAgKzEwNCw4IEBAIHByaXZhdGU6CiAgICAgLy8gd2hlbmV2ZXIgb3VyIHN0YXRl
IGNoYW5nZXMgaW4gYSB3YXkgdGhhdCB3aWxsIHJlcXVpcmUgYSBuZXcgYmFja2luZyBzdG9yZSB0
byBiZSBhbGxvY2F0ZWQuCiAgICAgdWludDY0X3QgbV9uZXh0QmFja2luZ1N0b3JlU3RhdGVJRDsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBUaGUgY3VycmVudCBs
YXllciB0cmVlIGNvbnRleHQuCiAgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRl
eHQ7Ci0jZW5kaWYKIAogICAgIC8vIFdoZXRoZXIgd2UndmUgc2VudCBhIFVwZGF0ZUJhY2tpbmdT
dG9yZVN0YXRlIG1lc3NhZ2UgYW5kIGFyZSBub3cgd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSBtZXNzYWdlLgogICAgIC8vIFVzZWQgdG8gdGhyb3R0bGUgVXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUgbWVzc2FnZXMgc28gd2UgZG9uJ3Qgc2VuZCB0aGVtIGZhc3RlciB0aGFu
IHRoZSBXZWIgcHJvY2VzcyBjYW4gaGFuZGxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmNwcAppbmRleCBmZmZmNTViODI0Yzk2NGZhNjFlNDgzMmFlNTZiYzA0ZDQ3
OGVhZTZjLi43YjRiOTQ1MjIyZDMxNzNhYjgzYjQ4M2QyYTM4NmQ1MmU3ODdmN2Y2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmll
d3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtMjAsOCArMjAsNiBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyLmgiCiAKICNpbmNsdWRl
ICJDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuaCIKQEAgLTM1Nyw1ICszNTUsMyBAQCBib29s
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wgdXNl
ckluaXRpYXRlZFVwZGF0ZSkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
UGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCmluZGV4IGI4OTczYWJiZDg5
ZTJlYTRmNGZiZjNlZjllMzRlNjFmN2U4ZGM0ZWQuLjMxNjRlZmRhN2I3YTRhMWIwNzg1ZDk1YmQx
NDRlYjFjZDdiOWM0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVy
LmgKQEAgLTIyLDggKzIyLDYgQEAKICNpZm5kZWYgUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCiAj
ZGVmaW5lIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgpAQCAt
MTEyLDUgKzExMCw0IEBAIGJvb2wgZnV6enlDb21wYXJlKGZsb2F0LCBmbG9hdCwgZmxvYXQgZXBz
aWxvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogI2VuZGlmIC8vIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2Vi
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9X
ZWJWaWV3LmNwcAppbmRleCA0NTgwYjg2ZGJkNTIwNzBhNmY1YmVhYzA5ZDMzNGI3YTc4N2NkZjg2
Li5hM2YzNTVkZjZlYTM0MjcxYWJlMTFkYTUxOGI2OTM4MWM5YTE3ODA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3
LmNwcApAQCAtMTE5LDEwICsxMTksOCBAQCB2b2lkIFdlYlZpZXc6OnNldFZpc2libGUoYm9vbCB2
aXNpYmxlKQogICAgIG1fdmlzaWJsZSA9IHZpc2libGU7CiAgICAgbV9wYWdlLT52aWV3U3RhdGVE
aWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdB
cmVhID0gc3RhdGljX2Nhc3Q8Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Kj4ocGFnZSgpLT5k
cmF3aW5nQXJlYSgpKSkKICAgICAgICAgZHJhd2luZ0FyZWEtPnZpc2liaWxpdHlEaWRDaGFuZ2Uo
KTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXc6OnNldFVzZXJWaWV3cG9ydFRyYW5zbGF0aW9u
KGRvdWJsZSB0eCwgZG91YmxlIHR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKaW5kZXggODFjZjA1OTkwNzIyZmVmOWRkOTVjYWZlYWNiMTBlZDYwODI5YjYy
OC4uZTQwMmRjMTFkNzA5MDgyNmQyMTExYTJhNzEwMWE5ZWQ3OWQ3YTI0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0xMDEsMTEgKzEwMSw5IEBA
IHByaXZhdGU6CiAgICAgLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSBwdXJlIHZpcnR1YWwuCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZSh1aW50NjRfdCAvKiBiYWNraW5nU3RvcmVTdGF0ZUlEICov
LCBjb25zdCBVcGRhdGVJbmZvJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKHVpbnQ2NF90IC8qIGJhY2tpbmdTdG9yZVN0YXRlSUQgKi8sIGNvbnN0IFVw
ZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90IC8qIGJhY2tpbmdTdG9yZVN0YXRlSUQgKi8sIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90IC8qIGJhY2tpbmdTdG9yZVN0YXRlSUQgKi8sIGNvbnN0IFVwZGF0
ZUluZm8mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAqLywgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpIHsgfQotI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRVcGRhdGVHZW9tZXRyeSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNDb250
ZW50U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdJbnRyaW5zaWNDb250
ZW50U2l6ZSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGEyNzJjYjU5ZDI4Yzg4MmFjMWZlY2RiODNjNDgz
YzM2ODY1ZGFkMzcuLmExMDY2NGRjNjZiYjU4MTJhZTM3OTM4MWFiM2E5YzJjNDRlYmY0NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yMywxMSArMjMsOSBAQAogbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWFQcm94
eSB7CiAgICAgVXBkYXRlKHVpbnQ2NF90IHN0YXRlSUQsIFdlYktpdDo6VXBkYXRlSW5mbyB1cGRh
dGVJbmZvKQogICAgIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIFdlYktpdDo6VXBkYXRlSW5mbyB1cGRhdGVJbmZvLCBXZWJLaXQ6OkxheWVy
VHJlZUNvbnRleHQgY29udGV4dCkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQgY29udGV4dCkKICAgICBFeGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgV2ViS2l0
OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgVXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgV2ViS2l0OjpMYXllclRyZWVDb250
ZXh0IGNvbnRleHQpCi0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBVc2VkIGJ5
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAppbmRleCBlOGM0NWE3MDllYjU3
MDYzNzdlNGU3YmVlZGFlMTEyY2ViZTgyOWI4Li40N2JlYWFlOGIxMjQzNWMzZjdlY2QwNzRiZGRh
ZWY5ZTUyMzIxODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5jcHAKQEAgLTUzLDExICs1Myw5IEBAIERyYXdpbmdBcmVhUHJveHlJbXBs
OjpEcmF3aW5nQXJlYVByb3h5SW1wbChXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKIAogRHJh
d2luZ0FyZWFQcm94eUltcGw6On5EcmF3aW5nQXJlYVByb3h5SW1wbCgpCiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIE1ha2Ugc3VyZSB0byBleGl0IGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIG1vZGUuCiAgICAgaWYgKGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpKQogICAgICAgICBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKLSNlbmRp
ZgogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpwYWludChCYWNraW5nU3RvcmU6OlBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QsIFJlZ2lv
biYgdW5wYWludGVkUmVnaW9uKQpAQCAtMTUzLDcgKzE1MSw2IEBAIHZvaWQgRHJhd2luZ0FyZWFQ
cm94eUltcGw6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlCiAgICAgLy8gU3RvcCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgdGhhdCB3YXMgc3Rh
cnRlZCBpbiBzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUuCiAgICAgbV93ZWJQYWdlUHJveHkt
PnByb2Nlc3MoKS5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0b3AoKTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobGF5ZXJUcmVlQ29udGV4dCAhPSBtX2xheWVy
VHJlZUNvbnRleHQpIHsKICAgICAgICAgaWYgKCFtX2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKQEAgLTE2
NSwyMSArMTYyLDE2IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmRpZFVwZGF0ZUJhY2tp
bmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlCiAgICAgICAgICAgICBBU1NF
UlQobGF5ZXJUcmVlQ29udGV4dCA9PSBtX2xheWVyVHJlZUNvbnRleHQpOwogICAgICAgICB9ICAg
ICAgICAgICAgCiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAobV9uZXh0QmFja2luZ1N0b3JlU3Rh
dGVJRCAhPSBtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlEKQogICAgICAgICBzZW5kVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUoUmVzcG9uZEltbWVkaWF0ZWx5KTsKICAgICBlbHNlCiAgICAgICAg
IG1faGFzUmVjZWl2ZWRGaXJzdFVwZGF0ZSA9IHRydWU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpKSB7
CiAgICAgICAgIEFTU0VSVCghbV9iYWNraW5nU3RvcmUpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVlQ29udGV4dCk7Ci0jZW5kaWYKIAog
ICAgIC8vIElmIHdlIGhhdmUgYSBiYWNraW5nIHN0b3JlIHRoZSByaWdodCBzaXplLCByZXVzZSBp
dC4KICAgICBpZiAobV9iYWNraW5nU3RvcmUgJiYgKG1fYmFja2luZ1N0b3JlLT5zaXplKCkgIT0g
dXBkYXRlSW5mby52aWV3U2l6ZSB8fCBtX2JhY2tpbmdTdG9yZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSAhPSB1cGRhdGVJbmZvLmRldmljZVNjYWxlRmFjdG9yKSkKQEAgLTE5MywxMSArMTg1LDcgQEAg
dm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmUKICAgICBpZiAoYmFja2luZ1N0b3JlU3RhdGVJRCA8IG1f
Y3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGxheWVyVHJlZUNvbnRleHQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obGF5ZXJUcmVl
Q29udGV4dCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZXhpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCkBAIC0yMDYsOSArMTk0LDcgQEAgdm9pZCBEcmF3
aW5nQXJlYVByb3h5SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVMKICAgICBpZiAoYmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3VycmVudEJh
Y2tpbmdTdG9yZVN0YXRlSUQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKLSNl
bmRpZgogCiAgICAgaW5jb3Jwb3JhdGVVcGRhdGUodXBkYXRlSW5mbyk7CiB9CkBAIC0yMTksMTEg
KzIwNSw3IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yCiAgICAgaWYgKGJhY2tpbmdTdG9yZVN0
YXRlSUQgPCBtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlEKQogICAgICAgICByZXR1cm47CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJB
TShsYXllclRyZWVDb250ZXh0KTsKLSNlbmRpZgogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlJ
bXBsOjppbmNvcnBvcmF0ZVVwZGF0ZShjb25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQpAQCAt
Mjg0LDEzICsyNjYsMTEgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2VuZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW1lZGlhdGVseU9yTm90IHIKICAgICAgICAgbV93ZWJQ
YWdlUHJveHktPnByb2Nlc3MoKS5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CiAgICAg
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lzV2FpdGlu
Z0ZvckRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlICYmICFtX2xheWVyVHJlZUNvbnRleHQuaXNF
bXB0eSgpKSB7CiAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSBEaWRVcGRhdGVCYWNraW5nU3RvcmVT
dGF0ZSBtZXNzYWdlLiBOb3JtYWxseSB3ZSBkbyB0aGlzIGluIERyYXdpbmdBcmVhUHJveHlJbXBs
OjpwYWludCwgYnV0IHRoYXQKICAgICAgICAgLy8gZnVuY3Rpb24gaXMgbmV2ZXIgY2FsbGVkIHdo
ZW4gaW4gYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZS4KICAgICAgICAgd2FpdEZvckFuZERp
c3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAog
dm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFj
a2luZ1N0b3JlU3RhdGUoKQpAQCAtMzAyLDcgKzI4Miw2IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94
eUltcGw6OndhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCkKICAg
ICBpZiAobV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5pc0xhdW5jaGluZygpKQogICAgICAgICBy
ZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gRklYTUU6
IHdhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5IHdpbGwgYWx3YXlzIHJldHVybiB0aGUgb2xk
ZXN0IERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgdGhhdAogICAgIC8vIGhhc24n
dCB5ZXQgYmVlbiBwcm9jZXNzZWQuIEJ1dCBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gc2tpcCBhaGVh
ZCB0byBzb21lIG90aGVyIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlCiAgICAgLy8gbWVzc2Fn
ZSwgaWYgbXVsdGlwbGUgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZXMgYXJlIHdh
aXRpbmcgdG8gYmUgcHJvY2Vzc2VkLiBGb3IgaW5zdGFuY2UsIHdlIGNvdWxkCkBAIC0zMTAsMTAg
KzI4OSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OndhaXRGb3JBbmREaXNwYXRjaERp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCkKIAogICAgIC8vIFRoZSB0aW1lb3V0IHdlIHVzZSB3
aGVuIHdhaXRpbmcgZm9yIGEgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSB3aGVu
IHdlJ3JlIGFza2VkIHRvIHBhaW50IGlzIDUwMCBtaWxsaXNlY29uZHMuCiAgICAgbV93ZWJQYWdl
UHJveHktPnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0
ZWx5PE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZT4obV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUw
MCkpOwotI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lk
IERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgQVNTRVJUKCFp
c0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSk7CkBAIC0zMzgsNyArMzE1LDYgQEAgdm9p
ZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGUKICAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBsYXllclRyZWVD
b250ZXh0OwogICAgIG1fd2ViUGFnZVByb3h5LT51cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShsYXllclRyZWVDb250ZXh0KTsKIH0KLSNlbmRpZgogCiB2b2lkIERyYXdpbmdBcmVhUHJv
eHlJbXBsOjpkaXNjYXJkQmFja2luZ1N0b3JlU29vbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmluZGV4IDIyNGVhOTEwOTViODk5ZDNm
YmMyNGRmYTYyYTM0MDQ0ZDBlY2QwMjcuLmU0ZGU0ZjMyMmVhZmQ1NWQzMzViNTgxNGZlYTg5NGMx
YzI4MTc3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5SW1wbC5oCkBAIC00NSw5ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnQoQmFj
a2luZ1N0b3JlOjpQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFdlYkNvcmU6OlJlZ2lvbiYgdW5wYWludGVkUmVnaW9uKTsKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBib29sIGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuICFtX2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgpOyB9Ci0jZW5k
aWYKIAogICAgIGJvb2wgaGFzUmVjZWl2ZWRGaXJzdFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzUmVjZWl2ZWRGaXJzdFVwZGF0ZTsgfQogCkBAIC03MywxMyArNzEsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW1lZGlhdGVseU9y
Tm90KTsKICAgICB2b2lkIHdhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBlbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKICAg
ICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZvaWQgdXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwotI2Vs
c2UKLSAgICBib29sIGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdTdG9yZVNvb24o
KTsKICAgICB2b2lkIGRpc2NhcmRCYWNraW5nU3RvcmUoKTsKQEAgLTkzLDEwICs4Nyw4IEBAIHBy
aXZhdGU6CiAgICAgLy8gd2hlbmV2ZXIgb3VyIHN0YXRlIGNoYW5nZXMgaW4gYSB3YXkgdGhhdCB3
aWxsIHJlcXVpcmUgYSBuZXcgYmFja2luZyBzdG9yZSB0byBiZSBhbGxvY2F0ZWQuCiAgICAgdWlu
dDY0X3QgbV9uZXh0QmFja2luZ1N0b3JlU3RhdGVJRDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAvLyBUaGUgY3VycmVudCBsYXllciB0cmVlIGNvbnRleHQuCiAgICAg
TGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7Ci0jZW5kaWYKIAogICAgIC8vIFdo
ZXRoZXIgd2UndmUgc2VudCBhIFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgYW5kIGFy
ZSBub3cgd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlLgog
ICAgIC8vIFVzZWQgdG8gdGhyb3R0bGUgVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZXMg
c28gd2UgZG9uJ3Qgc2VuZCB0aGVtIGZhc3RlciB0aGFuIHRoZSBXZWIgcHJvY2VzcyBjYW4gaGFu
ZGxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMWVlOTVjMWFhMjc4
NTAyMzM4MzMyZjJmNjg5NjI5Y2JlZmVhYTgwZi4uZjk4N2NmZjAzZWNmYjZiYjMyNmMwMzQyNTkz
NjdlYjlhNTEyZWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0y
MDcsMTEgKzIwNyw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRl
KSA9IDA7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2
b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0o
SU9TKSAmJiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdpbkZvY3VzT3JXaW5k
b3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
IGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNz
UHJveHlNYWMubW0KaW5kZXggYjY1YTZjMzNhNTUzOTA2ZmVhYzZjNTgxNjgzNjYwMmVmYWZkYzM1
OC4uYjg3MGJmNGYxMTM1MTY0MTNlY2Q0YmE3MjFiN2VhYjgwMWY1MmI2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJv
Y2Vzc1Byb3h5TWFjLm1tCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9u
UGEKICAgICAvLyBGb3Igbm93IG9ubHkgRmxhc2ggaXMga25vd24gdG8gYmVoYXZlIHdpdGggYXN5
bmNocm9ub3VzIHBsdWctaW4gaW5pdGlhbGl6YXRpb24uCiAgICAgcGFyYW1ldGVycy5zdXBwb3J0
c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uID0gbV9wbHVnaW5Qcm9jZXNzQXR0cmli
dXRlcy5tb2R1bGVJbmZvLmJ1bmRsZUlkZW50aWZpZXIgPT0gImNvbS5tYWNyb21lZGlhLkZsYXNo
IFBsYXllci5wbHVnaW4iOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBI
QVZFKEhPU1RFRF9DT1JFX0FOSU1BVElPTikKKyNpZiBIQVZFKEhPU1RFRF9DT1JFX0FOSU1BVElP
TikKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90ZUxheWVyU2Vy
dmVyIHNoYXJlZFNlcnZlcl0gc2VydmVyUG9ydF07CiAgICAgaWYgKHJlbmRlclNlcnZlclBvcnQg
IT0gTUFDSF9QT1JUX05VTEwpCiAgICAgICAgIHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1BvcnQgPSBJUEM6Ok1hY2hQb3J0KHJlbmRlclNlcnZlclBvcnQsIE1BQ0hfTVNHX1RZUEVf
Q09QWV9TRU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMWQ5ZDNmOTM0ZGFjZTEwNGM2ZDdjZGFiN2M1NGFhZmE3MWJlNTEyOC4uYTA0Y2ZjYzI0NzYz
NzBmYTU4OTE5YTYzZjgyMjkzZGEyZDM2MjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM5MjEsNyArMzkyMSw2IEBAIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAgIHJldHVybiBw
YXJhbWV0ZXJzOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBX
ZWJQYWdlUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBtX3BhZ2VDbGllbnQuZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKQEAgLTM5MzYsNyAr
MzkzNSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllCiB7CiAgICAgbV9wYWdlQ2xpZW50LnVw
ZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwogfQotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogdm9pZCBXZWJQYWdlUHJveHk6
OmJhY2tGb3J3YXJkQ2xlYXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGE2YmY4ZjQ5ZDk5Yjc2ZjRhZWQyMTU3NWUwM2JjYjFhNjg0ZjA5NWUuLjEyNzBj
NGYxMzg0ZWVmM2VhODQxOTZkODFjOTM1YzgxYjIwNWZmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTY5NiwxMSArNjk2LDkgQEAgcHVibGljOgogICAgIHZv
aWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRDcmFz
aCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9p
ZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKTsKLSNlbmRpZgogICAgIAogICAgIHZvaWQgZGlkRHJhdygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3Bw
CmluZGV4IGI0YTQzOTRjZTc4MzIxOTYzZTg4NzZlZjNjMTQ3MmQ0NWIyMGQ3ODkuLjNkYmQ4ZmM4
Y2M4YjhmYjliN2M1MTY4OGI2OTk2MWY5NmU4ZmY5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCkBAIC0xMTgsOSArMTE4LDcg
QEAgdm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXAKIAogICAgIEV3a1ZpZXcqIHZpZXcgPSB0b1BhZ2VM
b2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVk
TGF5b3V0KHZpZXctPndrUGFnZSgpKSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAgICAgdmlldy0+cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLmRpZENvbW1pdExvYWQo
KTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsLmNwcAppbmRleCA2MGQ5ZTNkNjAwOTBhMzNiN2UwMTNjZGRhZGMyNjUzNmMxM2Y3YmE5
Li4wMjI4NzFhMTI5ODg3YjM0Y2UwZjRiODY4OGFmNzdjNmY1NTY3OGUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbC5jcHAKQEAgLTI1LDkgKzI1LDYgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRl
ICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgiCiAKICNpbmNsdWRlICJFd2tWaWV3
LmgiCkBAIC03OCw0ICs3NSwzIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVm
bDo6c2V0Q29udHJvbGxlcihQYWdlVmlld3BvcnRDb250cm9sbGVyKiBjb250CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCmluZGV4
IGY0NzU4NWIxMTJiYzYyYWY5MjJkZDdhZmJlZjU2ZTdlYWRkZDFjYjEuLjY3OTAzNGQ0ZTI1ODE2
ZTAxOGI2MWJiNDEzNTA1Nzg4YTgwMzBhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcApAQCAtNTIsMTEgKzUyLDcgQEAgdm9pZCBWaWV3Q2xp
ZW50RWZsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoV0tWaWV3UmVmLCBXS1NpemUgc2l6ZSwgY29u
c3Qgdm9pZCogY2wKIHsKICAgICBFd2tWaWV3KiBld2tWaWV3ID0gdG9Fd2tWaWV3KGNsaWVudElu
Zm8pOwogICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChld2tWaWV3LT53a1BhZ2UoKSkpCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBld2tWaWV3LT5wYWdlVmll
d3BvcnRDb250cm9sbGVyKCkuZGlkQ2hhbmdlQ29udGVudHNTaXplKHRvSW50U2l6ZShzaXplKSk7
Ci0jZWxzZQotICAgICAgICB7IH0KLSNlbmRpZgogICAgIGVsc2UKICAgICAgICAgZXdrVmlldy0+
c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCk7CiAKQEAgLTEwMiwxMSArOTgsNyBAQCB2b2lkIFZpZXdD
bGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzUG9zaXRpb24oV0tWaWV3UmVmLCBXS1BvaW50IHBv
c2l0aW9uLCBjb25zdAogewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3a1ZpZXcoY2xpZW50
SW5mbyk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXctPndrUGFnZSgpKSkg
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgZXdrVmlldy0+cGFn
ZVZpZXdwb3J0Q29udHJvbGxlcigpLnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKHRvSW50UG9pbnQocG9z
aXRpb24pKTsKLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShwb3NpdGlvbik7Ci0jZW5kaWYK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE3LDEyICsxMDksNyBAQCB2b2lkIFZpZXdD
bGllbnRFZmw6OmRpZFJlbmRlckZyYW1lKFdLVmlld1JlZiwgV0tTaXplIGNvbnRlbnRzU2l6ZSwg
V0tSZWN0IGNvdmVyZQogewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3a1ZpZXcoY2xpZW50
SW5mbyk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXctPndrUGFnZSgpKSkg
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgZXdrVmlldy0+cGFn
ZVZpZXdwb3J0Q29udHJvbGxlcigpLmRpZFJlbmRlckZyYW1lKHRvSW50U2l6ZShjb250ZW50c1Np
emUpLCB0b0ludFJlY3QoY292ZXJlZFJlY3QpKTsKLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJB
TShjb250ZW50c1NpemUpOwotICAgICAgICBVTlVTRURfUEFSQU0oY292ZXJlZFJlY3QpOwotI2Vu
ZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzMyw5ICsxMjAsNyBAQCB2b2lkIFZp
ZXdDbGllbnRFZmw6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24oV0tWaWV3UmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQogewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3a1ZpZXcoY2xp
ZW50SW5mbyk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXctPndrUGFnZSgp
KSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgZXdrVmlldy0+
cGFnZVZpZXdwb3J0Q29udHJvbGxlcigpLnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpOwot
I2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE0NiwxMiArMTMxLDggQEAgdm9p
ZCBWaWV3Q2xpZW50RWZsOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV0tWaWV3UmVmLCBX
S1ZpZXdwb3J0QXR0cmlidXRlc1IKIHsKICAgICBFd2tWaWV3KiBld2tWaWV3ID0gdG9Fd2tWaWV3
KGNsaWVudEluZm8pOwogICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChld2tWaWV3LT53a1Bh
Z2UoKSkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIC8vIEZJ
WE1FOiBwYWdlVmlld3BvcnRDb250cm9sbGVyIHNob3VsZCBhY2NlcHQgV0tWaWV3cG9ydEF0dHJp
YnV0ZXNSZWYuCiAgICAgICAgIGV3a1ZpZXctPnBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoKS5kaWRD
aGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXModG9JbXBsKGF0dHJpYnV0ZXMpLT5vcmlnaW5hbEF0dHJp
YnV0ZXMoKSk7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oYXR0cmlidXRlcyk7Ci0jZW5k
aWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBld2tWaWV3LT5zY2hlZHVsZVVwZGF0ZURp
c3BsYXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5t
bQppbmRleCA3OWE5OTQxZjY3ZGZlZjY4MjlhNjU3N2EzMmQ3ZjM5YzI3ZDBjZDA0Li42ZWY0NzRk
ODkxZDk4MjBlMDI3MGQ0MTVhNjdjZTk1ODY3OTk1NmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBX
ZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmEKICNlbmRpZgogICAgIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlS2Vy
bmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViS2l0S2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURl
ZmF1bHREZWZhdWx0c0tleV07CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQorI2lmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFU
SU9OKQogI2lmICFQTEFURk9STShJT1MpCiAgICAgbWFjaF9wb3J0X3QgcmVuZGVyU2VydmVyUG9y
dCA9IFtbQ0FSZW1vdGVMYXllclNlcnZlciBzaGFyZWRTZXJ2ZXJdIHNlcnZlclBvcnRdOwogICAg
IGlmIChyZW5kZXJTZXJ2ZXJQb3J0ICE9IE1BQ0hfUE9SVF9OVUxMKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAKaW5kZXggZGU1NzViMjg5ZGYwOTBlYWU2Mjk1MDdjZWE1YjQ4MGJjOTNiZjRhYS4u
NTA0MGRmNDRmNDNlNWEwMzk1NTcxN2FkYWRhN2I2YTcyYjliODk2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCkBAIC01MCwxMyArNTAsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdGF0
aWMgSW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtZW50KiBlbGVtZW50KQogewogICAg
IEFTU0VSVChlbGVtZW50KTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFzTGF5ZXIo
KSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBvc2l0ZWQo
KSkgewogICAgICAgICBGbG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxGbG9hdFJl
Y3Q+KGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmcoKS0+Y29u
dGVudHNCb3goKSk7CiAgICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCk7CiAgICAgICAgIHJldHVybiBlbGVtZW50
LT5yZW5kZXJlcigpLT52aWV3KCkuZnJhbWVWaWV3KCkuY29udGVudHNUb1NjcmVlbihjb250ZW50
c0JveC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICB9Ci0jZW5kaWYKKwogICAgIHJldHVy
biBlbGVtZW50LT5zY3JlZW5SZWN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCmlu
ZGV4IGE5ZTA4MThkMjMxYWE2NTMzNmMzYjgxMDM5NWY4OWNkNzQ4NTc4MjEuLjg2OGQ4YzY4ZWJm
ZTMxYzg0NThmZDhmNjRhNTBkY2E1OTY5N2I5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNw
cApAQCAtMjg3LDExICsyODcsNyBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luOjpyZW1vdmVQbHVnaW5T
dHJlYW0oTmV0c2NhcGVQbHVnaW5TdHJlYW0qIHBsdWdpblN0cmVhbSkKIAogYm9vbCBOZXRzY2Fw
ZVBsdWdpbjo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVybiBjb250cm9sbGVyKCktPmlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW46OnB1c2hQb3B1cHNFbmFibGVkU3RhdGUoYm9v
bCBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luQ29udHJvbGxlci5oCmluZGV4IDE1MWQzZmM0ZTY1MmFjZjk1NzdiMjU3NzEwMjU1YTc1MGUz
MWViOTEuLjEwODdkMTlkMzJjNmU5NzVjOWNkMjMzZWE4MTZlNmMxMTgzZGZmNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIu
aApAQCAtODYsMTAgKzg2LDggQEAgcHVibGljOgogICAgIC8vIFNldCB0aGUgc3RhdHVzYmFyIHRl
eHQuCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAw
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFJldHVybiB3aGV0
aGVyIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQuCiAgICAgdmlydHVhbCBib29s
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKSA9IDA7Ci0jZW5kaWYKIAogICAgIC8v
IFRlbGxzIHRoZSBjb250cm9sbGVyIHRoYXQgdGhlIHBsdWctaW4gcHJvY2VzcyBoYXMgY3Jhc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQoKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAppbmRleCA3
MmNhZjY0NTZlYjc5MTNlMWI4ZDhmOTE5MGM0YjQwNmVkNzFmZDhlLi4zNmQyNzBlMzFlMmUzMjA4
NzM1NzdiOGQxZmY3ODFhODhlZGU3Y2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTEwNSwxMCArMTA1LDcgQEAgYm9vbCBQ
bHVnaW5Qcm94eTo6aW5pdGlhbGl6ZShjb25zdCBQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAg
IG1fcGVuZGluZ1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy0+Y29udGVudHNTY2FsZUZhY3RvciA9
IGNvbnRlbnRzU2NhbGVGYWN0b3IoKTsKICAgICBtX3BlbmRpbmdQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMtPmlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA9IGNvbnRyb2xsZXIoKS0+aXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkKCk7CiAgICAgbV9wZW5kaW5nUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJz
LT5hcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgPSBjb250cm9sbGVy
KCktPmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCgpOwotCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fcGVuZGluZ1BsdWdpbkNyZWF0aW9u
UGFyYW1ldGVycy0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGNvbnRyb2xsZXIo
KS0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwotI2VuZGlmCiAKICAgICBpZiAo
IWNhbkluaXRpYWxpemVBc3luY2hyb25vdXNseSgpKQogICAgICAgICByZXR1cm4gaW5pdGlhbGl6
ZVN5bmNocm9ub3VzbHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA2YmYyNWE2NDJi
NzVmZWE0MzAxODdhNmQwNGNkZjU0MTYyZTM3ZGRkLi44MjY0ODRjOGVhNTUxZTQzMzFhNzNlOGVl
NjUwZTI5YzRhNzc5NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NzksNyArNzc5
LDYgQEAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkMKICAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBN
ZW51OjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogR3JhcGhpY3NMYXllckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhp
Y3NMYXllckZhY3RvcnkoKSBjb25zdAogewogICAgIHJldHVybiBtX3BhZ2UtPmRyYXdpbmdBcmVh
KCktPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CkBAIC04MTIsNyArODExLDYgQEAgYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OmxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogCiAgICAgcmV0dXJu
IGZhbHNlOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogUGFzc1Jl
ZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTY3JvbGxp
bmdDb29yZGluYXRvcihQYWdlKiBwYWdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
NDE3MjY4YjEyOTBjOTg0NDJiOTczMzQ0ZjY4ODc4NzdmYTM4OGU1Ny4uYjc1MzFkMTRmMzBmNmIy
NGIzMTQ2ODRmMTFjZWUxMDg1YjZkNTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDUs
NyArMjA1LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0
IG92ZXJyaWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1
YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgb3Zl
cnJpZGU7CkBAIC0yMjUsNyArMjI0LDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2aXJ0dWFs
IGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoV2Vi
Q29yZTo6UGFnZSopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5n
QXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAppbmRleCBhM2JkYjM1MGMxNTllMWY1
ZjMzODBkYTZjYjMzNmEyYjc5MmY1ZDhiLi4yNTRhODNkODc4NDVlNzQ2NGRhMzI5OTU4M2U5ZGE0
MWRmOWZmZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhLmNwcApAQCAtMjY3LDE2ICsyNjcsMTMgQEAgdm9pZCBDb29yZGluYXRl
ZERyYXdpbmdBcmVhOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCiAgICAgaWYgKCFtX2xheWVy
VHJlZUhvc3QpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBBU1NFUlQoIW1fY29tcG9zaXRpbmdBY2NvcmRpbmdUb1Byb3h5TWVzc2FnZXMp
OwogICAgIGlmICghZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUGVuZGluZygpKSB7CiAg
ICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94eTo6RW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShtX2JhY2tpbmdTdG9yZVN0YXRlSUQsIG1fbGF5ZXJU
cmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7CiAgICAgICAgIG1fY29tcG9zaXRpbmdBY2Nv
cmRpbmdUb1Byb3h5TWVzc2FnZXMgPSB0cnVlOwogICAgIH0KLSNlbmRpZgogfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogR3JhcGhpY3NMYXllckZhY3RvcnkqIENvb3JkaW5h
dGVkRHJhd2luZ0FyZWE6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkKIHsKICAgICBpZiAobV9sYXll
clRyZWVIb3N0KQpAQCAtMzIwLDcgKzMxNyw2IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogICAgICAgICByZXR1cm47CiAgICAg
bV9sYXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KLSNlbmRpZgogCiB2b2lk
IENvb3JkaW5hdGVkRHJhd2luZ0FyZWE6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90
IHN0YXRlSUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
c2Nyb2xsT2Zmc2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWREcmF3aW5nQXJlYS5oCmluZGV4IGViNWM1YjJjOGIyY2FhMTkwNjc4MWZmNTlkNjg5NjY4
NjM0MDcwZGMuLmQzMDZlODYyMGVjMTE0MzM5MmI0YjEzMWQzZTE2YWU2MThiNWJhYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgK
QEAgLTYzLDExICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFBhaW50aW5n
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RD
b21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKLSNl
bmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhv
c3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCBh
ZGY3YzVjYzgwMDUxMzQ5MzRlYjQ1ZWUxMTAwY2I2NDAwZTJiNzU2Li45YmMxZGUxODJhMWZhNGU1
ZDRhMjdhYjRmNWE1YzAxZGY4MDNhNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAtMTAxLDExICsxMDEsOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0
IFdlYkNvcmU6OkZyYW1lVmlldyopIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgPSAwOwot
I2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCmluZGV4IDBhYmVhZDliN2I2
YTI1ZmE5NjY2OWY1MGI4ZGQyOWYxNjBkZmQ0M2MuLmMwZmVhMTVkMTc3OWE0ZTEwNmM3OWZmZTQ3
MWVkMzU1YzFiNjk0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBAIC0yNjgsMTYgKzI2OCwxMyBAQCB2b2lkIERy
YXdpbmdBcmVhSW1wbDo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQogICAgIGlmICghbV9sYXll
clRyZWVIb3N0KQogICAgICAgICByZXR1cm47CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgQVNTRVJUKCFtX2NvbXBvc2l0aW5nQWNjb3JkaW5nVG9Qcm94eU1lc3NhZ2Vz
KTsKICAgICBpZiAoIWV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVBlbmRpbmcoKSkgewog
ICAgICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVy
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobV9iYWNraW5nU3RvcmVTdGF0ZUlELCBtX2xheWVy
VHJlZUhvc3QtPmxheWVyVHJlZUNvbnRleHQoKSkpOwogICAgICAgICBtX2NvbXBvc2l0aW5nQWNj
b3JkaW5nVG9Qcm94eU1lc3NhZ2VzID0gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBEcmF3aW5n
QXJlYUltcGw6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkKIHsKICAgICBpZiAobV9sYXllclRyZWVI
b3N0KQpAQCAtMzMyLDcgKzMyOSw2IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAgICAgICAgIHJldHVybjsKICAgICBtX2xheWVyVHJlZUhv
c3QtPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQotI2VuZGlmCiAKIHZvaWQgRHJhd2luZ0FyZWFJ
bXBsOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBzdGF0ZUlELCBib29sIHJlc3Bv
bmRJbW1lZGlhdGVseSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkKIHsKQEAg
LTUwOCw3ICs1MDQsNiBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKCkKICAgICB9IGVsc2UKICAgICAgICAgZGlzcGxheSh1cGRhdGVJbmZvKTsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBTZW5kIGFsb25nIGEg
Y29tcGxldGUgdXBkYXRlIG9mIHRoZSBwYWdlIHNvIHdlIGNhbiBwYWludCB0aGUgY29udGVudHMg
cmlnaHQgYWZ0ZXIgd2UgZXhpdCB0aGUKICAgICAvLyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBt
b2RlLCBlbGltaW5pYXRpbmcgZmxpY2tlci4KICAgICBpZiAobV9jb21wb3NpdGluZ0FjY29yZGlu
Z1RvUHJveHlNZXNzYWdlcykgewpAQCAtNTE5LDcgKzUxNCw2IEBAIHZvaWQgRHJhd2luZ0FyZWFJ
bXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogICAgICAgICAvLyBVSSBwcm9j
ZXNzLCB3ZSBzdGlsbCBuZWVkIHRvIGxldCBpdCBrbm93IGFib3V0IHRoZSBuZXcgY29udGVudHMs
IHNvIHNlbmQgYW4gVXBkYXRlIG1lc3NhZ2UuCiAgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6RHJhd2luZ0FyZWFQcm94eTo6VXBkYXRlKG1fYmFja2luZ1N0b3JlU3RhdGVJRCwgdXBk
YXRlSW5mbykpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZXhp
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlU29vbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggZjMyN2UyMDc0YWI5
YjdjMjhmNmM5ZDgyOTI3MDRjZTFjYjRhNTdmYi4uMDM4ZWNiMzQwYWZiZmU4YTdiYTg1N2FjYjU2
MWE0ODU2MGQ5YjE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtNjcsMTEgKzY3LDkgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaCgpIG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgYm9vbCByZXNwb25kSW1tZWRpYXRlbHksIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBkNDcxNDc0MmVhNzU4MTZiODE3Mjk2ODdkMmMwYzQ1MDFkYjhkZTRl
Li5mOTgxYTM1YmZhNWY2ZDc1MjlmODAxOWE1ODJjYzRmNTQ5ZTQxNGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03OTAsNyArNzkwLDYg
QEAgdm9pZCBXZWJQYWdlOjpjbGVhck1haW5GcmFtZU5hbWUoKQogICAgICAgICBmcmFtZS0+dHJl
ZSgpLmNsZWFyTmFtZSgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
dm9pZCBXZWJQYWdlOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldFJvb3RDb21wb3NpdGluZ0xheWVy
KGxheWVyKTsKQEAgLTgwMCw3ICs3OTksNiBAQCB2b2lkIFdlYlBhZ2U6OmV4aXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSgpCiB7CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoMCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiB7CkBAIC0z
MDUxLDcgKzMwNDksNyBAQCB2b2lkIFdlYlBhZ2U6Om1haW5GcmFtZURpZExheW91dCgpCiAgICAg
ICAgIG1fY2FjaGVkUGFnZUNvdW50ID0gcGFnZUNvdW50OwogICAgIH0KIAotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgaWYgKG1fZHJhd2luZ0FyZWEgJiYgbV9kcmF3aW5n
QXJlYS0+bGF5ZXJUcmVlSG9zdCgpKSB7CiAgICAgICAgIGRvdWJsZSByZWQsIGdyZWVuLCBibHVl
LCBhbHBoYTsKICAgICAgICAgbV9tYWluRnJhbWUtPmdldERvY3VtZW50QmFja2dyb3VuZENvbG9y
KCZyZWQsICZncmVlbiwgJmJsdWUsICZhbHBoYSk7CkBAIC0zMTQ2LDcgKzMxNDQsNyBAQCB2b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
SVBDOjpNZXNzYWdlRGVjb2RlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CiAgICAgICAgIGlmIChtX2RyYXdpbmdBcmVhKQogICAgICAgICAgICAgbV9k
cmF3aW5nQXJlYS0+ZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAyYWI0ZDQ4YTI5MWQ2NDg2ZDg0ODZjNzYzZmNkMjA0Njk4YmUzM2NkLi4z
YmEyZjc1Nzc2YWUxYjU1YWEyZDY4YTliMmVlMGRmZGUzYTU4ZTQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM1MiwxMCArMzUyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2
b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlckxvYWRpbmcpOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBhZGRQbHVnaW5WaWV3KFBsdWdp
blZpZXcqKTsKICAgICB2b2lkIHJlbW92ZVBsdWdpblZpZXcoUGx1Z2luVmlldyopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVy
Q0FSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFw
aGljc0xheWVyQ0FSZW1vdGUuY3BwCmluZGV4IDBkODFmMTdjYmNiZmExYzIyZjhkYzQwOTNhZDYz
YWI0YjViNTk4NzguLjRhMGJkNDg5Y2E3NWFmMjg5MzMzZjJkMTliNWVlOTk3OTkyOTk0YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NM
YXllckNBUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAKQEAgLTI0LDkgKzI0LDYgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuaCIKIApAQCAtNTYsNSArNTMsMyBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FM
YXllcj4gR3JhcGhpY3NMYXllckNBUmVtb3RlOjpjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZv
cgogfQogCiB9Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5
ZXJDQVJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFw
aGljc0xheWVyQ0FSZW1vdGUuaAppbmRleCBlN2JkM2UzMzk3OTIwOWYxN2FmZDA3M2UwODJlYmJj
NjlkY2U2MjhhLi4xZTM0MGI2ODc0OTI2MjBkODYwMDc4OGU4YWIzNWE3ZDRiNDMyZTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5
ZXJDQVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
R3JhcGhpY3NMYXllckNBUmVtb3RlLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR3JhcGhp
Y3NMYXllckNBUmVtb3RlX2gKICNkZWZpbmUgR3JhcGhpY3NMYXllckNBUmVtb3RlX2gKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllckNBLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAKQEAgLTY4
LDYgKzY2LDQgQEAgR1JBUEhJQ1NMQVlFUl9UWVBFX0NBU1RTKEdyYXBoaWNzTGF5ZXJDQVJlbW90
ZSwgaXNHcmFwaGljc0xheWVyQ0FSZW1vdGUoKSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gR3Jh
cGhpY3NMYXllckNBUmVtb3RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAppbmRleCAy
NTExM2E0NmUwZWRmMjkwNGQ5ZDYzZmQyODEwMDYwMjlmYWFlYTlkLi43MTE0NjEwNTViYmE3NjA3
NjA3NDFmOWU1ZWVmNTgyOTdiOGY5MzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3Bw
CkBAIC0yNCw5ICsyNCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgiCkBAIC01MzIs
NSArNTI5LDMgQEAgdWludDMyX3QgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpob3N0aW5nQ29udGV4
dElEKCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KLQotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90
ZS5oCmluZGV4IGRiMTI1Y2ExMGNjYWI1NThlMzZiZTg0YjYxOTIzNGIzZjhjMDIxOWMuLjQ2OWRk
ZTUzMjkyMWMzNzM5MjU4NTE2ODUxOWFmMTY4YTQ3MGNlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVf
aAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1MYXllci5oPgpAQCAtMTcyLDYgKzE3MCw0IEBAIFBMQVRGT1JNX0NBTEFZRVJfVFlQ
RV9DQVNUUyhQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUsIGlzUGxhdGZvcm1DQUxheWVyUmVtb3RlKCkp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyUmVtb3RlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCmluZGV4IGY1OGJmZDBjODQwOGI4MjRlZjlmMWJi
OGExNTc2ZGJkY2E4MDI5NzMuLjMzMmI3MjBmZWEwZWJiYTUxMmNkOGM1ODAxODVjMjZjZWViMmUz
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaApAQCAtMjYsOCArMjYs
NiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b21faAogI2RlZmluZSBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b21faAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNTIsNiArNTAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8v
IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLm1tCmluZGV4IDk1MzkxZjdjMjFkY2UzYzgwZTNjMmJjMTI5MzJmNWY5NDQxMjNj
MDguLmYyYzA2YjA0ZjI3ODE0NTJhM2VkZGEzM2RmYmM0OGEwZWEyZWQ2MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCkBAIC0yNCw5ICsyNCw2IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCIKIAogI2ltcG9ydCAiTGF5
ZXJIb3N0aW5nQ29udGV4dC5oIgpAQCAtNzAsNSArNjcsMyBAQCB1aW50MzJfdCBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b206Omhvc3RpbmdDb250ZXh0SUQoKQogewogICAgIHJldHVybiBtX2xh
eWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVU
aWxlZEJhY2tpbmcuY3BwCmluZGV4IGNmNDFjMjczZWUwOTMzMWQ2YzQzZTVkYzg1NDg1ZGI2NDQ2
YmJmZjQuLjMwNTM3OTVjOGE2NDcyZjhmM2M0Y2Q4NDliZGFmN2E1NGM1ZTQ4N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKQEAgLTI0LDkg
KzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5oIgogCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCkBAIC0xMDUsNSAr
MTAyLDMgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OnNldEJvcmRl
ckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2wKIHsKICAgICBtX3RpbGVDb250cm9sbGVy
LT5zZXRUaWxlRGVidWdCb3JkZXJDb2xvcihjb2xvcik7CiB9Ci0KLSNlbmRpZiAvLyBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVU
aWxlZEJhY2tpbmcuaAppbmRleCAyZjNjZTE0OGFiZDczYjM5Mjc3YjA5MWE2ZDczMTAwNGU3NTI3
N2UxLi45ZDNmOTUwNTlmYzVhZTRhOTExMWUyNzUzM2UwMzYxMTJlNmY2NzlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKQEAgLTI2LDggKzI2LDYg
QEAKICNpZm5kZWYgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nX2gKICNkZWZpbmUg
UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYxLDYgKzU5LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNlbmRpZiAvLyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzBlYTVmZTEzNWY3NmQxN2Y1Mjk4
YzZhNTVjZTAzMWQzYzE2YTA5My4uZjg1NGYzNjlkNWY0MGZlYzFhYWRjMjA5ZDZlNDQ0NzExNjJm
NjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNTUs
NyArMTU1LDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBtX3Nob3VsZFRyYWNr
VmlzaXRlZExpbmtzKHRydWUpCiAgICAgLCBtX2hhc1NldENhY2hlTW9kZWwoZmFsc2UpCiAgICAg
LCBtX2NhY2hlTW9kZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICAsIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KE1BQ0hfUE9SVF9OVUxMKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApp
bmRleCAzZDQ2ZTRlMDc5ZTBmYmRmMGRhNWY4YTg3YzcwNmVkNTU2YTcwOGNmLi5mOGQ5OWZiMWYx
MTA4Y2Q5ZjVhZDdhYTAzZDYxMzRhMDc5MjA2ZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtMTExLDEwICsxMTEsOCBAQCBwdWJsaWM6CiAgICAgSW5qZWN0ZWRC
dW5kbGUqIGluamVjdGVkQnVuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEJ1bmRsZS5n
ZXQoKTsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSBjb25z
dCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsgfQogI2VuZGlmCi0jZW5k
aWYKICAgICAKICAgICB2b2lkIHNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKGJvb2wpOwogICAg
IHZvaWQgYWRkVmlzaXRlZExpbmsoV2ViQ29yZTo6TGlua0hhc2gpOwpAQCAtMjkxLDEwICsyODks
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsOwogICAgIENhY2hlTW9k
ZWwgbV9jYWNoZU1vZGVsOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQ
TEFURk9STShNQUMpCi0gICAgbWFjaF9wb3J0X3QgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBv
cnQ7Ci0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpCisgICAgbWFjaF9wb3J0X3QgbV9jb21wb3Np
dGluZ1JlbmRlclNlcnZlclBvcnQ7CiAgICAgcGlkX3QgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBp
ZDsKICAgICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJSZXNvdXJjZUNhY2hlc0Rpc3BhdGNoR3Jv
dXA7CiAgICAgYm9vbCBtX3Nob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMDRhOThkNjJl
ZWZlN2JiYmEyN2YwZWRlNDc2ODhiYzI0YjI1ODJkLi5mMjFjYTM4OTkzYTE5NDAzMzliY2RiMTBj
YWNjMDI4ZDNlNDFmNDY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFi
dWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAg
ICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZy
b20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAoaW5p
dEVjb3JlRXZhcyk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL21haW4uYzoKKyAgICAgICAgKHdp
bmRvd0NyZWF0ZSk6CisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4uYzoKKyAgICAgICAg
KGVsbV9tYWluKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdEVjb3JlRXZhcyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdEludm9jYXRpb246OmR1bXBQaXhlbHNBbmRDb21wYXJlV2l0aEV4cGVjdGVkKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwOgor
ICAgICAgICAoV1RSOjppbml0RWNvcmVFdmFzKToKKwogMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikgbGVmdG92ZXJzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlLmNwcAppbmRleCBhYzg1ZjA0YWJmYTc3MjNhYjViYjRlMmE1Y2Y2YmVjZGYxNTI1
NzY0Li5lMWNhZDM2OGVkOTc1NmUwOTAxMjA0ZjdiMWJhODYwMzg3MDhmMTU5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTQzNiw3ICs0MzYsNyBA
QCB2b2lkIGR1bXAoKQogc3RhdGljIEVjb3JlX0V2YXMqIGluaXRFY29yZUV2YXMoKQogewogICAg
IEVjb3JlX0V2YXMqIGVjb3JlRXZhcyA9IDA7Ci0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhB
VkVfRUNPUkVfWCkKICAgICBlY29yZUV2YXMgPSBlY29yZV9ldmFzX25ldygib3BlbmdsX3gxMSIs
IDAsIDAsIDgwMCwgNjAwLCAwKTsKICAgICBpZiAoIWVjb3JlRXZhcykKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWlu
LmMKaW5kZXggMTZlNDUyNDFiNmZhMzcwMjA2NjJmYTQzM2M5ZGY3ZDU2ZDNlYmFjMy4uMGM5Nzll
M2NhOWUyMTQxNWRhYTMxYTEyNmU2YjRmOWU0NjI0NDJhMyAxMDA2NDQKLS0tIGEvVG9vbHMvRVdl
YkxhdW5jaGVyL21haW4uYworKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC03OTgs
MTEgKzc5OCwxMSBAQCB3aW5kb3dDcmVhdGUoVXNlcl9Bcmd1bWVudHMgKnVzZXJBcmdzKQogICAg
ICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSNpZiBkZWZpbmVkKFdURl9VU0VfQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQorI2lmIGRlZmluZWQoSEFW
RV9FQ09SRV9YKQogICAgIGlmICh1c2VyQXJncy0+ZW5naW5lKQogI2VuZGlmCiAgICAgICAgIGFw
cC0+ZWUgPSBlY29yZV9ldmFzX25ldyh1c2VyQXJncy0+ZW5naW5lLCAwLCAwLCB1c2VyQXJncy0+
Z2VvbWV0cnkudywgdXNlckFyZ3MtPmdlb21ldHJ5LmgsIE5VTEwpOwotI2lmIGRlZmluZWQoV1RG
X1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCisj
aWYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCiAgICAgZWxzZSB7CiAgICAgICAgIGNvbnN0IGNoYXIq
IGVuZ2luZSA9ICJvcGVuZ2xfeDExIjsKICAgICAgICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3
KGVuZ2luZSwgMCwgMCwgdXNlckFyZ3MtPmdlb21ldHJ5LncsIHVzZXJBcmdzLT5nZW9tZXRyeS5o
LCBOVUxMKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29s
cy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCmluZGV4IGYxNmRlYjQ2NDJkMmE5ZmVjMDU3MmQ1OWQx
MmYyMDUyYjAzYTI5ZWMuLjJhOGZkYTEwMTgwMTk1MDczNWVhZGFiZWU0NzhhNTJiNTQ5OGJlMDQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZWZsL21haW4uYwpAQCAtMTk3Miw3ICsxOTcyLDcgQEAgZWxtX21haW4oaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkKIAogICAgIGlmIChldmFzX2VuZ2luZV9uYW1lKQogICAgICAgICBl
bG1fY29uZmlnX3ByZWZlcnJlZF9lbmdpbmVfc2V0KGV2YXNfZW5naW5lX25hbWUpOwotI2lmIGRl
ZmluZWQoV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChIQVZFX0VD
T1JFX1gpCisjaWYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCiAgICAgZWxzZSB7CiAgICAgICAgIGV2
YXNfZW5naW5lX25hbWUgPSAib3BlbmdsX3gxMSI7CiAgICAgICAgIGVsbV9jb25maWdfcHJlZmVy
cmVkX2VuZ2luZV9zZXQoZXZhc19lbmdpbmVfbmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9l
ZmwvUGxhdGZvcm1XZWJWaWV3LmNwcAppbmRleCA1YTNhYTZiMWUzYTk5NzUwOWY3MWI5NzVlY2Nh
MTYwMjNkZWI2NjI1Li42MGJjODY5YTdmNzIwM2VkOGVlYjlhMzM2ZDMyNzQ2MjEyODQwZWI2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgc3RhdGljIEVjb3JlX0V2YXMqIGluaXRFY29yZUV2YXMoKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhczsKLSNpZiBkZWZpbmVkKFdURl9VU0Vf
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQorI2lmIGRl
ZmluZWQoSEFWRV9FQ09SRV9YKQogICAgIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfbmV3KCJvcGVu
Z2xfeDExIiwgMCwgMCwgODAwLCA2MDAsIDApOwogICAgIC8vIEdyYWNlZnVsIGZhbGxiYWNrIHRv
IHNvZnR3YXJlIHJlbmRlcmluZyBpZiBldmFzX2dsIGVuZ2luZSBpcyBub3QgYXZhaWxhYmxlLgog
ICAgIGlmICghZWNvcmVFdmFzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
YWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2Fp
cm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKaW5kZXggODI4ZTY1YjFiYjdjMzVkYjdiNDZjNGIx
MzA3YzY3MjhmODhiOTEwNC4uM2FiZGZiNmFmZjVhYzU2YzhhN2Q5MTdjY2VmNTM5YjM3OTE1Nzg2
NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlv
bkNhaXJvLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZvY2F0
aW9uQ2Fpcm8uY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRSZXBhaW50
UmVjdE92ZXJsYXkoY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBXS0FycmF5UmVmIHJlcGFpbnQK
IAogdm9pZCBUZXN0SW52b2NhdGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQo
V0tJbWFnZVJlZiB3a0ltYWdlLCBXS0FycmF5UmVmIHJlcGFpbnRSZWN0cykKIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShF
RkwpCiAgICAgVU5VU0VEX1BBUkFNKHdrSW1hZ2UpOwogICAgIGNhaXJvX3N1cmZhY2VfdCogc3Vy
ZmFjZSA9IFdLSW1hZ2VDcmVhdGVDYWlyb1N1cmZhY2UoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgp
Lm1haW5XZWJWaWV3KCktPndpbmRvd1NuYXBzaG90SW1hZ2UoKS5nZXQoKSk7CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5k
ZXggZWFjMTUzYzc3YjkxYjJiYjAwZTYzZDc1YmJlMTI4YjE4NTM5MzE2ZC4uNjBmNTM4MjBiOTg2
NWEzMTgzMjliY2U4ZmIyNGNhMDY3NGZiM2JhNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBXVFIgewogc3RhdGljIEVjb3JlX0V2YXMqIGluaXRFY29yZUV2YXMoKQogewogICAgIEVj
b3JlX0V2YXMqIGVjb3JlRXZhcyA9IDA7Ci0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVf
RUNPUkVfWCkKICAgICBjb25zdCBjaGFyKiBlbmdpbmUgPSAib3BlbmdsX3gxMSI7CiAgICAgZWNv
cmVFdmFzID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCA4MDAsIDYwMCwgMCk7CiAgICAg
Ly8gR3JhY2VmdWwgZmFsbGJhY2sgdG8gc29mdHdhcmUgcmVuZGVyaW5nIGlmIGV2YXNfZ2wgZW5n
aW5lIGlzIG5vdCBhdmFpbGFibGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222644</attachid>
            <date>2014-01-30 01:39:33 -0800</date>
            <delta_ts>2014-01-30 02:18:00 -0800</delta_ts>
            <desc>Patch for landing with Cairo fix</desc>
            <filename>bug-127833-20140130114308.patch</filename>
            <type>text/plain</type>
            <size>445263</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMDc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGExNzIxYzZjZjBiMzNhYzQ5ZWM1MGU0
MTk2MWE4Y2Q4YWRhYmZlNjEuLjk2NjlkNmQ1MWY0NzcyY2M1MDA0NDkxY2YxMzNlMGY1ODg3MmVi
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1
ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBS
ZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20g
dGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAg
KiB3dGYvT3duUHRyQ29tbW9uLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisgICAgICAg
ICogd3RmL2VmbC9Pd25QdHJFZmwuY3BwOgorICAgICAgICAoV1RGOjpkZWxldGVPd25lZFB0cik6
CisKIDIwMTQtMDEtMjggIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3M2YyNTEzYThh
Zjc0MzgwNGE4NDhiMDk1OTZkNmRmMDcyNzQ1YzAuLjUyNWFmOTZhYjg4NDUyNDM2MzlmYjc1NDA4
ZmMzMjk1NzgyZTBlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MzQgQEAKKzIwMTQtMDEtMjkg
IEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBB
Q0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBt
YW5kYXRvcnkuCisKKyAgICAgICAgVGVzdHM6IE5vIG5ldyB0ZXN0cywgbm8gZnVuY3Rpb25hbCBj
aGFuZ2UuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBjc3Mv
U3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjYW5T
aGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpk
b2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIGRvbS9Qc2V1ZG9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6On5Qc2V1ZG9FbGVtZW50KToK
KyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZEZyYW1lQmFzZTo6Q2FjaGVkRnJhbWVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEZyYW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFtZTo6Q2Fj
aGVkRnJhbWUpOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkRnJhbWUuaDoKKyAgICAgICAgKiBo
aXN0b3J5L0NhY2hlZFBhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6cmVz
dG9yZSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRQYWdlLmg6CisgICAgICAgICogaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpQYWdlQ2FjaGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjptYXJrUGFnZXNGb3JEZXZpY2VTY2FsZUNo
YW5nZWQpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmg6CisgICAgICAgICogaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVu
dDo6Z2V0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cmVz
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50c0ludG9DYW52
YXNCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpkaWREcmF3KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjptYXJrQ29udGV4dENoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZXNoYXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGxhdGZvcm1MYXllcik6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZElt
cGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERl
c3Ryb3llZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnN0cnVtZW50aW5nQWdlbnRzOjpJbnN0cnVtZW50aW5nQWdlbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6OnJlc2V0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmxheWVyVHJlZUFzVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRGcmFtZVJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGVkQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVz
Y2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGluZ0Fu
Y2VzdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW50ZXJDb21wb3NpdGluZ01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojppc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNT
b2Z0d2FyZVJlbmRlcmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRlZExheWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjpkZWxlZ2F0ZXNTY3JvbGxpbmdEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlzaWJsZUNvbnRlbnRzUmVzaXplZCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFkZGVkT3JSZW1vdmVkU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5n
VGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnVwZGF0ZUxheWVyRmx1c2hUaHJvdHRsaW5nSW5BbGxGcmFtZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjphZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6Omhhc0V4dGVuZGVkQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmV4dGVuZGVkQmFja2dyb3VuZFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnNldFRyYWNrc1JlcGFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVz
ZXRUcmFja2VkUmVwYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRTY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6c2V0RXhwb3NlZFJlY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2Fs
ZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6c2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UpOgorICAgICAgICAqIHBhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
QmFzZTo6ZnJlZXplQXRUaW1lKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1
cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KToKKyAgICAgICAgKiBwYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YmxlbmRQcm9wZXJ0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25P
ZlByb3BlcnR5SXNBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVU
cmFuc2l0aW9ucyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSk6CisgICAgICAgICog
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVB
bmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5p
bWF0aW9uOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFuaW1h
dGlvbjo6ZW5kQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9u
Ojp0aW1lVG9OZXh0U2VydmljZSk6CisgICAgICAgICogcGFnZS9pb3MvRnJhbWVJT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dmlld3BvcnRPZmZzZXRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjpjb250YWluc1RpbGVkQmFja2luZ0xheWVycyk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb29y
ZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdDb29yZGluYXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjp2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRm9y
U2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNjcm9sbExheWVyRm9yRnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpoZWFkZXJMYXllckZvckZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6Zm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvdW50ZXJTY3JvbGxpbmdMYXllckZvckZy
YW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFzVmlz
aWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvblNjcm9sbENvcm5lckxh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBvc2l0aW9uU2Nyb2xsYmFyTGF5
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50U2Nyb2xsYmFycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6Omlu
dmFsaWRhdGVTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6Omlu
dmFsaWRhdGVTY3JvbGxDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6
Omhvcml6b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6aGFzTGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpoYXNMYXllckZvclNjcm9sbENvcm5l
cik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxiYXJUaGVtZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5V
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlGYWxsYmFja0N1cnNvcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFp
bnRUb1RleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnBsYXRmb3JtTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVy
aW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246OnByZWZlcnJlZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1JlbmRl
cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hT
Y2hlZHVsZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hT
Y2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1D
QUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FG
aWx0ZXJzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL0xheWVyRmx1c2hTY2hlZHVs
ZXJNYWMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
QW5pbWF0aW9uTWFjLm1tOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbjo6Y29weVRpbWlu
Z0Z1bmN0aW9uc0Zyb20pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0
Zm9ybUNBRmlsdGVyc01hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllck1hYzo6ZW51
bWVyYXRlUmVjdHNCZWluZ0RyYXduKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93
aW4vQWJzdHJhY3RDQUNGTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNGbHVzaGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3Qu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlv
bldpbi5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uOjpjb3B5VGltaW5nRnVuY3Rp
b25zRnJvbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FG
aWx0ZXJzV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29t
cGF0aWJsZUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRm
b3JtQ0FMYXllcldpbkludGVybmFsLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcldpbklu
dGVybmFsOjpkcmF3VGlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FMYXllcldpbkludGVybmFsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwbGF0Zm9ybUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpEcmF3aW5nQnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmln
Z2VyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUlPUzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNyZWF0ZVFUTW92
aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6ZGVz
dHJveVFUTW92aWVMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVRVEtpdDo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpsYXllckhvc3RDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjphY2NlbGVyYXRlZFJlbmRl
cmluZ1N0YXRlQ2hhbmdlZCk6CisgICAgICAgICgtW1dlYkNvcmVNb3ZpZU9ic2VydmVyIGxheWVy
SG9zdENoYW5nZWQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL1dlYlRpbGVkTGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
V2ViVGlsZWRMYXllci5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xE
ZWZzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250
ZXh0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNw
b3J0U3VyZmFjZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xU
cmFuc3BvcnRTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWENvbmZpZ1NlbGVjdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
dXJmYWNlQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250
ZXh0M0RXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRm
b3JtTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9jKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRv
dy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50OjpwbGF0Zm9ybUNBTGF5
ZXJMYXlvdXRTdWJsYXllcnNPZkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVZpc3VhbENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnBsYXRmb3JtTWVk
aWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpuYXR1cmFsU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcmVhdGVDR0ltYWdlRnJvbVBpeGVsQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJp
ZXZlQ3VycmVudEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6OmN1cnJlbnRSZW5kZXJpbmdNb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnByZWZlcnJl
ZFJlbmRlcmluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0Ojp0ZWFyRG93blZp
ZGVvUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQ6Omhhc1NldFVwVmlkZW9SZW5kZXJpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cmV0cmlldmVB
bmRSZXNldE1vdmllVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmNyZWF0ZUxheWVyRm9yTW92aWUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6ZGVz
dHJveUxheWVyRm9yTW92aWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVl
dWUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKiBwbHVnaW5zL1Bs
dWdpblZpZXdCYXNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVSZW5k
ZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6aXNDYW5kaWRhdGVGb3JPcGFxdWVuZXNzVGVzdCk6CisgICAgICAgIChXZWJDb3JlOjps
YXllcnNVc2VJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmltYWdlQ2hhbmdl
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpzdXNwZW5kQW5pbWF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Zml4ZWRCYWNrZ3JvdW5kUGFp
bnRzSW5Mb2NhbENvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjphZGp1c3RTdHlsZURpZmZlcmVuY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2V0U3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRl
ckZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUFsbExheWVyVG9S
ZWdpb25NYXBwaW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpp
bWFnZURpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpu
b3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYW5SZW5kZXIzRFRyYW5zZm9ybXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnBhaW50c1dpdGhGaWx0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp1cGRhdGVMYXllclBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
dXBkYXRlRGVzY2VuZGFudHNBcmVDb250aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNoZWNrSWZEZXNjZW5kYW50Q2xpcHBp
bmdDb250ZXh0TmVlZHNVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNo
b3VsZFJlcGFpbnRBZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
ZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6YWRkQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1v
dmVPbmx5VGhpc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxU
byk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXll
cnNBZnRlclNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmludmFsaWRh
dGVTY3JvbGxDb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwb3Np
dGlvbk92ZXJmbG93Q29udHJvbHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZERvU29m
dHdhcmVQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OmNvbnRhaW5lckZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpyZXBhaW50VXNpbmdDb250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnVwZGF0
ZVBsYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6YWNjZWxlcmF0ZWRSZW5k
ZXJpbmdTdGF0ZUNoYW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6cmVwYWludFJvb3RDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3
OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0TWF4aW1hbE91dGxpbmVTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNvbXBvc2l0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVmlldzo6c2V0SXNJbldpbmRvdyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcldpZGdldDo6c2V0V2lkZ2V0R2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNoYW5nZVJl
cXVpcmVzTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1
aXJlc0xheWVyUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y2hhbmdl
UmVxdWlyZXNSZWNvbXBvc2l0ZUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJh
dG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0SGVhZGVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6c2V0Rm9vdGVySGVpZ2h0KToKKwogMjAxNC0wMS0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2
MzA0OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2ZTE4ZGNjYjY3NTkwYTE0NTNjMmU5ODIyZjk0MzFj
ZjBjMTJkNTliLi5iNmU0MzhhZDJjY2U0ZGU4NjdjN2ZjMTgyY2U3NDFmZWQxMGZkOWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMDEtMjkgIEFuZHJlaSBCdWN1ciAg
PGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAg
ICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxz
IGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5kYXRvcnkuCisKKyAg
ICAgICAgQW5vdGhlciBwYXRjaCB3aWxsIGJlIHJlcXVpcmVkIHRvIHJlbW92ZSB0aGUgZmxhZyBz
dXBwb3J0IGZyb20gdGhlIEVGTCBidWlsZCBzeXN0ZW0uCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvUGFnZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChQYWdlQ2xpZW50RWZsOjphY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVu
dEVmbC5oOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAqIGV3ay9ld2tf
dmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAgICAgICAoX2V3a192
aWV3X3ByaXZfZGVsKToKKyAgICAgICAgKGV3a192aWV3X21hcmtfZm9yX3N5bmMpOgorICAgICAg
ICAqIGV3ay9ld2tfdmlld19wcml2YXRlLmg6CisKIDIwMTQtMDEtMjkgIFJ5dWFuIENob2kgIDxy
eXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEVGTCBwb3J0IHNob3VsZCBzdG9wIHVz
aW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5k
ZXggOTA4YTFhMWQyZTNkZWNkMmFjMGIyZDMzOGYzNzgxZGQ3Yzg4YjY3OS4uODhiZDg0ZjQ2MzI0
MjhkMmU4NjAwMzgzMzE5NzNjYzA5ZjE3MWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDE0LTAxLTI5ICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgorCisg
ICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09NUE9TSVRJTkcgZmxhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpIGNvbmRpdGlvbmFscyBmcm9tIHRoZSBjb2RlIGJhc2UgYW5k
IG1ha2UgQUMKKyAgICAgICAgbWFuZGF0b3J5LgorCisgICAgICAgIEFub3RoZXIgcGF0Y2ggd2ls
bCBiZSByZXF1aXJlZCB0byByZW1vdmUgdGhlIGZsYWcgc3VwcG9ydCBmcm9tIHRoZSBHVEsgYnVp
bGQgc3lzdGVtLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndpZGdldFNpemVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpmb3JjZVBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9z
ZXR0aW5ncyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlld3ByaXZhdGUuaDoKKwogMjAxNC0wMS0yOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikg
Z3VhcmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggODEzYmQxY2I0M2U3OGZjNzNmODc1MmMwMTZjODlj
YjZmMWFkYmUyMC4uZDFmOTYzMTdiNjBlZjZhNTg3NDhiZDU2ZTA1NWZlZmQ5MWJiZTg0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTI5ICBBbmRyZWkgQnVjdXIg
IDxhYnVjdXJAYWRvYmUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGNvbmRpdGlvbmFs
cyBmcm9tIHRoZSBjb2RlIGJhc2UgYW5kIG1ha2UgQUMKKyAgICAgICAgbWFuZGF0b3J5LgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50SU9TOjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2ViVmlldy9X
ZWJVSUtpdERlbGVnYXRlLmg6CisKIDIwMTQtMDEtMjcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXguIEZBTExU
SFJPVUdIcyBmb3IgaU9TLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQwOGI1ZTM2ZTFkNmZjZDg2MzYz
YmM2MGMxNTljZTlmNzI2ZjEwMTguLjRkYTc3Njc3MmVhNjBkMmU1MjM5NDUyYmE0YWY3NDAzMzg5
NWVjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNC0wMS0yOSAgQW5k
cmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzgzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIFJlbW92ZSB0aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBj
b25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRh
dG9yeS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGNyZWF0ZVBs
dWdpbl0pOgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgY3JlYXRlUGx1
Z2luTGF5ZXJdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbToK
KyAgICAgICAgKC1bV2ViTmV0c2NhcGVQbHVnaW5WaWV3IGNyZWF0ZVBsdWdpbl0pOgorICAgICAg
ICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgZ2V0VmFyaWFibGU6dmFsdWU6XSk6CisgICAgICAg
ICogUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJQbHVnaW5D
b250cm9sbGVyIHN1cGVybGF5ZXJGb3JQbHVnaW5WaWV3Ol0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphbGxv
d2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAoUGx1Z2luV2lkZ2V0SU9TOjpkZXRhY2hQbHVnaW5MYXllcik6Cisg
ICAgICAgIChOZXRzY2FwZVBsdWdpbldpZGdldDo6cGxhdGZvcm1MYXllcik6CisgICAgICAgICog
V2ViVmlldy9XZWJDbGlwVmlldy5tbToKKyAgICAgICAgKC1bV2ViQ2xpcFZpZXcgX2ltbWVkaWF0
ZVNjcm9sbFRvUG9pbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAg
ICAgICAgKHNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgICgrW1dlYkhUTUxWaWV3UHJp
dmF0ZSBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3UHJpdmF0ZSBjbGVhcl0p
OgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfc2V0QXNpZGVTdWJ2aWV3c10pOgorICAgICAgICAo
LVtXZWJIVE1MVmlldyBoaXRUZXN0Ol0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfaXNVc2lu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2NvbXBv
c2l0aW5nTGF5ZXJzSG9zdGluZ1ZpZXddKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgdmlld0Rp
ZE1vdmVUb1N1cGVydmlld10pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkcmF3UmVjdDpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlJlbmRlckxheWVyLm1tOgorICAgICAgICAoK1tXZWJSZW5kZXJMYXllciBjb21wb3Np
dGluZ0luZm9Gb3JMYXllcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX2Nsb3NlXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldE1lZGlhTGF5
ZXI6Zm9yUGx1Z2luVmlldzpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcG9zdHNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uc10pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRQb3N0
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ10pOgorICAgICAgICAoLVtXZWJWaWV3
IF9pc1NvZnR3YXJlUmVuZGVyYWJsZV0pOgorICAgICAgICAoLVtXZWJWaWV3IGNsb3NlXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d0RhdGEubW06CisgICAgICAgIChXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcjo6V2ViVmlld0xh
eWVyRmx1c2hTY2hlZHVsZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6
CisKIDIwMTQtMDEtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpIGxlZnRvdmVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IGQ3Nzk5ODQyMDEyODU4MzU0MDdmNTg1ZjYwNWQ3NWEyYWQwY2VjZTgu
LjE0MmYxNDg5NjU3OTU5YzljZGU4YTBlMDY2OWQ5ZWZiM2NlZWEwN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNC0wMS0yOSAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFk
b2JlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HIGZs
YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgz
MworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFJlbW92
ZSB0aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBjb25kaXRpb25hbHMgZnJvbSB0aGUg
Y29kZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRhdG9yeS4KKworICAgICAgICBBbm90
aGVyIHBhdGNoIHdpbGwgYmUgcmVxdWlyZWQgdG8gcmVtb3ZlIHRoZSBmbGFnIHN1cHBvcnQgZnJv
bSB0aGUgV2luIGJ1aWxkIHN5c3RlbS4KKworICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6TGF5ZXJDbGll
bnQ6OnBsYXRmb3JtQ0FMYXllckxheW91dFN1YmxheWVyc09mTGF5ZXIpOgorICAgICAgICAoRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcik6CisgICAg
ICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjp+RnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
cik6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjplbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICAqIFdlYlByZWZlcmVuY2Vz
LmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3
KToKKyAgICAgICAgKFdlYlZpZXc6On5XZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OmNsb3Nl
KToKKyAgICAgICAgKFdlYlZpZXc6OnJlcGFpbnQpOgorICAgICAgICAoV2ViVmlldzo6YWRkVG9E
aXJ0eVJlZ2lvbik6CisgICAgICAgIChXZWJWaWV3OjpzY3JvbGxCYWNraW5nU3RvcmUpOgorICAg
ICAgICAoV2ViVmlldzo6c2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViVmlldzo6dXBkYXRlQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFdlYlZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNob3VsZEludmVydENvbG9ycyk6CisgICAgICAgIChXZWJWaWV3OjpXZWJWaWV3V25kUHJv
Yyk6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgICogV2ViVmll
dy5oOgorCiAyMDE0LTAxLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUHJlcGFyZSBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb24g
V2luQ2Fpcm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDUwMjAxZThiNzQ5MmZmMjUxOGQzN2Nl
YWJjY2JhNjAwODQ1MWQ3YjEuLjFiNzc4YWQxNDQ5N2I5M2Y2NjgxMGJjMzlkMzAzNzA3ZmY1MDMw
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDEtMjkgIEFu
ZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBBQ0NF
TEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykg
Y29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAgICAgICBtYW5k
YXRvcnkuCisKKyAgICAgICAgQW5vdGhlciBwYXRjaCB3aWxsIGJlIHJlcXVpcmVkIHRvIHJlbW92
ZSB0aGUgZmxhZyBzdXBwb3J0IGZyb20gdGhlIFdpbkNFIGJ1aWxkIHN5c3RlbS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50V2luQ0U6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorCiAyMDE0LTAxLTI1
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IGFuIHVudXNlZCBGcmFtZUxvYWRlckNsaWVudCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVmM2Fh
MGNlZDkxMzQxNzJhODAzNjBjYWEwYjY0MWIxY2I3NTNkYjcuLmRlZmUwNjY3Nzk1NDRlZTY2Mjdm
ZGRlZGY0NjA2NDExMDM3ZTdjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTQt
MDEtMjkgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFrZSBBQworICAg
ICAgICBtYW5kYXRvcnkuCisKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNvbnRyb2xsZXJQcm94eTo6UGx1
Z2luQ29udHJvbGxlclByb3h5KToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVyTGF5ZXIpOgorICAgICAgICAqIFNoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90
ZUxheWVyQmFja2luZ1N0b3JlLm1tOgorICAgICAgICAoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6
OmVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
RXZhc0dMQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29u
dGV4dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcp
OgorICAgICAgICAoRXdrVmlldzo6ZGlzcGxheVRpbWVyRmlyZWQpOgorICAgICAgICAoRXdrVmll
dzo6Y3JlYXRlR0xTdXJmYWNlKToKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RD
YWxjdWxhdGUpOgorICAgICAgICAoRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdFNob3cpOgorICAg
ICAgICAoRXdrVmlldzo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdM
LmNwcDoKKyAgICAgICAgKGdldEltYWdlU3VyZmFjZUZyb21GcmFtZUJ1ZmZlcik6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNwcDoKKyAg
ICAgICAgKEVXSzJVbml0VGVzdDo6RVdLMlVuaXRUZXN0QmFzZTo6U2V0VXApOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6On5Db29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdB
cmVhUHJveHk6OnZpc2liaWxpdHlEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJl
YVByb3h5OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojpz
ZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRl
ZERyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9y
ZVN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OnNldFZpc2libGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6On5EcmF3aW5nQXJlYVByb3h5SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRVcGRhdGVCYWNraW5n
U3RvcmVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFQcm94eUltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHlJbXBsOjpzZW5kVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5SW1w
bDo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVmlld0NsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAg
IChXZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzUG9zaXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpkaWRSZW5kZXJGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OlZpZXdDbGllbnRFZmw6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3Q2xpZW50RWZsOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6c2NyZWVuUmVjdE9mQ29udGVudHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5
Ojppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMpOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZERyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmxheWVySG9zdERp
ZEZsdXNoTGF5ZXJzKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1w
bDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptYWluRnJhbWVEaWRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6Omhvc3RpbmdDb250ZXh0SUQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6aG9zdGluZ0NvbnRl
eHRJRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nOjpzZXRCb3JkZXJDb2xvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxNC0wMS0z
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSURCOiBLZXkg
Z2VuZXJhdG9yIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL093blB0ckNvbW1v
bi5oIGIvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKaW5kZXggYzMxODQ3YjhiODFjYmNl
ZWJhYTBhYmE0NmY5ZDQ2NWJkMTA2YWE3YS4uYTE5NjIxZTEzYTk2MGEzM2NhZWYwY2E2NTIzYzdj
MTI2NWQ0ZDQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKKysr
IGIvU291cmNlL1dURi93dGYvT3duUHRyQ29tbW9uLmgKQEAgLTM5LDEwICszOSw4IEBAIHR5cGVk
ZWYgc3RydWN0IF9Fb19PcGFxdWUgRXZhc19PYmplY3Q7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3Qg
X0V2YXNfT2JqZWN0IEV2YXNfT2JqZWN0OwogI2VuZGlmCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0wgRXZhc19HTDsKICNlbmRpZgotI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02MCwxMCArNTgsOCBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX0hhc2gq
KTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZWxldGVPd25lZFB0cihFaW5hX01vZHVs
ZSopOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfT2Jq
ZWN0Kik7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGRlbGV0ZU93bmVkUHRyKEV2YXNfR0wqKTsKICNlbmRpZgotI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBhMGRhNTU5MTQ4OWQxODM1Nzhm
ZDMxZWQ1OThmMGZmZThmMjYzYTliLi5kZDExMmUzZWQ3MmNhZjI2NjE0YWEzODZiMzU2ZDJhOGVi
MTA4ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTg1NCwxMSArODU0LDYgQEAKICNlbmRpZgogI2VuZGlm
CiAKLS8qIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nICovCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQ
TEFURk9STShJT1MpIHx8IChQTEFURk9STShXSU4pICYmICFVU0UoV0lOR0RJKSAmJiAhUExBVEZP
Uk0oV0lOX0NBSVJPKSkKLSNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORyAx
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJHTCkgJiYgIWRlZmluZWQoV1RGX1VTRV8zRF9HUkFQ
SElDUykKICNkZWZpbmUgV1RGX1VTRV8zRF9HUkFQSElDUyAxCiAjZW5kaWYKQEAgLTg3NSw3ICs4
NzAsNyBAQAogI2RlZmluZSBHU1RfQVBJX1ZFUlNJT05fMSAxCiAjZW5kaWYKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oV0lOX0NBSVJPKQorI2lmIFBMQVRG
T1JNKFdJTl9DQUlSTykKICNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUiAxCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL093blB0ckVmbC5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcAppbmRleCA0YjI4OWY4NTk4YzEzZGU4YjUxN2M4MGMz
NjIxMDNkZmMwM2M2MDJmLi4yNjM0YmNmYzljNTVhODE0MzRlMDU5NTdkNGZmZjhiYmY0MDZmN2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvT3duUHRyRWZsLmNwcApAQCAtMzIsMTAgKzMyLDcgQEAKICNpbmNsdWRl
IDxFY29yZV9JTUYuaD4KICNpbmNsdWRlIDxFaW5hLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgotCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgPEV2YXNfR0wuaD4KLSNl
bmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtNjksMTIgKzY2LDEwIEBAIHZvaWQgZGVsZXRl
T3duZWRQdHIoRWNvcmVfSU1GX0NvbnRleHQqIHB0cikKICAgICAgICAgZWNvcmVfaW1mX2NvbnRl
eHRfZGVsKHB0cik7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lk
IGRlbGV0ZU93bmVkUHRyKEV2YXNfR0wqIHB0cikKIHsKICAgICBpZiAocHRyKQogICAgICAgICBl
dmFzX2dsX2ZyZWUocHRyKTsKIH0KLSNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggMWQxNzZlZGYxNGNjYTM1OWNkYjIzNTMyZGNmZDIx
YmVlMDM2NzQyOC4uZDM5NTYxNTVlNGQ3ZWQyZTNkNmRlZWM0ZDZjZTQ5NGFiNmMwNWZlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTUsNyArNTUs
NyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogCi0jaWYgRU5BQkxFKDNEX1JFTkRFUklORykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorI2lmIEVOQUJMRSgzRF9SRU5ERVJJTkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgiCiAjZW5kaWYKIApAQCAtNTcxLDEwICs1NzEsOCBAQCBzdGF0aWMgYm9vbCB0cmFu
c2Zvcm1fM2RNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBG
cmFtZSogZgogCiAjaWYgRU5BQkxFKDNEX1JFTkRFUklORykKICAgICBib29sIHRocmVlREVuYWJs
ZWQgPSBmYWxzZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJl
bmRlclZpZXcqIHZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHRocmVl
REVuYWJsZWQgPSB2aWV3LT5jb21wb3NpdG9yKCkuY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCk7Ci0j
ZW5kaWYKIAogICAgIHJldHVyblZhbHVlSWZOb1BhcmFtZXRlciA9IHRocmVlREVuYWJsZWQ7CiAg
ICAgaGF2ZTNkUmVuZGVyaW5nID0gdGhyZWVERW5hYmxlZCA/IDEgOiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDgyNzM4OGYyOWQ2ZDI3NWJiNTk5OGE3NTU3YTk2YzNm
YmI2OTk4MTIuLjkxNzJiMGYxZmQ0MTljNDdjNDI0MjY5MGM3Zjk5YzlhZTZiMDQwNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY4MCw3ICs2ODAsNiBAQCBib29sIFN0
eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChTdHlsZWRFbGVtZW50KiBlbGVt
ZW50KSBjb25zdAogICAgIGlmIChzdHlsZS0+dHJhbnNpdGlvbnMoKSB8fCBzdHlsZS0+YW5pbWF0
aW9ucygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgLy8gVHVybiBvZmYgc3R5bGUgc2hhcmluZyBmb3IgZWxlbWVudHMgdGhh
dCBjYW4gZ2FpbiBsYXllcnMgZm9yIHJlYXNvbnMgb3V0c2lkZSBvZiB0aGUgc3R5bGUgc3lzdGVt
LgogICAgIC8vIFNlZSBjb21tZW50cyBpbiBSZW5kZXJPYmplY3Q6OnNldFN0eWxlKCkuCiAgICAg
aWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KGZyYW1lVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5o
YXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpIHx8
IGVsZW1lbnQtPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkKQEAgLTY5Miw4ICs2OTEsNiBAQCBib29s
IFN0eWxlUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChTdHlsZWRFbGVtZW50KiBl
bGVtZW50KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAotI2VuZGlmCi0K
ICAgICBpZiAoZWxlbWVudEhhc0RpcmVjdGlvbkF1dG8oZWxlbWVudCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWMyOGM2YjJmNzBiOGVkNjcx
NGY3MDUxYmRjZTdjMDQwMzIxNzQyYS4uN2Q3MGRjYzNlZThlZDdhMDYyN2Q0ZTM4OWJmMDE0ZDky
MTIwYWE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTQsNiArMTE0LDcgQEAKICNp
bmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQb3BTdGF0ZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJl
bmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgpAQCAtMTUy
LDEwICsxNTMsNiBAQAogI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiAjaWYg
RU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogI2luY2x1ZGUgIlNoYXJlZFdvcmtlclJlcG9zaXRvcnku
aCIKICNlbmRpZgpAQCAtMTI0MiwxMCArMTIzOSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKGJvb2wgdmlzdWFsVXBkYXRlc0FsbG93ZWQpCiAgICAgICAgIH0KICAg
ICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHZpZXcoKSkK
ICAgICAgICAgdmlldygpLT51cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7Ci0j
ZW5kaWYKIAogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmll
dygpKQogICAgICAgICByZW5kZXJWaWV3LT5yZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMo
KTsKQEAgLTE3NTEsOSArMTc0Niw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxl
OjpDaGFuZ2UgY2hhbmdlKQogCiAgICAgICAgIFN0eWxlOjpyZXNvbHZlVHJlZSgqdGhpcywgY2hh
bmdlKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgZnJhbWVW
aWV3LnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpOwotI2VuZGlmCiAK
ICAgICAgICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgIGNsZWFyQ2hpbGROZWVk
c1N0eWxlUmVjYWxjKCk7CkBAIC0xOTU2LDkgKzE5NDksNyBAQCB2b2lkIERvY3VtZW50OjpjcmVh
dGVSZW5kZXJUcmVlKCkKICAgICBtX3JlbmRlclZpZXcgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJW
aWV3PigqdGhpcywgUmVuZGVyU3R5bGU6OmNyZWF0ZSgpKTsKICAgICBOb2RlOjpzZXRSZW5kZXJl
cihtX3JlbmRlclZpZXcuZ2V0KCkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRvdyh0cnVlKTsKLSNlbmRpZgogCiAgICAg
cmVjYWxjU3R5bGUoU3R5bGU6OkZvcmNlKTsKIH0KQEAgLTQwNzcsMTAgKzQwNjgsOCBAQCB2b2lk
IERvY3VtZW50OjpzZXRJblBhZ2VDYWNoZShib29sIGZsYWcpCiAKIHZvaWQgRG9jdW1lbnQ6OmRv
Y3VtZW50V2lsbEJlY29tZUluYWN0aXZlKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKHJlbmRlclZpZXcoKSkKICAgICAgICAgcmVuZGVyVmlldygpLT5zZXRJ
c0luV2luZG93KGZhbHNlKTsKLSNlbmRpZgogfQogCiB2b2lkIERvY3VtZW50Ojpkb2N1bWVudFdp
bGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkKQEAgLTQxMDYsMTAgKzQwOTUsOCBAQCB2b2lkIERvY3Vt
ZW50Ojpkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKQogICAgIGZvciAoVmVjdG9yPEVs
ZW1lbnQqPjo6aXRlcmF0b3IgaSA9IGVsZW1lbnRzLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCiAg
ICAgICAgICgqaSktPmRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgpOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChyZW5kZXJWaWV3KCkpCiAgICAgICAg
IHJlbmRlclZpZXcoKS0+c2V0SXNJbldpbmRvdyh0cnVlKTsKLSNlbmRpZgogCiAgICAgQVNTRVJU
KHBhZ2UoKSk7CiAgICAgcGFnZSgpLT5sb2NrQWxsT3ZlcmxheVNjcm9sbGJhcnNUb0hpZGRlbihm
YWxzZSk7CkBAIC01MDA4LDEyICs0OTk1LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OndpbmRvd1NjcmVl
bkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlEKTsK
ICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5k
ZXJWaWV3KiB2aWV3ID0gcmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmICh2aWV3LT51c2VzQ29t
cG9zaXRpbmcoKSkKICAgICAgICAgICAgIHZpZXctPmNvbXBvc2l0b3IoKS53aW5kb3dTY3JlZW5E
aWRDaGFuZ2UoZGlzcGxheUlEKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogU3RyaW5nIERvY3VtZW50
OjpkaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGNvbnN0IFN0cmluZyYgc3RyKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCmluZGV4IDI5MjU5ZTJlYzgwZDQ2YThm
NzQ5MjIyNzViZTUwYzAyYzA3MzE1NWYuLmNlNWJmMmNmZTUyNGRjMDVjNGJmNjZmOWNmMGU0NWQy
ZDQ1Zjg2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKQEAgLTY3LDkgKzY3
LDcgQEAgUHNldWRvRWxlbWVudDo6UHNldWRvRWxlbWVudChFbGVtZW50JiBob3N0LCBQc2V1ZG9J
ZCBwc2V1ZG9JZCkKIFBzZXVkb0VsZW1lbnQ6On5Qc2V1ZG9FbGVtZW50KCkKIHsKICAgICBBU1NF
UlQoIW1faG9zdEVsZW1lbnQpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1l
bnQoKS5wYWdlKCksIHRoaXMpOwotI2VuZGlmCiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFBzZXVkb0VsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAxZjYxNjcxZDc1YjJjNmFjYzc5ZDBiY2UyMzg3ZWE1
Mzc0NzI1ODNiLi43MjFlOWUzY2ZjMmYxODdhZWU1ZjNmYzJhMDBhZDRkZDY2NjdmN2I5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVu
dC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKQEAgLTU4LDEwICs1OSw2IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50
LmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERFRklORV9E
RUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkRnJhbWVD
b3VudGVyLCAoIkNhY2hlZEZyYW1lIikpOwpAQCAtNzMsOSArNzAsNyBAQCBDYWNoZWRGcmFtZUJh
c2U6OkNhY2hlZEZyYW1lQmFzZShGcmFtZSYgZnJhbWUpCiAgICAgLCBtX21vdXNlUHJlc3NOb2Rl
KGZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlUHJlc3NOb2RlKCkpCiAgICAgLCBtX3VybChmcmFt
ZS5kb2N1bWVudCgpLT51cmwoKSkKICAgICAsIG1faXNNYWluRnJhbWUoIWZyYW1lLnRyZWUoKS5w
YXJlbnQoKSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2lzQ29t
cG9zaXRlZChmcmFtZS52aWV3KCktPmhhc0NvbXBvc2l0ZWRDb250ZW50KCkpCi0jZW5kaWYKIHsK
IH0KIApAQCAtMTEyLDEwICsxMDcsOCBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgp
CiAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAgZnJhbWUuc2NyaXB0KCkudXBkYXRlUGxhdGZvcm1T
Y3JpcHRPYmplY3RzKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKG1faXNDb21wb3NpdGVkKQogICAgICAgICBmcmFtZS52aWV3KCktPnJlc3RvcmVCYWNraW5n
U3RvcmVzKCk7Ci0jZW5kaWYKIAogICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmRpZFJlc3Rv
cmVGcm9tUGFnZUNhY2hlKCk7CiAKQEAgLTE4OCwxMCArMTgxLDggQEAgQ2FjaGVkRnJhbWU6OkNh
Y2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKIAogICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNh
dmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1lKHRoaXMpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lzQ29tcG9zaXRlZCAmJiBwYWdlQ2FjaGUoKS0+c2hv
dWxkQ2xlYXJCYWNraW5nU3RvcmVzKCkpCiAgICAgICAgIGZyYW1lLnZpZXcoKS0+Y2xlYXJCYWNr
aW5nU3RvcmVzKCk7Ci0jZW5kaWYKIAogICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdl
Q2FjaGUoKSBjYW4gc2V0IHVwIGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNs
ZWFyIHRpbWVycyBhZnRlciB0aGF0LgogICAgIGZyYW1lLmNsZWFyVGltZXJzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmgKaW5kZXggZTlmMzY3YmJkNDJmNTM4NGMwMjgyOTM4YmI3
MDU4MmU3YjIwZmRkMi4uZmVhZTFkZjIwYjdiNGRhOWI5ZGMxNDY3ZmNiYTcyYWVmYWM3ZTQyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuaApAQCAtNjEsOSArNjEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdENhY2hlZEZyYW1lRGF0YT4gbV9jYWNo
ZWRGcmFtZVNjcmlwdERhdGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZEZyYW1lUGxhdGZv
cm1EYXRhPiBtX2NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhOwogICAgIGJvb2wgbV9pc01haW5GcmFt
ZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBtX2lzQ29tcG9z
aXRlZDsKLSNlbmRpZgogICAgIAogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkRnJh
bWU+PiBtX2NoaWxkRnJhbWVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvQ2FjaGVkUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3Bw
CmluZGV4IGNhZDE4NDk3ZWIyMjVjN2MxMzIzM2Y2ZjE1ZWFjYTMxNDJlMzNmOTUuLjBiNDViNWZk
YjI5NDNiZGU1ZDA0MzNlYTdkMTMzNjBmODRjODQ3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9D
YWNoZWRQYWdlLmNwcApAQCAtMTAxLDExICsxMDEsOSBAQCB2b2lkIENhY2hlZFBhZ2U6OnJlc3Rv
cmUoUGFnZSYgcGFnZSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT52aXNpdGVkTGlu
a1N0YXRlKCkuaW52YWxpZGF0ZVN0eWxlRm9yQWxsTGlua3MoKTsKICAgICB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fbmVlZHNEZXZpY2VTY2FsZUNoYW5n
ZWQpIHsKICAgICAgICAgcGFnZS5tYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWQoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVjYWxj
KQogICAgICAgICBwYWdlLnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAppbmRleCBiYjgzZTBmZmY4ODEwMGZmMjAwYWExNjY3MTQ3
ZjU0ZTdlNDc1Nzg3Li5jOTc3ZGRkZDRkMTljMmRlNjNkNzBhMTJlMWQ4NDhkZTQ3NGEzMDJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaApAQCAtNTYsOSArNTYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBtYXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIHsgbV9uZWVkc0Nh
cHRpb25QcmVmZXJlbmNlc0NoYW5nZWQgPSB0cnVlOyB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIG1hcmtGb3JEZXZpY2VTY2FsZUNoYW5nZWQo
KSB7IG1fbmVlZHNEZXZpY2VTY2FsZUNoYW5nZWQgPSB0cnVlOyB9Ci0jZW5kaWYKIAogcHJpdmF0
ZToKICAgICB2b2lkIGRlc3Ryb3koKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApp
bmRleCA1N2VjMjRlZmI2ZTkyYjhjNDRiYmM3ZDE5Yjk5ZGQwODdmM2Y1M2EyLi5kNzhmYTEyOGQy
ODRjN2QxZjI5ZTU2MzYwYjNhZDk3NWI4YjIyYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwCkBAIC0zMDYsOSArMzA2LDcgQEAgUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQogICAg
ICwgbV9zaXplKDApCiAgICAgLCBtX2hlYWQoMCkKICAgICAsIG1fdGFpbCgwKQotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fc2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVz
KGZhbHNlKQotI2VuZGlmCiB7CiB9CiAgICAgCkBAIC00MzQsOCArNDMyLDYgQEAgdm9pZCBQYWdl
Q2FjaGU6Om1hcmtQYWdlc0ZvckZ1bGxTdHlsZVJlY2FsYyhQYWdlKiBwYWdlKQogICAgIH0KIH0K
IAotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBQYWdlQ2FjaGU6Om1h
cmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdlZChQYWdlKiBwYWdlKQogewogICAgIGZvciAoSGlz
dG9yeUl0ZW0qIGN1cnJlbnQgPSBtX2hlYWQ7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5t
X25leHQpIHsKQEAgLTQ0NCw3ICs0NDAsNiBAQCB2b2lkIFBhZ2VDYWNoZTo6bWFya1BhZ2VzRm9y
RGV2aWNlU2NhbGVDaGFuZ2VkKFBhZ2UqIHBhZ2UpCiAgICAgICAgICAgICBjYWNoZWRQYWdlLT5t
YXJrRm9yRGV2aWNlU2NhbGVDaGFuZ2VkKCk7CiAgICAgfQogfQotI2VuZGlmCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiB2b2lkIFBhZ2VDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaAppbmRleCBlYmFiMTBj
MWVjY2EwYTNjMjE1YTg5M2EzOGVhYWMzYTEyOTEzMzhhLi4yODIxYTVhNzQzODY5MDA2OTE0MjRh
OWQxNDUwNzViMmFjNjYzYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmgKQEAgLTY4
LDExICs2OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBtYXJrUGFnZXNG
b3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICAgICAgYm9vbCBzaG91bGRDbGVhckJhY2tpbmdTdG9yZXMo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsZWFyQmFja2luZ1N0b3JlczsgfQogICAgICAgICB2
b2lkIHNldFNob3VsZENsZWFyQmFja2luZ1N0b3Jlcyhib29sIGZsYWcpIHsgbV9zaG91bGRDbGVh
ckJhY2tpbmdTdG9yZXMgPSBmbGFnOyB9CiAgICAgICAgIHZvaWQgbWFya1BhZ2VzRm9yRGV2aWNl
U2NhbGVDaGFuZ2VkKFBhZ2UqKTsKLSNlbmRpZgogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGFn
ZUNhY2hlKCk7IC8vIFVzZSBwYWdlQ2FjaGUoKSBpbnN0ZWFkLgpAQCAtOTIsOSArOTAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEhpc3RvcnlJdGVtKiBtX2hlYWQ7CiAgICAgICAg
IEhpc3RvcnlJdGVtKiBtX3RhaWw7CiAgICAgICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICAgICAgYm9vbCBtX3Nob3VsZENsZWFyQmFja2luZ1N0b3JlczsKLSNlbmRp
ZgogICAgICB9OwogCiAgICAgLy8gRnVuY3Rpb24gdG8gb2J0YWluIHRoZSBnbG9iYWwgcGFnZSBj
YWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNTE4
YTM0MjMzMzBkMmQyOTY0Nzk0OGVjYjZmOWU4MGNhYWEwYzRkNC4uNjAwZTI5MTllODBmMjhiYjc2
YWUzNDk5YjU4NzRiMmM4MTgwZGU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBI
VE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29udGV4dChjb25zdCBTdHJpbmcmIHR5cGUsIENhbnZhcwog
ICAgICAgICAgICAgICAgIHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlNb2RlID0gc2V0dGluZ3Mt
PnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7CiAjZW5kaWYKICAgICAg
ICAgICAgIG1fY29udGV4dCA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlKHRoaXMs
IGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlNb2Rl
KTsKLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCAoRU5BQkxFKEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSkKKyNp
ZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKQogICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJM
YXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKICAg
ICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwogI2Vu
ZGlmCkBAIC0zNTYsMTAgKzM1Niw4IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnJlc2V0KCkK
ICAgICAgICAgaWYgKG1fcmVuZGVyZXJJc0NhbnZhcykgewogICAgICAgICAgICAgaWYgKG9sZFNp
emUgIT0gc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICAgdG9SZW5kZXJIVE1MQ2FudmFzKHJlbmRl
cmVyKS0+Y2FudmFzU2l6ZUNoYW5nZWQoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgICAgICAgICAgICAgaWYgKHJlbmRlckJveCgpICYmIHJlbmRlckJveCgpLT5oYXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHJlbmRlckJveCgp
LT5jb250ZW50Q2hhbmdlZChDYW52YXNDaGFuZ2VkKTsKLSNlbmRpZgogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKGhhZEltYWdlQnVmZmVyKQogICAgICAgICAgICAgICAgIHJlbmRlcmVy
LT5yZXBhaW50KCk7CkBAIC0zODcsMTMgKzM4NSwxMiBAQCBib29sIEhUTUxDYW52YXNFbGVtZW50
OjpwYWludHNJbnRvQ2FudmFzQnVmZmVyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAj
ZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIW1fY29u
dGV4dC0+aXNBY2NlbGVyYXRlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChy
ZW5kZXJCb3goKSAmJiByZW5kZXJCb3goKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC02MTYsNyArNjEzLDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogICAgIHNpemVfdCBudW1CeXRlcyA9IDQgKiBtX2ltYWdlQnVmZmVyLT5pbnRl
cm5hbFNpemUoKS53aWR0aCgpICogbV9pbWFnZUJ1ZmZlci0+aW50ZXJuYWxTaXplKCkuaGVpZ2h0
KCk7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT52bSgpLT5oZWFwLnJlcG9ydEV4dHJh
TWVtb3J5Q29zdChudW1CeXRlcyk7CiAKLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5H
X1NUT1JFKSB8fCAoRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSkKKyNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JF
KSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmIChtX2NvbnRleHQgJiYg
bV9jb250ZXh0LT5pczJkKCkpCiAgICAgICAgIC8vIFJlY2FsY3VsYXRlIGNvbXBvc2l0aW5nIHJl
cXVpcmVtZW50cyBpZiBhY2NlbGVyYXRpb24gc3RhdGUgY2hhbmdlZC4KICAgICAgICAgY29uc3Rf
Y2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KHRoaXMpLT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRo
ZXRpY1N0eWxlQ2hhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IDM1ZjAwNDc5ODUwNDkyNjJmYzkyODJjMzQ3ODZjOTY5NDgxMTIyMjguLjlmOTk3YjA2
YzJmZmJjOTBjNTlhZDJmZDUxNDhmMWNmZDQwYWU0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIlBhZ2VBY3Rp
dml0eUFzc2VydGlvblRva2VuLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAtNzksMTAgKzgwLDYgQEAKICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICNpbmNsdWRlICJSZW5k
ZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCkBAIC00MDE0
LDcgKzQwMTEsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2l6ZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKQogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7
CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChNZWRpYVBsYXllciop
CiB7CiAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNWaWRlbygpKQpAQCAtNDAy
OSw3ICs0MDI1LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlbmRlcmlu
Z01vZGVDaGFuZ2VkKE1lZGlhUGxheWVyKikKICAgICAvLyBLaWNrIG9mZiBhIGZha2UgcmVjYWxj
U3R5bGUgdGhhdCB3aWxsIHVwZGF0ZSB0aGUgY29tcG9zaXRpbmcgdHJlZS4KICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKIH0KLSNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBN
ZWRpYVBsYXllciopIGNvbnN0CkBAIC00MDYwLDkgKzQwNTUsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKE1lZGlhUGxheWVyKikK
ICAgICBiZWdpblByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAgICAgaWYgKGRpc3Bs
YXlNb2RlKCkgPT0gUG9zdGVyV2FpdGluZ0ZvclZpZGVvKSB7CiAgICAgICAgIHNldERpc3BsYXlN
b2RlKFZpZGVvKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIG1l
ZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIuZ2V0KCkpOwotI2VuZGlmCiAg
ICAgfQogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CkBAIC00OTIy
LDcgKzQ5MTUsNiBAQCBQbGF0Zm9ybU1lZGlhIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXRmb3JtTWVk
aWEoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXllciA/IG1fcGxheWVyLT5wbGF0Zm9ybU1lZGlh
KCkgOiBOb1BsYXRmb3JtTWVkaWE7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiBQbGF0Zm9ybUxheWVyKiBIVE1MTWVkaWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29u
c3QKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC00OTUxLDcgKzQ5NDMsNiBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnJldHVyblBsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1M
YXllcikKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KICNlbmRp
ZgotI2VuZGlmCiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAwN2ZhYTIz
Y2MwM2E3YjVjODcwZTE3NDMwZjQzMTQ4MjJiZTVjNDUxLi5lYmUwZTZiN2M4ZjRjZDVhYzQzOTZl
ZWY4ZmRmZGI2Mzk2Y2QxMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aApAQCAtMTMwLDEzICsxMzAsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0
Zm9ybU1lZGlhKCkgY29uc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgUGxhdGZvcm1MYXllciogYm9ycm93UGxhdGZvcm1MYXllcigpOwogICAgIHZvaWQgcmV0
dXJuUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKik7CiAjZW5kaWYKLSNlbmRpZgogCiAgICAg
ZW51bSBEZWxheWVkQWN0aW9uVHlwZSB7CiAgICAgICAgIExvYWRNZWRpYVJlc291cmNlID0gMSA8
PCAwLApAQCAtNTA4LDEwICs1MDYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllclJlc291cmNlTm90U3VwcG9ydGVkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVwYWludChNZWRpYVBsYXllciopIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNpemVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3Zl
cnJpZGU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9v
bCBtZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVkaWFQbGF5ZXIqKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChN
ZWRpYVBsYXllciopIG92ZXJyaWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyRW5naW5lVXBkYXRlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZShNZWRpYVBsYXllciop
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5oCmluZGV4IGI1YjI3ODFmNzA5NWJkNDI3MDgzZTgxNjVmZDVmNmRkZGE4
ZjA1N2UuLmE5YWM1YjEyMTk3NjFhYjY3ZWE2Y2I2OTAyZjhkNjYwZjI5YmJmNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgK
QEAgLTU2LDEwICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZW5k
ZXJpbmdSZXN1bHRzVG9DYW52YXMoKSB7fQotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dChIVE1MQ2FudmFzRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMThhODdmNGFmMDFk
ZWNjNzRlMzgzNjcxYTBhYzc1YjRlZmY5NjkxMS4uNDdkODdlZDU0ZDI1ZWE2NTMyOWE2M2NlN2E0
OTMzODBhODc1NDk2MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk
ZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkltYWdlRGF0YS5oIgogI2luY2x1ZGUg
IlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3Ryb2tlU3R5bGVBcHBsaWVyLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCkBAIC01NSwxMCArNTYsNiBAQAogI2luY2x1ZGUgIlRleHRN
ZXRyaWNzLmgiCiAjaW5jbHVkZSAiVGV4dFJ1bi5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUg
PHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTczOSw3ICsxNzM2LDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiBy
LCB1bnNpZ25lZCBvcHRpb25zKQogICAgIGlmICghc3RhdGUoKS5tX2hhc0ludmVydGlibGVUcmFu
c2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNpZiBFTkFCTEUoQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKQogICAgIC8vIElmIHdlIGFyZSBkcmF3aW5nIHRvIGhhcmR3YXJlIGFuZCB3
ZSBoYXZlIGEgY29tcG9zaXRlZCBsYXllciwganVzdCBjYWxsIGNvbnRlbnRDaGFuZ2VkKCkuCiAg
ICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9
IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKQEAgLTIzMjcsNyArMjMyNCw3IEBAIGNvbnN0IEZvbnQm
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YWNjZXNzRm9udCgpCiAgICAgcmV0dXJuIHN0YXRl
KCkubV9mb250OwogfQogCi0jaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBsYXRmb3JtTGF5
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBjYW52YXMoKS0+YnVmZmVyKCkgPyBjYW52YXMoKS0+
YnVmZmVyKCktPnBsYXRmb3JtTGF5ZXIoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IDI3YjdlMzNjODE2
Y2M4NzE4ZGU4OTk4Yjc4N2MyNDcwYTg1YzYzMDEuLmJiMDczNmQwNzBmNmQyYTdiNTU5YmJkNjYy
MjRhMzg0ZDE4NDg1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC0zNywxMyArMzcsMTAgQEAKICNpbmNsdWRl
ICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJQ
YXRoLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYW52YXNHcmFkaWVudDsKQEAgLTMzMCw3ICszMjcs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0ludmVydGlibGVUcmFuc2Zvcm0o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdGF0ZSgpLm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9y
bTsgfQogCi0jaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggZmE1NTM3YjBlYmI0Y2RlNGRkMmQzOTI0ZWJkMTI4YWJhZWUz
ZDc4Yi4uMzgxMDM5OTAyMmJmYTc4NjExYTdkNjQyMmVmMjkyYTNhZmQ5N2I5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC02NDcsMjEgKzY0NywxNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWFya0Nv
bnRleHRDaGFuZ2VkKCkKICAgICAgICAgbV9kcmF3aW5nQnVmZmVyLT5tYXJrQ29udGVudHNDaGFu
Z2VkKCk7CiAKICAgICBtX2xheWVyQ2xlYXJlZCA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5k
ZXJCb3goKTsKICAgICBpZiAocmVuZGVyQm94ICYmIHJlbmRlckJveC0+aGFzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZygpKSB7CiAgICAgICAgIG1fbWFya2VkQ2FudmFzRGlydHkgPSB0cnVlOwogICAg
ICAgICBjYW52YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwogICAgICAgICByZW5kZXJCb3gtPmNv
bnRlbnRDaGFuZ2VkKENhbnZhc0NoYW5nZWQpOwogICAgIH0gZWxzZSB7Ci0jZW5kaWYKICAgICAg
ICAgaWYgKCFtX21hcmtlZENhbnZhc0RpcnR5KSB7CiAgICAgICAgICAgICBtX21hcmtlZENhbnZh
c0RpcnR5ID0gdHJ1ZTsKICAgICAgICAgICAgIGNhbnZhcygpLT5kaWREcmF3KEZsb2F0UmVjdChG
bG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgpKSk7CiAgICAgICAgIH0KLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgfQotI2VuZGlmCiB9CiAKIGJvb2wgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpjbGVhcklmQ29tcG9zaXRlZChHQzNEYml0ZmllbGQgbWFzaykK
QEAgLTgwMiwxMSArNzk4LDkgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlc2hhcGUo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGhlaWdodCA9IGNsYW1wKGhlaWdodCwgMSwgbWF4
SGVpZ2h0KTsKIAogICAgIGlmIChtX25lZWRzVXBkYXRlKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcygpLT5y
ZW5kZXJCb3goKTsKICAgICAgICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5n
ZWQoQ2FudmFzQ2hhbmdlZCk7Ci0jZW5kaWYKICAgICAgICAgbV9uZWVkc1VwZGF0ZSA9IGZhbHNl
OwogICAgIH0KIApAQCAtNDc3NiwxMiArNDc3MCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Zm9yY2VSZXN0b3JlQ29udGV4dCgpCiAgICAgICAgIG1fcmVzdG9yZVRpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRm
b3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuICghaXNDb250ZXh0TG9zdCgpKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXll
cigpIDogMDsKIH0KLSNlbmRpZgogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVtb3Zl
U2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDg4OTk5
ZDgwZTlhMmMzZmM5NjcxNzYwMjc0OTc1YjFjM2U2MTMxYWQuLjZhZGFjMGVmZTkyMmY0MTRhZmY2
NWQ5MmQwMjUyZmNjMGRmODZmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0zMDksOSArMzA5LDcgQEAgcHVibGljOgog
CiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZXh0LmdldCgpOyB9CiAgICAgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91
cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dEdyb3VwLmdldCgpOyB9Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1M
YXllcigpIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2b2lkIHJlc2hhcGUoaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDE5N2VmZjJhNTg2MWVmMDA3ODg1YzY4OTVkYmZhYTVl
YzhhNWZjNWMuLjhhNDExYjQ2NzM0ODI1ZWIxOTlmMjljYmYxYjhhZjQxODkyNTE2NWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAg
LTE2NSw5ICsxNjUsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVy
KFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogCiAgICAgbV9hZ2VudHMu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySW5wdXRBZ2VudD4obV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCAmcGFnZSkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckxheWVy
VHJlZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKTsKLSNlbmRpZgogCiAgICAg
QVNTRVJUKG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5jb21tYW5kTGluZUFQSUhvc3QoKSk7CiAg
ICAgaWYgKENvbW1hbmRMaW5lQVBJSG9zdCogY29tbWFuZExpbmVBUElIb3N0ID0gbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXItPmNvbW1hbmRMaW5lQVBJSG9zdCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGRm
MTM1NzIyNzkxYTViOGZjYWE1NWU3ZTY1ODQ5ZGRjNWExYjQzMjUuLjFhOWE4ZTZjZjNmM2QyMDJk
ZDRiMTdhMjFhZGUyMjY1NzRhOWZkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC03NjksMTAgKzc2OSw4IEBA
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAjZW5kaWYKICAgICAgICAgaWYgKEluc3BlY3RvckRP
TUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50
KCkpCiAgICAgICAgICAgICBkb21BZ2VudC0+c2V0RG9jdW1lbnQocGFnZS0+bWFpbkZyYW1lKCku
ZG9jdW1lbnQoKSk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBp
ZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVyVHJlZUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy0+aW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkKICAgICAgICAgICAgIGxheWVyVHJl
ZUFnZW50LT5yZXNldCgpOwotI2VuZGlmCiAgICAgfQogICAgIGlmIChJbnNwZWN0b3JET01BZ2Vu
dCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQog
ICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChsb2FkZXItPmZyYW1lKCktPmRvY3VtZW50
KCkpOwpAQCAtMTE4NCw3ICsxMTgyLDYgQEAgSW5zdHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yTm9uRG9jdW1lbnQKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCiB7CiAgICAgaWYgKEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmlu
c3BlY3RvckxheWVyVHJlZUFnZW50KCkpCkBAIC0xMjAyLDcgKzExOTksNiBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaQogICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbGF5ZXJUcmVl
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpKQog
ICAgICAgICBsYXllclRyZWVBZ2VudC0+cHNldWRvRWxlbWVudERlc3Ryb3llZChwc2V1ZG9FbGVt
ZW50KTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAx
M2Q2MjI0NTVkMjg5MTgwZGJkMmZhZGExN2ExODM2MjE5ZmZiYWY0Li44ZmNlMDk0MTJlYmNmYTcx
OGY3MGQ3MzQ5OGIxODFiYTJmMGU1NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yNzMsMTEgKzI3Myw5IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlckluc3RydW1lbnRpbmdBZ2VudHMoSW5zdHJ1
bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJJbnN0cnVtZW50aW5n
QWdlbnRzKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2UoUGFnZSopOwogICAg
IHN0YXRpYyB2b2lkIHJlbmRlckxheWVyRGVzdHJveWVkKFBhZ2UqLCBjb25zdCBSZW5kZXJMYXll
ciopOwogICAgIHN0YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUGFnZSosIFBzZXVk
b0VsZW1lbnQqKTsKLSNlbmRpZgogCiBwcml2YXRlOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBA
IC00NDQsMTEgKzQ0Miw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY2FuY2VsUGF1c2VP
bk5hdGl2ZUV2ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogcmV0cmlldmVUaW1lbGluZUFnZW50KGNvbnN0IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZSYpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyopOwogICAgIHN0YXRpYyB2b2lkIHJlbmRlckxheWVyRGVzdHJveWVkSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiwgY29uc3QgUmVuZGVyTGF5ZXIqKTsKICAgICBzdGF0aWMgdm9pZCBwc2V1ZG9F
bGVtZW50RGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUHNldWRvRWxlbWVudCop
OwotI2VuZGlmCiAKICAgICBzdGF0aWMgaW50IHNfZnJvbnRlbmRDb3VudGVyOwogI2VuZGlmCkBA
IC0xODQyLDcgKzE4MzgsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZEZpcmVBbmltYXRpb25GcmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cgogI2VuZGlmCiB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZShQYWdlKiBwYWdlKQogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCkBAIC0xODc0LDcgKzE4NjksNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUGFnZSogcGFnZSwgUHNl
dWRvRQogICAgIFVOVVNFRF9QQVJBTShwc2V1ZG9FbGVtZW50KTsKICNlbmRpZgogfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogaW5saW5lIEluc3RydW1lbnRpbmdBZ2VudHMqIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCmluZGV4IDA4NmUzYzgwYzRmYTZm
MTBiNTA3NjhhOGZlNTI0YWE3MTI0MjliYjIuLjRjMWYwMDYwOTY4NmRlOTdiNWJjNDgzY2QwY2Iz
NjY0MzJkNWI2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JMYXllclRyZWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckxheWVyVHJlZUFnZW50LmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIAogI2luY2x1ZGUgIkluc3BlY3RvckxheWVyVHJlZUFnZW50LmgiCkBAIC0zNTks
NCArMzU4LDMgQEAgdm9pZCBJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6dW5iaW5kUHNldWRvRWxl
bWVudChQc2V1ZG9FbGVtZW50KiBwc2V1ZG9FbGVtZW50KQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
dHJ1bWVudGluZ0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVu
dGluZ0FnZW50cy5jcHAKaW5kZXggMTU2NDM5MzFiNzgwM2NhOTg2MzM2YzFiNDI1MGU2YThmMWZj
YzhjOC4uOThlNmJkZDBjOTZhOGM1Y2E2NjliZmJmYTM0ZDMyNTJlZjMxN2NhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcApAQCAtNDgs
OSArNDgsNyBAQCBJbnN0cnVtZW50aW5nQWdlbnRzOjpJbnN0cnVtZW50aW5nQWdlbnRzKEluc3Bl
Y3RvckVudmlyb25tZW50JiBlbnZpcm9ubWVudCkKICAgICAsIG1faW5zcGVjdG9yQWdlbnQobnVs
bHB0cikKICAgICAsIG1faW5zcGVjdG9yUGFnZUFnZW50KG51bGxwdHIpCiAgICAgLCBtX2luc3Bl
Y3RvckNTU0FnZW50KG51bGxwdHIpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgICwgbV9pbnNwZWN0b3JMYXllclRyZWVBZ2VudChudWxscHRyKQotI2VuZGlmCiAgICAgLCBt
X2luc3BlY3RvckNvbnNvbGVBZ2VudChudWxscHRyKQogICAgICwgbV9pbnNwZWN0b3JET01BZ2Vu
dChudWxscHRyKQogICAgICwgbV9pbnNwZWN0b3JSZXNvdXJjZUFnZW50KG51bGxwdHIpCkBAIC03
Niw5ICs3NCw3IEBAIHZvaWQgSW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQoKQogICAgIG1faW5z
cGVjdG9yQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yUGFnZUFnZW50ID0gbnVsbHB0
cjsKICAgICBtX2luc3BlY3RvckNTU0FnZW50ID0gbnVsbHB0cjsKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgbV9pbnNwZWN0b3JMYXllclRyZWVBZ2VudCA9IG51bGxwdHI7
Ci0jZW5kaWYKICAgICBtX2luc3BlY3RvckNvbnNvbGVBZ2VudCA9IG51bGxwdHI7CiAgICAgbV9p
bnNwZWN0b3JET01BZ2VudCA9IG51bGxwdHI7CiAgICAgbV9pbnNwZWN0b3JSZXNvdXJjZUFnZW50
ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVt
ZW50aW5nQWdlbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oCmluZGV4IGQ5YjVkNDFkYzU1OGE2MTFkZDZjMGJlYWY0OWQ1ZmM4NTU2YmM2ZjYuLmM5
OWQyNjlmYjRmYWY1ODRlMGQ0YzRhZDM1ODQ5OGZlMGExMDlmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApAQCAtMTM3LDEwICsxMzcsOCBA
QCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGluc3BlY3RvckNhbnZhc0FnZW50
KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JDYW52YXNBZ2VudDsgfQogICAgIHZvaWQgc2V0
SW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGFnZW50KSB7IG1faW5z
cGVjdG9yQ2FudmFzQWdlbnQgPSBhZ2VudDsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBpbnNwZWN0b3JMYXllclRyZWVB
Z2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ7IH0KICAgICB2
b2lkIHNldEluc3BlY3RvckxheWVyVHJlZUFnZW50KEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBh
Z2VudCkgeyBtX2luc3BlY3RvckxheWVyVHJlZUFnZW50ID0gYWdlbnQ7IH0KLSNlbmRpZgogCiBw
cml2YXRlOgogICAgIEluc3RydW1lbnRpbmdBZ2VudHMoSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZp
cm9ubWVudCYpOwpAQCAtMTUwLDkgKzE0OCw3IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudDsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQq
IG1faW5zcGVjdG9yUGFnZUFnZW50OwogICAgIEluc3BlY3RvckNTU0FnZW50KiBtX2luc3BlY3Rv
ckNTU0FnZW50OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBJbnNwZWN0
b3JMYXllclRyZWVBZ2VudCogbV9pbnNwZWN0b3JMYXllclRyZWVBZ2VudDsKLSNlbmRpZgogICAg
IEluc3BlY3RvckNvbnNvbGVBZ2VudCogbV9pbnNwZWN0b3JDb25zb2xlQWdlbnQ7CiAgICAgSW5z
cGVjdG9yRE9NQWdlbnQqIG1faW5zcGVjdG9yRE9NQWdlbnQ7CiAgICAgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCogbV9pbnNwZWN0b3JSZXNvdXJjZUFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCmluZGV4IDE5OWM5Y2M0YTFiNDY5NzBlMjEwMDI3MmUwZTljZmRhYzAyZDk4MTAu
LjhmMTRmNWFmMzU1ZTE2YTQ0MTI0MDAxYTk1MzQyNzBmYTkxMTAxMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE4MywxMSArMTgzLDkgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Qgb3Zl
cnJpZGUgeyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9z
aXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGUgeyB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJ
TikKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpIG92
ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZDdmZTBmODhiNDlk
OWM2ZmEyZDRhOWE0NzgwZDFkMzg4YWNmYzcwNi4uYWU1YjZkMTRhZDYxN2NkMTE0ZDEyMmU2MDU3
OWRhM2UwZjY0MTE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yODcsNyAr
Mjg3LDYgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGly
ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAvLyBBbGxvd3MgcG9ydHMgdG8gY3VzdG9taXplIHRoZSB0eXBl
IG9mIGdyYXBoaWNzIGxheWVycyBjcmVhdGVkIGJ5IHRoaXMgcGFnZS4KICAgICB2aXJ0dWFsIEdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KIApAQCAtMzIxLDcgKzMyMCw2IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgbGF5ZXIgdHJlZSB1cGRhdGVzIGFyZSBkaXNhYmxlZC4KICAgICB2aXJ0dWFsIGJv
b2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5k
aWYKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA0NDU2YzBkNWExM2IxMWIwODA1NGRhNzBiMWRiNjlkNzIw
NmExZDgzLi41YTk1OThlMWE3ZjlhODVjYmZmNjhhZjY4NDYwMGE0NWUxMTRjYzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJSZW5k
ZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKQEAgLTEw
OSwxMCArMTEwLDYgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
eWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2VuZGlmCi0KICNpZiBF
TkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1l
bnRFeHRlbnNpb25zLmgiCkBAIC05OTksMTcgKzk5NiwxMiBAQCBDb2xvciBGcmFtZTo6dGlsZWRC
YWNraW5nU3RvcmVCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogCiBTdHJpbmcgRnJhbWU6OmxheWVy
VHJlZUFzVGV4dChMYXllclRyZWVGbGFncyBmbGFncykgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAKICAg
ICBpZiAoIWNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAg
ICByZXR1cm4gY29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS5sYXllclRyZWVBc1RleHQo
ZmxhZ3MpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOwotICAgIHJldHVybiBTdHJp
bmcoKTsKLSNlbmRpZgogfQogCiBTdHJpbmcgRnJhbWU6OnRyYWNrZWRSZXBhaW50UmVjdHNBc1Rl
eHQoKSBjb25zdApAQCAtMTEyMyw3ICsxMTE1LDYgQEAgdm9pZCBGcmFtZTo6cmVzdW1lQWN0aXZl
RE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogICAgIH0KIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHZvaWQgRnJhbWU6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCgpCiB7CiAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGNoaWxkID0gdHJlZSgpLmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKQpAQCAtMTEzMiw3
ICsxMTIzLDYgQEAgdm9pZCBGcmFtZTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkK
ICAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IGNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICBy
b290LT5jb21wb3NpdG9yKCkuZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiB9Ci0j
ZW5kaWYKIAogYm9vbCBGcmFtZTo6aXNVUkxBbGxvd2VkKGNvbnN0IFVSTCYgdXJsKSBjb25zdAog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oCmluZGV4IGVmZjhlMTQxZDViNTk5YzMxNjFiMmYxMmNjODBhODk4YzVk
ODI4YzEuLjNlODkyMDc5ZDk3MzZiYzg1Y2JkNzNlZmNlZDliNDkwOTU2MTBlOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmgKQEAgLTE5NSw5ICsxOTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IC8vIFNjYWxlIGZhY3RvciBvZiB0aGlzIGZyYW1lIHdpdGggcmVzcGVjdCB0byB0aGUgY29udGFp
bmVyLgogICAgICAgICBmbG9hdCBmcmFtZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCk7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgY29u
c3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggOGE5ZGVmNDEzZDlkNzg5M2JjN2U2NWU4ZjczZGFhZDg2
NWIxNDBhZC4uNDcxMTllMWVjNjg4MTRkODZiN2I5NjMxOGYwNTIzZmVkZmI1YmRkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIlJlbmRl
cklGcmFtZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCkBAIC03NSwxNiArNzYsMTIgQEAKICNpbmNsdWRlICJT
dHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1
ZGUgIlRleHRTdHJlYW0uaCIKKyNpbmNsdWRlICJUaWxlZEJhY2tpbmcuaCIKIAogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
VGVtcG9yYXJ5Q2hhbmdlLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0j
aW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jaW5jbHVkZSAiVGlsZWRCYWNraW5n
LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5o
IgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCkBAIC00MzMsMTIgKzQzMCwxMCBAQCB2b2lkIEZy
YW1lVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpCiAKICAgICB1cGRh
dGVTY3JvbGxhYmxlQXJlYVNldCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7
CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAgICAgICAgICAg
IHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAgICAg
fQotI2VuZGlmCiAKICAgICBpZiAoIWZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkKICAgICAgICAg
c2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQoKTsKQEAgLTcxMyw3ICs3MDgsNiBAQCB2b2lkIEZyYW1l
Vmlldzo6Y2FsY3VsYXRlU2Nyb2xsYmFyTW9kZXNGb3JMYXlvdXQoU2Nyb2xsYmFyTW9kZSYgaE1v
ZGUsIFNjcm9sbGJhcgogICAgIH0gICAgCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclN0eWxl
Q2hhbmdlKCkKIHsKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmll
dygpOwpAQCAtOTIzLDcgKzkxNyw2IEBAIHZvaWQgRnJhbWVWaWV3OjpzY2hlZHVsZUxheWVyRmx1
c2hBbGxvd2luZ1Rocm90dGxpbmcoKQogICAgICAgICByZXR1cm47CiAgICAgdmlldy0+Y29tcG9z
aXRvcigpLnNjaGVkdWxlTGF5ZXJGbHVzaCh0cnVlIC8qIGNhblRocm90dGxlICovKTsKIH0KLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgRnJhbWVWaWV3Ojpz
ZXRIZWFkZXJIZWlnaHQoaW50IGhlYWRlckhlaWdodCkKIHsKQEAgLTk0NywxNiArOTQwLDEzIEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRGb290ZXJIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKIAogYm9v
bCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50KCkgY29uc3QKIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0
aGlzLT5yZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9y
KCkuaW5Db21wb3NpdGluZ01vZGUoKTsKLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KIAog
Ym9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMo
KSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBmb3IgKEZy
YW1lKiBmcmFtZSA9IG1fZnJhbWUuZ2V0KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KG1fZnJhbWUuZ2V0KCkpKSB7CiAgICAgICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CiAgICAgICAgIGlmIChSZW5kZXJMYXll
ckNvbXBvc2l0b3IqIGNvbXBvc2l0b3IgPSByZW5kZXJWaWV3ID8gJnJlbmRlclZpZXctPmNvbXBv
c2l0b3IoKSA6IDApIHsKQEAgLTk2Nyw1MSArOTU3LDQzIEBAIGJvb2wgRnJhbWVWaWV3OjpoYXND
b21wb3NpdGVkQ29udGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCkgY29uc3QKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0aW5nQW5jZXN0b3IoKSBjb25zdAogewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9
IHRoaXMtPmZyYW1lKCkudHJlZSgpLnBhcmVudCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnBhcmVudCgpKSB7CiAgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmll
dygpKSB7CiAgICAgICAgICAgICBpZiAodmlldy0+aGFzQ29tcG9zaXRlZENvbnRlbnQoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogICAg
IHJldHVybiBmYWxzZTsKIH0KIAogLy8gU29tZXRpbWVzIChmb3IgcGx1Zy1pbnMpIHdlIG5lZWQg
dG8gZWFnZXJseSBnbyBpbnRvIGNvbXBvc2l0aW5nIG1vZGUuCiB2b2lkIEZyYW1lVmlldzo6ZW50
ZXJDb21wb3NpdGluZ01vZGUoKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkgewog
ICAgICAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuZW5hYmxlQ29tcG9zaXRpbmdNb2RlKCk7
CiAgICAgICAgIGlmICghbmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNv
bXBvc2l0b3IoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKICAgICB9Ci0jZW5k
aWYKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzRW5jbG9zZWRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBj
b25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBhdXRvIGZyYW1l
T3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgIGlmIChmcmFtZU93
bmVyUmVuZGVyZXIgJiYgZnJhbWVPd25lclJlbmRlcmVyLT5jb250YWluZXJGb3JSZXBhaW50KCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKEZyYW1lVmlldyogcGFyZW50VmlldyA9
IHBhcmVudEZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gcGFyZW50Vmlldy0+aXNFbmNsb3Nl
ZEluQ29tcG9zaXRpbmdMYXllcigpOwotI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBi
b29sIEZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgYm9vbCBhbGxGcmFtZXNG
bHVzaGVkID0gZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0ZyYW1lKCZmcmFtZSgpKTsKICAg
ICAKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IGZyYW1lKCkudHJlZSgpLmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS50cmF2ZXJzZU5leHQoJmZyYW1lKCkpKSB7CkBA
IC0xMDE5LDE5ICsxMDAxLDEyIEBAIGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKQogICAgICAgICBhbGxGcmFtZXNGbHVzaGVkICY9IGZsdXNo
ZWQ7CiAgICAgfQogICAgIHJldHVybiBhbGxGcmFtZXNGbHVzaGVkOwotI2Vsc2UgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAKIGJv
b2wgRnJhbWVWaWV3Ojppc1NvZnR3YXJlUmVuZGVyYWJsZSgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCk7CiAgICAgcmV0dXJuICFyZW5kZXJWaWV3IHx8ICFyZW5kZXJWaWV3LT5j
b21wb3NpdG9yKCkuaGFzM0RDb250ZW50KCk7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpkaWRNb3ZlT25zY3JlZW4oKQpAQCAtMTMyOCw5ICsx
MzAzLDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkKIAogICAg
IGxheWVyLT51cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyTGF5b3V0KHJlbmRlclZpZXcoKS0+bGF5
ZXIoKSwgdXBkYXRlTGF5ZXJQb3NpdGlvbkZsYWdzKGxheWVyLCBzdWJ0cmVlLCBtX25lZWRzRnVs
bFJlcGFpbnQpKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRh
dGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7Ci0jZW5kaWYKICAgICAKICAgICBtX2xh
eW91dENvdW50Kys7CiAKQEAgLTE0OTQsMTQgKzE0NjcsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OnVw
ZGF0ZUNhbkJsaXRPblNjcm9sbFJlY3Vyc2l2ZWx5KCkKIAogYm9vbCBGcmFtZVZpZXc6OmNvbnRl
bnRzSW5Db21wb3NpdGVkTGF5ZXIoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygp
OwogICAgIGlmIChyZW5kZXJWaWV3ICYmIHJlbmRlclZpZXctPmlzQ29tcG9zaXRlZCgpKSB7CiAg
ICAgICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gcmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2lu
ZygpLT5ncmFwaGljc0xheWVyKCk7CiAgICAgICAgIGlmIChsYXllciAmJiBsYXllci0+ZHJhd3ND
b250ZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKKwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTY3NSwyMiArMTY0NywxOCBAQCBib29sIEZyYW1lVmll
dzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdAogICAgIGZvciAoYXV0byYgcmVuZGVyZXIgOiAqbV92aWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0cykgewogICAgICAgICBpZiAoIXJlbmRlcmVyLT5zdHlsZSgpLmhhc1ZpZXdwb3J0
Q29uc3RyYWluZWRQb3NpdGlvbigpKQogICAgICAgICAgICAgY29udGludWU7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAocmVuZGVyZXItPmlzQ29tcG9zaXRl
ZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0jZW5kaWYKIAogICAgICAgICAvLyBGaXhlZCBp
dGVtcyBzaG91bGQgYWx3YXlzIGhhdmUgbGF5ZXJzLgogICAgICAgICBBU1NFUlQocmVuZGVyZXIt
Pmhhc0xheWVyKCkpOwogICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1v
ZGVsT2JqZWN0KHJlbmRlcmVyKS0+bGF5ZXIoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICAgICAgaWYgKGxheWVyLT52aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9z
aXRlZFJlYXNvbigpID09IFJlbmRlckxheWVyOjpOb3RDb21wb3NpdGVkRm9yQm91bmRzT3V0T2ZW
aWV3CiAgICAgICAgICAgICB8fCBsYXllci0+dmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0
ZWRSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6Tm90Q29tcG9zaXRlZEZvck5vVmlzaWJsZUNvbnRl
bnQpIHsKICAgICAgICAgICAgIC8vIERvbid0IGludmFsaWRhdGUgZm9yIGludmlzaWJsZSBmaXhl
ZCBsYXllcnMuCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgIGlmIChsYXllci0+aGFzQW5jZXN0b3JXaXRo
RmlsdGVyT3V0c2V0cygpKSB7CkBAIC0xNzE4LDE0ICsxNjg2LDEyIEBAIGJvb2wgRnJhbWVWaWV3
OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25z
dCBJbnRSZWN0CiAgICAgICAgIEludFJlY3Qgc2Nyb2xsZWRSZWN0ID0gdXBkYXRlUmVjdDsKICAg
ICAgICAgc2Nyb2xsZWRSZWN0Lm1vdmUoc2Nyb2xsRGVsdGEpOwogICAgICAgICB1cGRhdGVSZWN0
LnVuaXRlKHNjcm9sbGVkUmVjdCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgICAgICBpZiAoaXNDb21wb3NpdGVkQ29udGVudExheWVyKSB7CiAgICAgICAgICAgICB1cGRh
dGVSZWN0ID0gcm9vdFZpZXdUb0NvbnRlbnRzKHVwZGF0ZVJlY3QpOwogICAgICAgICAgICAgQVNT
RVJUKHJlbmRlclZpZXcoKSk7CiAgICAgICAgICAgICByZW5kZXJWaWV3KCktPmxheWVyKCktPnNl
dEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QodXBkYXRlUmVjdCk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIGlmIChjbGlwc1JlcGFpbnRzKCkpCiAg
ICAgICAgICAgICB1cGRhdGVSZWN0LmludGVyc2VjdChyZWN0VG9TY3JvbGwpOwogICAgICAgICBo
b3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIGZh
bHNlKTsKQEAgLTE3MzYsNyArMTcwMiw2IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50
c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAKIHZv
aWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChjb250
ZW50c0luQ29tcG9zaXRlZExheWVyKCkpIHsKICAgICAgICAgLy8gRklYTUU6IHJlc3BlY3QgcGFp
bnRzRW50aXJlQ29udGVudHMoKT8KICAgICAgICAgSW50UmVjdCB1cGRhdGVSZWN0ID0gdmlzaWJs
ZUNvbnRlbnRSZWN0KExlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpOwpAQCAtMTc2MCw3ICsx
NzI1LDYgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50
UmVjdCYgdXBkYXRlUmVjdCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
LSNlbmRpZgogCiAgICAgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aCh1cGRhdGVS
ZWN0KTsKIH0KQEAgLTE3ODQsOCArMTc0OCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRJc092ZXJs
YXBwZWQoYm9vbCBpc092ZXJsYXBwZWQpCiAKICAgICBtX2lzT3ZlcmxhcHBlZCA9IGlzT3Zlcmxh
cHBlZDsKICAgICB1cGRhdGVDYW5CbGl0T25TY3JvbGxSZWN1cnNpdmVseSgpOwotICAgIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGlmIChoYXNDb21wb3NpdGVkQ29u
dGVudEluY2x1ZGluZ0Rlc2NlbmRhbnRzKCkpIHsKICAgICAgICAgLy8gT3ZlcmxhcCBjYW4gYWZm
ZWN0IGNvbXBvc2l0aW5nIHRlc3RzLCBzbyBpZiBpdCBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHRyaWdn
ZXIKICAgICAgICAgLy8gYSBsYXllciB1cGRhdGUgaW4gdGhlIHBhcmVudCBkb2N1bWVudC4KQEAg
LTE4MDksNyArMTc3Miw2IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRJc092ZXJsYXBwZWQoYm9vbCBp
c092ZXJsYXBwZWQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIH0K
IAogYm9vbCBGcmFtZVZpZXc6OmlzT3ZlcmxhcHBlZEluY2x1ZGluZ0FuY2VzdG9ycygpIGNvbnN0
CkBAIC0xOTM0LDExICsxODk2LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkKIAogdm9pZCBGcmFtZVZpZXc6OmRlbGVnYXRl
c1Njcm9sbGluZ0RpZENoYW5nZSgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIC8vIFdoZW4gd2Ugc3dpdGNoIHRvIGRlbGdhdGVzU2Nyb2xsaW5nIG1vZGUsIHdlIHNo
b3VsZCBkZXN0cm95IHRoZSBzY3JvbGxpbmcvY2xpcHBpbmcgbGF5ZXJzIGluIFJlbmRlckxheWVy
Q29tcG9zaXRvci4KICAgICBpZiAoaGFzQ29tcG9zaXRlZENvbnRlbnQoKSkKICAgICAgICAgY2xl
YXJCYWNraW5nU3RvcmVzKCk7Ci0jZW5kaWYKIH0KIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQpAQCAtMTk5MSwxMiArMTk1MSwxMCBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRp
b25DaGFuZ2VkKCkKICAgICBmcmFtZSgpLmV2ZW50SGFuZGxlcigpLnNlbmRTY3JvbGxFdmVudCgp
OwogICAgIGZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRT
b29uKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgaWYgKHJl
bmRlclZpZXctPnVzZXNDb21wb3NpdGluZygpKQogICAgICAgICAgICAgcmVuZGVyVmlldy0+Y29t
cG9zaXRvcigpLmZyYW1lVmlld0RpZFNjcm9sbCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lk
IEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbGluZygpCkBAIC0yMDQ1
LDcgKzIwMDMsNiBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRlQ29tcG9zaXRpbmdMYXll
cnNBZnRlclNjcm9sbGluZygpIGNvbnN0CiAKIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb21wb3Np
dGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKCFzaG91bGRVcGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xs
aW5nKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjA1Myw3ICsyMDEwLDYgQEAgdm9pZCBGcmFt
ZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKQogICAgICAgICBp
ZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKICAgICAgICAg
ICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZU9uU2Nyb2xsKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogYm9vbCBGcmFtZVZp
ZXc6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdApAQCAtMjE5MSw0MSArMjE0NywzMyBA
QCB2b2lkIEZyYW1lVmlldzo6dmlzaWJsZUNvbnRlbnRzUmVzaXplZCgpCiAgICAgaWYgKCF1c2VG
aXhlZExheW91dCgpICYmIG5lZWRzTGF5b3V0KCkpCiAgICAgICAgIGxheW91dCgpOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2Vz
Q29tcG9zaXRpbmcoKSkKICAgICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFt
ZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgRnJhbWVWaWV3
OjphZGRlZE9yUmVtb3ZlZFNjcm9sbGJhcigpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmll
dygpKSB7CiAgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAgICAg
ICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mcmFtZVZpZXdEaWRBZGRPclJlbW92ZVNj
cm9sbGJhcnMoKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBGcmFtZVZpZXc6OmRpc2FibGVM
YXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHJl
bmRlclZpZXcoKSkKICAgICAgICAgdmlldy0+Y29tcG9zaXRvcigpLmRpc2FibGVMYXllckZsdXNo
VGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKTsKLSNlbmRpZgogfQogCiB2b2lk
IEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVzaFRocm90dGxpbmdJbkFsbEZyYW1lcygpCiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaXNNYWluTG9hZFByb2dy
ZXNzaW5nID0gZnJhbWUoKS5wYWdlKCktPnByb2dyZXNzKCkuaXNNYWluTG9hZFByb2dyZXNzaW5n
KCk7CiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX2ZyYW1lLmdldCgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChtX2ZyYW1lLmdldCgpKSkgewogICAgICAgICBp
ZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKICAg
ICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGlu
Z0VuYWJsZWQoaXNNYWluTG9hZFByb2dyZXNzaW5nKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogdm9p
ZCBGcmFtZVZpZXc6OmFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlKCkKQEAgLTIyMzMsMTEgKzIx
ODEsOSBAQCB2b2lkIEZyYW1lVmlldzo6YWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKQogICAg
IGlmICghbV9zcGVjdWxhdGl2ZVRpbGluZ0VuYWJsZWQpCiAgICAgICAgIGVuYWJsZVNwZWN1bGF0
aXZlVGlsaW5nSWZOZWVkZWQoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwogICAgIGlm
IChyZW5kZXJWaWV3ICYmIHJlbmRlclZpZXctPmxheWVyKCktPmJhY2tpbmcoKSkKICAgICAgICAg
cmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2luZygpLT5hZGp1c3RUaWxlZEJhY2tpbmdDb3ZlcmFn
ZSgpOwotI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChUaWxlQ2FjaGUqIHRpbGVD
YWNoZSA9IHRoaXMtPnRpbGVDYWNoZSgpKQogICAgICAgICB0aWxlQ2FjaGUtPnNldFNwZWN1bGF0
aXZlVGlsZUNyZWF0aW9uRW5hYmxlZChtX3NwZWN1bGF0aXZlVGlsaW5nRW5hYmxlZCk7CkBAIC0y
NDg3LDcgKzI0MzMsNiBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQmFja2dyb3VuZFJlY3Vyc2l2
ZWx5KGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29sb3IsIGJvb2wgdAogCiBib29sIEZyYW1lVmll
dzo6aGFzRXh0ZW5kZWRCYWNrZ3JvdW5kKCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKCFmcmFtZSgpLnNldHRpbmdzKCkuYmFja2dyb3VuZFNob3Vs
ZEV4dGVuZEJleW9uZFBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yNDk2LDI5
ICsyNDQxLDE3IEBAIGJvb2wgRnJhbWVWaWV3OjpoYXNFeHRlbmRlZEJhY2tncm91bmQoKSBjb25z
dAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdGlsZWRCYWNraW5nLT5oYXNN
YXJnaW5zKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiBJbnRSZWN0
IEZyYW1lVmlldzo6ZXh0ZW5kZWRCYWNrZ3JvdW5kUmVjdCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0g
dGhpcy0+dGlsZWRCYWNraW5nKCk7CiAgICAgaWYgKCF0aWxlZEJhY2tpbmcpCiAgICAgICAgIHJl
dHVybiBJbnRSZWN0KCk7CiAKICAgICByZXR1cm4gdGlsZWRCYWNraW5nLT5ib3VuZHMoKTsKLSNl
bHNlCi0gICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKLSAg
ICBpZiAoIXJlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0KLSAgICByZXR1
cm4gcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1bWVudFJlY3QoKTsKLSNlbmRpZgogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBGcmFtZVZpZXc6OnNldEJhY2tncm91
bmRFeHRlbmRzQmV5b25kUGFnZShib29sIGV4dGVuZEJhY2tncm91bmQpCiB7CiAgICAgUmVuZGVy
VmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKQEAgLTI1MzEsNyArMjQ2NCw2
IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UoYm9vbCBl
eHRlbmRCYWNrZ3JvdW5kKQogCiAgICAgYmFja2luZy0+c2V0VGlsZWRCYWNraW5nSGFzTWFyZ2lu
cyhleHRlbmRCYWNrZ3JvdW5kKTsKIH0KLSNlbmRpZgogCiBib29sIEZyYW1lVmlldzo6c2hvdWxk
VXBkYXRlV2hpbGVPZmZzY3JlZW4oKSBjb25zdAogewpAQCAtMjcxNiwxMiArMjY0OCwxMCBAQCB2
b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAgICAgICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCh0aGlzKTsKICAgICB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJl
bmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgaWYgKHJlbmRlclZpZXct
PnVzZXNDb21wb3NpdGluZygpKQogICAgICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigp
LmZyYW1lVmlld0RpZExheW91dCgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgc2Nyb2xsVG9BbmNo
b3IoKTsKIApAQCAtMzQ1OSwxMCArMzM4OSw4IEBAIHZvaWQgRnJhbWVWaWV3OjpwYWludENvbnRl
bnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIEZvbnRD
YWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcC0+cGFpbnRpbmdEaXNhYmxlZCgpICYm
ICFkb2N1bWVudC0+cHJpbnRpbmcoKSkKICAgICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0ZyYW1lKCZmcmFtZSgpKTsKLSNlbmRpZgogCiAgICAgUGFpbnRCZWhhdmlvciBvbGRQYWlu
dEJlaGF2aW9yID0gbV9wYWludEJlaGF2aW9yOwogICAgIApAQCAtMzkyNywxMiArMzg1NSwxMCBA
QCB2b2lkIEZyYW1lVmlldzo6c2V0VHJhY2tzUmVwYWludHMoYm9vbCB0cmFja1JlcGFpbnRzKQog
ICAgICAgICAgICAgZnJhbWUoKS5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKICAgICB9CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZm9yIChGcmFtZSogZnJhbWUg
PSAmbV9mcmFtZS0+dHJlZSgpLnRvcCgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CiAgICAgICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJh
bWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRv
cigpLnNldFRyYWNrc1JlcGFpbnRzKHRyYWNrUmVwYWludHMpOwogICAgIH0KLSNlbmRpZgogCiAg
ICAgcmVzZXRUcmFja2VkUmVwYWludHMoKTsKICAgICBtX2lzVHJhY2tpbmdSZXBhaW50cyA9IHRy
YWNrUmVwYWludHM7CkBAIC0zOTQxLDEwICszODY3LDggQEAgdm9pZCBGcmFtZVZpZXc6OnNldFRy
YWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBhaW50cykKIHZvaWQgRnJhbWVWaWV3OjpyZXNldFRy
YWNrZWRSZXBhaW50cygpCiB7CiAgICAgbV90cmFja2VkUmVwYWludFJlY3RzLmNsZWFyKCk7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChSZW5kZXJWaWV3KiByZW5k
ZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQogICAgICAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCkucmVzZXRUcmFja2VkUmVwYWludFJlY3RzKCk7Ci0jZW5kaWYKIH0KIAogU3RyaW5nIEZy
YW1lVmlldzo6dHJhY2tlZFJlcGFpbnRSZWN0c0FzVGV4dCgpIGNvbnN0CkBAIC00MDk5LDEyICs0
MDIzLDggQEAgYm9vbCBGcmFtZVZpZXc6OnVwZGF0ZUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCkK
IAogdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQo
Ym9vbCBmbGFnKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAo
VGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSB0aGlzLT50aWxlZEJhY2tpbmcoKSkKICAgICAg
ICAgdGlsZWRCYWNraW5nLT5zZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZs
YWcpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZmxhZyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBG
cmFtZVZpZXc6OmRpZEFkZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCkBAIC00MjQwLDEzICs0MTYwLDExIEBAIHZvaWQgRnJh
bWVWaWV3OjpzZXRFeHBvc2VkUmVjdChGbG9hdFJlY3QgZXhwb3NlZFJlY3QpCiAKICAgICBtX2V4
cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IGNsaXBwaW5nIHRvIHRoZSBleHBv
c2VkIHJlY3QgZm9yIHN1YmZyYW1lcyBhcyB3ZWxsLgogICAgIGlmIChtX2ZyYW1lLT5pc01haW5G
cmFtZSgpKSB7CiAgICAgICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMt
PnRpbGVkQmFja2luZygpKQogICAgICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRFeHBvc2VkUmVj
dChleHBvc2VkUmVjdCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGIxMzI2ODQ0ZjI4ZjdkYzg0ZGU3YjBhZjJl
ZTgzMTVhMzZhYTc1YzAuLmVkMjBiZDI2MzI4MWU5NmQ2ZWRiZDJjOWIwNTg4ZDJlYzEzMDFjMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTM1LDcgKzEzNSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0FuaW1hdGlv
blN0YXJ0VGltZSk7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpOwogICAg
IHZvaWQgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxheW91dCgpOwogICAgIGJvb2wgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0ZyYW1lKEZyYW1lKiByb290RnJhbWVGb3JGbHVzaCk7
CkBAIC0xNTUsNyArMTU0LDYgQEAgcHVibGljOgogICAgIC8vIEluIHRoZSBmdXR1cmUgd2hlbiBh
bnkgU2Nyb2xsYWJsZUFyZWEgY2FuIGhhdmUgYSBub2RlIGluIHRoIFNjcm9sbGluZ1RyZWUsIHRo
aXMgc2hvdWxkCiAgICAgLy8gYmVjb21lIGEgdmlydHVhbCBmdW5jdGlvbiBvbiBTY3JvbGxhYmxl
QXJlYS4KICAgICB1aW50NjRfdCBzY3JvbGxMYXllcklEKCkgY29uc3Q7Ci0jZW5kaWYKIAogICAg
IGJvb2wgaGFzQ29tcG9zaXRlZENvbnRlbnQoKSBjb25zdDsKICAgICBib29sIGhhc0NvbXBvc2l0
ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKSBjb25zdDsKQEAgLTE5Nyw5ICsxOTUsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFeHRlbmRlZEJhY2tncm91bmQoKSBjb25zdDsKICAgICBJ
bnRSZWN0IGV4dGVuZGVkQmFja2dyb3VuZFJlY3QoKSBjb25zdDsKICAgICAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBzZXRCYWNrZ3JvdW5kRXh0ZW5kc0JleW9u
ZFBhZ2UoYm9vbCk7Ci0jZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3Jl
ZW4oKSBjb25zdDsKICAgICB2b2lkIHNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKGJvb2wp
OwpAQCAtNTE2LDcgKzUxMiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJl
YSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBib29sIHVzZXNDb21w
b3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBHcmFwaGljc0xh
eWVyKiBsYXllckZvclNjcm9sbGluZygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgR3Jh
cGhpY3NMYXllciogbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7
CkBAIC01MjUsNyArNTIwLDYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcp
CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvck92ZXJoYW5nQXJlYXMoKSBjb25z
dCBvdmVycmlkZTsKICNlbmRpZgotI2VuZGlmCiAKICAgICAvLyBPdmVycmlkZSBzY3JvbGxiYXIg
bm90aWZpY2F0aW9ucyB0byB1cGRhdGUgdGhlIEFYT2JqZWN0IGNhY2hlLgogICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRTY3JvbGxiYXIoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24pIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDQ2MzhlOWQwY2UzNTczNmRmMzcyYzM0ODIx
NzFlNzZhOWI4Y2YyNS4uYTY5ZjU1NTM2ZGRlOTM1NGJhMGE0ZjdkMTAwZDhkMGE0ZGMxY2IxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC03MjMsOSArNzIzLDcgQEAgdm9pZCBQYWdlOjpzZXRQYWdl
U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCiAgICAgICAg
IG1haW5GcmFtZSgpLnZpZXcoKS0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdChMYXlvdXRSZWN0Ojpp
bmZpbml0ZVJlY3QoKSkpOwogICAgIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBtYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSNl
bmRpZgogCiAgICAgaWYgKHZpZXcgJiYgdmlldy0+Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZSgpKQogICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c05l
ZWRMYXlvdXQoKTsKQEAgLTc0NiwxMCArNzQ0LDggQEAgdm9pZCBQYWdlOjpzZXREZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKICAgICBtX2RldmljZVNjYWxlRmFjdG9yID0gc2Nh
bGVGYWN0b3I7CiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbWFpbkZyYW1lKCkuZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAgcGFnZUNhY2hlKCktPm1hcmtQYWdlc0ZvckRldmlj
ZVNjYWxlQ2hhbmdlZCh0aGlzKTsKLSNlbmRpZgogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAm
bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkp
CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5kZXZpY2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNjdhN2NiY2MzM2NkM2Y3NjFiMzcwNTYxNDFmZmY3
NDgxOWVhZDZmMy4uYWFkODE0OTYyMDhiMjNhYzhhOGVjNGY5MTJmNGYxYmQxZTA5MTllMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTYwNCw5ICs2MDQsNyBAQCB2b2lkIFNldHRpbmdz
OjpzZXRCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZShib29sIHNob3VsZEV4dGVuZCkK
IAogICAgIG1fYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UgPSBzaG91bGRFeHRlbmQ7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9wYWdlLT5tYWluRnJh
bWUoKS52aWV3KCktPnNldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZShzaG91bGRFeHRlbmQp
OwotI2VuZGlmCiB9CiAKICNpZiBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZDMzMTVlYmIwNjk2MTRk
OGMwMTFhNGI1OWU1ZTU1N2E5NTEwNTExLi5mNTA0NGI4NTJkMTQ2OWJiMjZjNGZjMGQxYTZkYmVh
YTM0NzYwY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25CYXNlLmNwcApAQCAtNjU5LDEwICs2NTksOCBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OmZyZWV6
ZUF0VGltZShkb3VibGUgdCkKICAgICBlbHNlCiAgICAgICAgIG1fcGF1c2VUaW1lID0gbV9zdGFy
dFRpbWUgKyB0IC0gbV9hbmltYXRpb24tPmRlbGF5KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5pc0NvbXBvc2l0ZWQo
KSkKICAgICAgICAgdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29iamVjdCktPnN1c3BlbmRBbmlt
YXRpb25zKG1fcGF1c2VUaW1lKTsKLSNlbmRpZgogfQogCiBkb3VibGUgQW5pbWF0aW9uQmFzZTo6
YmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggNWI4YzkwYjhh
YjE3MDIyMjNmZDlhMzgwZTg1ZDJjZjQxZmZmMjgwOS4uYjdjOTRlZDY2ZTU3MmFjOTMwNDIwMWJh
NzRlZjA0NDJmYTc4ODRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTYzNCwxMiArNjM0LDcgQEAgdm9pZCBB
bmltYXRpb25Db250cm9sbGVyOjplbmRBbmltYXRpb25VcGRhdGUoKQogCiBib29sIEFuaW1hdGlv
bkNvbnRyb2xsZXI6OnN1cHBvcnRzQWNjZWxlcmF0ZWRBbmltYXRpb25PZlByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcGVydHkpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHJldHVybiBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNj
ZWxlcmF0ZWQocHJvcGVydHkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocHJvcGVydHkpOwot
ICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1h
dGlvbi5jcHAKaW5kZXggMjkxMTI5ZTkzMmMxMmU2ODY4ZTliNGE1NjRkNGYwZTVkNTBlZDcwNS4u
Y2ZiMzIwZmI5ZDc1MzIwM2QxODllZjhlYTZlM2MxYzZiNWM4NjY1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApA
QCAtMzg5LDkgKzM4OSw3IEBAIHB1YmxpYzoKIAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHko
KSBjb25zdCB7IHJldHVybiBtX3Byb3A7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICB2aXJ0dWFsIGJvb2wgYW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBDU1NQcm9wZXJ0eUlEIG1f
cHJvcDsKQEAgLTUzMyw3ICs1MzEsNiBAQCBwcm90ZWN0ZWQ6CiB9OwogCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBQcm9wZXJ0eVdyYXBwZXJBY2NlbGVyYXRlZE9w
YWNpdHkgOiBwdWJsaWMgUHJvcGVydHlXcmFwcGVyPGZsb2F0PiB7CiBwdWJsaWM6CiAgICAgUHJv
cGVydHlXcmFwcGVyQWNjZWxlcmF0ZWRPcGFjaXR5KCkKQEAgLTU4Myw3ICs1ODAsNiBAQCBwdWJs
aWM6CiAgICAgfQogfTsKICNlbmRpZgotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKIAogc3RhdGljIGlubGluZSBzaXplX3Qgc2hhZG93TGlzdExlbmd0aChjb25zdCBTaGFk
b3dEYXRhKiBzaGFkb3cpCiB7CkBAIC0xMjMyLDE5ICsxMjI4LDExIEBAIENTU1Byb3BlcnR5QW5p
bWF0aW9uV3JhcHBlck1hcDo6Q1NTUHJvcGVydHlBbmltYXRpb25XcmFwcGVyTWFwKCkKIAogICAg
ICAgICBuZXcgTGVuZ3RoUHJvcGVydHlXcmFwcGVyPExlbmd0aEJveD4oQ1NTUHJvcGVydHlDbGlw
LCAmUmVuZGVyU3R5bGU6OmNsaXAsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcCksCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJBY2Nl
bGVyYXRlZE9wYWNpdHkoKSwKICAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVk
VHJhbnNmb3JtKCksCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgICAgICBuZXcgUHJvcGVy
dHlXcmFwcGVyQWNjZWxlcmF0ZWRGaWx0ZXIoKSwKICNlbmRpZgotI2Vsc2UKLSAgICAgICAgbmV3
IFByb3BlcnR5V3JhcHBlcjxmbG9hdD4oQ1NTUHJvcGVydHlPcGFjaXR5LCAmUmVuZGVyU3R5bGU6
Om9wYWNpdHksICZSZW5kZXJTdHlsZTo6c2V0T3BhY2l0eSksCi0gICAgICAgIG5ldyBQcm9wZXJ0
eVdyYXBwZXI8Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyY+KENTU1Byb3BlcnR5V2Via2l0VHJh
bnNmb3JtLCAmUmVuZGVyU3R5bGU6OnRyYW5zZm9ybSwgJlJlbmRlclN0eWxlOjpzZXRUcmFuc2Zv
cm0pLAotI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICAgICAgbmV3IFByb3BlcnR5V3JhcHBl
cjxjb25zdCBGaWx0ZXJPcGVyYXRpb25zJj4oQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIsICZSZW5k
ZXJTdHlsZTo6ZmlsdGVyLCAmUmVuZGVyU3R5bGU6OnNldEZpbHRlciksCi0jZW5kaWYKLSNlbmRp
ZgogCiAgICAgICAgIG5ldyBQcm9wZXJ0eVdyYXBwZXJDbGlwUGF0aChDU1NQcm9wZXJ0eVdlYmtp
dENsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OmNsaXBQYXRoLCAmUmVuZGVyU3R5bGU6OnNldENsaXBQ
YXRoKSwKIApAQCAtMTM5MywyMyArMTM4MSwxNyBAQCBib29sIENTU1Byb3BlcnR5QW5pbWF0aW9u
OjpibGVuZFByb3BlcnRpZXMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ1NTUHJvcGVydAog
ICAgIEFuaW1hdGlvblByb3BlcnR5V3JhcHBlckJhc2UqIHdyYXBwZXIgPSBDU1NQcm9wZXJ0eUFu
aW1hdGlvbldyYXBwZXJNYXA6Omluc3RhbmNlKCkud3JhcHBlckZvclByb3BlcnR5KHByb3ApOwog
ICAgIGlmICh3cmFwcGVyKSB7CiAgICAgICAgIHdyYXBwZXItPmJsZW5kKGFuaW0sIGRzdCwgYSwg
YiwgcHJvZ3Jlc3MpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAg
cmV0dXJuICF3cmFwcGVyLT5hbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgfHwgIWFuaW0tPmlzQWNj
ZWxlcmF0ZWQoKTsKLSNlbHNlCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgfQog
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogYm9vbCBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6YW5pbWF0aW9uT2ZQcm9wZXJ0eUlzQWNjZWxl
cmF0ZWQoQ1NTUHJvcGVydHlJRCBwcm9wKQogewogICAgIEFuaW1hdGlvblByb3BlcnR5V3JhcHBl
ckJhc2UqIHdyYXBwZXIgPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6Omluc3RhbmNl
KCkud3JhcHBlckZvclByb3BlcnR5KHByb3ApOwogICAgIHJldHVybiB3cmFwcGVyID8gd3JhcHBl
ci0+YW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIDogZmFsc2U7CiB9Ci0jZW5kaWYKIAogLy8gTm90
ZTogdGhpcyBpcyBpbmVmZmljaWVudC4gSXQncyBvbmx5IGNhbGxlZCBmcm9tIHBhdXNlVHJhbnNp
dGlvbkF0VGltZSgpLgogSGFzaFNldDxDU1NQcm9wZXJ0eUlEPiBDU1NQcm9wZXJ0eUFuaW1hdGlv
bjo6YW5pbWF0YWJsZVNob3J0aGFuZHNBZmZlY3RpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmgKaW5kZXggYzQxYzdkZDkwYzM5MjdjYTRlMjhhYWI1YzMzZjU1MDMzN2M4
YzQ0MS4uYjIxNDY2ZjBmOGZlZTM2NWM4N2QyMjkyNWU4NThkYzdhN2FjMDFhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5o
CkBAIC00MCw5ICs0MCw3IEBAIGNsYXNzIFJlbmRlclN0eWxlOwogCiBjbGFzcyBDU1NQcm9wZXJ0
eUFuaW1hdGlvbiB7CiBwdWJsaWM6Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHN0YXRpYyBib29sIGFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKENTU1Byb3Bl
cnR5SUQpOwotI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgcHJvcGVydGllc0VxdWFsKENTU1Byb3Bl
cnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYik7CiAgICAg
c3RhdGljIENTU1Byb3BlcnR5SUQgZ2V0UHJvcGVydHlBdEluZGV4KGludCwgYm9vbCYgaXNTaG9y
dGhhbmQpOwogICAgIHN0YXRpYyBpbnQgZ2V0TnVtUHJvcGVydGllcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXgg
ZTE4Nzc5ZWE3MTRiNWQzNDcyMWVjMDIyOTczNTAyZDZiZTA2MzllMi4uMWM5NWQ5MDE5N2UzNzgw
ZGUwZTk3OGRlNGMwZDc4YzVhZjc1NDM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0xNDgsNyArMTQ4LDYgQEAg
dm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQq
IHJlbmRlcmVyLCBSZW5kZXJTdHlsZSoKICAgICAgICAgICAgICAgICAgICAgLy8gbGlzdC4gSW4g
dGhpcyBjYXNlLCB0aGUgbGF0dGVyIG9uZSBvdmVycmlkZXMgdGhlIGVhcmxpZXIgb25lLCBzbyB3
ZQogICAgICAgICAgICAgICAgICAgICAvLyBiZWhhdmUgYXMgdGhvdWdoIHRoaXMgaXMgYSBydW5u
aW5nIGFuaW1hdGlvbiBiZWluZyByZXBsYWNlZC4KICAgICAgICAgICAgICAgICAgICAgaWYgKCFp
bXBsQW5pbS0+aXNUYXJnZXRQcm9wZXJ0eUVxdWFsKHByb3AsIHRhcmdldFN0eWxlKSkgewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZvciBhY2NlbGVyYXRlZCBhbmltYXRpb25zIHdlIG5lZWQgdG8gcmV0dXJuIGEgbmV3IFJlbmRl
clN0eWxlIHdpdGggdGhlIF9jdXJyZW50XyB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gb2YgdGhlIHByb3BlcnR5LCBzbyB0aGF0IHJlc3RhcnRlZCB0cmFuc2l0aW9ucyB1c2UgdGhl
IGNvcnJlY3Qgc3RhcnRpbmcgcG9pbnQuCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ1NT
UHJvcGVydHlBbmltYXRpb246OmFuaW1hdGlvbk9mUHJvcGVydHlJc0FjY2VsZXJhdGVkKHByb3Ap
ICYmIGltcGxBbmltLT5pc0FjY2VsZXJhdGVkKCkpIHsKQEAgLTE1Nyw3ICsxNTYsNiBAQCB2b2lk
IENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVu
ZGVyZXIsIFJlbmRlclN0eWxlKgogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbEFu
aW0tPmJsZW5kUHJvcGVydHlWYWx1ZUluU3R5bGUocHJvcCwgbW9kaWZpZWRDdXJyZW50U3R5bGUu
Z2V0KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgICAgICAg
ICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIlJlbW92aW5nIGV4aXN0aW5nIEltcGxpY2l0QW5p
bWF0aW9uICVwIGZvciBwcm9wZXJ0eSAlcyIsIGltcGxBbmltLCBnZXRQcm9wZXJ0eU5hbWUocHJv
cCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29udHJvbGxlcigpLT5hbmlt
YXRpb25XaWxsQmVSZW1vdmVkKGltcGxBbmltKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
dHJhbnNpdGlvbnMucmVtb3ZlKHByb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IGFmMWQ3ODgxOTA2Yzc2MDQ4ODk3
NTI5NDk0MTM2ODZjZWQyMDJhZWQuLmZlZTZjMDc1MDA2NWI4MTIyNjJhZWI3MzVlMzVkMjI0YmYy
NTU4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0
QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5jcHAKQEAgLTc3LDcgKzc3LDYgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6
YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJFbGVtZW50KiwgY29uc3QgUmVuZGUK
ICAgICBpZiAoIWFuaW1hdGVkU3R5bGUpCiAgICAgICAgIGFuaW1hdGVkU3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y2xvbmUodGFyZ2V0U3R5bGUpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGJvb2wgbmVlZHNBbmltID0gQ1NTUHJvcGVydHlBbmltYXRpb246OmJsZW5kUHJv
cGVydGllcyh0aGlzLCBtX2FuaW1hdGluZ1Byb3BlcnR5LCBhbmltYXRlZFN0eWxlLmdldCgpLCBt
X2Zyb21TdHlsZS5nZXQoKSwgbV90b1N0eWxlLmdldCgpLCBwcm9ncmVzcygxLCAwLCAwKSk7CiAg
ICAgLy8gRklYTUU6IHdlIGFsc28gbmVlZCB0byBkZXRlY3QgY2FzZXMgd2hlcmUgd2UgaGF2ZSB0
byBzb2Z0d2FyZSBhbmltYXRlIGZvciBvdGhlciByZWFzb25zLAogICAgIC8vIHN1Y2ggYXMgYSBj
aGlsZCB1c2luZyBpbmhlcml0aW5nIHRoZSB0cmFuc2Zvcm0uIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwMgpAQCAtODcsNyArODYsNiBAQCB2b2lkIEltcGxpY2l0
QW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlckVsZW1lbnQqLCBj
b25zdCBSZW5kZQogICAgICAgICAvLyB0aGF0IGlzIGFuaW1hdGluZyBhcmUgY29ycmVjdGx5IGRl
dGVjdGVkIGR1cmluZyB0aGUgYW5pbWF0aW9uIChlLmcuIHdoZW4gYSB0cmFuc2l0aW9uCiAgICAg
ICAgIC8vIGdldHMgaW50ZXJydXB0ZWQpLgogICAgICAgICBhbmltYXRlZFN0eWxlLT5zZXRJc1J1
bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbigpOwotI2VuZGlmCiAKICAgICAvLyBGaXJlIHRoZSBz
dGFydCB0aW1lb3V0IGlmIG5lZWRlZAogICAgIGZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgp
OwpAQCAtMTAzLDEyICsxMDEsOCBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpnZXRBbmltYXRl
ZFN0eWxlKFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpCiAKIGJvb2wgSW1wbGlj
aXRBbmltYXRpb246OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9vYmplY3QgJiYgbV9vYmplY3Qt
PmlzQ29tcG9zaXRlZCgpKQogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdCht
X29iamVjdCktPnN0YXJ0VHJhbnNpdGlvbih0aW1lT2Zmc2V0LCBtX2FuaW1hdGluZ1Byb3BlcnR5
LCBtX2Zyb21TdHlsZS5nZXQoKSwgbV90b1N0eWxlLmdldCgpKTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKHRpbWVPZmZzZXQpOwotI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0x
MTcsMTIgKzExMSw4IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OnBhdXNlQW5pbWF0aW9uKGRv
dWJsZSB0aW1lT2Zmc2V0KQogICAgIGlmICghbV9vYmplY3QpCiAgICAgICAgIHJldHVybjsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9vYmplY3QtPmlzQ29t
cG9zaXRlZCgpKQogICAgICAgICB0b1JlbmRlckJveE1vZGVsT2JqZWN0KG1fb2JqZWN0KS0+dHJh
bnNpdGlvblBhdXNlZCh0aW1lT2Zmc2V0LCBtX2FuaW1hdGluZ1Byb3BlcnR5KTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHRpbWVPZmZzZXQpOwotI2VuZGlmCiAgICAgLy8gUmVzdG9yZSB0aGUg
b3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCiAgICAgaWYgKCFwYXVzZWQoKSkKICAgICAgICAg
c2V0TmVlZHNTdHlsZVJlY2FsYyhtX29iamVjdC0+ZWxlbWVudCgpKTsKQEAgLTEzMCwxMCArMTIw
LDggQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6cGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVP
ZmZzZXQpCiAKIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmVuZEFuaW1hdGlvbigpCiB7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdCAmJiBtX29iamVj
dC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHRvUmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmpl
Y3QpLT50cmFuc2l0aW9uRmluaXNoZWQobV9hbmltYXRpbmdQcm9wZXJ0eSk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRU
aW1lKQpAQCAtMjg1LDcgKzI3Myw2IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246OmNoZWNrRm9y
TWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCkKIGRvdWJsZSBJbXBsaWNpdEFuaW1hdGlvbjo6
dGltZVRvTmV4dFNlcnZpY2UoKQogewogICAgIGRvdWJsZSB0ID0gQW5pbWF0aW9uQmFzZTo6dGlt
ZVRvTmV4dFNlcnZpY2UoKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKHQgIT0gMCB8fCBwcmVBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuIHQ7CiAgICAgICAgIApA
QCAtMjk1LDcgKzI4Miw2IEBAIGRvdWJsZSBJbXBsaWNpdEFuaW1hdGlvbjo6dGltZVRvTmV4dFNl
cnZpY2UoKQogICAgICAgICBib29sIGlzTG9vcGluZzsKICAgICAgICAgZ2V0VGltZVRvTmV4dEV2
ZW50KHQsIGlzTG9vcGluZyk7CiAgICAgfQotI2VuZGlmCiAgICAgcmV0dXJuIHQ7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNw
cAppbmRleCA4ZjY2MWM2YzMxOGNjOGMzMTI5NmNiY2RjMTk0ZGU4MDZjODY0OGQ4Li5iZjEwYzI3
Njk3ZGY5YTRkMTU5ZDM1YjYxNjIyMTY2M2RiNzY5M2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0xODMsMTQgKzE4
MywxMiBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlv
biogY29tcG9zaXRlQW5pbWF0aW9uLCBSZW5kZXJFbAogICAgICAgICBkb3VibGUgcHJvZ3Jlc3Mg
PSAwLjA7CiAgICAgICAgIGZldGNoSW50ZXJ2YWxFbmRwb2ludHNGb3JQcm9wZXJ0eSgqaXQsIGZy
b21TdHlsZSwgdG9TdHlsZSwgcHJvZ3Jlc3MpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgICAgICBib29sIG5lZWRzQW5pbSA9IENTU1Byb3BlcnR5QW5pbWF0aW9uOjpi
bGVuZFByb3BlcnRpZXModGhpcywgKml0LCBhbmltYXRlZFN0eWxlLmdldCgpLCBmcm9tU3R5bGUs
IHRvU3R5bGUsIHByb2dyZXNzKTsKICAgICAgICAgaWYgKCFuZWVkc0FuaW0pCiAgICAgICAgICAg
ICAvLyBJZiB3ZSBhcmUgcnVubmluZyBhbiBhY2NlbGVyYXRlZCBhbmltYXRpb24sIHNldCBhIGZs
YWcgaW4gdGhlIHN0eWxlCiAgICAgICAgICAgICAvLyB0byBpbmRpY2F0ZSBpdC4gVGhpcyBjYW4g
YmUgdXNlZCB0byBtYWtlIHN1cmUgd2UgZ2V0IGFuIHVwZGF0ZWQKICAgICAgICAgICAgIC8vIHN0
eWxlIGZvciBoaXQgdGVzdGluZywgZXRjLgogICAgICAgICAgICAgYW5pbWF0ZWRTdHlsZS0+c2V0
SXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24oKTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAt
MjI2LDEzICsyMjQsOSBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpoYXNBbmltYXRpb25Gb3JQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAogCiBib29sIEtleWZyYW1lQW5p
bWF0aW9uOjpzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCkKIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fb2JqZWN0ICYmIG1fb2JqZWN0LT5pc0Nv
bXBvc2l0ZWQoKSkgewogICAgICAgICByZXR1cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChtX29i
amVjdCktPnN0YXJ0QW5pbWF0aW9uKHRpbWVPZmZzZXQsIG1fYW5pbWF0aW9uLmdldCgpLCBtX2tl
eWZyYW1lcyk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odGltZU9mZnNldCk7Ci0j
ZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTI0MSwxMiArMjM1LDkgQEAgdm9pZCBL
ZXlmcmFtZUFuaW1hdGlvbjo6cGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpCiAgICAg
aWYgKCFtX29iamVjdCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChtX29iamVjdC0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHRv
UmVuZGVyQm94TW9kZWxPYmplY3QobV9vYmplY3QpLT5hbmltYXRpb25QYXVzZWQodGltZU9mZnNl
dCwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KHRpbWVPZmZzZXQpOwotI2VuZGlmCisKICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5h
bmltYXRlZCkgc3R5bGUKICAgICBpZiAoIXBhdXNlZCgpKQogICAgICAgICBzZXROZWVkc1N0eWxl
UmVjYWxjKG1fb2JqZWN0LT5lbGVtZW50KCkpOwpAQCAtMjU3LDEwICsyNDgsOSBAQCB2b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjplbmRBbmltYXRpb24oKQogICAgIGlmICghbV9vYmplY3QpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAo
bV9vYmplY3QtPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICB0b1JlbmRlckJveE1vZGVsT2JqZWN0
KG1fb2JqZWN0KS0+YW5pbWF0aW9uRmluaXNoZWQobV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgp
KTsKLSNlbmRpZgorCiAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0
eWxlCiAgICAgaWYgKCFwYXVzZWQoKSkKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhtX29i
amVjdC0+ZWxlbWVudCgpKTsKQEAgLTQzMiw3ICs0MjIsNiBAQCB2b2lkIEtleWZyYW1lQW5pbWF0
aW9uOjpjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpCiBkb3VibGUgS2V5ZnJh
bWVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkKIHsKICAgICBkb3VibGUgdCA9IEFuaW1h
dGlvbkJhc2U6OnRpbWVUb05leHRTZXJ2aWNlKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgIGlmICh0ICE9IDAgfHwgcHJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybiB0
OwogICAgICAgICAKQEAgLTQ1Miw3ICs0NDEsNyBAQCBkb3VibGUgS2V5ZnJhbWVBbmltYXRpb246
OnRpbWVUb05leHRTZXJ2aWNlKCkKICAgICAgICAgYm9vbCBpc0xvb3Bpbmc7CiAgICAgICAgIGdl
dFRpbWVUb05leHRFdmVudCh0LCBpc0xvb3BpbmcpOwogICAgIH0KLSNlbmRpZgorCiAgICAgcmV0
dXJuIHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KaW5kZXggMTQ5NjhiNmM4
MzUzZjMyNmMwMmU2Mzk1YmEzZDI1ZGYyMjc4NjEzYy4uYjRlM2MzYzJhN2ViZjE2MTIwMjE3ZmNl
MWZlYzIwYTQxMTVhYzZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJh
bWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRnJhbWVJT1MubW0KQEAgLTg3
Niw3ICs4NzYsNiBAQCBzdGF0aWMgYm9vbCBhbnlGcmFtZUhhc1RpbGVkTGF5ZXJzKEZyYW1lKiBy
b290RnJhbWUpCiAKIHZvaWQgRnJhbWU6OnZpZXdwb3J0T2Zmc2V0Q2hhbmdlZChWaWV3cG9ydE9m
ZnNldENoYW5nZVR5cGUgY2hhbmdlVHlwZSkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgaWYgKGNoYW5nZVR5cGUgPT0gSW5jcmVtZW50YWxTY3JvbGxPZmZzZXQpIHsK
ICAgICAgICAgaWYgKGFueUZyYW1lSGFzVGlsZWRMYXllcnModGhpcykpIHsKICAgICAgICAgICAg
IGlmIChSZW5kZXJWaWV3KiByb290ID0gY29udGVudFJlbmRlcmVyKCkpCkBAIC04ODgsMTUgKzg4
NywxMyBAQCB2b2lkIEZyYW1lOjp2aWV3cG9ydE9mZnNldENoYW5nZWQoVmlld3BvcnRPZmZzZXRD
aGFuZ2VUeXBlIGNoYW5nZVR5cGUpCiAgICAgICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gY29u
dGVudFJlbmRlcmVyKCkpCiAgICAgICAgICAgICByb290LT5jb21wb3NpdG9yKCkudXBkYXRlQ29t
cG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVPblNjcm9sbCk7CiAgICAgfQotI2VuZGlm
CiB9CiAKIGJvb2wgRnJhbWU6OmNvbnRhaW5zVGlsZWRCYWNraW5nTGF5ZXJzKCkgY29uc3QKIHsK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKFJlbmRlclZpZXcqIHJv
b3QgPSBjb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJvb3QtPmNvbXBvc2l0b3Io
KS5oYXNOb25NYWluTGF5ZXJzV2l0aFRpbGVkQmFja2luZygpOwotI2VuZGlmCisKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNzdjNTBiODQyY2JhNTE5
ZmQwZjAxNDhhOTljYTEyNGYyZTBhZDU5Ni4uMjczODYxYzEzNTQyYjk0MzUzZGMxNTdiMzk4OTQ4
MGQ4OTMxNzZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTE5Nyw3ICsxOTcsNiBAQCB2
b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdObwogCiAgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRp
Y1Njcm9sbChvbGRQcm9ncmFtbWF0aWNTY3JvbGwpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChzY3JvbGxpbmdOb2RlSUQgPT0gZnJhbWVWaWV3LT5zY3JvbGxM
YXllcklEKCkpIHsKICAgICAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyID0gc2Ny
b2xsTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkgewogICAgICAgICAgICAgR3JhcGhpY3NM
YXllciogY291bnRlclNjcm9sbGluZ0xheWVyID0gY291bnRlclNjcm9sbGluZ0xheWVyRm9yRnJh
bWVWaWV3KGZyYW1lVmlldyk7CkBAIC0yMjgsOSArMjI3LDYgQEAgdm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xs
aW5nTm8KICAgICAgICAgfQogICAgIH0KICAgICAvLyBGSVhNRTogaGFuZGxlIG5vbi1tYWluIHNj
cm9sbGluZyBub2Rlcy4KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOwotI2VuZGlmCiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSog
c2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDkzZGZiMGNlYzRiOWUxOGVjOThiMzFhYzliZTFiYzBmYTMzN2VmNWQuLjhlMzI1
NmViMzNiZmRjOTNiYzBkNjMyMjk4MzRkM2Y1NWIyYWFiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTM2
LDE1ICszNiwxMiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUg
IlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCisjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvckNv
b3JkaW5hdGVkR3JhcGhpY3MuaCIKICNlbmRpZgpAQCAtODksMTQgKzg2LDEwIEBAIGJvb2wgU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KEZyYW1l
VmlldyogZnJhbWVWaWV3CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGN1cnJl
bnRseSBvbmx5IHN1cHBvcnQgY29tcG9zaXRlZCBtb2RlLgotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gbV9wYWdlLT5tYWluRnJh
bWUoKS5jb250ZW50UmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICByZXR1cm4gcmVuZGVyVmlldy0+dXNlc0NvbXBvc2l0aW5nKCk7Ci0j
ZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiBSZWdpb24gU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OmNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBGcmFtZSogZnJh
bWUsIGNvbnN0IEludFBvaW50JiBmcmFtZUxvY2F0aW9uKSBjb25zdApAQCAtMTEyLDExICsxMDUs
OSBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvbXB1dGVOb25GYXN0U2Nyb2xsYWJs
ZVJlZ2lvbihjb25zdCBGcmFtZSogZnJhbWUsCiAgICAgaWYgKGNvbnN0IEZyYW1lVmlldzo6U2Ny
b2xsYWJsZUFyZWFTZXQqIHNjcm9sbGFibGVBcmVhcyA9IGZyYW1lVmlldy0+c2Nyb2xsYWJsZUFy
ZWFzKCkpIHsKICAgICAgICAgZm9yIChGcmFtZVZpZXc6OlNjcm9sbGFibGVBcmVhU2V0Ojpjb25z
dF9pdGVyYXRvciBpdCA9IHNjcm9sbGFibGVBcmVhcy0+YmVnaW4oKSwgZW5kID0gc2Nyb2xsYWJs
ZUFyZWFzLT5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBTY3JvbGxhYmxl
QXJlYSogc2Nyb2xsYWJsZUFyZWEgPSAqaXQ7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgICAgICAgICAgLy8gQ29tcG9zaXRlZCBzY3JvbGxhYmxlIGFyZWFzIGNhbiBiZSBz
Y3JvbGxlZCBvZmYgdGhlIG1haW4gdGhyZWFkLgogICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVB
cmVhLT51c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotI2VuZGlmCiAgICAgICAgICAgICBJbnRSZWN0IGJveCA9IHNjcm9sbGFibGVBcmVhLT5zY3Jv
bGxhYmxlQXJlYUJvdW5kaW5nQm94KCk7CiAgICAgICAgICAgICBib3gubW92ZUJ5KG9mZnNldCk7
CiAgICAgICAgICAgICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZShib3gpOwpAQCAtMTc5
LDcgKzE3MCw2IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0ZpeGVkT2Jq
ZWN0c0RpZENoYW5nZShGcmFtZVZpZXcqIGZyYW1lVmlldykKICAgICB1cGRhdGVTeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIEdyYXBoaWNzTGF5ZXIqIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxMYXllckZvclNj
cm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKIHsKICAgICByZXR1
cm4gc2Nyb2xsYWJsZUFyZWEtPmxheWVyRm9yU2Nyb2xsaW5nKCk7CkBAIC0xOTQsMjMgKzE4NCwx
NyBAQCBHcmFwaGljc0xheWVyKiBTY3JvbGxpbmdDb29yZGluYXRvcjo6dmVydGljYWxTY3JvbGxi
YXJMYXllckZvclNjcm9sbGFibGVBcmVhKFNjcgogewogICAgIHJldHVybiBzY3JvbGxhYmxlQXJl
YS0+bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpOwogfQotI2VuZGlmCiAKIEdyYXBoaWNzTGF5
ZXIqIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxMYXllckZvckZyYW1lVmlldyhGcmFtZVZp
ZXcqIGZyYW1lVmlldykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPmZyYW1lKCkuY29udGVudFJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkuc2Nyb2xs
TGF5ZXIoKTsKICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1lVmll
dyk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWV3
KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lVmlldy0+ZnJhbWUoKS5jb250ZW50UmVuZGVyZXIoKSkKICAgICAg
ICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLmhlYWRlckxheWVyKCk7CiAgICAgcmV0dXJuIDA7
CkBAIC0yMjIsNyArMjA2LDcgQEAgR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmhlYWRlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWUKIAogR3JhcGhpY3NM
YXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZvb3RlckxheWVyRm9yRnJhbWVWaWV3KEZyYW1l
VmlldyogZnJhbWVWaWV3KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBp
ZiAoUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+ZnJhbWUoKS5jb250ZW50UmVu
ZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5mb290ZXJM
YXllcigpOwogICAgIHJldHVybiAwOwpAQCAtMjM0LDE0ICsyMTgsOSBAQCBHcmFwaGljc0xheWVy
KiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Zm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcoRnJhbWVWaWV3
KiBmcmFtZVZpZQogCiBHcmFwaGljc0xheWVyKiBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y291bnRl
clNjcm9sbGluZ0xheWVyRm9yRnJhbWVWaWV3KEZyYW1lVmlldyogZnJhbWVWaWV3KQogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVy
VmlldyA9IGZyYW1lVmlldy0+ZnJhbWUoKS5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0
dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5maXhlZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoKTsK
ICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1lVmlldyk7Ci0gICAg
cmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVW
aWV3Um9vdExheWVyRGlkQ2hhbmdlKEZyYW1lVmlldyogZnJhbWVWaWV3KQpAQCAtMjc5LDcgKzI1
OCw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWludFZp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKEZyYW1lCiAgICAgaWYgKCF2aWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGZvciAoRnJhbWVWaWV3OjpWaWV3cG9ydENvbnN0cmFpbmVkT2Jq
ZWN0U2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5i
ZWdpbigpLCBlbmQgPSB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+ZW5kKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewogICAgICAgICBSZW5kZXJPYmplY3QqIHZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3QgPSAqaXQ7CiAgICAgICAgIGlmICghdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdC0+aXNCb3hN
b2RlbE9iamVjdCgpIHx8ICF2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0LT5oYXNMYXllcigpKQpA
QCAtMjkwLDkgKzI2OCw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVT
bG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKEZyYW1lCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwotI2Vsc2UKLSAgICByZXR1cm4g
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMtPnNpemUoKTsKLSNlbmRpZgogfQogCiBTeW5jaHJv
bm91c1Njcm9sbGluZ1JlYXNvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAwZTA1ZDY5ZmRkOGM4YjhkNmVlMDcy
MzIyMWE5N2YxYzVmNzI2YjAzLi45MjQ3YmEzOWFmN2U4M2IyZDZmYjFjOWZiMDJkNmJjMjEyNjlk
Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKQEAgLTE4MiwxMSArMTgyLDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBzdGF0aWMgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5
ZXJGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSopOwogICAgIHN0YXRpYyBHcmFwaGlj
c0xheWVyKiBob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXJGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxh
YmxlQXJlYSopOwogICAgIHN0YXRpYyBHcmFwaGljc0xheWVyKiB2ZXJ0aWNhbFNjcm9sbGJhckxh
eWVyRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqKTsKLSNlbmRpZgogCiAgICAgdW5z
aWduZWQgY29tcHV0ZUN1cnJlbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50KCk7CiAgICAgR3JhcGhp
Y3NMYXllciogc2Nyb2xsTGF5ZXJGb3JGcmFtZVZpZXcoRnJhbWVWaWV3Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDJlODFkMjJjOWZmNDM3NzFiNDZlOGIxNjE4
YjlhMmY1NTYxNzQ2NjEuLjU5NzRmODQxMzVmY2QyYzU3MTg5YTJhYzQ2Mjc3OThlMmZmNDhhNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC05NzYsNyArOTc2LDYg
QEAgdm9pZCBTY3JvbGxWaWV3OjpjbGlwUmVjdENoYW5nZWQoKQogICAgICAgICAoKmN1cnJlbnQp
LT5jbGlwUmVjdENoYW5nZWQoKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIHN0YXRpYyB2b2lkIHBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXIoR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllciwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7CiAgICAgaWYgKCFncmFwaGljc0xh
eWVyIHx8ICFzY3JvbGxiYXIpCkBAIC0xMDA5LDE2ICsxMDA4LDEyIEBAIHN0YXRpYyB2b2lkIHBv
c2l0aW9uU2Nyb2xsQ29ybmVyTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgY29u
c3QgSW50UmVjCiAgICAgICAgIGdyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAg
IGdyYXBoaWNzTGF5ZXItPnNldFNpemUoY29ybmVyUmVjdC5zaXplKCkpOwogfQotI2VuZGlmCi0K
IAogdm9pZCBTY3JvbGxWaWV3Ojpwb3NpdGlvblNjcm9sbGJhckxheWVycygpCiB7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXIobGF5
ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCksIGhvcml6b250YWxTY3JvbGxiYXIoKSk7CiAgICAg
cG9zaXRpb25TY3JvbGxiYXJMYXllcihsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCksIHZlcnRp
Y2FsU2Nyb2xsYmFyKCkpOwogICAgIHBvc2l0aW9uU2Nyb2xsQ29ybmVyTGF5ZXIobGF5ZXJGb3JT
Y3JvbGxDb3JuZXIoKSwgc2Nyb2xsQ29ybmVyUmVjdCgpKTsKLSNlbmRpZgogfQogCiB2b2lkIFNj
cm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJv
b2wgbm93KQpAQCAtMTA5OSwyMyArMTA5NCwxNCBAQCB2b2lkIFNjcm9sbFZpZXc6OmludmFsaWRh
dGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAKIHZvaWQgU2Nyb2xsVmll
dzo6cGFpbnRTY3JvbGxiYXJzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKIHsKLSAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xs
YmFyKCkKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg
ICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xs
YmFyKCkpCiAgICAgICAgIHBhaW50U2Nyb2xsYmFyKGNvbnRleHQsIG1faG9yaXpvbnRhbFNjcm9s
bGJhci5nZXQoKSwgcmVjdCk7Ci0gICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgICYmICFsYXllckZvclZlcnRpY2FsU2Ny
b2xsYmFyKCkKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor
ICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyICYmICFsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
KCkpCiAgICAgICAgIHBhaW50U2Nyb2xsYmFyKGNvbnRleHQsIG1fdmVydGljYWxTY3JvbGxiYXIu
Z2V0KCksIHJlY3QpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChsYXllckZvclNjcm9sbENvcm5lcigpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKKwogICAg
IHBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQsIHNjcm9sbENvcm5lclJlY3QoKSk7CiB9CiAKQEAg
LTExNjIsNyArMTE0OCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBwYWludENvbnRlbnRzKGNv
bnRleHQsIGRvY3VtZW50RGlydHlSZWN0KTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKCFsYXllckZvck92ZXJoYW5nQXJlYXMoKSkKICAgICAgICAgY2Fs
Y3VsYXRlQW5kUGFpbnRPdmVyaGFuZ0FyZWFzKGNvbnRleHQsIHJlY3QpOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA4OGQwMjkzOGY2NTFm
M2NkYTgwMzk5NTcxNmEyMDMyMjVjMjRlMTczLi44NWY1ODUyOWI2NWIyYTBjMWYwZDQ0ZDc2NDVm
NWNjZjNkYmNmYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwCkBAIC0zMjIsNyArMzIyLDYgQEAgdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsYmFy
T3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSBvdmVybGF5U3R5bGUKIAogdm9pZCBT
Y3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKHNjcm9sbGJhciA9PSBob3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAg
aWYgKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIgPSBsYXllckZvckhvcml6b250YWxTY3Jv
bGxiYXIoKSkgewogICAgICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CkBAIC0zMzYsMjIgKzMzNSwyMCBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Ny
b2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQotI2VuZGlmCisKICAgICBpbnZhbGlkYXRlU2Ny
b2xsYmFyUmVjdChzY3JvbGxiYXIsIHJlY3QpOwogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVhOjpp
bnZhbGlkYXRlU2Nyb2xsQ29ybmVyKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyID0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkgewogICAgICAgICBncmFwaGljc0xheWVyLT5z
ZXROZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgorCiAgICAg
aW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QocmVjdCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp2ZXJ0aWNhbFNjcm9sbGJhckxh
eWVyRGlkQ2hhbmdlKCkKIHsKICAgICBzY3JvbGxBbmltYXRvcigpLT52ZXJ0aWNhbFNjcm9sbGJh
ckxheWVyRGlkQ2hhbmdlKCk7CkBAIC0zNjEsMzMgKzM1OCwyMCBAQCB2b2lkIFNjcm9sbGFibGVB
cmVhOjpob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoKQogewogICAgIHNjcm9sbEFu
aW1hdG9yKCktPmhvcml6b250YWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSgpOwogfQotI2VuZGlm
CiAKIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhhc0xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigp
IGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJldHVybiBs
YXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwot
I2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhhc0xheWVyRm9yVmVydGljYWxTY3Jv
bGxiYXIoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBy
ZXR1cm4gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFs
c2U7Ci0jZW5kaWYKIH0KIAogYm9vbCBTY3JvbGxhYmxlQXJlYTo6aGFzTGF5ZXJGb3JTY3JvbGxD
b3JuZXIoKSBjb25zdAogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBy
ZXR1cm4gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwot
I2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNlcnZpY2VTY3JvbGxBbmltYXRpb25z
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDhkNmY0MGNh
MmZlZWM0Y2MxNTI2NGNiOTg0YmRhYTA1ZDZmYzYzZmQuLjdiNDA3NzBmMTI5NWJkZGY5YTRiNTQx
NzQ4ZDY3ZDFkYjIwYzM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaApAQCAtMzYsMTAgKzM2LDggQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUGxh
dGZvcm1Ub3VjaEV2ZW50OwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgU2Nyb2xs
QW5pbWF0b3I7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgR3JhcGhp
Y3NMYXllcjsKIGNsYXNzIFRpbGVkQmFja2luZzsKLSNlbmRpZgogCiBjbGFzcyBTY3JvbGxhYmxl
QXJlYSB7CiBwdWJsaWM6CkBAIC0yMjEsNyArMjE5LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNQ
aW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oaW50IHZlcnRpY2FsU2Nyb2xsRGVsdGEpIGNvbnN0
OwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCkBAIC0yMzAsNyArMjI3LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCB2ZXJ0aWNhbFNj
cm9sbGJhckxheWVyRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCBob3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXJEaWRDaGFuZ2UoKTsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsYWJsZUFyZWEo
KTsKQEAgLTI0MiwxNCArMjM4LDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYp
ID0gMDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBmcmllbmQgY2xh
c3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXll
ckZvclNjcm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIEdyYXBoaWNz
TGF5ZXIqIGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2lmIEVO
QUJMRShSVUJCRVJfQkFORElORykKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
T3ZlcmhhbmdBcmVhcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNlbmRpZgotI2VuZGlmCisKICAg
ICBib29sIGhhc0xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIGJvb2wg
aGFzTGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIGJvb2wgaGFzTGF5ZXJG
b3JTY3JvbGxDb3JuZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJU
aGVtZS5oCmluZGV4IGQ2OGUwNjI4ODM4MDNiNGVmYTU5NmYzNTg0ZGI4YmZlODNmYmFmYzkuLjU4
OThiZDhhOGVlMzY4YzZiZGRlNjdjYWY0ZWFiYzJmNTgwN2E3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBQbGF0Zm9y
bU1vdXNlRXZlbnQ7CiBjbGFzcyBTY3JvbGxiYXJUaGVtZUNsaWVudDsKIGNsYXNzIFNjcm9sbFZp
ZXc7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVOQUJMRShSVUJCRVJf
QkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBjbGFzcyBHcmFwaGljc0xheWVy
OwogI2VuZGlmCiAKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBw
YWludFRpY2ttYXJrcyhHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNv
bnN0IEludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPdmVyaGFuZ0FyZWFzKFNj
cm9sbFZpZXcqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IEludFJlY3QmKSB7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFzTGF5ZXJDb250ZW50cyhHcmFwaGlj
c0xheWVyKiwgY29uc3QgQ29sb3ImKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50
U2hhZG93TGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsU2NyZWVuVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCmluZGV4IDEzM2ExYWNm
ZDRlZDA4OWY3MzBkMTkwN2JiMjJhOGJjNGU2MzQ0ZDMuLjVkYzA5MWFiZmVmZTU2MzhlZmE1ZDkx
YmY4YTIxMWZlZDAyMjg5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9FZmxTY3JlZW5VdGlsaXRpZXMuY3BwCkBAIC0xMTQsMTIgKzExNCwxMCBAQCB2b2lkIGFwcGx5
RmFsbGJhY2tDdXJzb3IoRWNvcmVfRXZhcyogZWNvcmVFdmFzLCBjb25zdCBjaGFyKiBjdXJzb3JT
dHJpbmcpCiAgICAgfQogCiAgICAgRWNvcmVfWF9XaW5kb3cgd2luZG93OwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB3aW5kb3cgPSBlY29yZV9ldmFzX2dsX3gxMV93aW5k
b3dfZ2V0KGVjb3JlRXZhcyk7CiAgICAgLy8gRmFsbGJhY2sgdG8gc29mdHdhcmUgbW9kZSBpZiBu
ZWNlc3NhcnkuCiAgICAgaWYgKCF3aW5kb3cpCi0jZW5kaWYKLSAgICB3aW5kb3cgPSBlY29yZV9l
dmFzX3NvZnR3YXJlX3gxMV93aW5kb3dfZ2V0KGVjb3JlRXZhcyk7CisgICAgICAgIHdpbmRvdyA9
IGVjb3JlX2V2YXNfc29mdHdhcmVfeDExX3dpbmRvd19nZXQoZWNvcmVFdmFzKTsKIAogICAgIEVj
b3JlX1hfQ3Vyc29yIGN1cnNvciA9IGVjb3JlX3hfY3Vyc29yX3NoYXBlX2dldChzaGFwZSk7CiAg
ICAgZWNvcmVfeF93aW5kb3dfY3Vyc29yX3NldCh3aW5kb3csIGN1cnNvcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRl
eCA3MDVjMzI3MmJiN2Q1Y2NiMmI5MGNjYWRkZTU1ZmM0YWJlNGFlMTQwLi5jM2YzZTc5YmZjZDI2
MjllNjQ0OTY3ODM1NTAxNzAwMTUwMDI5YTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTQ5MSwxMCArNDkxLDgg
QEAgcHVibGljOgogI2Vsc2UKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKTsKICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVy
ZSgpIGNvbnN0OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgCiAgICAgUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwogI2VuZGlmCi0jZW5kaWYKIAogICAgIGJv
b2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4
IDA0OWZkZDJkMTJmMWRlMjVhMTI0NjgyOTljOWQ5MjRmZWU0YTQ1N2YuLjk1NjE2NmRhY2JlMzE2
ZjFiYjc3YWQ4MzhlZWJjNzI5ODQ3NTNhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApA
QCAtMzcsNyArMzcsNyBAQAogI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBV
U0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCiAjaW5jbHVkZSA8dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oPgogI2Vu
ZGlmCiAKQEAgLTY4LDcgKzY4LDcgQEAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIEcKIAogR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCkKIHsKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgaWYgKGNsaWVudCgpKQogICAgICAgICBjbGllbnQoKS0+
cGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpOwogI2VuZGlmCkBAIC04NCw3ICs4NCw3IEBA
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwbGF0
Zm9ybUNvbnRleHQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dCA/IG1fZ2xDb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKSA6IEdMQ29udGV4dDo6Z2V0Q3VycmVudCgpLT5wbGF0Zm9ybUNvbnRleHQo
KTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVf
TUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVy
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgaWYgKCFtX2dsQ29udGV4dCkKQEAgLTE1
MCw5ICsxNTAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcgogICAgIFRleHR1cmVNYXBwZXJH
TDo6RmxhZ3MgZmxhZ3MgPSBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEZsaXBUZXh0dXJlIHwgKG1f
Y29udGV4dC0+bV9hdHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAw
KTsKICAgICBJbnRTaXplIHRleHR1cmVTaXplKG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1f
Y29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KTsKICAgICB0ZXhtYXBHTC0+ZHJhd1RleHR1cmUobV9j
b250ZXh0LT5tX3RleHR1cmUsIGZsYWdzLCB0ZXh0dXJlU2l6ZSwgdGFyZ2V0UmVjdCwgbWF0cml4
LCBvcGFjaXR5KTsKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkdfR0wpCisj
ZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogfQotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCA0MmViNmMyZTcw
NTFjOTAyNzUwYjI4ODBkZWM0ZmEzNzQzYjIxMGZkLi5iNmZkNDQ4Mjc2NDJlMWY5MmY5Nzc3ZjU5
OWRkZWQ2ZDQzZThiMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtMjQsMTQgKzI0LDE0
IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAg
OiBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIKICNlbmRpZgogewpAQCAtNDMsNyAr
NDMsNyBAQCBwdWJsaWM6CiAKICAgICBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUoKSB7IHJldHVybiBtX3JlbmRlclN0eWxlOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9N
QVBQRVIpCiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBw
ZXIqLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
LCBmbG9hdCBvcGFjaXR5KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDNkNDEwYjcwMWNjZjAxMmI5Njkz
MDM3ZjMyMjJiNTUyMjE3NGRhMmQuLjkzNDRhMzg3M2U4ZTA1ODExYTQyMzU1OWNhOGMxMzRiN2Qx
Mzg0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXIuaCIKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKQEAgLTc5Myw1ICs3OTEsMyBAQCB2b2lk
IHNob3dHcmFwaGljc0xheWVyVHJlZShjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXll
cikKICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBvdXRwdXQudXRmOCgpLmRhdGEoKSk7CiB9
CiAjZW5kaWYKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAz
ZDU3ZTgwNGFlZWUxYWY2Yjk2NzIzMWM4YTFkY2IzODMxNGU5OTJiLi5mZjBjMTU5ZDhiZTcxYWMz
YTRhZGEzN2E1ZGFlMWM0YmY4ODc1OTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdy
YXBoaWNzTGF5ZXJfaAogI2RlZmluZSBHcmFwaGljc0xheWVyX2gKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNv
bG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgpAQCAtNjI1LDYgKzYyMyw0IEBAIHByb3Rl
Y3RlZDoKIHZvaWQgc2hvd0dyYXBoaWNzTGF5ZXJUcmVlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqIGxheWVyKTsKICNlbmRpZgogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotCiAjZW5kaWYgLy8gR3JhcGhpY3NMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3Bw
CmluZGV4IGFkZDY4NmY2NjE1MmVjMTViNGIzNTUyYmRiODJjYTUyNDQzZjg2YzAuLjY0NTA2NmU5
ZWJjN2E3NTJlZTJiZDFjYjdlNDUwMTc1NGZmMDFlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uY3Bw
CkBAIC0xOSw3ICsxOSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQW5pbWF0aW9uLmgi
CiAKICNpbmNsdWRlICJMYXlvdXRTaXplLmgiCkBAIC00MDEsNSArNDAwLDMgQEAgR3JhcGhpY3NM
YXllckFuaW1hdGlvbnMgR3JhcGhpY3NMYXllckFuaW1hdGlvbnM6OmdldEFjdGl2ZUFuaW1hdGlv
bnMoKSBjb25zdAogICAgIHJldHVybiBhY3RpdmU7CiB9CiB9Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckFuaW1h
dGlvbi5oCmluZGV4IDJkMmY2ODU3MzU0NDIzZmY4MWVmMTYxNDlmMTY2YjgzYzE1NjEzNjQuLjhm
MzdmZTQxMzdlMjhkNjFmOGUzODc5YjY3Y2M0ZGFkZjUzMmU4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJBbmltYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQW5pbWF0aW9u
LmgKQEAgLTIwLDggKzIwLDYgQEAKICNpZm5kZWYgR3JhcGhpY3NMYXllckFuaW1hdGlvbl9oCiAj
ZGVmaW5lIEdyYXBoaWNzTGF5ZXJBbmltYXRpb25faAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIlRyYW5z
Zm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTEwNSw2ICsx
MDMsNSBAQCBwcml2YXRlOgogfTsKIAogfQotI2VuZGlmCiAKICNlbmRpZiAvLyBHcmFwaGljc0xh
eWVyQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRleCA5MGY5ZTgyM2I0YTk3ZWQ3ZDkwNDA2ZTVm
ZGVmZjRmMDEzYzAzOTljLi4zZDUxM2NkMWUyMzg0OGQ2YTI0YzhlZjQ0Y2I1ZGFjZjNmZGE4NmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckNsaWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdyYXBoaWNzTGF5ZXJD
bGllbnRfaAogI2RlZmluZSBHcmFwaGljc0xheWVyQ2xpZW50X2gKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFBv
aW50OwpAQCAtMTA3LDYgKzEwNSw0IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8g
R3JhcGhpY3NMYXllckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckZhY3RvcnkuaAppbmRleCA2NDEzZTkzY2I0MmExZjFh
ZWM1MmY1ZmE5MDI1OTUwZjk5OGY5ODM2Li43MDhjOGM2OTlhOTFlNTZlZmJjMThiN2UxYmI1YTUx
MjJmNjI5ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXJGYWN0b3J5LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR3Jh
cGhpY3NMYXllckZhY3RvcnlfaAogI2RlZmluZSBHcmFwaGljc0xheWVyRmFjdG9yeV9oCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw2ICs0Miw0IEBAIHB1YmxpYzoKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjZW5kaWYgLy8gR3JhcGhpY3NMYXllckZhY3RvcnlfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3Bw
CmluZGV4IGIzYzk0MzY0NDYxNTIxNWFhYWVhYmM3MmIwYjM2ZDM3ZDI4YTM0MjcuLjA1Njk5MmQx
ZTZmOGUyYWU0NmYyMDBkOTliNTM3ZTIzY2FiOWE4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKQEAg
LTI1LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllclVwZGF0ZXIuaCIKIAog
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAgLTgxLDUgKzc5LDMgQEAgdm9pZCBHcmFwaGlj
c0xheWVyVXBkYXRlcjo6ZGlzcGxheVJlZnJlc2hGaXJlZChkb3VibGUgdGltZXN0YW1wKQogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllclVwZGF0ZXIuaAppbmRleCAxMDgwOTlhZTZhOTVlYTIzNDM0ZTM0YmY0ODQw
NjZmNWUyOWIzMWY1Li5mNDI0NmRmNTk3YWI2ZGMxYWMxNmUyOTMxYTlmMDJlNGZiZWE4MGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
VXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJVcGRhdGVyLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR3JhcGhpY3NMYXllclVw
ZGF0ZXJfaAogI2RlZmluZSBHcmFwaGljc0xheWVyVXBkYXRlcl9oCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogCkBAIC02Miw2ICs2MCw0IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2VuZGlmIC8vIEdyYXBoaWNzTGF5ZXJVcGRhdGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCA4MzM1
MzRjNmM2YjhkOWNhNTIzMmJlNmI3YWNhZTIzYmZlZjViOWE0Li5lNmZhY2RhODBkYzMwNWJmOGJj
ZjM2MjVmM2JiYmE4Mzc1YjllZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgSW1hZ2VCdWZm
ZXI6OmNvbnZlcnRUb0x1bWluYW5jZU1hc2soKQogICAgIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFu
Y2VNYXNrKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFVU0Uo
Q0FJUk8pCisjaWYgIVVTRShDQUlSTykKIFBsYXRmb3JtTGF5ZXIqIEltYWdlQnVmZmVyOjpwbGF0
Zm9ybUxheWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCmluZGV4IGI2MmU1MDY5ZjQ2OWMzZjU4ZTY2
YzI3NWViMTc2OTFiMTI3MmNkNDEuLjVhNGRmMjE2OTc5ZThhODUzNzE4NDk0NTIxN2M3YTY3M2Rl
OTcxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaApAQCAtMzIsMTMgKzMyLDExIEBACiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCi0jZW5k
aWYKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNE
LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YS5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4Q2xhbXBl
ZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CkBAIC0xMTksOSArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2Vsc2UKICAgICAg
ICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBBZmZpbmVU
cmFuc2Zvcm0oMSwgMCwgMCwgLTEsIDAsIG1fZGF0YS5tX2JhY2tpbmdTdG9yZVNpemUuaGVpZ2h0
KCkpOyB9CiAjZW5kaWYKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAg
IFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgICAg
IC8vIEZJWE1FOiBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZlIHRo
ZSByZXN0cmljdGlvbiB0aGF0IHRoZXkgb25seSB3b3JrCiAgICAgICAgIC8vIHdpdGggdGV4dHVy
ZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IGVhYzI1NTQwYjNkYWNiMjkyMWQwYzdhZDhlMDg0MTE0ODQ0NTk3MzUuLmUzZjc3MjQ3ZTRi
Y2UyZDg0NDE0NTcxOTMyNTJlNTg3NjAzNGZmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTk1LDkgKzk1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpIHsgfSAgICAKIAogICAgIHZpcnR1YWwgUGxhdGZv
cm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3QgeyByZXR1cm4gTm9QbGF0Zm9ybU1lZGlhOyB9
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNlbmRpZgogCiAgICAg
dmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZSgwLCAw
KTsgfQogCkBAIC02MTIsMTIgKzYxMCwxMCBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyOjpw
bGF0Zm9ybU1lZGlhKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5wbGF0Zm9ybU1lZGlh
KCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVy
KiBNZWRpYVBsYXllcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+cGxhdGZvcm1MYXllcigpOwogfQotI2VuZGlmCiAKIE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUgTWVkaWFQbGF5ZXI6Om5ldHdvcmtTdGF0ZSgpCiB7CkBAIC04OTAsNyArODg2LDYgQEAg
Ym9vbCBNZWRpYVBsYXllcjo6Y2FuRW50ZXJGdWxsc2NyZWVuKCkgY29uc3QKIH0KICNlbmRpZgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBNZWRpYVBsYXllcjo6YWNj
ZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKQogewogICAgIG1fcHJpdmF0ZS0+YWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKQEAgLTkwMCw3ICs4OTUsNiBAQCBib29sIE1l
ZGlhUGxheWVyOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCk7CiB9Ci0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiBib29sIE1lZGlhUGxheWVyOjpz
aG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGM2NDgwZTRiMGZkMDg4MjUwZjU2
ZmRiYjU4NDdlNzYzOGU1NTA2MjQuLjQ3MTg5MWNkZjdhZjZiMjhjMmJmYmJmZWZlZTQ5N2E2OGY5
ZDgxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
TGF5ZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRl
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CkBAIC00OSwxMCArNTAsNiBAQAog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlBsYXRm
b3JtTGF5ZXIuaCIKLSNlbmRpZgotCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tfTUVOVSkK
ICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFja01lbnUuaCIKICNlbmRpZgpAQCAtMTk5LDE0ICsx
OTYsMTIgQEAgcHVibGljOgogICAgIC8vIEEgY2hhcmFjdGVyaXN0aWMgb2YgdGhlIG1lZGlhIGZp
bGUsIGVnLiB2aWRlbywgYXVkaW8sIGNsb3NlZCBjYXB0aW9ucywgZXRjLCBoYXMgY2hhbmdlZC4K
ICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoTWVkaWFQ
bGF5ZXIqKSB7IH0KICAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
Ly8gd2hldGhlciB0aGUgcmVuZGVyaW5nIHN5c3RlbSBjYW4gYWNjZWxlcmF0ZSB0aGUgZGlzcGxh
eSBvZiB0aGlzIE1lZGlhUGxheWVyLgogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclJlbmRl
cmluZ0NhbkJlQWNjZWxlcmF0ZWQoTWVkaWFQbGF5ZXIqKSB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgLy8gY2FsbGVkIHdoZW4gdGhlIG1lZGlhIHBsYXllcidzIHJlbmRlcmluZyBtb2RlIGNoYW5n
ZWQsIHdoaWNoIGluZGljYXRlcyBhIGNoYW5nZSBpbiB0aGUKICAgICAvLyBhdmFpbGFiaWxpdHkg
b2YgdGhlIHBsYXRmb3JtTGF5ZXIoKS4KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZW5k
ZXJpbmdNb2RlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQotI2VuZGlmCiAKICNpZiBQTEFURk9S
TShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFk
YXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VBZGFwdGVyKGNvbnN0IE1lZGlhUGxheWVy
KikgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMjk0LDkgKzI4OSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdDsKICAgICBib29sIHJlcXVpcmVzSW1tZWRpYXRl
Q29tcG9zaXRpbmcoKSBjb25zdDsKICAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBj
b25zdDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwotI2VuZGlmCiAKICAgICBJbnRTaXplIG5hdHVyYWxT
aXplKCk7CiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0OwpAQCAtNDU3LDEyICs0NTAsMTAgQEAg
cHVibGljOgogICAgIGJvb2wgY2FuRW50ZXJGdWxsc2NyZWVuKCkgY29uc3Q7CiAjZW5kaWYKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyB3aGV0aGVyIGFjY2VsZXJh
dGVkIHJlbmRlcmluZyBpcyBzdXBwb3J0ZWQgYnkgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIGN1
cnJlbnQgbWVkaWEuCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29u
c3Q7CiAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIHJlbmRlcmluZyBzeXN0ZW0gZmxpcHMgdGhlIGlu
dG8gb3Igb3V0IG9mIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBtb2RlLgogICAgIHZvaWQgYWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKLSNlbmRpZgogCiAgICAgYm9vbCBzaG91bGRN
YWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmYmFmZDcwY2Q5ZWYzNGEwNzgwNGEyNWE3
OTI5M2I4NzgyMzliMzUwLi41NTM3ODhjMzg1MjUxYTViYTI4NzIwMTk5OTZhMTZhMDhmNjUxNjQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaApAQCAtNTIsOSArNTIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHByZXBhcmVUb1BsYXkoKSB7IH0KICAgICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxh
dGZvcm1NZWRpYSgpIGNvbnN0IHsgcmV0dXJuIE5vUGxhdGZvcm1NZWRpYTsgfQotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9p
ZCBwbGF5KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpID0gMDsgICAgCkBAIC0xNjAs
MTIgKzE1OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkVudGVyRnVsbHNjcmVl
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAvLyB3aGV0aGVyIGFjY2VsZXJhdGVkIHJlbmRlcmluZyBpcyBz
dXBwb3J0ZWQgYnkgdGhlIG1lZGlhIGVuZ2luZSBmb3IgdGhlIGN1cnJlbnQgbWVkaWEuCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIC8vIGNhbGxlZCB3aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBz
IHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVyYXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2aXJ0
dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSB7IH0KLSNlbmRpZgog
CiAgICAgdmlydHVhbCBib29sIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZE1haW50YWluQXNwZWN0UmF0
aW8oYm9vbCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybUxheWVyLmgKaW5kZXggYTE4ZjliOWMzZjQ5NzQ3ZjFkZDdlMmM2YTk2OGE1NTY3ODgyYTRl
YS4uMmM3ZDI2YjJiNDA3YmE1NzkwZDM0ZjM5OWQyMmQxN2JlMjY2MTcwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1MYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTGF5ZXIuaApAQCAtMjYsOCAr
MjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUxheWVyX2gKICNkZWZpbmUgUGxhdGZvcm1MYXllcl9o
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpZiBQTEFURk9STShNQUMp
CiBPQkpDX0NMQVNTIENBTGF5ZXI7CiB0eXBlZGVmIENBTGF5ZXIgUGxhdGZvcm1MYXllcjsKQEAg
LTU2LDYgKzU0LDQgQEAgdHlwZWRlZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciBQbGF0Zm9y
bUxheWVyOwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBQbGF0Zm9ybUxheWVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Rl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcAppbmRleCBkMTc4ZTU4NmY3OGYyMDE2OTBlZWMzM2Yy
MmEyNjM0OTNiYTFhZGU5Li5mY2Y1OGI4YzI5NmNhYjQ5YTJkZDg3OWI0NDY1MDBmMzU3NDQ3Y2E0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCkBAIC0zNSw5ICszNSw3IEBAIGNsYXNzIE51bGxU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA6IHB1YmxpYyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZSgpIHsgfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSB7IHJl
dHVybiAwOyB9Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0
KSB7IH0KICAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzKCkgY29uc3QgeyByZXR1cm4gSW50UmVj
dCgpOyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmgKaW5kZXggNWY4NDQ0ODNkYTZiZDIwZDllNzVi
NDhmMjUzMzQwNzY5NGMyMjg4Mi4uOWUxYzgzYmQ4YTk4NjdmYmE5OWQ4NTVjYzIwZmIwOWQyODQ0
MTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCkBAIC01Myw5ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5UZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZSgpID0gMDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgPSAwOwotI2VuZGlmCiAgICAg
dmlydHVhbCB2b2lkIHNldENvbnRlbnRTY2FsZShmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgSW50
UmVjdCBib3VuZHMoKSBjb25zdCA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBkMDcyMGM1ZDFkNGJkNjBm
Y2Y5MDE0MGMyZWJjY2M2M2MxNWQwOTNmLi41OGEyNDY4MWFlMjI1NzBjNDlhODZmNTBkMDFkMjhm
NmVjZTlmMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtOTEsMTAgKzkxLDggQEAgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjp+TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKCkKIAogTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChwbGF0Zm9ybUxheWVyKCkpCiAg
ICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7Ci0jZW5kaWYKIAogICAgIGlmICho
YXNDb250ZXh0UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9Db250
ZXh0OwpAQCAtMTA3LDEwICsxMDUsOCBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpbwogICAgIGlm
ICghbV9wbGF5ZXItPnZpc2libGUoKSB8fCAhbV9wbGF5ZXItPmZyYW1lVmlldygpIHx8IGFzc2V0
U3RhdHVzKCkgPT0gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzVW5rbm93bikKICAgICAgICAgcmV0
dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5t
ZWRpYVBsYXllckNsaWVudCgpLT5tZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQo
bV9wbGF5ZXIpKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0xheWVyOwotI2VuZGlm
CiAKICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CiB9CkBAIC0xNDAsMjEgKzEz
NiwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1Jl
bmRlcmluZygpCiAgICAgY2FzZSBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDoKICAgICAgICAgY3Jl
YXRlQ29udGV4dFZpZGVvUmVuZGVyZXIoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdU
b0xheWVyOgogICAgICAgICBjcmVhdGVWaWRlb0xheWVyKCk7CiAgICAgICAgIGJyZWFrOwotI2Vu
ZGlmCiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIElm
IHVzaW5nIGEgbW92aWUgbGF5ZXIsIGluZm9ybSB0aGUgY2xpZW50IHNvIHRoZSBjb21wb3NpdGlu
ZyB0cmVlIGlzIHVwZGF0ZWQuCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5n
VG9MYXllciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikgewogICAg
ICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFVwVmlk
ZW9SZW5kZXJpbmcoJXApIC0gY2FsbGluZyBtZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KCkiLCB0aGlzKTsKICAgICAgICAgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlh
UGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOwogICAgIH0KLSNlbmRpZgogfQog
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dGVhckRvd25WaWRlb1JlbmRl
cmluZygpCkBAIC0xNjMsMTAgKzE1NSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjp0ZWFyRG93blZpZGVvUmVuZGVyaW5nKCkKIAogICAgIGRlc3Ryb3lDb250ZXh0Vmlk
ZW9SZW5kZXJlcigpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlm
IChwbGF0Zm9ybUxheWVyKCkpCiAgICAgICAgIGRlc3Ryb3lWaWRlb0xheWVyKCk7Ci0jZW5kaWYK
IH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Omhhc1NldFVwVmlkZW9S
ZW5kZXJpbmcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDE5MmVjMzlmYjI2ZWIwZjllYTYyZDM1NmNiNTQ2MDlm
MjZhNmU3OTEuLjBjZmE1MWY3MDM5MmU2NmJhM2QzMWRhZTRjODczZjZjMjI4OGIxZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
QEAgLTE4MCwxMSArMTgwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2Fk
KSBvdmVycmlkZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92ZXJy
aWRlOwotI2VuZGlmCiAgICAgdmlydHVhbCBib29sIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW87IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhib29sKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCAxZjIwNjIxNTMyZjk5Y2FkNjc3
ODI0YTBiNGY3NzE3YzdkMDU1N2RjLi5mNWE4YjExMzE0MDE2NjYyNzdhNzQwNDhiMWE4OTczMWRj
ZTdiMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtODAsOSArODAsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1BsYXkoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2
b2lkIHBsYXkoKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwpAQCAtMTI4LDEx
ICsxMjYsOSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoKSBjb25zdCBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIC8vIGNhbGxlZCB3aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBz
IHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVyYXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2aXJ0
dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSNl
bmRpZgogCiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRU
eXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCA1
MjA4Nzk5MjBiMjU5MzcwYWQyNDhhZmYwZWFhMGRmNGM4ZmIyNzJhLi42YzQ2NTY4N2Y2OWU3MjA0
MzAwM2I1MDM2ODRiZDhiOWFkYWNjOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBA
IC0yNTgsMTIgKzI1OCwxMCBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAgICAgcmV0dXJuIHBtOwogfQog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuZ2V0KCk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBsYXkoKQogewpA
QCAtNDM3LDcgKzQzNSw2IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9oYXNBdmFp
bGFibGVWaWRlb0ZyYW1lOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwpAQCAtNDUwLDcgKzQ0
Nyw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgZWxzZQogICAgICAgICBkZXN0cm95TGF5
ZXIoKTsKIH0KLSNlbmRpZgogCiBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om1vdmllTG9hZFR5cGUoKSBjb25zdAogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKaW5kZXggYWI0NGM3YzY1M2NiYzBjNDk4MmI5Y2ZlYWNkNzI0MDIxNGFjYTFmOC4u
MDgyZDllYzI4YzFiZWYyM2Y4YmYxZTI2NDZhMzMxMmY5YzhhZmNiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3Bw
CkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgogCiAj
aW5jbHVkZSAiQW5pbWF0aW9uLmgiCkBAIC0zNTA4LDUgKzM1MDYsMyBAQCBkb3VibGUgR3JhcGhp
Y3NMYXllckNBOjpiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKaW5kZXggZTNlNzkyODc3NGU1YWZjNWIxMDk4ODdhNDRiMDNmOTAwOWUyYWEy
OC4uMGVmNWQ5OTEyNTQ0Y2I2MGM2YjBjZDI2YTliN2Y3OTk1NDk0MWMzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
QEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR3JhcGhpY3NMYXllckNBX2gKICNkZWZpbmUgR3Jh
cGhpY3NMYXllckNBX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtQ0FBbmltYXRpb24uaCIKQEAgLTU1MSw3ICs1NDksNCBAQCBHUkFQSElDU0xBWUVSX1RZ
UEVfQ0FTVFMoR3JhcGhpY3NMYXllckNBLCBpc0dyYXBoaWNzTGF5ZXJDQSgpKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNlbmRpZiAvLyBHcmFwaGljc0xheWVyQ0FfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcApp
bmRleCBmYzhkZTczODRlNTgzYjRhOWIzMTVkODA4MWY1NjdlMzliYzM2OWUzLi45OWNlNjkzOGIz
ZTRhNmRkN2M4ODE4YzRiOWE1NmQzZWVjMTA3YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcApA
QCAtMjUsOCArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJMYXllckZsdXNoU2NoZWR1bGVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDUgKzQ4LDMgQEAgdm9pZCBMYXllckZsdXNoU2No
ZWR1bGVyOjpyZXN1bWUoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9MYXllckZsdXNoU2NoZWR1bGVyLmgKaW5kZXggZmUw
YjUyZDg4YzFlMDYzNmMwYjU5MTlhNzdlYzY0NjBmNDczMjQ1Zi4uNjAxODhmMzY3MDQ1MGE3Y2Rk
MDQ1YTVhYzIyZjE1Y2UzOWZiZDM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hTY2hlZHVsZXIuaApAQCAtMjYsOCArMjYs
NiBAQAogI2lmbmRlZiBMYXllckZsdXNoU2NoZWR1bGVyX2gKICNkZWZpbmUgTGF5ZXJGbHVzaFNj
aGVkdWxlcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRl
ICJMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNjMsNiArNjEsNCBAQCBwcm90ZWN0
ZWQ6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIExheWVyRmx1c2hTY2hlZHVsZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJGbHVzaFNjaGVk
dWxlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvTGF5ZXJG
bHVzaFNjaGVkdWxlckNsaWVudC5oCmluZGV4IGY3OWNiMzgyN2E3NzVlYmQzZmRkOGFkMzIxMTM5
NWIyYjE1ZmQ2ODkuLmViMGI5NmMxYmEyOGE5ODJlOWU4ZTY4Y2M1OGU4MTBlOGUxNjEzZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0xheWVyRmx1c2hT
Y2hlZHVsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9MYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYg
TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudF9oCiAjZGVmaW5lIExheWVyRmx1c2hTY2hlZHVsZXJD
bGllbnRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewpAQCAtNDEsNiAr
MzksNCBAQCBwdWJsaWM6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIExheWVyRmx1c2hTY2hlZHVs
ZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUFuaW1hdGlvbi5oCmluZGV4IGNlMzIzNmY0OGY1NDI3YjVlZmFiNGMy
MmE3ZjQ1ZTY5M2JmYjBkZjYuLmFjYmFlYTIwMTcwZjY5M2M4M2Q4NzY0MDY0ZmNkYTQwODBkN2Zk
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRm
b3JtQ0FBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZv
cm1DQUFuaW1hdGlvbl9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FBbmltYXRpb25faAogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGbG9hdFBvaW50M0QuaCIKQEAgLTE2NSw2
ICsxNjMsNCBAQCBwcml2YXRlOgogCiB9CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0KICNlbmRpZiAvLyBQbGF0Zm9ybUNBQW5pbWF0aW9uX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBRmlsdGVycy5o
CmluZGV4IDljMzUwN2IyMzk0NDk1MTU1NTc2MjkzOWNkYjFiMmZmNDBhNzQ2MjcuLjc5N2QzYjYw
MjdhZjg2OTNkMTc4ZTFiOGYxMDFjMGEwNmE3NTk3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FGaWx0ZXJzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUZpbHRlcnMuaApAQCAtMjYs
NyArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBRmlsdGVyc19oCiAjZGVmaW5lIFBsYXRmb3Jt
Q0FGaWx0ZXJzX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCiAKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCkBAIC02NSw2
ICs2NCw1IEBAIHB1YmxpYzoKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShDU1NfRklMVEVSUykKLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNlbmRpZiAvLyBQbGF0Zm9y
bUNBRmlsdGVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1BsYXRmb3JtQ0FMYXllci5oCmluZGV4IDM3YTQ5NWYwOGNkZThiYWQyOGY0NDc3YTlhNmMx
OWVkZTJhMTNkNTguLmU0NzQ0YjA4NGQwYmEwODYzMGQ4Mzc3MWFmNzRiZGYwNzQ3Nzk5YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3JtQ0FMYXllcl9oCiAj
ZGVmaW5lIFBsYXRmb3JtQ0FMYXllcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xh
eWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvbi5oIgpAQCAtMjM4LDYgKzIzNiw0
IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyQ2xpZW50LmgKaW5kZXggYTIyM2YxNmRjODhjMjM2ZjM0YzlhNWE3MDgzN2Q4
MGE1MzZhNjhkMi4uMzZiOGIwZjY0YzM1NDIwOTk0ODZmYWZjNmNhNWVjNmYxZGJhNGZjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxh
eWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxh
dGZvcm1DQUxheWVyQ2xpZW50LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1D
QUxheWVyQ2xpZW50X2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyQ2xpZW50X2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0
aW9uLmgiCkBAIC03MSw2ICs2OSw0IEBAIHByb3RlY3RlZDoKIAogfQogCi0jZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyQ2xp
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL21hYy9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcAppbmRleCBiZmMzZTVhZjZj
MzA2ZmJkNWVjYTY4MTBjM2IwNDcxMTk4ZWFjNzA3Li5hZGU5ZThjZTVmODhmYTYxMDNiOTBkZWEx
ZjBjYzkzMmE0MzhjZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL0xheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwCkBA
IC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkxheWVyRmx1c2hTY2hlZHVsZXIuaCIKIAog
I2luY2x1ZGUgPHd0Zi9BdXRvZHJhaW5lZFBvb2wuaD4KQEAgLTExMSw1ICsxMDksMyBAQCB2b2lk
IExheWVyRmx1c2hTY2hlZHVsZXI6OmludmFsaWRhdGUoKQogfQogICAgIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBlNmU1OWYzYWJkZjhhOTVmOWMxNzM4
NWE4YzYyNTRkYTdhZThjYWY1Li5kMWY4YmU1NmUyYTJkMDdmZWMzNjM3YmU3NzU1Nzk4ZWY5MDJj
M2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQpAQCAtMjUsOCArMjUsNiBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0KICNpbXBvcnQgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKIAogI2ltcG9ydCAiRmxvYXRD
b252ZXJzaW9uLmgiCkBAIC01ODMsNSArNTgxLDMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9u
Ojpjb3B5VGltaW5nRnVuY3Rpb25zRnJvbShjb25zdCBQbGF0Zm9ybUNBQW5pbWF0aW9uKiB2YWwK
ICAgICBDQUtleWZyYW1lQW5pbWF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PENBS2V5ZnJhbWVB
bmltYXRpb24qPih2YWx1ZS0+bV9hbmltYXRpb24uZ2V0KCkpOwogICAgIFtzdGF0aWNfY2FzdDxD
QUtleWZyYW1lQW5pbWF0aW9uKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldFRpbWluZ0Z1bmN0aW9u
czpbb3RoZXIgdGltaW5nRnVuY3Rpb25zXV07CiB9Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0KaW5kZXggNmZmNjQ4
NTZiY2E3ZTY0OWNmY2ZiYzc4NGYwODYzZmUxN2UyZGZmYS4uOTZlZGFjMWQwOTc5YjJiY2YzZjg5
NTc5MTkyY2Q3YTA2MTAyYzE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQpAQCAt
MjUsNyArMjUsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogCiAjaW1wb3J0ICJQbGF0
Zm9ybUNBRmlsdGVycy5oIgpAQCAtNzExLDQgKzcxMCwzIEBAIGNvbnN0IGNoYXIqIFBsYXRmb3Jt
Q0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclByb3BlcnR5TmFtZShGaWx0ZXJPcGVyYXRpb246Ok9w
ZXJhCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCmluZGV4IDZmYzRk
MzhmNWFkOTdlODhlNjIzZTIyNGIyODc5ZGFkYjNhYmVhMjguLmI5OWRjZWVlMzIzOTQ0YmJkZmQ4
YTIwNGFjZTkzODYyNTMyMjg1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmgKQEAgLTI2LDgg
KzI2LDYgQEAKICNpZm5kZWYgUGxhdGZvcm1DQUxheWVyTWFjX2gKICNkZWZpbmUgUGxhdGZvcm1D
QUxheWVyTWFjX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1
ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogCiBPQkpDX0NMQVNTIE5TT2JqZWN0OwpAQCAtMTY1LDYg
KzE2Myw0IEBAIFBMQVRGT1JNX0NBTEFZRVJfVFlQRV9DQVNUUyhQbGF0Zm9ybUNBTGF5ZXJNYWMs
IGlzUGxhdGZvcm1DQUxheWVyTWFjKCkpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3Jt
Q0FMYXllck1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQppbmRleCA1NjdkYzJhMzc4ZmQ0
NTJjNDJjZmZkZjczMWI2YTk4Mjg5OWZhZmI1Li45YWRkZDcyNjYzNWZlZWU2YTAyNmVjZWU2ZGE1
NzAxNzY4OTQ4NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTI1LDggKzI1LDYg
QEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJNYWMuaCIKIAogI2ltcG9ydCAiQW5pbWF0
aW9uVXRpbGl0aWVzLmgiCkBAIC04MzEsNSArODI5LDMgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bihDR0NvbnRleHRSZWYgY29udGV4dCwgdm9pZCAo
XmIKIHsKICAgICB3a0NBTGF5ZXJFbnVtZXJhdGVSZWN0c0JlaW5nRHJhd25XaXRoQmxvY2sobV9s
YXllci5nZXQoKSwgY29udGV4dCwgYmxvY2spOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL0Fic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9BYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgKaW5k
ZXggMTNjNjc0NjQwZGJmNzAyNjk1M2FhMWEwMWMxZmEyMjg0MzRmYjY2My4uMDFmMjNjM2U5YzM2
MWQ3YWYzMTNlOWY5NWM4MzA0ZTA0YzAzZDU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0Fic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQWJzdHJhY3RDQUNGTGF5
ZXJUcmVlSG9zdC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEFic3RyYWN0Q0FDRkxheWVy
VHJlZUhvc3RfaAogI2RlZmluZSBBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0X2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDYgKzQ1LDQgQEAgcHJvdGVjdGVkOgogCiB9CiAK
LSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBBYnN0
cmFjdENBQ0ZMYXllclRyZWVIb3N0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3QuY3BwCmluZGV4IDVk
MGMzNDY4NmNkZWQ5ODJjOTVjODM3ZDI5Y2QwZDYwZjU4Zjc1MWMuLjVlNTQxMWE0OWQ2NjIwZjIy
YmZiMWYzMjQ4Njk1M2I3NjlhYTg4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmNwcApAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNBQ0ZMYXllclRy
ZWVIb3N0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRl
ICJDQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oIgogI2luY2x1ZGUgIkRlZlduZFByb2NXaW5kb3dD
bGFzcy5oIgogI2luY2x1ZGUgIkxheWVyQ2hhbmdlc0ZsdXNoZXIuaCIKQEAgLTMyOCw1ICszMjYs
MyBAQCBDR1JlY3QgQ0FDRkxheWVyVHJlZUhvc3Q6OmJvdW5kcygpIGNvbnN0CiB9CiAKIH0KLQot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0
LmgKaW5kZXggOWNlYTFjMDFkZTY3YmRkNDA0YWE1YmE1YWVkODU0MmQ0YmJmZGExOS4uMjRmMzIw
ODc5ODQzMjU3Y2FiZGU4NDkyZTFmM2EyNDk2ZTA1OWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0NBQ0ZMYXllclRyZWVIb3N0
LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgQ0FDRkxheWVyVHJlZUhvc3RfaAogI2RlZmlu
ZSBDQUNGTGF5ZXJUcmVlSG9zdF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiQ09N
UHRyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTEyMCw2ICsxMTgsNCBAQCBwcml2YXRlOgog
CiB9CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAv
LyBDQUNGTGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oCmlu
ZGV4IDg0NWY5MzRkYzA3MGU4YTI0ZjFjMGI2OWRjMjcxNjg4OTc1YjJhNGIuLmY5ZWVjMGRhOThh
NGE1MzU2ODhhYWM2MzlkMzk4ODhhNmE4OGQxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9DQUNGTGF5ZXJUcmVlSG9z
dENsaWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIENBQ0ZMYXllclRyZWVIb3N0Q2xp
ZW50X2gKICNkZWZpbmUgQ0FDRkxheWVyVHJlZUhvc3RDbGllbnRfaAogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENBQ0ZM
YXllclRyZWVIb3N0Q2xpZW50IHsKQEAgLTM4LDYgKzM2LDQgQEAgcHVibGljOgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNlbmRpZiAvLyBDQUNGTGF5ZXJUcmVlSG9zdENsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2VzRmx1c2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFuZ2Vz
Rmx1c2hlci5jcHAKaW5kZXggMWIxOWVhNGI3Yzc5ZjE0NWVlZjRmODQ4NjMyNjIxNWFjNTM0MjE1
Mi4uZmQ0NGFhMDYzYTI5YzA0MGZhOWMwMDk1MmYxOWQ4YWI1MWFkYjVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXll
ckNoYW5nZXNGbHVzaGVyLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkxheWVyQ2hhbmdlc0ZsdXNoZXIuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkFic3RyYWN0Q0FDRkxheWVyVHJlZUhvc3QuaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmVkRXhjZXB0aW9uSGFuZGxlclN1cHByZXNzb3IuaCIKICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0xMzEsNSArMTI5LDMgQEAgdm9pZCBMYXllckNo
YW5nZXNGbHVzaGVyOjpyZW1vdmVIb29rKCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MYXllckNoYW5nZXNG
bHVzaGVyLmgKaW5kZXggMWU3YWIzMTQ3MTlhZjZhMjFkMDc0YmRlMmJiNTk1NjlkYWMyZTkyOC4u
MzdjMzE0MDIwY2M3ODZjN2JmYzBlOTkwYzU5ZGNlZDUxZjZkYTkzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xheWVyQ2hhbmdlc0ZsdXNoZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vTGF5ZXJDaGFu
Z2VzRmx1c2hlci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIExheWVyQ2hhbmdlc0ZsdXNo
ZXJfaAogI2RlZmluZSBMYXllckNoYW5nZXNGbHVzaGVyX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjAsNiArNTgsNCBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBMYXllckNoYW5nZXNGbHVzaGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lD
QUNGTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuY3BwCmluZGV4IDIyOGUxNmU1NzdmMTlmYjgy
NDc4ODZkMDgxYjE0NjU1ZDU0OTExNmQuLjhmMzQ1YmQzMWZjZGFkNmYzNjNjZmU2MWQ2OWYxNWY3
NTk0NzZlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmNwcApAQCAtMjYs
OCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxlZ2FjeUNBQ0ZMYXll
clRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNs
dWRlICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NBQmFzZS5oPgog
I2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
QEAgLTM5OCw1ICszOTYsMyBAQCBib29sIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0OjpyZXNldERl
dmljZShSZXNldFJlYXNvbiByZWFzb24pCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9MZWdhY3lDQUNGTGF5ZXJUcmVlSG9z
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZM
YXllclRyZWVIb3N0LmgKaW5kZXggNWE2NzhjNjhmMTdlMTZjNjhjZmY5ZDNjZTU2MzdhNDkxYTgz
M2Y1OS4uMzMxZGE3ODM4OGQ3YmFiZDA2YjM1ZTYyNTg2NjU3NzdkY2MyNTYwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXll
clRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgTGVn
YWN5Q0FDRkxheWVyVHJlZUhvc3RfaAogI2RlZmluZSBMZWdhY3lDQUNGTGF5ZXJUcmVlSG9zdF9o
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJDQUNGTGF5
ZXJUcmVlSG9zdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw2ICs3OSw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8vIExlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0
Zm9ybUNBQW5pbWF0aW9uV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAppbmRleCBjNTg0Yjk2Zjc2OTNkZjc5
ZDMyMGExNTFjZDY4MzkxNzY0YzA3Mjc4Li5kMjQ1NDAxNGQ3OWY1NzRmYjU1M2FjZWE3OGQ3M2M2
N2UzM2NjODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCkBAIC0yNSw4
ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKIAogI2luY2x1
ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgpAQCAtNTU5LDUgKzU1NywzIEBAIHZvaWQgUGxhdGZvcm1D
QUFuaW1hdGlvbjo6Y29weVRpbWluZ0Z1bmN0aW9uc0Zyb20oY29uc3QgUGxhdGZvcm1DQUFuaW1h
dGlvbiogdmFsCiB7CiAgICAgQ0FDRkFuaW1hdGlvblNldFRpbWluZ0Z1bmN0aW9ucyhtX2FuaW1h
dGlvbi5nZXQoKSwgQ0FDRkFuaW1hdGlvbkdldFRpbWluZ0Z1bmN0aW9ucyh2YWx1ZS0+cGxhdGZv
cm1BbmltYXRpb24oKSkpOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2lu
L1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBRmlsdGVyc1dpbi5jcHAKaW5kZXggMzBjNDBhN2UzOWI0MDY3
NjM1MzVmNjA2OGYwYTQ5Y2UxMTc5NmYyOC4uM2EwZDA1Y2ZhNTY0M2Y0YzVkMzBlYTBkYmZkNTIw
MTViOWIyNGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FGaWx0ZXJzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUZpbHRlcnNXaW4uY3BwCkBAIC0yNSw3ICsy
NSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKICNpbmNsdWRlICJQbGF0Zm9ybUNB
RmlsdGVycy5oIgpAQCAtNTAsNCArNDksMyBAQCBjb25zdCBjaGFyKiBQbGF0Zm9ybUNBRmlsdGVy
czo6YW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0eU5hbWUoRmlsdGVyT3BlcmF0aW9uOjpPcGVyYQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKENTU19GSUxURVJTKQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKaW5kZXggMThiZTg2N2Mz
NTdhMzg0NDJkN2JiOGRkNTdkM2U1ZTdjZmU2MDdmMy4uZTgwYzI0NDMxMjRjMjBiNmM1NGEzZWEw
NGU3Y2E3ZTA0NzliY2QzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5jcHAKQEAgLTI1LDgg
KzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgiCiAKICNpbmNsdWRl
ICJBYnN0cmFjdENBQ0ZMYXllclRyZWVIb3N0LmgiCkBAIC02NzUsNSArNjczLDMgQEAgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcldpbjo6Y3JlYXRlQ29tcGF0aWJs
ZUxheWVyKFBsYXRmb3JtQ0EKIHsKICAgICByZXR1cm4gUGxhdGZvcm1DQUxheWVyV2luOjpjcmVh
dGUobGF5ZXJUeXBlLCBjbGllbnQpOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCmluZGV4IDI2MmFhMmNkOTZmMTM1NjM0
Y2YxZDg5MjZjMTIyM2M0MmUxZTZiNzcuLjAxYjA1NmUyN2U2YmQ2YTBkMzVjNDgyOTgwZGNiZDA0
YjllOWRiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKQEAgLTI2LDggKzI2LDYgQEAKICNp
Zm5kZWYgUGxhdGZvcm1DQUxheWVyV2luX2gKICNkZWZpbmUgUGxhdGZvcm1DQUxheWVyV2luX2gK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3Jt
Q0FMYXllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTQsNiArMTUyLDQgQEAgcHJp
dmF0ZToKIAogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAj
ZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyV2luX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVy
V2luSW50ZXJuYWwuY3BwCmluZGV4IGYwMTIxYWE5YjExM2EzMDM4M2I3ODRiOTQ3MGRmNTI2NjZj
ODcyYjMuLmY2ODM1ZDY5ODgzMmJhMDJlZDdmMWJiNzQ5YjJiMjJiNGY5MDVjMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5
ZXJXaW5JbnRlcm5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcApAQCAtMjUsOCArMjUsNiBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5oIgogCiAjaW5jbHVkZSAi
Rm9udC5oIgpAQCAtNDg4LDUgKzQ4NiwzIEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJu
YWw6OmRyYXdUaWxlKENBQ0ZMYXllclJlZiB0aWxlLCBDR0NvbnRleHRSZWYgY29udGV4CiAKICAg
ICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwogfQotCi0jZW5kaWYgLy8gVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJu
YWwuaAppbmRleCAzOWVmM2IzNTc2ZjJmY2ZhMDZlN2Y5MzdiMzUyNzA0MzJhYzhkNjg2Li45ZWRi
YmE0NmI3NjRjNGZlODgxMmY3Mjg2MTVmNWMwMzBjMGI3MjJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZv
cm1DQUxheWVyV2luSW50ZXJuYWwuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9y
bUNBTGF5ZXJXaW5JbnRlcm5hbF9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllcldpbkludGVybmFs
X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPENvcmVH
cmFwaGljcy9DR0dlb21ldHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg0LDYgKzgyLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUGxhdGZvcm1D
QUxheWVyV2luSW50ZXJuYWxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5jcHAK
aW5kZXggMmY2NGFiMTYwY2Y4OGMwZjBmNDM2YmQ2ZGUyNGU1NTE2NDMwZDFmYi4uNGEyNWM2ZGQ3
ZDM1ZjQ5MzIyMjJjMDdmZWE5OGY1MDU5MzFlYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1dLQ0FDRlZpZXdMYXllclRyZWVIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xh
eWVyVHJlZUhvc3QuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV0tDQUNGVmlld0xheWVyVHJlZUhvc3QuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIlBsYXRmb3JtQ0FMYXllci5oIgogI2luY2x1ZGUg
IlNvZnRMaW5raW5nLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xODcsNSAr
MTg1LDMgQEAgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBXS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdDo6
Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xh
eWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9X
S0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCmluZGV4IGM2ZjRhOTAyYzA3OTZmMTJjOGRmYzM3NDA3
YjIzYzlkYjlmNzc4NjAuLjBkZDE4Y2EzMzkyZDEwMTQ1MWUwNTVhNzA2YmMxODNkMjZiZmE0NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NB
Q0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9zdC5oCkBAIC0yNiw4ICsyNiw2IEBACiAj
aWZuZGVmIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0X2gKICNkZWZpbmUgV0tDQUNGVmlld0xheWVy
VHJlZUhvc3RfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVk
ZSAiQ0FDRkxheWVyVHJlZUhvc3QuaCIKIAogdHlwZWRlZiBzdHJ1Y3QgX1dLQ0FDRlZpZXcqIFdL
Q0FDRlZpZXdSZWY7CkBAIC02NSw2ICs2Myw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2Vu
ZGlmIC8vIFdLQ0FDRlZpZXdMYXllclRyZWVIb3N0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJDYWlyby5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3Bw
CmluZGV4IDczOGU0OTM4MTUzODkzZDBlMmY1YTE1ZTcyZDY0M2YxMWY1MmRiYTguLmQ3MTA0MDAx
MjhlYTg3OGNhNDQ5NjYwNGEwMGQ0NmQzZTU1NjA3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJv
LmNwcApAQCAtMzMsOCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIHVuc2lnbmVkIERyYXdpbmdCdWZmZXI6OmZyb250
Q29sb3JCdWZmZXIoKSBjb25zdAogewogICAgIHJldHVybiBjb2xvckJ1ZmZlcigpOwpAQCAtNDMs
NyArNDEsNiBAQCB1bnNpZ25lZCBEcmF3aW5nQnVmZmVyOjpmcm9udENvbG9yQnVmZmVyKCkgY29u
c3QKIHZvaWQgRHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvQ2FudmFzKElt
YWdlQnVmZmVyKikKIHsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RD
YWlyby5jcHAKaW5kZXggODY0MWZkNDgzOWZhMjlhY2M1ZDE1MmE2NjdhOGMxNTZkMjRkYzE1Ny4u
ODBiOTFlNDZhMGE1ZDQ0ZGZiNTFmMGMxYmM4ZmNiOGYzOWZiNjI5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWly
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTMwNiwxMiArMzA2LDEwIEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQoKSBjb25zdAogI2VuZGlmCiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQz
RDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsK
IH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAKaW5kZXggMDA0ODJhZDZkNDY5MTAzYjA0ZjIxMDUzZjg4MTJiOWE2NmNmYTdhYi4uODZkODI2
OWNmY2ZkMDg5ODY4ODlhM2EwYmFkZmVhOTI2Nzk0MjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAKQEAgLTQwNiw3ICs0MDYsNiBAQCB2b2lkIEltYWdlQnVmZmVyRGF0YTo6cGFpbnRUb1RleHR1
cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgRgogfQogI2VuZGlm
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBJbWFn
ZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKQEAgLTQxNSw2ICs0MTQsNSBAQCBQbGF0Zm9ybUxheWVyKiBJbWFnZUJ1ZmZl
cjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAjZW5kaWYKICAgICByZXR1cm4gMDsKIH0KLSNlbmRp
ZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAppbmRl
eCAxMmNhNzI2NjRjMzI5MGZlYTI3NGM5NjMxODFiMWZmMTIzM2YyODhmLi45NDYxODI1NGFlZTI4
ZGZkYTQ5NDE1YjU3Mjk2YjI2NGFmOWIwMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAK
QEAgLTIxLDggKzIxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQzRC5oIgogCi0jaWYgVVNFKDNEX0dSQVBISUNTKSB8fCBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHTERlZnMuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJJbWFnZS5oIgpAQCAtMTc1LDcgKzE3Myw2IEBA
IFBsYXRmb3JtM0RPYmplY3QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtVGV4dHVyZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fdGV4dHVyZTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIFBsYXRmb3JtTGF5ZXIqIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCkBAIC0xODUsNyArMTgyLDYg
QEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25z
dAogICAgIHJldHVybiAwOwogI2VuZGlmCiB9Ci0jZW5kaWYKIAogYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6bWFrZUNvbnRleHRDdXJyZW50KCkKIHsKQEAgLTMxMCw1ICszMDYsMyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSwgYm9vbAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBVU0UoM0RfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4
IGMxYjdiNmNhMDZlODY5MGY5NDNmZTk1ZDk4NmVhODlkNTUyNDJmNWMuLjM0M2RhYjZhOWEzMGYx
Yzg1YWVlZmE4NTRjNmFmNjNiMzc1MDc2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwCkBAIC0yMSw4ICsyMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCiAKLSNpZiBVU0UoM0RfR1JBUEhJQ1MpIHx8IFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCkBAIC0yNzUsNSArMjczLDMgQEAgR3JhcGhpY3NT
dXJmYWNlOjpGbGFncyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmdyYXBoaWNzU3VyZmFjZUZs
YWdzKCkgY29uc3QKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBVU0UoM0RfR1JBUEhJQ1MpIHx8IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCBjYzQxZGMzMGQzNmZiOTE3NDU1ZTkzNDZmNDU0
MGY3N2I2ODc3MmY1Li4xMzMyYTQ4YjhmY2MzMjhmNzRhZjUyNjE5MzA0ZTc0YTBiZGNjNGYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCkBAIC0yMSw4ICsyMSw2IEBACiAjaWZuZGVm
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9oCiAjZGVmaW5lIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZV9oCiAKLSNpZiBVU0UoM0RfR1JBUEhJQ1MpIHx8IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAKICNpZiBVU0UoVEVYVFVS
RV9NQVBQRVJfR0wpCkBAIC05Niw1ICs5NCwzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oCmluZGV4IGUyMzRlNDIwY2RmNDk2OTc0
NDQzNzBmNDM4YjM1MmRmMTM5MDAwNjMuLjBiNzVmNzY4Njk5OWUxZjAwYTEwMTFjM2M2MTY2MGRi
NThiOGIxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L0RyYXdpbmdCdWZmZXIuaApAQCAtMTE3LDExICsxMTcsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIG1hcmtDb250ZW50c0NoYW5nZWQoKSB7IG1fY29udGVudHNDaGFuZ2VkID0gdHJ1ZTsgfQog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIoKTsKICAgICB1bnNpZ25lZCBmcm9udENvbG9yQnVmZmVyKCkgY29uc3Q7CiAg
ICAgdm9pZCBwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXIqKTsKLSNl
bmRpZgogCiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Mb29wQmxpbm5NYXRoVXRpbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKaW5kZXgg
MzJhNTRmYjkwZGJiNzUyNGU5OWJhMzA5ODRiZWMxYjIxN2NkN2I0Yy4uODdkNzJkZmY0OThkODk1
NWU5NDhmMzJmYjc0NmZmYThlZTJkYjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0xvb3BCbGlubk1hdGhVdGlscy5jcHAKQEAgLTI1
LDggKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotCiAjaW5jbHVk
ZSAiTG9vcEJsaW5uTWF0aFV0aWxzLmgiCiAKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCkBAIC02
NjYsNSArNjY0LDMgQEAgYm9vbCBpc0NvbnZleChjb25zdCBGbG9hdFBvaW50KiB2ZXJ0aWNlcywg
aW50IG5WZXJ0aWNlcykKIAogfSAvLyBuYW1lc3BhY2UgTG9vcEJsaW5uTWF0aFV0aWxzCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEuY3BwCmluZGV4IDIzZGYzN2RhMGE4ZTI2Mzk1
NTUxMjQ3MWViZmUwYWIwNjgyNGUzMWEuLjZhM2QwNGM0ZDllMWEyM2IwZDY2NTM3NDM5ZDJkMTJk
ZDNhZTFlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UaWxpbmdEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvVGlsaW5nRGF0YS5jcHAKQEAgLTMwLDggKzMwLDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSB8fCBFTkFCTEUoQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKQotCiAjaW5jbHVkZSAiVGlsaW5nRGF0YS5oIgogCiAjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCkBAIC0yMDMsNSArMjAxLDMgQEAgdm9pZCBUaWxpbmdEYXRhOjpyZWNvbXB1dGVO
dW1UaWxlcygpCiB9CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvbWFjL0RyYXdpbmdCdWZmZXJNYWMubW0KaW5kZXgg
NTFjMjY1N2YxZDE5NzZjOWQzMjg3NThiMzhhZThkN2JmZmEwZWEyOS4uNDJjMGUwZTUyYTBjNjU1
ZTEyNjY5NjNkZjdiYTEzMTI2MTMyZWM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L21hYy9EcmF3aW5nQnVmZmVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9tYWMvRHJhd2luZ0J1ZmZlck1hYy5tbQpAQCAt
OTQsNyArOTQsNiBAQCBEcmF3aW5nQnVmZmVyOjp+RHJhd2luZ0J1ZmZlcigpCiAgICAgY2xlYXIo
KTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIFBsYXRmb3JtTGF5ZXIq
IERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKQogewogICAgIHJldHVybiBtX3BsYXRmb3Jt
TGF5ZXIuZ2V0KCk7CkBAIC0xMDQsNyArMTAzLDYgQEAgdW5zaWduZWQgRHJhd2luZ0J1ZmZlcjo6
ZnJvbnRDb2xvckJ1ZmZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbG9yQnVmZmVyKCk7CiB9
Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMzc2M2EwMDZmYjJlYzc0YjE4M2ZmMTE5ZDZmZTQ3Y2Qz
NDg4MmMxMS4uMmJjYzYzNjk4MDU1OWViZTNiYTc2OWZiY2JjMzNkODY3ZjA5MDE2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApA
QCAtNDMsNyArNDMsNyBAQAogCiAjaW5jbHVkZSA8Z3N0L2F1ZGlvL3N0cmVhbXZvbHVtZS5oPgog
Ci0jaWYgR1NUX0NIRUNLX1ZFUlNJT04oMSwgMSwgMCkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjaWYgR1NUX0NIRUNLX1ZFUlNJT04o
MSwgMSwgMCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJHTC5oIgogI2VuZGlmCiAKQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2U6Om11dGVDaGFuZ2VkKCkKIH0KIAogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIpCiB7CiAgICAgR011dGV4TG9ja2VyIGxvY2sobV9idWZmZXJNdXRleCk7CkBAIC0zNTcs
NyArMzU3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp0cmlnZ2Vy
UmVwYWludChHc3RCdWZmZXIqIGJ1ZmZlcikKICAgICAgICAgZ3N0X2J1ZmZlcl9yZXBsYWNlKCZt
X2J1ZmZlciwgYnVmZmVyKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiAgICAgaWYgKHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+
bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVk
KG1fcGxheWVyKSAmJiBjbGllbnQoKSkgewogICAgICAgICBjbGllbnQoKS0+c2V0UGxhdGZvcm1M
YXllck5lZWRzRGlzcGxheSgpOwogICAgICAgICByZXR1cm47CkBAIC0zNzQsNyArMzc0LDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzZXRTaXplKGNvbnN0IEludFNp
emUmIHNpemUpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAh
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYg
IVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBpZiAoY2xpZW50KCkpCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZgpAQCAtNDAxLDcgKzQwMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRS
CiAgICAgICAgIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIEltYWdlT3Jp
ZW50YXRpb25EZXNjcmlwdGlvbigpLCBmYWxzZSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50
VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxv
YXQgb3BhY2l0eSkKIHsKICAgICBpZiAodGV4dHVyZU1hcHBlci0+YWNjZWxlcmF0aW9uTW9kZSgp
ICE9IFRleHR1cmVNYXBwZXI6Ok9wZW5HTE1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAppbmRleCAwZjY1MDk0NGE1ZWJhNDlkYzIzMmE5
YjU3NjJmMzVlMDQ2YWUyODRkLi5jYjdiYjBiMmViOWVjNTZjNDNjZGJjMzAyNGFhYTVkN2RkMDQz
OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkg
JiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
ICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXIuaCIKICNlbmRpZgogCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIEludFNpemU7
CiBjbGFzcyBJbnRSZWN0OwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
IDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKICAgICAsIHB1YmxpYyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcgog
I2VuZGlmCiB7CkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhdWRpb0Rl
Y29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB1bnNpZ25lZCB2aWRlb0RlY29kZWRCeXRlQ291
bnQoKSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkgJiYgIVVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqPih0aGlzKTsgfQogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVy
KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCk7
CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJvdGVjdGVkOgogICAgIHVuc2lnbmVkIGxvbmcgbV92b2x1
bWVTaWduYWxIYW5kbGVyOwogICAgIHVuc2lnbmVkIGxvbmcgbV9tdXRlU2lnbmFsSGFuZGxlcjsK
ICAgICBtdXRhYmxlIEludFNpemUgbV92aWRlb1NpemU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiAhVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQogICAgIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdXBkYXRlVGV4dHVyZShU
ZXh0dXJlTWFwcGVyKik7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmgKaW5kZXgg
ODExNmY4M2RkZjFiOTNkNzM2ZmY5MTZlNDg0M2YwYjU0NTQ4MjAwMS4uMTYyNzRiMjViZTUxNGVi
OTU0NjU5N2I2NjU3ZjdhMzBjZDUxN2UxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MuaApAQCAt
MTQyLDkgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldEhhc1BsYXliYWNr
VGFyZ2V0QXZhaWxhYmlsaXR5TGlzdGVuZXJzKGJvb2wpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
QWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKLSNlbmRpZgogCiAgICAgdmly
dHVhbCB2b2lkIHNldE1lZGlhUGxheWVyUHJveHkoV2ViTWVkaWFQbGF5ZXJQcm94eSopIG92ZXJy
aWRlOwogICAgIHZvaWQgcHJvY2Vzc1BlbmRpbmdSZXF1ZXN0cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZh
dGVJT1MubW0KaW5kZXggOWVlYTcyNzlkYWVjZjAxY2QwOTExZTExZTUwNDdjNDkwMThkZDYwYy4u
NTJiYjAxOTAxNzg1NDQxNTI0MDNhZmM1MTUyZDhlYmI5MDM4MGE3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQ
cml2YXRlSU9TLm1tCkBAIC02NjMsMTIgKzY2MywxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUlPUzo6c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoYm9vbCBoYXNM
aQogfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZUlPUzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVJT1M6OmVudGVyRnVsbHNjcmVlbigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmlu
ZGV4IDllYTQzOGMzOWRkZGE4NzIwNmQzMWM4MWYyZWM3OGZjZjczZjcwMzYuLjI1ZTY3OTIwNmQ2
NWE4YmUxM2ZjZDNhYjIyZDU4NGI2MWQyODdjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCkBAIC02NSw5ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNpemVDaGFuZ2VkKCk7CiAg
ICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwogICAgIHZvaWQgZGlkRW5kKCk7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgbGF5ZXJIb3N0Q2hhbmdlZChQbGF0Zm9ybUxh
eWVyKiByb290TGF5ZXIpOwotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQoTWVkaWFQbGF5ZXIqKTsKQEAgLTgzLDkgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1l
ZGlhKCkgY29uc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgSW50U2l6ZSBu
YXR1cmFsU2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdDsKQEAgLTEzOCwx
MSArMTM0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZUZvclJlbmRlcmluZygpOwogCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAgICAgdm9p
ZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwotI2VuZGlmCiAKICAgICBib29s
IGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAgICAgTWVkaWFQbGF5ZXI6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Lm1tCmluZGV4IGQ5MjJjZWQzNTc4NWU1NTM3ZGE5NDBiMzU4MTcxYTMxYjM1MTIwYjMuLjc4OWI5
ZWY5N2EyNzYzNjllNTI4MTQ0YTI0YzVjNmFkYzVlNjRjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW0KQEAgLTM4LDYgKzM4LDcgQEAKICNpbXBvcnQgIlVSTC5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2ltcG9ydCAiUGxhdGZv
cm1MYXllci5oIgogI2ltcG9ydCAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbXBvcnQgIlNvZnRMaW5r
aW5nLmgiCiAjaW1wb3J0ICJUaW1lUmFuZ2VzLmgiCkBAIC00NSwxMCArNDYsNiBAQAogI2ltcG9y
dCA8UVRLaXQvUVRLaXQuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNlbmRp
ZgotCiAjaWYgRFJBV19GUkFNRV9SQVRFCiAjaW1wb3J0ICJGb250LmgiCiAjaW1wb3J0ICJEb2N1
bWVudC5oIgpAQCAtNTA4LDcgKzUwNSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OmRlc3Ryb3lRVFZpZGVvUmVuZGVyZXIoKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6
Y3JlYXRlUVRNb3ZpZUxheWVyKCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6Y3JlYXRlUVRNb3ZpZUxheWVyKCVwKSIsIHRoaXMpOwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIW1fcXRNb3ZpZSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC01MjUsMjAgKzUyMSwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjcmVh
dGVRVE1vdmllTGF5ZXIoKQogI2VuZGlmCiAgICAgICAgIC8vIFRoZSBsYXllciB3aWxsIGdldCBo
b29rZWQgdXAgdmlhIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZp
Z3VyYXRpb24oKS4KICAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVR
VEtpdDo6ZGVzdHJveVFUTW92aWVMYXllcigpCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQ6OmRlc3Ryb3lRVE1vdmllTGF5ZXIoJXApIiwgdGhpcyk7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghbV9xdFZpZGVvTGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIGRpc2Fzc29jaWF0ZSBvdXIgbW92aWUgZnJvbSBvdXIgaW5z
dGFuY2Ugb2YgUVRNb3ZpZUxheWVyCiAgICAgW21fcXRWaWRlb0xheWVyLmdldCgpIHNldE1vdmll
Om5pbF07ICAgIAogICAgIG1fcXRWaWRlb0xheWVyID0gbmlsOwotI2VuZGlmCiB9CiAKIE1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQ6OmN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgY29uc3QKQEAgLTU2MCwxMCArNTUzLDggQEAg
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclBy
aXZhdGVRVEtpdDo6cHJlZmVycmVkUmUKICAgICBpZiAoIW1fcGxheWVyLT5mcmFtZVZpZXcoKSB8
fCAhbV9xdE1vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAgIHJldHVybiBNZWRp
YVJlbmRlcmluZ01vdmllTGF5ZXI7Ci0jZW5kaWYKIAogICAgIGlmICghUVRWaWRlb1JlbmRlcmVy
Q2xhc3MoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW92aWVWaWV3OwpAQCAtNjkx
LDEyICs2ODIsMTAgQEAgUGxhdGZvcm1NZWRpYSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cGxh
dGZvcm1NZWRpYSgpIGNvbnN0CiAgICAgcmV0dXJuIHBtOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX3F0VmlkZW9MYXllci5nZXQo
KTsKIH0KLSNlbmRpZgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpwbGF5KCkKIHsK
QEAgLTg5NywxMiArODg2LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNldENs
b3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25zVmlzaWJsCiAgICAgaWYgKG1l
dGFEYXRhQXZhaWxhYmxlKCkpIHsKICAgICAgICAgd2tRVE1vdmllU2V0U2hvd0Nsb3NlZENhcHRp
b25zKG1fcXRNb3ZpZS5nZXQoKSwgY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKGNsb3NlZENhcHRpb25zVmlzaWJs
ZSAmJiBtX3F0VmlkZW9MYXllcikgewogICAgICAgICAgICAgLy8gQ2FwdGlvbnMgd2lsbCBiZSBy
ZW5kZXJlZCB1cHNpZGUgZG93biB1bmxlc3Mgd2UgZmxhZyB0aGUgbW92aWUgYXMgZmxpcHBlZCAo
YWdhaW4pLiBTZWUgPHJkYXI6Ly83NDA4NDQwPi4KICAgICAgICAgICAgIFttX3F0VmlkZW9MYXll
ci5nZXQoKSBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKICAgICAgICAgfQotI2VuZGlmCiAgICAg
fQogfQogCkBAIC0xMjI1LDEyICsxMjEyLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQ6OmRpZEVuZCgpCiAgICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Ojps
YXllckhvc3RDaGFuZ2VkKFBsYXRmb3JtTGF5ZXIqIHJvb3RMYXllcikKIHsKICAgICBVTlVTRURf
UEFSQU0ocm9vdExheWVyKTsKIH0KLSNlbmRpZgogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0OjpzZXRTaXplKGNvbnN0IEludFNpemUmKSAKIHsgCkBAIC0xNjE3LDcgKzE2MDIsNiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzYXdVbnN1cHBvcnRlZFRyYWNrcygpCiAgICAg
bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRU
cmFja3MobV9wbGF5ZXIpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzUmVhZHlGb3JWaWRlb1NldHVwKCkgJiYgZ2V0UVRN
b3ZpZUxheWVyQ2xhc3MoKSAhPSBOaWw7CkBAIC0xNjI4LDcgKzE2MTIsNiBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0OjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAg
ICAgLy8gU2V0IHVwIG9yIGNoYW5nZSB0aGUgcmVuZGVyaW5nIHBhdGggaWYgbmVjZXNzYXJ5Lgog
ICAgIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKIH0KLSNlbmRpZgogCiBib29sIE1lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0OjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CkBAIC0xNzgw
LDEyICsxNzYzLDggQEAgLSAodm9pZCluZXdJbWFnZUF2YWlsYWJsZTooTlNOb3RpZmljYXRpb24g
Kil1bnVzZWROb3RpZmljYXRpb24KIAogLSAodm9pZClsYXllckhvc3RDaGFuZ2VkOihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBDQUxheWVyKiByb290TGF5ZXIgPSBzdGF0aWNfY2FzdDxDQUxheWVyKj4oW25vdGlm
aWNhdGlvbiBvYmplY3RdKTsKICAgICBtX2NhbGxiYWNrLT5sYXllckhvc3RDaGFuZ2VkKHJvb3RM
YXllcik7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwotI2VuZGlmCiB9
CiAKIC0gKHZvaWQpc2V0RGVsYXlDYWxsYmFja3M6KEJPT0wpc2hvdWxkRGVsYXkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5oCmluZGV4IGVh
ZGU1MjAzNGNkZDgxMGE2MDJmZTgxZmRhMjg0MmIyMzE4NmEwOWUuLjAwYzgxZjZhYWUwOWE2NTNm
MjczNDVkNmIzMWFmNjMzM2VjMjI4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBX
ZWJHTExheWVyX2gKICNkZWZpbmUgV2ViR0xMYXllcl9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01MSw2ICs0OSw0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QGVuZAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYg
Ly8gV2ViR0xMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJHTExheWVyLm1tCmluZGV4IDY0ODI5OWU3NTk2YzM0NTYyZTE1NDQ1MGU3N2VhMjRh
NzgyYjIxZWMuLjcxZjgxZmNhNmMzYTM3ZDJlYTQwOTNkMjU2MGVjMDkzNmVmNjQ2NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1t
CkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICNpZiBFTkFCTEUoV0VCR0wpCiAKICNpbXBvcnQgIldlYkdM
TGF5ZXIuaCIKQEAgLTE3Nyw0ICsxNzYsMyBAQCAtKEdyYXBoaWNzTGF5ZXIqKWxheWVyT3duZXIK
IEBlbmQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9XZWJMYXllci5oCmluZGV4IDUyZGNiMjM4OGUxMjBiYmJkOTc5NjlkZjhiYTcwOTY3NDcxOTYy
N2UuLjEyMjJhNjMzN2VjZDU5NGJhMjAwNzFkMWVjOWQyZmVkZjA0YmM4ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5oCkBAIC0yNiw4ICsy
Niw2IEBACiAjaWZuZGVmIFdlYkxheWVyX2gKICNkZWZpbmUgV2ViTGF5ZXJfaAogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNv
cmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9y
Lmg+CkBAIC01NCw2ICs1Miw0IEBAIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250ZXh0UmVm
LCBQbGF0Zm9ybUNBTGF5ZXIqLCBSZXBhaW50UmVjdExpc3QmIGRpcnR5UmVjCiB2b2lkIGRyYXdS
ZXBhaW50SW5kaWNhdG9yKENHQ29udGV4dFJlZiwgUGxhdGZvcm1DQUxheWVyKiwgaW50IHJlcGFp
bnRDb3VudCwgQ0dDb2xvclJlZiBjdXN0b21CYWNrZ3JvdW5kQ29sb3IpOwogfQogCi0jZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gV2ViTGF5ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVy
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCmlu
ZGV4IGQ5OWRmMmViMDNhY2Y0NWY4MWJhYjMyN2NhM2I3YzJjMTNlMGQ2NDEuLjlmMjE3OWQ2MDky
ZmU1YTQ4ZmY2MGRmMjEzNDI2OTNlMjliMmZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KQEAgLTI0LDkgKzI0LDYgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0KICNpbXBvcnQgIldlYkxheWVyLmgiCiAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgpA
QCAtMzMwLDUgKzMyNywzIEBAIC0gKE5TU3RyaW5nKilleHRlbmRlZERlc2NyaXB0aW9uCiBAZW5k
ICAvLyBpbXBsZW1lbnRhdGlvbiBXZWJMYXllcihFeHRlbmRlZERlc2NyaXB0aW9uKQogCiAjZW5k
aWYgLy8gTkRFQlVHCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5
ZXIuaAppbmRleCA2ZjU1OWUzZDMyMDFmMmEzNGMyMjc2ZTExMDc0MzJkNTdhOWQwZmI4Li40NmQ1
OGE5ZGFiNDBjMDY3MWI1MDBjNjY3MThiOGRiZTE5YTI3NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVyLmgKQEAgLTI2LDgg
KzI2LDYgQEAKICNpZm5kZWYgV2ViVGlsZWRMYXllcl9oCiAjZGVmaW5lIFdlYlRpbGVkTGF5ZXJf
aAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW1wb3J0ICJXZWJMYXll
ci5oIgogCiBAaW50ZXJmYWNlIFdlYlRpbGVkTGF5ZXIgOiBDQVRpbGVkTGF5ZXIgCkBAIC0zOCw3
ICszNiw1IEBACiAKIEBlbmQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQogI2VuZGlmIC8vIFdlYlRpbGVkTGF5ZXJfaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVyLm1tCmluZGV4IGM4NmFmYTY4
ODRiZWNkMmYzNjg0N2YzYmQyMGQ3OGQwOTRjYTIxZWYuLjcxMzg2MDQzZTM1ODYzNjZlODdjMTY0
M2JjNWYwYjI1MWZlMTQ2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9XZWJUaWxlZExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9XZWJUaWxlZExheWVyLm1tCkBAIC0yNCw5ICsyNCw2IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiAjaW1wb3J0ICJXZWJUaWxlZExheWVyLmgiCiAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5o
IgpAQCAtMTQxLDUgKzEzOCwzIEBAIC0gKHZvaWQpZHJhd0luQ29udGV4dDooQ0dDb250ZXh0UmVm
KWNvbnRleHQKIH0KIAogQGVuZCAvLyBpbXBsZW1lbnRhdGlvbiBXZWJUaWxlZExheWVyCi0KLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKaW5kZXggNjU5ZDI0OTc0OWM3MzEx
ODJkNWQ4YTU3MWExYTI1MmYzOTMxY2Q3MS4uYTA5MWYxMzU4MjllZjhmYzc1ZWZmNDA1ZDhkYjc2
MmYzYWY0MmM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMRGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTERlZnMuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHTERlZnNfaAogI2RlZmlu
ZSBHTERlZnNfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZGVmaW5l
IEdMX0dMRVhUX1BST1RPVFlQRVMgMQogCiAjaWYgVVNFKE9QRU5HTF9FU18yKQpAQCAtODIsNSAr
ODAsMyBAQCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtRHJhd2FibGU7CiB9CiAKICNlbmRpZgotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4IDlhYjNkZWE5NTM4ZmNiNWY2YTM5
MDUxYTBjOTc4ZmI4NTY3MDk0NWEuLjA2ZjYxYzRlN2EwODkyZTk0OGEyNzFiYjYyY2M2MTFjZjQ5
MjFjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMUGxhdGZvcm1Db250ZXh0LmgiCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpZiBVU0UoR0xYKQogI2luY2x1ZGUgIkdM
WENvbnRleHQuaCIKICNlbGlmIFVTRShFR0wpCkBAIC0yODUsNSArMjgzLDMgQEAgdm9pZCBHTFBs
YXRmb3JtQ29udGV4dDo6ZGVzdHJveSgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCmluZGV4IDJlNDFkYjNkYTJjNDkwZDU2OTZjNDMz
NmQ4NmJjYzQ3ZjUwYzFiNDcuLjAzMTQ3Yzg4YmViYzYyNjVhY2MxYTFmNGIxYWRkZWUwYzlmMmNj
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
TFBsYXRmb3JtQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdM
UGxhdGZvcm1Db250ZXh0X2gKICNkZWZpbmUgR0xQbGF0Zm9ybUNvbnRleHRfaAogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiR0xEZWZzLmgiCiAjaW5jbHVk
ZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgpA
QCAtOTYsNiArOTQsNCBAQCBwcm90ZWN0ZWQ6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmCi0KICNlbmRpZiAvLyBHTE5hdGl2ZUNvbnRleHRfSApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFj
ZS5jcHAKaW5kZXggNDNiNjUzMDhkMGFmZmFhMGI4OTEyZDg4OTgzODJhZGQ5MDhlMDM4Ni4uZGQy
N2Y3Njk5MmI3NTM4ZjdkYzZmZTIxMzQxMDAyM2E5YTI1MDE4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuY3BwCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQogI2lmIFVTRShHTFgpCiAjaW5jbHVkZSAiR0xYU3VyZmFjZS5oIgogI2VuZGlmCkBAIC0x
MzMsNSArMTMxLDMgQEAgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIEdMUGxh
dGZvcm1TdXJmYWNlOjphdHRyaWJ1dGVzKCkgY29uc3QKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmgKaW5kZXggZDI3NmZhNWU4ZTBiNjcyZjVhYTMwYzliZTJhZTM1ZTMyODhi
N2YxMS4uYWY3ZjdiY2I3Mzg5ZjNiYmQ0Y2Q5NjBiYjM5YjI2YzBiNTZmODcyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR0xQbGF0Zm9ybVN1cmZh
Y2VfaAogI2RlZmluZSBHTFBsYXRmb3JtU3VyZmFjZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJHTERlZnMuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC05NSw2ICs5MywzIEBAIHByb3RlY3Rl
ZDoKIH0KIAogI2VuZGlmCi0KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR0xUcmFuc3BvcnRTdXJmYWNlLmNw
cAppbmRleCA4MTk5ZDZiYTZiNjdkNTEzMDdiM2JlYzU3NjlhNDY5OGZhNTcyNTU3Li4yNWQ2Y2U5
ZjFlNWViYWE5NGIwZGI2MjY2YWUzZjUwNzhmMTI4NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0
U3VyZmFjZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJHTFRyYW5zcG9ydFN1cmZhY2UuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLQogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogCiAjaWYgVVNFKEdMWCkKQEAgLTI1OSw1
ICsyNTcsMyBAQCB2b2lkIEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudDo6Y3JlYXRlVGV4dHVyZSgp
CiB9CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9HTFRyYW5zcG9ydFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCmluZGV4IDJmZGQx
ZjhkZmIxNTlmMjc2ZjcyNTk5OTdkYmVhZDhlZTBhNDhkMWEuLmI1NzljODU5YWY0MzBkY2QyMmIz
YjZlMjA2ZjQyYjNjZTFjZjIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCkBAIC0y
Niw4ICsyNiw2IEBACiAjaWZuZGVmIEdMVHJhbnNwb3J0U3VyZmFjZV9oCiAjZGVmaW5lIEdMVHJh
bnNwb3J0U3VyZmFjZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNp
bmNsdWRlICJHTFBsYXRmb3JtU3VyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKQEAgLTc3LDUgKzc1LDMgQEAgcHJvdGVjdGVkOgogfQogCiAjZW5kaWYKLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29uZmlnU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCmluZGV4IDJmZWE3YjAwNDQ3MWY2YmNmNGRj
MzA3YTIzZmZjMTcxOTE3OTdmYjUuLjhhNjEwOWEyZmM0ZTEwNTNmMmZlYWQxYzhlZjE5YWNlYjA2
ZjM4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb25maWdTZWxlY3Rvci5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjaWZuZGVmIEdMWENvbmZpZ1NlbGVjdG9yX2gKICNkZWZpbmUgR0xYQ29uZmlnU2VsZWN0
b3JfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQorI2lm
IFVTRShHTFgpCiAKICNpbmNsdWRlICJYMTFIZWxwZXIuaCIKICNpbmNsdWRlIDxvcGVuZ2wvR0xE
ZWZzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKaW5kZXggMTBkNDRmODgyZWNhYjg5MGYxNTc2
OTgwOWEwOTBkNDNmMDM4N2U3Yi4uZjQyZDNhZmEzM2M2YjQ4NzMxMDBiMzA3OGUwMzMyOWQ4ZjJi
YjY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMWENvbnRleHQuaCIKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKKyNpZiBVU0UoR0xYKQogCiAjaW5jbHVkZSAi
WDExSGVscGVyLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oCmluZGV4IGIwOGI1M2U4M2MwY2Q5ZDYw
Mzk5MTcyNWI5OTJmZGI0M2UxY2RhOTMuLjk1ZTk2OTIzOWQ0MDJiMzIyNzU3MDY1ZmQwYTNlOTg4
MTFjMjE3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRl
ZiBHTFhDb250ZXh0X2gKICNkZWZpbmUgR0xYQ29udGV4dF9oCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgpCisjaWYgVVNFKEdMWCkKIAogI2luY2x1ZGUgIkdM
UGxhdGZvcm1Db250ZXh0LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRleCA0ZGI5Yzg5
ODc1YjhlZmQ3ZDgwMjI2OWY1MDdiNjJmZjBiOTQ5NjI0Li4xNmY1NmMxNzA3MGJjZmY1NjM3OTlk
NTgxMzJkOGY1ZWNjYjE1NDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR0xYU3VyZmFjZS5oIgogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQorI2lmIFVTRShHTFgp
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKaW5kZXggYmI3NmZj
MDFmZmI0OWYxMDZhNzA3NWFhZDEzZTE4MTc4ZWM0ZGFhNy4uMGIxOWZlMzk2ODhjOGNjNzEwNjU4
M2FkYmY1Y2RiMWVmYTI0MjAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjaWZuZGVmIEdMWFN1cmZhY2VfaAogI2RlZmluZSBHTFhTdXJmYWNlX2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKKyNpZiBVU0UoR0xYKQogCiAj
aW5jbHVkZSAiR0xUcmFuc3BvcnRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiR0xYQ29uZmlnU2VsZWN0
b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmNwcAppbmRleCA0YzhlZTZhMmI3OGQxY2QzYWYwZDk1ZjhlZTUw
NThmMTcyYTBmZWI0Li40Y2Y0NDYyODJhMTRkYzJkMDNkY2YxY2EwMDk1ODU5MTIyZGZjZWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCBhMGExNzFlMDU2NWM1
MzZjNWZlOWM3NTljOWMyOWEyM2ZhMDJjNTU3Li4yYzg2ZDcyN2M2OWY2MzdlZGJkMDgzZmVlMDkz
N2M2ODA2YTZhMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYg
VGV4dHVyZU1hcHBlcl9oCiAjZGVmaW5lIFRleHR1cmVNYXBwZXJfaAogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSKQogCiAjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkgJiYgVVNF
KE9QRU5HTF9FU18yKQogI2RlZmluZSBURVhNQVBfT1BFTkdMX0VTXzIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAppbmRleCBlNjhiYzA5MTQxNDVjNjY4NDhiM2RlNWFi
MjQ0ODdkMzU4NDJkZDgzLi43YTAwZTIyYWU1YWM3ZTU1ZjEzZDdjMWI3YmE4NDZiMGNlZDZmZGI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCkBAIC0xOSw3ICsx
OSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikK
ICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgiCiAKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAppbmRleCA0
YmFlNDViNGYxODA2NTgyMzVhNjRjYTk0NjVkMDMyZWUyNDVlMDk1Li43OTI3YTQ5YjQzODUzZGNj
MTMxZTdiNzU2NzgyYTQwMjc0ZmIzNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlLmgKQEAgLTIwLDcgKzIwLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1hcHBlckJhY2tpbmdT
dG9yZV9oCiAjZGVmaW5lIFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmVfaAogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSKQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSW1hZ2Uu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuY3BwCmluZGV4IGQ3NDQ3NzAxMGEz
OGIzYjEwOGZkYzk3ODk2ZDY5YjBjN2M5NzUzNTkuLjJkMzMzYWYzOTBlNTM4MmUxYWVjOGU1MzY0
YmI0MmZmZTBlMTg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmNwcApA
QCAtMjEsNyArMjEsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVIpCiAKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oIgogCkBAIC02
NCw0ICs2NCw0IEBAIHZvaWQgVGV4dHVyZU1hcHBlckZQU0NvdW50ZXI6OnVwZGF0ZUZQU0FuZERp
c3BsYXkoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2VuZGlmIC8v
IFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgKaW5k
ZXggMDA2MjM3MzgzNWI3NmVjY2ZkZTFiNzBhNTljMWM0ZWM2OTFiZjBmYy4uNjQ5OTg5Yzc2YzQx
ODM5YTlkY2ZiMGQ5ZDk2OWY3Mzg2NDU0ZWUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJGUFND
b3VudGVyLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5kZWYgVGV4dHVyZU1hcHBlckZQU0NvdW50
ZXJfaAogI2RlZmluZSBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcl9oCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVS
RV9NQVBQRVIpCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0
aW9uTWF0cml4LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00Nyw3ICs0Nyw3
IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKKyNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVIpCiAK
ICNlbmRpZiAvLyBUZXh0dXJlTWFwcGVyRlBTQ291bnRlcl9oCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKaW5kZXggMDViODg0YmQ1ZDQyNzE4ZjhlZWE0MWNlYmY0MTRkMWRjNTQyYmE0NS4uZjA5YmJh
NTExOGY0YjljMGEzZTM0NTk5MzhmOThlZjNjN2RmNWZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAKQEAgLTUwLDcgKzUwLDcgQEAKICNkZWZpbmUgR0xfVU5QQUNLX1NLSVBfUk9XUyAweDBDRjMK
ICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVS
RV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgVGV4dHVyZU1hcHBlckdMRGF0YSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKaW5kZXggMDgx
NDAzZjAwM2EyYzQ3NjJiZjU5MWRmY2IzNTU5OWE3ZDg4ODYwYy4uZjBmZDFiMWI0ZTEyZTVkOWMw
MTNhNjI0N2VlM2I1NGY0ZTJiZDBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtMjAsNyArMjAs
NyBAQAogI2lmbmRlZiBUZXh0dXJlTWFwcGVyR0xfaAogI2RlZmluZSBUZXh0dXJlTWFwcGVyR0xf
aAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmlu
ZGV4IDdlN2JhYmJjZDBjOTFkZTRiMjcyMjYzODI1NWU2NDU1OWE3OWNiNzMuLjg2NTkyYzZhN2M3
Yjc3NDM5NTMwZTMxZTdlZWE5OGI5ZmNhZWM5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwCkBAIC0yNCw3ICsyNCw3IEBACiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNF
KFRFWFRVUkVfTUFQUEVSKQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5kZXggODdmZjNmNGE3YWUyMDZiZWM0
MGQ1NjZkMDY2MWMxNWQ0ZGU5ZmZlZC4uOTA0NmFhNTM3MDhhNDBiZDQ3NWE1Zjg5MWJkOTIwNzg1
MTZlZDNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtMjAsNyArMjAsNyBAQAogI2lm
bmRlZiBUZXh0dXJlTWFwcGVyTGF5ZXJfaAogI2RlZmluZSBUZXh0dXJlTWFwcGVyTGF5ZXJfaAog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIp
CisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbS5jcHAKaW5kZXggZjRiOWE3ZTk4MzAyNWNlYzk0MjhjM2JkMDA3ZGU0MzFlOTA5MjMw
NC4uNzI0NzUwMjlhODQ4NDI1MmY3Zjk4ZjhlZDZkYmE0YWQ1ZDY2NTFmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCIK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
KQorI2lmIFVTRShURVhUVVJFX01BUFBFUikKICNpbmNsdWRlICJMZW5ndGhGdW5jdGlvbnMuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclN1cmZhY2VCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlLmNwcAppbmRleCA4
ZDM4Nzc2ZTliNWY1MzNhNjA1ZTczY2E3NmUzM2NhYmZkOThiN2M5Li5iMzNiYmI2MjkzMDA1ZWZm
NmFmMzc2YzQxNDE4ZWRhYzU1MDhhMTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICNpbmNsdWRlICJUZXh0
dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NTdXJm
YWNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5o
CmluZGV4IDc5M2M2MWRjMzQyZmYwMjYzNTI3ODc0YzcxMjBkMzVlYjI4MGM1NzguLjMxZDE4MTky
Y2QzZWYwYWI0Njg2ODFjYmZlNWFkZmU5NjgzNTM4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVm
IFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBl
clN1cmZhY2VCYWNraW5nU3RvcmVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKKyNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKIAog
I2luY2x1ZGUgIkdyYXBoaWNzU3VyZmFjZS5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwCmluZGV4IDJlYTdmYjZlZDg4NjU2
NGM5NTk5OWViNWNkYjhhNTQ2MTVhZDVlOWQuLmU2ZjNmZTgwZWU2ODIyYmMwYTQ1MDZmNzA3ZjUx
OTc4ZTQ2NTZhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlLmNwcApAQCAtMTgsNyArMTgsNyBA
QAogICovCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlclRpbGUuaCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclRpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyVGlsZS5oCmluZGV4IGVlNjgwOWYyMDQ0MzQ2ODVmMDliZThlNGEzZTBmZjE0ZGVl
OWEwNTQuLjY0OGU3MWYwMGEwOWFhZjdiYmZlMzkyODBlYzBlYTc3ZWIxNDg2ZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
VGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyVGlsZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJU
aWxlX2gKICNkZWZpbmUgVGV4dHVyZU1hcHBlclRpbGVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWY1NjQw
MjNkNjhlZjg3NmYyYTMzYjRlYTQyMWE4MGFmZDk5MGEzNS4uYjgxYjg5ZjBjMDQ3NjkzMzc0N2Yy
YzgxOTJiZmI1NzNhYWRiM2Q0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQ
RVIpCisjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZS5oIgogCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaAppbmRleCAzODE2MWM0NzUzYzBkNzI2
NWJkZDMwZWVjZDBlYjdlOWM1NzkyMDI4Li4yZjc5MmRjZjk0ODQ4ZDRiOGFiYjBhMjlmMTBkODMx
ODRlMzBmNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZS5oCkBAIC0yMCw3ICsyMCw3IEBACiAjaWZuZGVmIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdT
dG9yZV9oCiAjZGVmaW5lIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZV9oCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpCiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJ
bWFnZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHAKaW5kZXggMDVlMTUwODQ4ZjcwYTAwZTc4
Njg2MGViMjNmN2JhYjA5MWYzYWY2OC4uMmYzNWVmNTQwYzg3MDNkMmQxN2I4ZGU0NDU0ZGJhZTVh
NWY3OGI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwCkBAIC0xOTcsMTIgKzE5NywxMCBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICNlbmRp
ZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciog
R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBt
X3dlYkdMTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2lu
ZG93LmNwcAppbmRleCA2MDc3ZjJkZjM2MTg3YzQ4ZjI2Njg4OWIwMGE3MWE4MTI1MWFjM2NjLi4w
ZDA5OGJkZjNmMjNjODk5ZTRhZWIyN2I0ZjIwNTVmZTJiNjY2Y2M2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNj
cmVlbldpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwCkBAIC0zNCw3ICszNCw3IEBA
CiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29sb3IuaD4KICNlbmRpZgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogI2luY2x1ZGUg
IkNBQ0ZMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyLmgiCiAjZW5k
aWYKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2lu
ZG93OjpjcmVhdGVXaW5kb3coSFdORCBwYXJlbnRId25kKQogICAgICAgICBwYXJlbnRId25kLCAw
LCBpbnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsKICAgICBBU1NFUlQoSXNXaW5kb3cobV9od25kKSk7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0Uo
Q0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5z
ZXRXaW5kb3cobV9od25kKTsKICNlbmRpZgpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3c6OmNyZWF0ZVdpbmRvdyhIV05EIHBhcmVudEh3bmQp
CiAgICAgOjpTZXRGb2N1cyhtX2h3bmQpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVG
dWxsc2NyZWVuV2luZG93OjpzZXRSb290Q2hpbGRMYXllcihQYXNzUmVmUHRyPFBsYXRmb3JtQ0FM
YXllcj4gcm9vdENoaWxkKQogewogICAgIGlmIChtX3Jvb3RDaGlsZCA9PSByb290Q2hpbGQpCkBA
IC0xNTYsNyArMTU2LDcgQEAgTFJFU1VMVCBNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2lu
ZG93Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEEKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBXTV9ERVNUUk9ZOgogICAgICAgICBtX2h3bmQgPSAwOwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICAgICAgaWYg
KG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0V2luZG93
KDApOwogI2VuZGlmCkBAIC0xNjYsNyArMTY2LDcgQEAgTFJFU1VMVCBNZWRpYVBsYXllclByaXZh
dGVGdWxsc2NyZWVuV2luZG93Ojp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEEK
ICAgICAgICAgICAgIExQV0lORE9XUE9TIHdwID0gcmVpbnRlcnByZXRfY2FzdDxMUFdJTkRPV1BP
Uz4obFBhcmFtKTsKICAgICAgICAgICAgIGlmICh3cC0+ZmxhZ3MgJiBTV1BfTk9TSVpFKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYg
VVNFKENBKQorI2lmIFVTRShDQSkKICAgICAgICAgICAgIGlmIChtX2xheWVyVHJlZUhvc3QpIHsK
ICAgICAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJlc2l6ZSgpOwogICAgICAgICAgICAg
ICAgIFBsYXRmb3JtQ0FMYXllciogcm9vdExheWVyID0gbV9yb290Q2hpbGQtPnJvb3RMYXllcigp
OwpAQCAtMTc5LDcgKzE3OSw3IEBAIExSRVNVTFQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVl
bldpbmRvdzo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBCiAgICAgICAgIH0K
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXTV9QQUlOVDoKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpIHsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cGFpbnQoKTsKICAgICAg
ICAgICAgIDo6VmFsaWRhdGVSZWN0KG1faHduZCwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldp
bmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuaAppbmRleCA5ZjJkNjNhODM1MjhhMzZkZmNhMDE3NmEx
NDZhOTgyZjc3NmU0ZjRhLi5jZGQwY2EzMDQxMGJhNGE2YzkyOGRmYjllOWZmNmE5YzU1ZThkMTlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmgKQEAg
LTI5LDEzICsyOSwxMyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
V2luZG93c0V4dHJhcy5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBV
U0UoQ0EpCisjaWYgVVNFKENBKQogI2luY2x1ZGUgIkNBQ0ZMYXllclRyZWVIb3N0Q2xpZW50Lmgi
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogY2xhc3MgQ0FDRkxheWVyVHJlZUhv
c3Q7CiBjbGFzcyBQbGF0Zm9ybUNBTGF5ZXI7CiAjZW5kaWYKQEAgLTU2LDcgKzU2LDcgQEAgcHVi
bGljOgogICAgIAogICAgIEhXTkQgaHduZCgpIGNvbnN0IHsgcmV0dXJuIG1faHduZDsgfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQog
ICAgIFBsYXRmb3JtQ0FMYXllciogcm9vdENoaWxkTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RDaGlsZC5nZXQoKTsgfQogICAgIHZvaWQgc2V0Um9vdENoaWxkTGF5ZXIoUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBTGF5ZXI+KTsKICNlbmRpZgpAQCAtNjYsNyArNjYsNyBAQCBwcml2YXRlOgogICAg
IExSRVNVTFQgd25kUHJvYyhIV05ELCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSwgTFBBUkFNKTsKIAog
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5DbGllbnQqIG1fY2xpZW50OwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICBS
ZWZQdHI8Q0FDRkxheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKICAgICBSZWZQdHI8UGxh
dGZvcm1DQUxheWVyPiBtX3Jvb3RDaGlsZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCmluZGV4IGQxMmNjMGRi
MjBkYzgyYzI5YTQ0YjRhMDM1MjA3NjcxNGI3Mjg2NGMuLjMxODVlNWI5Yjc3NTI0NjI5ZjY4OTM4
NjUzMWViOGU5MmM3YzM0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVUYXNrVGlt
ZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyV2luLmgi
CiAjaW5jbHVkZSAiUVRDRkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJRVERlY29tcHJlc3Npb25T
ZXNzaW9uLmgiCiAjaW5jbHVkZSAiUVRNb3ZpZS5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1
ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgor
I2luY2x1ZGUgIldLQ0FJbWFnZVF1ZXVlLmgiCiAjaW5jbHVkZSA8QXNzZXJ0TWFjcm9zLmg+CiAj
aW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQWZmaW5lVHJhbnNmb3JtLmg+CiAjaW5jbHVkZSA8Q29y
ZUdyYXBoaWNzL0NHQ29udGV4dC5oPgpAQCAtNjEsMTEgKzYzLDYgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2luY2x1ZGUgIlBsYXRmb3JtQ0FM
YXllcldpbi5oIgotI2luY2x1ZGUgIldLQ0FJbWFnZVF1ZXVlLmgiCi0jZW5kaWYKLQogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODgsNyArODUsNiBAQCBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQqIG1f
cGFyZW50OwogfTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50IDogcHVi
bGljIFBsYXRmb3JtQ0FMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgTGF5ZXJDbGllbnQoTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCogcGFyZW50KSA6IG1fcGFyZW50
KHBhcmVudCkge30KQEAgLTEzNyw3ICsxMzMsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6OkxheWVyQ2xpZW50OjpwbGF0Zm9ybUNBTGF5ZXJMYXlvdQog
ICAgIG1fcGFyZW50LT5tX3F0VmlkZW9MYXllci0+c2V0Qm91bmRzKHZpZGVvQm91bmRzKTsKICAg
ICBtX3BhcmVudC0+bV9xdFZpZGVvTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uKTsKIH0KLSNl
bmRpZgogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpW
aXN1YWxDb250ZXh0Q2xpZW50IDogcHVibGljIFFUTW92aWVWaXN1YWxDb250ZXh0Q2xpZW50IHsK
IHB1YmxpYzoKQEAgLTE3NSwxMCArMTcwLDggQEAgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGUKICAg
ICAsIG1fdmlzaWJsZShmYWxzZSkKICAgICAsIG1fbmV3RnJhbWVBdmFpbGFibGUoZmFsc2UpCiAg
ICAgLCBtX21vdmllQ2xpZW50KGFkb3B0UHRyKG5ldyBNZWRpYVBsYXllclByaXZhdGVRdWlja1Rp
bWVWaXN1YWxDb250ZXh0OjpNb3ZpZUNsaWVudCh0aGlzKSkpCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllckNsaWVudChhZG9wdFB0cihuZXcgTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6TGF5ZXJDbGllbnQodGhpcykpKQogICAg
ICwgbV9tb3ZpZVRyYW5zZm9ybShDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5KQotI2VuZGlmCiAg
ICAgLCBtX3Zpc3VhbENvbnRleHRDbGllbnQoYWRvcHRQdHIobmV3IE1lZGlhUGxheWVyUHJpdmF0
ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OlZpc3VhbENvbnRleHRDbGllbnQodGhpcykpKQogICAg
ICwgbV9kZWxheWluZ0xvYWQoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZyhmYWxzZSkK
QEAgLTE5NSwxMSArMTg4LDEwIEBAIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQ6On5NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gbV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVy
T3duaW5nRG9jdW1lbnQoKTsgCiAgICAgaWYgKGRvY3VtZW50KQogICAgICAgICByZXR1cm4gZG9j
dW1lbnQtPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7Ci0jZW5k
aWYKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjEwLDEzICsyMDIsMTEgQEAgUGxhdGZv
cm1NZWRpYSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpwbGF0Zm9y
bU1lZGlhKCkgY29uc3QKICAgICBwLm1lZGlhLnF0TW92aWVWaXN1YWxDb250ZXh0ID0gbV92aXN1
YWxDb250ZXh0LmdldCgpOwogICAgIHJldHVybiBwOwogfQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKIAogUGxhdGZvcm1MYXllciogTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdHJh
bnNmb3JtTGF5ZXIgPyBtX3RyYW5zZm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAwOwogfQot
I2VuZGlmCiAKIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0
OjpyZmMyNjE2RGF0ZVN0cmluZ0Zyb21UaW1lKENGQWJzb2x1dGVUaW1lIHRpbWUpCiB7CkBAIC00
OTgsMTMgKzQ4OCw5IEBAIEludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dDo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGludCB3aWR0aDsKICAgICBpbnQgaGVp
Z2h0OwogICAgIG1fbW92aWUtPmdldE5hdHVyYWxTaXplKHdpZHRoLCBoZWlnaHQpOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBDR1NpemUgb3JpZ2luYWxTaXplID0ge3dp
ZHRoLCBoZWlnaHR9OwogICAgIENHU2l6ZSB0cmFuc2Zvcm1lZFNpemUgPSBDR1NpemVBcHBseUFm
ZmluZVRyYW5zZm9ybShvcmlnaW5hbFNpemUsIG1fbW92aWVUcmFuc2Zvcm0pOwogICAgIHJldHVy
biBJbnRTaXplKGFicyh0cmFuc2Zvcm1lZFNpemUud2lkdGgpLCBhYnModHJhbnNmb3JtZWRTaXpl
LmhlaWdodCkpOwotI2Vsc2UKLSAgICByZXR1cm4gSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKLSNl
bmRpZgogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6
Omhhc1ZpZGVvKCkgY29uc3QKQEAgLTc0MCw3ICs3MjYsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogcCwgY29u
c3QgSQogCiAgICAgUVRQaXhlbEJ1ZmZlciBidWZmZXIgPSBtX3Zpc3VhbENvbnRleHQtPmltYWdl
Rm9yVGltZSgwKTsKICAgICBpZiAoYnVmZmVyLnBpeGVsQnVmZmVyUmVmKCkpIHsKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGlmIChtX3F0VmlkZW9MYXllcikgewog
ICAgICAgICAgICAgLy8gV2UgYXJlIHByb2JhYmx5IGJlaW5nIGFza2VkIHRvIHJlbmRlciB0aGUg
dmlkZW8gaW50byBhIGNhbnZhcywgYnV0IAogICAgICAgICAgICAgLy8gdGhlcmUncyBhIGdvb2Qg
Y2hhbmNlIHRoZSBRVFBpeGVsQnVmZmVyIGlzIG5vdCBBUkdCIGFuZCB0aHVzIGNhbid0IGJlCkBA
IC03NTUsNyArNzQwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0OjpwYWludChHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEkKICAgICAgICAgICAgICAg
ICBidWZmZXIgPSBtX2RlY29tcHJlc3Npb25TZXNzaW9uLT5kZWNvbXByZXNzKGJ1ZmZlcik7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSNlbmRpZgorCiAgICAgICAgIENHSW1hZ2VSZWYgaW1h
Z2UgPSBDcmVhdGVDR0ltYWdlRnJvbVBpeGVsQnVmZmVyKGJ1ZmZlcik7CiAgICAgICAgIAogICAg
ICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHAtPnBsYXRmb3JtQ29udGV4dCgpOwpAQCAtODA3
LDcgKzc5Miw2IEBAIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgUVRDRkRpY3Rpb25hcnlDcmVhdGVX
aXRoRGF0YUNhbGxiYWNrKENGQWxsb2NhdG9yUmVmIGFsbG9jCiAKIHN0YXRpYyBDR0ltYWdlUmVm
IENyZWF0ZUNHSW1hZ2VGcm9tUGl4ZWxCdWZmZXIoUVRQaXhlbEJ1ZmZlciBidWZmZXIpCiB7Ci0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIENHRGF0YVByb3ZpZGVyUmVmIHBy
b3ZpZGVyID0gMDsKICAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSA9IDA7CiAgICAgQ0dJ
bWFnZVJlZiBpbWFnZSA9IDA7CkBAIC04NTYsOSArODQwLDYgQEAgQmFpbDoKICAgICAgICAgQ0dD
b2xvclNwYWNlUmVsZWFzZShjb2xvclNwYWNlKTsKICAKICAgICByZXR1cm4gaW1hZ2U7Ci0jZWxz
ZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIApAQCAtODY3LDcgKzg0OCw2IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6cmV0cmlldmVDdXJyZW50
SW1hZ2UoKQogICAgIGlmICghbV92aXN1YWxDb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fcXRWaWRlb0xheWVyKSB7
CiAKICAgICAgICAgUVRQaXhlbEJ1ZmZlciBidWZmZXIgPSBtX3Zpc3VhbENvbnRleHQtPmltYWdl
Rm9yVGltZSgwKTsKQEAgLTkxMSw3ICs4OTEsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1
aWNrVGltZVZpc3VhbENvbnRleHQ6OnJldHJpZXZlQ3VycmVudEltYWdlKCkKICAgICAgICAgICAg
IGxheWVyLT5zZXROZWVkc0NvbW1pdCgpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0jZW5kaWYK
ICAgICAgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKIAogICAgIG1fdmlzdWFsQ29udGV4dC0+dGFz
aygpOwpAQCAtMTA4MSwxMCArMTA2MCw4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVRCiAgICAg
aWYgKCFtX21vdmllKQogICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3F0VmlkZW9MYXllcikKICAg
ICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcjsKLSNlbmRpZgogCiAgICAgcmV0
dXJuIG1fdmlzdWFsQ29udGV4dCA/IE1lZGlhUmVuZGVyaW5nU29mdHdhcmVSZW5kZXJlciA6IE1l
ZGlhUmVuZGVyaW5nTm9uZTsKIH0KQEAgLTEwOTQsMTAgKzEwNzEsOCBAQCBNZWRpYVBsYXllclBy
aXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5
ZXJQcml2YXRlUQogICAgIGlmICghbV9wbGF5ZXItPmZyYW1lVmlldygpIHx8ICFtX21vdmllKQog
ICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdOb25lOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYg
bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nQ2FuQmVB
Y2NlbGVyYXRlZChtX3BsYXllcikpCiAgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vdmll
TGF5ZXI7Ci0jZW5kaWYKIAogICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ1NvZnR3YXJlUmVuZGVy
ZXI7CiB9CkBAIC0xMTA3LDEwICsxMDgyLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVWaXN1YWxDb250ZXh0OjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKICAgICBNZWRpYVJlbmRl
cmluZ01vZGUgY3VycmVudE1vZGUgPSBjdXJyZW50UmVuZGVyaW5nTW9kZSgpOwogICAgIE1lZGlh
UmVuZGVyaW5nTW9kZSBwcmVmZXJyZWRNb2RlID0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpOwog
Ci0jaWYgIVVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBBU1NFUlQocHJlZmVycmVk
TW9kZSAhPSBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIpOwotI2VuZGlmCi0KICAgICBpZiAoY3Vy
cmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSAmJiBjdXJyZW50TW9kZSAhPSBNZWRpYVJlbmRlcmlu
Z05vbmUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTEyMCwxMCArMTA5MSw4IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmlu
ZygpCiAgICAgaWYgKHByZWZlcnJlZE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdNb3ZpZUxheWVyKQog
ICAgICAgICBjcmVhdGVMYXllckZvck1vdmllKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgaWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nTW92aWVMYXll
ciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nTW92aWVMYXllcikKICAgICAgICAg
bV9wbGF5ZXItPm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNo
YW5nZWQobV9wbGF5ZXIpOwotI2VuZGlmCiAKICAgICBRVFBpeGVsQnVmZmVyOjpUeXBlIGNvbnRl
eHRUeXBlID0gcmVxdWlyZWREbGxzQXZhaWxhYmxlKCkgJiYgcHJlZmVycmVkTW9kZSA9PSBNZWRp
YVJlbmRlcmluZ01vdmllTGF5ZXIgPyBRVFBpeGVsQnVmZmVyOjpDb25maWd1cmVGb3JDQUltYWdl
UXVldWUgOiBRVFBpeGVsQnVmZmVyOjpDb25maWd1cmVGb3JDR0ltYWdlOwogICAgIG1fdmlzdWFs
Q29udGV4dCA9IFFUTW92aWVWaXN1YWxDb250ZXh0OjpjcmVhdGUobV92aXN1YWxDb250ZXh0Q2xp
ZW50LmdldCgpLCBjb250ZXh0VHlwZSk7CkBAIC0xMTMyLDI2ICsxMTAxLDE5IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c2V0VXBWaWRlb1JlbmRlcmlu
ZygpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6dGVh
ckRvd25WaWRlb1JlbmRlcmluZygpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChtX3F0VmlkZW9MYXllcikKICAgICAgICAgZGVzdHJveUxheWVyRm9yTW92aWUo
KTsKLSNlbmRpZgogCiAgICAgbV92aXN1YWxDb250ZXh0ID0gMDsKIH0KIAogYm9vbCBNZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpoYXNTZXRVcFZpZGVvUmVuZGVyaW5n
KCkgY29uc3QKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJu
IG1fcXRWaWRlb0xheWVyIHx8IChjdXJyZW50UmVuZGVyaW5nTW9kZSgpICE9IE1lZGlhUmVuZGVy
aW5nTW92aWVMYXllciAmJiBtX3Zpc3VhbENvbnRleHQpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1
ZTsKLSNlbmRpZgogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQ6OnJldHJpZXZlQW5kUmVzZXRNb3ZpZVRyYW5zZm9ybSgpCiB7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIEZpcnN0IHRoaW5ncyBmaXJzdCwgcmVzZXQgdGhl
IHRvdGFsIG1vdmllIHRyYW5zZm9ybSBzbyB0aGF0CiAgICAgLy8gd2UgY2FuIGJhaWwgb3V0IGVh
cmx5OgogICAgIG1fbW92aWVUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUlkZW50aXR5OwpA
QCAtMTE4MCwxMiArMTE0MiwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6OnJldHJpZXZlQW5kUmVzZXRNb3ZpZVRyYW5zZm9ybSgpCiAgICAgLy8gTXVs
dGlwbHkgdGhlIHR3byB0cmFuc2Zvcm1zIHRvZ2V0aGVyLCB0YWtpbmcgY2FyZSB0byAKICAgICAv
LyBkbyBzbyBpbiB0aGUgY29ycmVjdCBvcmRlciwgdHJhY2sgKiBtb3ZpZSA9IGZpbmFsOgogICAg
IG1fbW92aWVUcmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybUNvbmNhdCh0cmFja1RyYW5zZm9y
bSwgbW92aWVUcmFuc2Zvcm0pOwotI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3JlYXRlTGF5ZXJGb3JNb3ZpZSgpCiB7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFTU0VSVChzdXBwb3J0c0FjY2VsZXJhdGVk
UmVuZGVyaW5nKCkpOwogCiAgICAgaWYgKCFtX21vdmllIHx8IG1fcXRWaWRlb0xheWVyKQpAQCAt
MTIyMCw3ICsxMTgwLDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0OjpjcmVhdGVMYXllckZvck1vdmllKCkKICAgICBtX3RyYW5zZm9ybUxheWVyLT5hcHBl
bmRTdWJsYXllcihtX3F0VmlkZW9MYXllci5nZXQoKSk7CiAgICAgbV90cmFuc2Zvcm1MYXllci0+
c2V0TmVlZHNMYXlvdXQoKTsKICAgICAvLyBUaGUgbGF5ZXIgd2lsbCBnZXQgaG9va2VkIHVwIHZp
YSBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCku
Ci0jZW5kaWYKIAogICAgIC8vIEZpbGwgdGhlIG5ld2x5IGNyZWF0ZWQgbGF5ZXIgd2l0aCBpbWFn
ZSBkYXRhLCBzbyB3ZSdyZSBub3QgbG9va2luZyBhdCAKICAgICAvLyBhbiBlbXB0eSBsYXllciB1
bnRpbCB0aGUgbmV4dCB0aW1lIGEgbmV3IGltYWdlIGlzIGF2YWlsYWJsZSwgd2hpY2ggY291bGQK
QEAgLTEyMzEsNyArMTE5MCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6Y3JlYXRlTGF5ZXJGb3JNb3ZpZSgpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6ZGVzdHJveUxheWVyRm9yTW92aWUoKQogewotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9xdFZpZGVvTGF5ZXIpIHsK
ICAgICAgICAgbV9xdFZpZGVvTGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CiAgICAgICAg
IG1fcXRWaWRlb0xheWVyID0gMDsKQEAgLTEyNDIsMTAgKzEyMDAsOCBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6OmRlc3Ryb3lMYXllckZvck1vdmllKCkK
IAogICAgIGlmIChtX2ltYWdlUXVldWUpCiAgICAgICAgIG1faW1hZ2VRdWV1ZSA9IG51bGxwdHI7
Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6c3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzUmVhZHlGb3JSZW5kZXJpbmcoKTsK
QEAgLTEyNjMsOSArMTIxOSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlz
dWFsQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShib29sIHByaXZhCiAgICAgaWYgKG1f
bW92aWUpCiAgICAgICAgIG1fbW92aWUtPnNldFByaXZhdGVCcm93c2luZ01vZGUobV9wcml2YXRl
QnJvd3NpbmcpOwogfQotICAgIAotI2VuZGlmCi0KIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAppbmRleCAyY2FlOTE3MWRj
OTM1YzBjOGE3ZWQzZjI3YzJhMWJiODg4MTc2NzA3Li5jOTJiNDk2YmM0NmYxNmE3YWJmZGY4ODg0
YjNkMGJmNjNmNDlmZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0LmgKQEAgLTQ5LDExICs0OSw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBJbnRS
ZWN0OwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgUGxhdGZvcm1D
QUxheWVyOwogY2xhc3MgV0tDQUltYWdlUXVldWU7Ci0jZW5kaWYKIAogY2xhc3MgTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dCA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2UgewogcHVibGljOgpAQCAtNjYsOSArNjMsNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxh
dGZvcm1NZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0OwotI2VuZGlmCiAKICAgICBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Q7CiAgICAgYm9v
bCBoYXNWaWRlbygpIGNvbnN0OwpAQCAtMTMxLDEwICsxMjYsOCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwotI2VuZGlmCiAKICAgICBlbnVtIE1lZGlh
UmVuZGVyaW5nTW9kZSB7IE1lZGlhUmVuZGVyaW5nTm9uZSwgTWVkaWFSZW5kZXJpbmdTb2Z0d2Fy
ZVJlbmRlcmVyLCBNZWRpYVJlbmRlcmluZ01vdmllTGF5ZXIgfTsKICAgICBNZWRpYVJlbmRlcmlu
Z01vZGUgY3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25zdDsKQEAgLTE2MiwxMSArMTU1LDkgQEAg
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTW92aWVDbGllbnQ7CiAgICAgT3duUHRyPE1vdmll
Q2xpZW50PiBtX21vdmllQ2xpZW50OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGNsYXNzIExheWVyQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBMYXllckNsaWVudDsK
ICAgICBPd25QdHI8TGF5ZXJDbGllbnQ+IG1fbGF5ZXJDbGllbnQ7Ci0jZW5kaWYKIAogICAgIGNs
YXNzIFZpc3VhbENvbnRleHRDbGllbnQ7CiAgICAgZnJpZW5kIGNsYXNzIFZpc3VhbENvbnRleHRD
bGllbnQ7CkBAIC0xNzgsMTMgKzE2OSwxMSBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFQbGF5ZXIq
IG1fcGxheWVyOwogICAgIFJlZlB0cjxRVE1vdmllPiBtX21vdmllOwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX3F0VmlkZW9M
YXllcjsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX3RyYW5zZm9ybUxheWVyOwogICAg
IE93blB0cjxXS0NBSW1hZ2VRdWV1ZT4gbV9pbWFnZVF1ZXVlOwogICAgIE93blB0cjxRVERlY29t
cHJlc3Npb25TZXNzaW9uPiBtX2RlY29tcHJlc3Npb25TZXNzaW9uOwogICAgIENHQWZmaW5lVHJh
bnNmb3JtIG1fbW92aWVUcmFuc2Zvcm07IAotI2VuZGlmCiAgICAgUmVmUHRyPFFUTW92aWVWaXN1
YWxDb250ZXh0PiBtX3Zpc3VhbENvbnRleHQ7CiAgICAgZmxvYXQgbV9zZWVrVG87CiAgICAgVGlt
ZXI8TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dD4gbV9zZWVrVGltZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUlt
YWdlUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJ
bWFnZVF1ZXVlLmNwcAppbmRleCBlZjhhMWM1NzNjYTVjOTc3OTVhM2JiNGEyMWI2M2UwODcxN2Yx
YzNjLi42MjJhMzY0MmZlOWRiY2RkNWRkODgyZGFkM2UxMDYwYWNjOTQ5YjAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vV0tDQUltYWdlUXVldWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1
ZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
S0NBSW1hZ2VRdWV1ZS5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAj
aW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UvV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KQEAgLTEwMSw1ICs5OSwzIEBAIENGVHlwZVJlZiBXS0NBSW1hZ2VRdWV1
ZTo6Z2V0KCkKIH0KIAogfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9XS0NBSW1hZ2VRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmgKaW5kZXggM2QyNWI0OGE5NmY5ZDUw
OWQ1MWY1NjZhM2VjYjc2YWIxNDQ1ZTE2ZS4uMjU2MDc2NTBmZmQyZTMzMmZjMTQyYWIwYmRhNTQw
YWY3ZjUwMDI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1dLQ0FJbWFnZVF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL1dLQ0FJbWFnZVF1ZXVlLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV0tDQUlt
YWdlUXVldWVfaAogI2RlZmluZSBXS0NBSW1hZ2VRdWV1ZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0KIHR5cGVkZWYgY29uc3Qgdm9pZCAqIENGVHlwZVJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IF9fQ0ZEaWN0aW9uYXJ5ICogQ0ZEaWN0aW9uYXJ5UmVmOwogCkBAIC04
OCw1ICs4NiwzIEBAIHByaXZhdGU6CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKaW5kZXggZGNlYzQ5YzUz
MzJhMjFmMzUwZWZhN2E1YTYzMzNkNmE1NDdiODU2MC4uMjEzNDlhMGE4NWYzN2VlNTNkYWZhMjBi
OGEyYjQxNWIxZTMyZWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbGJhclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbGJhclRoZW1lTWFjLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBi
b29sIGlzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllcigpOwogICAgIHN0YXRpYyB2b2lkIHNldElz
Q3VycmVudGx5RHJhd2luZ0ludG9MYXllcihib29sKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorI2lmIEVOQUJMRShSVUJCRVJf
QkFORElORykKICAgICBzdGF0aWMgdm9pZCBzZXRVcE92ZXJoYW5nQXJlYUJhY2tncm91bmQoQ0FM
YXllciAqLCBjb25zdCBDb2xvciYgY3VzdG9tQmFja2dyb3VuZENvbG9yID0gQ29sb3IoKSk7CiAg
ICAgc3RhdGljIHZvaWQgcmVtb3ZlT3ZlcmhhbmdBcmVhQmFja2dyb3VuZChDQUxheWVyICopOwog
CkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHJh
Z0RvY3VtZW50SW5zdGVhZE9mVGh1bWIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBpbnQgc2Nyb2xsYmFyUGFydFRvSElQcmVzc2VkU3RhdGUo
U2Nyb2xsYmFyUGFydCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEVO
QUJMRShSVUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgdmly
dHVhbCB2b2lkIHNldFVwT3ZlcmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllcios
IGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVudFNo
YWRvd0xheWVyKEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDllYWMxNWU4
ZjQ0OTg1Y2Q2MjEzMTIxMjgzMzdlY2Q2NjIxNWEwZGEuLjc3Yjk2YTYxZWFlMWJkYzMxNjNmZTU0
N2M4OWY3MGY4NTZlMzRkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTUzMCw3ICs1MzAsNyBAQCBib29sIFNjcm9sbGJhclRo
ZW1lTWFjOjpwYWludChTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyLCBHcmFwaGljc0Nv
bnRleHQqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIEVOQUJMRShSVUJCRVJfQkFORElORykKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpCiBzdGF0aWMgUmV0YWluUHRyPENHQ29sb3JSZWY+IGxpbmVuQmFja2dyb3VuZENvbG9yKCkK
IHsKICAgICBOU0ltYWdlICppbWFnZSA9IFtOU0NvbG9yIF9saW5lblBhdHRlcm5JbWFnZV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgKaW5kZXggODRjZDVmODFiMWQ1OWMx
YTg1ZTRhODk4NTMzMjQ0YWUwMTY4YjE1Ni4uYjQyZDE0NGFkOWM5NjA1ODVjNTg3ZmFlNDVlYWNl
ZDBhZTY2NmY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaApAQCAt
NDQsMTQgKzQ0LDEyIEBAIGNsYXNzIFNjcm9sbGJhcjsKIC8vIEl0J3MgaW50ZW5kZWQgYXMgYSBz
dG9wZ2FwIG1lYXN1cmUgdW50aWwgd2UgY2FuIG1lcmdlIGFsbCBwbHVnLWluIHZpZXdzIGludG8g
YSBzaW5nbGUgcGx1Zy1pbiB2aWV3LgogY2xhc3MgUGx1Z2luVmlld0Jhc2UgOiBwdWJsaWMgV2lk
Z2V0IHsKIHB1YmxpYzoKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQog
I2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFByb3ZpZGVQbHVnaW5MYXll
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFBsdWdp
bkxheWVyKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaFBsdWdpbkxheWVyKCkgeyB9CiAj
ZW5kaWYKLSNlbmRpZgogCiAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3Qo
SlNDOjpKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3Rv
cmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCBmNjlkMzI0NGMxYTk4MTgxMjRk
ZmJkNmI5OGEyMGMyYTMyYTI1M2RlLi5hMDBmODg4YmUxZjBmYmQyNjVjZGI2N2Y0YWZkOWRmNjQx
ODRhM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29u
dHJvbGxlci5jcHAKQEAgLTI2Myw3ICsyNjMsNiBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVy
Ojp1cGRhdGVGbG93VGhyZWFkc0ludG9GaW5hbFBoYXNlKCkKICAgICB9CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRh
dGVSZW5kZXJGbG93VGhyZWFkTGF5ZXJzSWZOZWVkZWQoKQogewogICAgIC8vIFdhbGsgdGhlIGZs
b3cgY2hhaW4gaW4gcmV2ZXJzZSBvcmRlciBiZWNhdXNlIFJlbmRlclJlZ2lvbnMgbWlnaHQgYmVj
b21lIFJlbmRlckxheWVycyBmb3IgdGhlIGZvbGxvd2luZyBmbG93IHRocmVhZHMuCkBAIC0yNzIs
NyArMjcxLDYgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlUmVuZGVyRmxvd1Ro
cmVhZExheWVyc0lmTmVlZGVkKCkKICAgICAgICAgZmxvd1JlbmRlcmVyLT51cGRhdGVBbGxMYXll
clRvUmVnaW9uTWFwcGluZ3NJZk5lZWRlZCgpOwogICAgIH0KIH0KLSNlbmRpZgogCiBib29sIEZs
b3dUaHJlYWRDb250cm9sbGVyOjppc0NvbnRlbnRFbGVtZW50UmVnaXN0ZXJlZFdpdGhBbnlOYW1l
ZEZsb3coY29uc3QgRWxlbWVudCYgY29udGVudEVsZW1lbnQpIGNvbnN0CiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCmluZGV4IGUwMDQ2OTk1
NTQ4OGI3NWZiOWY5ZjExMmI1ZWFjZmRlNDMyY2VlOWYuLmViNGRhYzgzM2I4YmE5NGJkZTFmMmU5
NTM5ZjE5ZGQzYTNiYTQwZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
bG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93
VGhyZWFkQ29udHJvbGxlci5oCkBAIC04NSw5ICs4NSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGVz
ZSBsYXllcnMgYXJlIHBhaW50ZWQgYW5kIGhpdC10ZXN0ZWQgYnkgUmVuZGVyVmlldwogICAgIHZv
aWQgY29sbGVjdEZpeGVkUG9zaXRpb25lZExheWVycyhWZWN0b3I8UmVuZGVyTGF5ZXIqPiYgZml4
ZWRQb3NMYXllcnMpIGNvbnN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHZvaWQgdXBkYXRlUmVuZGVyRmxvd1RocmVhZExheWVyc0lmTmVlZGVkKCk7Ci0jZW5kaWYK
IAogI2lmbmRlZiBOREVCVUcKICAgICBib29sIGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291
bnRDb25zaXN0ZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDIyZGZjZDZhNDAyZTg2NDQ3ZGQyYjNkZWEzZDRjZmNiNmZhNjQ3MzUuLjg5ZDBjMjQ0
MjBkMjZkNzkwNDgyNWJjOGNkNThmM2I4NjM0ZGQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5l
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclJl
Z2lvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCkBAIC01OSwxMCArNjAsNiBAQAogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3
dGYvU3RhY2tTdGF0cy5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotI2lu
Y2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9STShJ
T1MpCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNlbmRpZgpAQCAtMjc1LDEwICsyNzIsOCBAQCB2
b2lkIFJlbmRlckJveDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSYgbmV3U3R5bAogICAgICAgICAvLyB0aGUgY2FudmFzLiBJc3N1ZSBmdWxs
IHJlcGFpbnQsIHdoZW4gb3VyIHN0eWxlIGNoYW5nZXMgc3Vic3RhbnRpYWxseS4KICAgICAgICAg
aWYgKGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNlUmVwYWludCAmJiAoaXNSb290KCkgfHwgaXNCb2R5
KCkpKSB7CiAgICAgICAgICAgICB2aWV3KCkucmVwYWludFJvb3RDb250ZW50cygpOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgIGlmIChvbGRTdHlsZS0+aGFz
RW50aXJlbHlGaXhlZEJhY2tncm91bmQoKSAhPSBuZXdTdHlsZS5oYXNFbnRpcmVseUZpeGVkQmFj
a2dyb3VuZCgpKQogICAgICAgICAgICAgICAgIHZpZXcoKS5jb21wb3NpdG9yKCkucm9vdEZpeGVk
QmFja2dyb3VuZHNDaGFuZ2VkKCk7Ci0jZW5kaWYKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgLy8gV2hlbiBhIGxheW91dCBoaW50IGhhcHBlbnMgYW5kIGFuIG9iamVjdCdzIHBvc2l0aW9u
IHN0eWxlIGNoYW5nZXMsIHdlIGhhdmUgdG8gZG8gYSBsYXlvdXQKQEAgLTEzNDYsMTAgKzEzNDEs
OCBAQCBzdGF0aWMgYm9vbCBpc0NhbmRpZGF0ZUZvck9wYXF1ZW5lc3NUZXN0KGNvbnN0IFJlbmRl
ckJveCYgY2hpbGRCb3gpCiAgICAgaWYgKCFjaGlsZEJveC53aWR0aCgpIHx8ICFjaGlsZEJveC5o
ZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChSZW5kZXJMYXllciogY2hp
bGRMYXllciA9IGNoaWxkQm94LmxheWVyKCkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgICAgIGlmIChjaGlsZExheWVyLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogICAgICAgICAvLyBGSVhNRTogRGVhbCB3aXRoIHot
aW5kZXguCiAgICAgICAgIGlmICghY2hpbGRTdHlsZS5oYXNBdXRvWkluZGV4KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTQwLDcgKzE1MzMsNiBAQCB2b2lkIFJlbmRlckJveDo6
cGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IENvbG9yJiBj
LCBjb25zdAogICAgIHBhaW50RmlsbExheWVyRXh0ZW5kZWQocGFpbnRJbmZvLCBjLCBmaWxsTGF5
ZXIsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCAwLCBMYXlvdXRTaXplKCksIG9wLCBiYWNrZ3JvdW5k
T2JqZWN0KTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHN0YXRpYyBi
b29sIGxheWVyc1VzZUltYWdlKFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgRmlsbExheWVy
KiBsYXllcnMpCiB7CiAgICAgZm9yIChjb25zdCBGaWxsTGF5ZXIqIGN1ckxheWVyID0gbGF5ZXJz
OyBjdXJMYXllcjsgY3VyTGF5ZXIgPSBjdXJMYXllci0+bmV4dCgpKSB7CkBAIC0xNTUwLDcgKzE1
NDIsNiBAQCBzdGF0aWMgYm9vbCBsYXllcnNVc2VJbWFnZShXcmFwcGVkSW1hZ2VQdHIgaW1hZ2Us
IGNvbnN0IEZpbGxMYXllciogbGF5ZXJzKQogCiAgICAgcmV0dXJuIGZhbHNlOwogfQotI2VuZGlm
CiAKIHZvaWQgUmVuZGVyQm94OjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBj
b25zdCBJbnRSZWN0KikKIHsKQEAgLTE1NjcsOCArMTU1OCw2IEBAIHZvaWQgUmVuZGVyQm94Ojpp
bWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBJbnRSZWN0KikKICAgICBp
ZiAoIWRpZEZ1bGxSZXBhaW50KQogICAgICAgICByZXBhaW50TGF5ZXJSZWN0c0ZvckltYWdlKGlt
YWdlLCBzdHlsZSgpLm1hc2tMYXllcnMoKSwgZmFsc2UpOwogCi0KLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFpc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xNTc2LDcgKzE1NjUsNiBAQCB2b2lkIFJlbmRlckJveDo6aW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgSW50UmVjdCopCiAgICAgICAgIGxheWVyKCktPmNv
bnRlbnRDaGFuZ2VkKE1hc2tJbWFnZUNoYW5nZWQpOwogICAgIGlmIChsYXllcnNVc2VJbWFnZShp
bWFnZSwgc3R5bGUoKS5iYWNrZ3JvdW5kTGF5ZXJzKCkpKQogICAgICAgICBsYXllcigpLT5jb250
ZW50Q2hhbmdlZChCYWNrZ3JvdW5kSW1hZ2VDaGFuZ2VkKTsKLSNlbmRpZgogfQogCiBib29sIFJl
bmRlckJveDo6cmVwYWludExheWVyUmVjdHNGb3JJbWFnZShXcmFwcGVkSW1hZ2VQdHIgaW1hZ2Us
IGNvbnN0IEZpbGxMYXllciogbGF5ZXJzLCBib29sIGRyYXdpbmdCYWNrZ3JvdW5kKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXgg
NzY3ZmE5MTliYjQxNjBkZmE0NTMwNDQyMjJjYWIxMDFjZjdiMGI5YS4uYTM4ODcyZWVjOTQ2N2Ji
YTJlY2IzMDVlMmUxZDAzYjIxY2QyYThhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUg
IlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUmVnaW9uLmgiCkBAIC00NiwxMSArNDgsNiBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJM
YXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC04OSw3ICs4Niw2IEBAIHZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHN0YXRlKQogICAgICAg
ICBjb250YWluaW5nQmxvY2stPnNldFNlbGVjdGlvblN0YXRlKHN0YXRlKTsKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNv
bnRlbnRDaGFuZ2VkKENvbnRlbnRDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCiB7CiAgICAgaWYgKCFo
YXNMYXllcigpKQpAQCAtMTUxLDcgKzE0Nyw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKQogICAgIEFTU0VSVChpc0NvbXBvc2l0ZWQo
KSk7CiAgICAgbGF5ZXIoKS0+YmFja2luZygpLT5zdXNwZW5kQW5pbWF0aW9ucyh0aW1lKTsKIH0K
LSNlbmRpZgogCiBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzaG91bGRQYWludEF0TG93UXVh
bGl0eShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIEltYWdlKiBpbWFnZSwgY29uc3Qgdm9pZCog
bGF5ZXIsIGNvbnN0IExheW91dFNpemUmIHNpemUpCiB7CkBAIC0xMDI4LDcgKzEwMjMsNiBAQCBJ
bnRQb2ludCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6QmFja2dyb3VuZEltYWdlR2VvbWV0cnk6OnJl
bGF0aXZlUGhhc2UoKSBjb25zdAogCiBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpmaXhlZEJh
Y2tncm91bmRQYWludHNJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAogewotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIWlzUm9vdCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTEwNDAsOSArMTAzNCw2IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OmZpeGVkQmFja2dyb3VuZFBhaW50c0luTG9jYWxDb29yZGluYXRlcygpIGNvbnN0CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiByb290TGF5ZXItPmJhY2tpbmcoKS0+YmFja2dy
b3VuZExheWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZCgpOwotI2Vsc2UKLSAgICByZXR1cm4g
ZmFsc2U7Ci0jZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSBpbnQgZ2V0U3BhY2UoaW50IGFyZWFT
aXplLCBpbnQgdGlsZVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oCmluZGV4IDZlZDIyNjk5MTM2NjBmNmZlODE5MWViM2YzNjdjODAxNmMy
ZDdiMDcuLjU3MmIzNTcxYmM5N2Q1NDQyNWNkYWQyNDEzM2U3MTQ5NjMxOGQ5YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0xODIs
NyArMTgyLDYgQEAgcHVibGljOgogICAgIGJvb2wgY2FuSGF2ZUJveEluZm9JblJlZ2lvbigpIGNv
bnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nKCkgJiYgIWlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmUo
KSAmJiAhaGFzQ29sdW1ucygpICYmICFpc1RhYmxlQ2VsbCgpICYmIGlzUmVuZGVyQmxvY2soKSAm
JiAhaXNSZW5kZXJTVkdCbG9jaygpOyB9CiAKICAgICB2b2lkIGdldEdlb21ldHJ5Rm9yQmFja2dy
b3VuZEltYWdlKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyLCBJ
bnRSZWN0JiBkZXN0UmVjdCwgSW50UG9pbnQmIHBoYXNlLCBJbnRTaXplJiB0aWxlU2l6ZSkgY29u
c3Q7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgY29udGVudENo
YW5nZWQoQ29udGVudENoYW5nZVR5cGUpOwogICAgIGJvb2wgaGFzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpIGNvbnN0OwogCkBAIC0xOTUsNyArMTk0LDYgQEAgcHVibGljOgogICAgIHZvaWQgYW5p
bWF0aW9uRmluaXNoZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoZG91YmxlIHRpbWUgPSAwKTsKLSNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgUmVu
ZGVyQm94TW9kZWxPYmplY3QoRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+LCB1bnNpZ25l
ZCBiYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcAppbmRleCAxMDg3OTFkYjM2NjliOGE2ZjQ3MzdhNjRiNjU2MWFiZWZjZjljNDFlLi4zMThj
NjYwNTBlNzA5MmY4NGIyNjQzZGI3YzRmNDQ5ZTMwMDgzODE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGluZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKQEAgLTU2LDEwICs1Nyw2IEBA
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0jaW5jbHVkZSAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIFJl
bmRlckVsZW1lbnQ6OnNfYWZmZWN0c1BhcmVudEJsb2NrID0gZmFsc2U7CkBAIC0yMzcsNyArMjM0
LDYgQEAgUmVuZGVyU3R5bGUqIFJlbmRlckVsZW1lbnQ6OmNhY2hlZEZpcnN0TGluZVN0eWxlKCkg
Y29uc3QKIAogU3R5bGVEaWZmZXJlbmNlIFJlbmRlckVsZW1lbnQ6OmFkanVzdFN0eWxlRGlmZmVy
ZW5jZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgdW5zaWduZWQgY29udGV4dFNlbnNpdGl2ZVByb3Bl
cnRpZXMpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8v
IElmIHRyYW5zZm9ybSBjaGFuZ2VkLCBhbmQgd2UgYXJlIG5vdCBjb21wb3NpdGVkLCBuZWVkIHRv
IGRvIGEgbGF5b3V0LgogICAgIGlmIChjb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyAmIENvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0eVRyYW5zZm9ybSkgewogICAgICAgICAvLyBUZXh0IG5vZGVzIHNo
YXJlIHN0eWxlIHdpdGggdGhlaXIgcGFyZW50cyBidXQgdHJhbnNmb3JtcyBkb24ndCBhcHBseSB0
byB0aGVtLApAQCAtMjgyLDkgKzI3OCw2IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJFbGVtZW50
OjphZGp1c3RTdHlsZURpZmZlcmVuY2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIHVuc2lnCiAgICAg
ICAgIGlmIChoYXNMYXllcigpICE9IHRvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCh0aGlzKS0+cmVx
dWlyZXNMYXllcigpKQogICAgICAgICAgICAgZGlmZiA9IFN0eWxlRGlmZmVyZW5jZUxheW91dDsK
ICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0U2Vuc2l0aXZlUHJvcGVydGll
cyk7Ci0jZW5kaWYKIAogICAgIC8vIElmIHdlIGhhdmUgbm8gbGF5ZXIoKSwganVzdCB0cmVhdCBh
IFJlcGFpbnRMYXllciBoaW50IGFzIGEgbm9ybWFsIFJlcGFpbnQuCiAgICAgaWYgKGRpZmYgPT0g
U3R5bGVEaWZmZXJlbmNlUmVwYWludExheWVyICYmICFoYXNMYXllcigpKQpAQCAtMzg1LDEzICsz
NzgsMTEgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzZXRTdHlsZShQYXNzUmVmPFJlbmRlclN0eWxl
PiBzdHlsZSkKIAogICAgIGlmICgmbV9zdHlsZS5nZXQoKSA9PSAmc3R5bGUuZ2V0KCkpIHsKICAg
ICAgICAgLy8gRklYTUU6IENhbiB3ZSBjaGFuZ2UgdGhpbmdzIHNvIHdlIG5ldmVyIGhpdCB0aGlz
IGNvZGUgcGF0aD8KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIC8v
IFdlIG5lZWQgdG8gcnVuIHRocm91Z2ggYWRqdXN0U3R5bGVEaWZmZXJlbmNlKCkgZm9yIGlmcmFt
ZXMsIHBsdWdpbnMsIGFuZCBjYW52YXMgc28KICAgICAgICAgLy8gc3R5bGUgc2hhcmluZyBpcyBk
aXNhYmxlZCBmb3IgdGhlbS4gVGhhdCBzaG91bGQgZW5zdXJlIHRoYXQgd2UgbmV2ZXIgaGl0IHRo
aXMgY29kZSBwYXRoLgogICAgICAgICBBU1NFUlQoIWlzUmVuZGVySUZyYW1lKCkpOwogICAgICAg
ICBBU1NFUlQoIWlzRW1iZWRkZWRPYmplY3QoKSk7CiAgICAgICAgIEFTU0VSVCghaXNDYW52YXMo
KSk7Ci0jZW5kaWYKICAgICAgICAgc3R5bGUuZHJvcFJlZigpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtODg4LDggKzg3OSw2IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAKICAgICBi
b29sIG5ld1N0eWxlU2xvd1Njcm9sbCA9IHJlcGFpbnRGaXhlZEJhY2tncm91bmRzT25TY3JvbGwg
JiYgbmV3U3R5bGUuaGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2UoKTsKICAgICBib29sIG9sZFN0eWxl
U2xvd1Njcm9sbCA9IG9sZFN0eWxlICYmIHJlcGFpbnRGaXhlZEJhY2tncm91bmRzT25TY3JvbGwg
JiYgbV9zdHlsZS0+aGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2UoKTsKLQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBib29sIGRyYXdzUm9vdEJhY2tncm91bmQgPSBpc1Jvb3Qo
KSB8fCAoaXNCb2R5KCkgJiYgIXJlbmRlcmVySGFzQmFja2dyb3VuZChkb2N1bWVudCgpLmRvY3Vt
ZW50RWxlbWVudCgpLT5yZW5kZXJlcigpKSk7CiAgICAgaWYgKGRyYXdzUm9vdEJhY2tncm91bmQg
JiYgcmVwYWludEZpeGVkQmFja2dyb3VuZHNPblNjcm9sbCkgewogICAgICAgICBpZiAodmlldygp
LmNvbXBvc2l0b3IoKS5zdXBwb3J0c0ZpeGVkUm9vdEJhY2tncm91bmRDb21wb3NpdGluZygpKSB7
CkBAIC05MDAsNyArODg5LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAg
ICAgICBvbGRTdHlsZVNsb3dTY3JvbGwgPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KLSNlbmRp
ZgorCiAgICAgaWYgKG9sZFN0eWxlU2xvd1Njcm9sbCAhPSBuZXdTdHlsZVNsb3dTY3JvbGwpIHsK
ICAgICAgICAgaWYgKG9sZFN0eWxlU2xvd1Njcm9sbCkKICAgICAgICAgICAgIHZpZXcoKS5mcmFt
ZVZpZXcoKS5yZW1vdmVTbG93UmVwYWludE9iamVjdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IGNmOTAzOTAxMDY5
NGJjMWFlNGQ0MjUxOTcxYjY0ZmI0MGEwNmZhODYuLjA0ZWQzZDJhNjM1MmJhODZlM2IwOGJmOTBh
MThmM2QwNmQwODVkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMTIzLDcgKzEyMyw2IEBAIFJlbmRlclB0cjxSZW5kZXJF
bWJlZGRlZE9iamVjdD4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldChIVE1M
QXBwbGV0CiAgICAgcmV0dXJuIHJlbmRlcmVyOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWlyZXNMYXllcigpIGNv
bnN0CiB7CiAgICAgaWYgKFJlbmRlcldpZGdldDo6cmVxdWlyZXNMYXllcigpKQpAQCAtMTQxLDcg
KzE0MCw2IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSBjb25zdAogICAgIHJldHVybiB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQbHVn
aW5WaWV3QmFzZSgpICYmIHRvUGx1Z2luVmlld0Jhc2Uod2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVy
KCk7CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBTdHJp
bmcgdW5hdmFpbGFibGVQbHVnaW5SZXBsYWNlbWVudFRleHQoUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRl
eCBiNTVkMjEzNzBhNWYyNmM3YzZiM2JiYWY5ZDVmOGUwZTA2MjJiYmVmLi41MzhjNzczYWRhOWEx
YTgyZjI5ZjFlMTNiYmIwZmY3OTIzYTI5OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtNTgsOSArNTgsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzUmVwbGFjZW1lbnRPYnNjdXJlZCgpIGNvbnN0OwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZygpIGNvbnN0OwotI2VuZGlmCiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRS
ZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIGZpbmFsOwpA
QCAtNzgsOSArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRTbmFwc2hvdEltYWdlKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIGZp
bmFsOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7Ci0jZW5kaWYKIAogICAgIHZp
cnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGUgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApp
bmRleCAwNWQyYTJlMmY0MDY5YjViNDZmZTA1YWU1NDY1ZmRhMGNlNmQzNWYwLi42ZmJiOWFkNGJi
Yjc3YzZjNTU0YmFkNjIyNWJmZWY1ZTljYWEwNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC02Miw5ICs2Miw3IEBAIFJlbmRlckZsb3dU
aHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsCiAgICAgLCBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAg
LCBtX2xheW91dFBoYXNlKExheW91dFBoYXNlTWVhc3VyZUNvbnRlbnQpCiAgICAgLCBtX25lZWRz
VHdvUGhhc2VzTGF5b3V0KGZhbHNlKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAsIG1fbGF5ZXJzVG9SZWdpb25NYXBwaW5nc0RpcnR5KHRydWUpCi0jZW5kaWYKIHsKICAg
ICBzZXRGbG93VGhyZWFkU3RhdGUoSW5zaWRlT3V0T2ZGbG93VGhyZWFkKTsKIH0KQEAgLTIyNiw3
ICsyMjQsNiBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiAgICAgaWYgKGxhc3RS
ZWdpb24oKSkKICAgICAgICAgbGFzdFJlZ2lvbigpLT5leHBhbmRUb0VuY29tcGFzc0Zsb3dUaHJl
YWRDb250ZW50c0lmTmVlZGVkKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgLy8gSWYgdGhlcmUgYXJlIGNoaWxkcmVuIGxheWVycyBpbiB0aGUgUmVuZGVyRmxvd1Ro
cmVhZCB0aGVuIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlCiAgICAgLy8gY29tcG9zaXRl
ZCBjaGlsZHJlbiBsYXllcnMgd2lsbCBsYW5kIGluIHRoZSByaWdodCBSZW5kZXJSZWdpb25zLiBB
bHNvLCB0aGUgcGFyZW50IFJlbmRlclJlZ2lvbnMKICAgICAvLyB3aWxsIGdldCBSZW5kZXJMYXll
cnMgYW5kIGJlY29tZSBjb21wb3NpdGVkIGFzIG5lZWRlZC4KQEAgLTIzOCw3ICsyMzUsNiBAQCB2
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmxheW91dCgpCiAgICAgICAgIGlmICh1cGRhdGVBbGxMYXll
clRvUmVnaW9uTWFwcGluZ3MoKSkKICAgICAgICAgICAgIGxheWVyKCktPmNvbXBvc2l0b3IoKS5z
ZXRDb21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBp
ZiAoc2hvdWxkRGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCgpKQogICAgICAgICBkaXNw
YXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7CkBAIC0yNDcsNyArMjQzLDYgQEAgdm9pZCBS
ZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQoKQogICAgICAgICBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCgpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9v
bCBSZW5kZXJGbG93VGhyZWFkOjpoYXNDb21wb3NpdGluZ1JlZ2lvbkRlc2NlbmRhbnQoKSBjb25z
dAogewogICAgIGZvciAoYXV0byYgcmVnaW9uIDogbV9yZWdpb25MaXN0KQpAQCAtMzUwLDcgKzM0
NSw2IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlQWxsTGF5ZXJUb1JlZ2lvbk1hcHBp
bmdzKCkKIAogICAgIHJldHVybiBuZWVkc0xheWVyVXBkYXRlOwogfQotI2VuZGlmCiAKIGJvb2wg
UmVuZGVyRmxvd1RocmVhZDo6Y29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRl
eCBmMzk2YjlhM2ZkMzI2YzYzMmU2OTE2YmYzMjgwN2Y0Yjg2OWU3NjI1Li40YTJkNzZmZTQwOGY1
MmU0Njk4ZjY5YWRiOTc5ZDExMDM2MGRmZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTQ3LDEwICs0Nyw4IEBAIGNsYXNzIFJlbmRlclJlZ2lv
bjsKIAogdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJSZWdpb24qPiBSZW5kZXJSZWdpb25MaXN0
OwogdHlwZWRlZiBWZWN0b3I8UmVuZGVyTGF5ZXIqPiBSZW5kZXJMYXllckxpc3Q7Ci0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdHlwZWRlZiBIYXNoTWFwPFJlbmRlck5hbWVkRmxv
d0ZyYWdtZW50KiwgUmVuZGVyTGF5ZXJMaXN0PiBSZWdpb25Ub0xheWVyTGlzdE1hcDsKIHR5cGVk
ZWYgSGFzaE1hcDxSZW5kZXJMYXllciosIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Kj4gTGF5ZXJU
b1JlZ2lvbk1hcDsKLSNlbmRpZgogCiAvLyBSZW5kZXJGbG93VGhyZWFkIGlzIHVzZWQgdG8gY29s
bGVjdCBhbGwgdGhlIHJlbmRlciBvYmplY3RzIHRoYXQgcGFydGljaXBhdGUgaW4gYQogLy8gZmxv
dyB0aHJlYWQuIEl0IHdpbGwgYWxzbyBoZWxwIGluIGRvaW5nIHRoZSBsYXlvdXQuIEhvd2V2ZXIs
IGl0IHdpbGwgbm90IHJlbmRlcgpAQCAtMTc5LDcgKzE3Nyw2IEBAIHB1YmxpYzoKICAgICBib29s
IG5lZWRzVHdvUGhhc2VzTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1R3b1BoYXNlc0xh
eW91dDsgfQogICAgIHZvaWQgY2xlYXJOZWVkc1R3b1BoYXNlc0xheW91dCgpIHsgbV9uZWVkc1R3
b1BoYXNlc0xheW91dCA9IGZhbHNlOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgLy8gV2hldGhlciBhbnkgb2YgdGhlIHJlZ2lvbnMgaGFzIGEgY29tcG9zaXRpbmcg
ZGVzY2VuZGFudC4KICAgICBib29sIGhhc0NvbXBvc2l0aW5nUmVnaW9uRGVzY2VuZGFudCgpIGNv
bnN0OwogCkBAIC0xOTUsNyArMTkyLDYgQEAgcHVibGljOgogICAgIFJlbmRlck5hbWVkRmxvd0Zy
YWdtZW50KiByZWdpb25Gb3JDb21wb3NpdGVkTGF5ZXIoUmVuZGVyTGF5ZXImKTsgLy8gQnkgbWVh
bnMgb2YgZ2V0UmVnaW9uUmFuZ2VGb3JCb3ggb3IgcmVnaW9uQXRCbG9ja09mZnNldC4KICAgICBS
ZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogY2FjaGVkUmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKFJl
bmRlckxheWVyJik7CiAKLSNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0c0dyYXBoaWNz
TGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Q7CiAKICAgICB2b2lkIHB1c2hGbG93VGhyZWFkTGF5
b3V0U3RhdGUoY29uc3QgUmVuZGVyT2JqZWN0Jik7CkBAIC0yMzYsNyArMjMyLDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgTGF5b3V0UmVjdCBjb21wdXRlUmVnaW9uQ2xpcHBpbmdSZWN0KGNvbnN0IExh
eW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIHVwZGF0ZUFsbExh
eWVyVG9SZWdpb25NYXBwaW5ncygpOwogCiAgICAgLy8gVHJpZ2dlcnMgYSBsYXllcnMnIHVwZGF0
ZSBpZiBhIGxheWVyIGhhcyBtb3ZlZCBmcm9tIGEgcmVnaW9uIHRvIGFub3RoZXIgc2luY2UgdGhl
IGxhc3QgdXBkYXRlLgpAQCAtMjQ0LDcgKzIzOSw2IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJO
YW1lZEZsb3dGcmFnbWVudCogcmVnaW9uRm9yQ29tcG9zaXRlZExheWVyKFJlbmRlckxheWVyKik7
CiAgICAgYm9vbCB1cGRhdGVMYXllclRvUmVnaW9uTWFwcGluZ3MoKTsKICAgICB2b2lkIHVwZGF0
ZVJlZ2lvbkZvclJlbmRlckxheWVyKFJlbmRlckxheWVyKiwgTGF5ZXJUb1JlZ2lvbk1hcCYsIFJl
Z2lvblRvTGF5ZXJMaXN0TWFwJiwgYm9vbCYgbmVlZHNMYXllclVwZGF0ZSk7Ci0jZW5kaWYKIAog
ICAgIHZvaWQgc2V0RGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChib29sIHZhbHVlKSB7
IG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudCA9IHZhbHVlOyB9CiAgICAgYm9vbCBz
aG91bGREaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkgeyByZXR1cm4gbV9kaXNwYXRj
aFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50OyB9CkBAIC0zMjIsMTMgKzMxNiwxMSBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIFJlbmRlclJlZ2lvbiogbV9yZXN1bHQ7CiAgICAgfTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBUbyBlYXNpbHkgZmluZCB0aGUgcmVnaW9u
IHdoZXJlIGEgbGF5ZXIgc2hvdWxkIGJlIHBhaW50ZWQuCiAgICAgT3duUHRyPExheWVyVG9SZWdp
b25NYXA+IG1fbGF5ZXJUb1JlZ2lvbk1hcDsKIAogICAgIC8vIFRvIGVhc2lseSBmaW5kIHRoZSBs
aXN0IG9mIGxheWVycyB0aGF0IHBhaW50IGluIGEgcmVnaW9uLgogICAgIE93blB0cjxSZWdpb25U
b0xheWVyTGlzdE1hcD4gbV9yZWdpb25Ub0xheWVyTGlzdE1hcDsKLSNlbmRpZgogCiAgICAgLy8g
TWFwIGEgYm94IHRvIHRoZSBsaXN0IG9mIHJlZ2lvbnMgaW4gd2hpY2ggdGhlIGJveCBpcyByZW5k
ZXJlZC4KICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94KiwgUmVuZGVyUmVnaW9u
UmFuZ2U+IFJlbmRlclJlZ2lvblJhbmdlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IGUyNjc1NmJjNWUzYWUzM2YyOTEwMTU5OTIwYzk0
ODA0NzY4ZDQxYWUuLjk3ZThlZmQzNWI0NTBiM2UyODQzNzA1OWFjNGRlYzc5YjBiYTNiZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTMw
LDEwICszMCw3IEBACiAKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1
ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggODZlMzg3
ZWNlYzk1ZDZmYTRhZjYzZjkwYzQxNmE5ZTlhM2ZjZDJmNy4uNTI2NDM3NWVmYzFlMDAzODZiNTg0
MjIzZDViZDQ4MTQyNWQxZmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCkBAIC0zNTIsMTAgKzM1Miw4IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlRGltZW5z
aW9uc0NoYW5nZWQoYm9vbCBpbWFnZVNpemVDaGFuZ2VkLCBjb25zdCBJbnRSZWN0KiByCiAgICAg
ICAgIAogICAgICAgICByZXBhaW50UmVjdGFuZ2xlKHJlcGFpbnRSZWN0KTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgLy8gVGVsbCBhbnkgcG90ZW50aWFsIGNv
bXBvc2l0aW5nIGxheWVycyB0aGF0IHRoZSBpbWFnZSBuZWVkcyB1cGRhdGluZy4KICAgICAgICAg
Y29udGVudENoYW5nZWQoSW1hZ2VDaGFuZ2VkKTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAtMzY2
LDE1ICszNjQsMTEgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqIG5ld0ltYWdlKQogCiAgICAgaW52YWxpZGF0ZUJhY2tncm91bmRPYnNjdXJhdGlvblN0
YXR1cygpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChuZXdJ
bWFnZSA9PSBpbWFnZVJlc291cmNlKCkuY2FjaGVkSW1hZ2UoKSkgewogICAgICAgICAvLyB0ZWxs
IGFueSBwb3RlbnRpYWwgY29tcG9zaXRpbmcgbGF5ZXJzCiAgICAgICAgIC8vIHRoYXQgdGhlIGlt
YWdlIGlzIGRvbmUgYW5kIHRoZXkgY2FuIHJlZmVyZW5jZSBpdCBkaXJlY3RseS4KICAgICAgICAg
Y29udGVudENoYW5nZWQoSW1hZ2VDaGFuZ2VkKTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShuZXdJbWFnZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBs
YWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNjVlMGQyMzFk
ZmYzZDBlNTg1ZGM5Y2Y2NWVlZjQ4OGY0YzZkOWJkMy4uMGRjMzI2NWMxMGVmOTgzMjE4NTVjNzUw
ZDJlMDQ2ODFjNTYzZDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUmVuZGVyRmxvd1RocmVhZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCisj
aW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWFycXVlZS5oIgogI2luY2x1ZGUgIlJlbmRlck5h
bWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCkBA
IC0xMTcsMTEgKzExOSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmgiCiAj
ZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5k
ZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNl
bmRpZgotCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2VuZGlmCkBA
IC0xNzAsMTEgKzE2Nyw5IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1v
ZGVsT2JqZWN0JiByZW5kZXJlckxheWVyTW9kZWxPYmplY3QpCiAgICAgLCBtX2lzUGFnaW5hdGVk
KGZhbHNlKQogICAgICwgbV8zRFRyYW5zZm9ybWVkRGVzY2VuZGFudFN0YXR1c0RpcnR5KHRydWUp
CiAgICAgLCBtX2hhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50KGZhbHNlKQotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1faGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGZh
bHNlKQogICAgICwgbV9pbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKE5vSW5kaXJlY3RDb21wb3Np
dGluZ1JlYXNvbikKICAgICAsIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFz
b24oTm9Ob3RDb21wb3NpdGVkUmVhc29uKQotI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
ICwgbV9hZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpCiAgICAgLCBtX3JlZ2lz
dGVyZWRBc1RvdWNoRXZlbnRMaXN0ZW5lckZvclNjcm9sbGluZyhmYWxzZSkKQEAgLTI1OCw5ICsy
NTMsNyBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAvLyBDaGlsZCBsYXllcnMg
d2lsbCBiZSBkZWxldGVkIGJ5IHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVuZGVyIG9iamVjdHMsIHNv
CiAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBkZWxldGUgdGhlbSBvdXJzZWx2ZXMuCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgY2xlYXJCYWNraW5nKHRydWUpOwotI2Vu
ZGlmCiB9CiAKIFN0cmluZyBSZW5kZXJMYXllcjo6bmFtZSgpIGNvbnN0CkBAIC0yOTUsOCArMjg4
LDYgQEAgU3RyaW5nIFJlbmRlckxheWVyOjpuYW1lKCkgY29uc3QKICAgICByZXR1cm4gbmFtZS50
b1N0cmluZygpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBSZW5k
ZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlckxheWVyOjpjb21wb3NpdG9yKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gcmVuZGVyZXIoKS52aWV3KCkuY29tcG9zaXRvcigpOwpAQCAtMzEyLDE1ICszMDMs
OSBAQCB2b2lkIFJlbmRlckxheWVyOjpjb250ZW50Q2hhbmdlZChDb250ZW50Q2hhbmdlVHlwZSBj
aGFuZ2VUeXBlKQogICAgICAgICBtX2JhY2tpbmctPmNvbnRlbnRDaGFuZ2VkKGNoYW5nZVR5cGUp
OwogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBib29sIFJl
bmRlckxheWVyOjpjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSBjb25zdAogewotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICByZXR1cm4gY29tcG9zaXRvcigpLmNhblJlbmRlcjNE
VHJhbnNmb3JtcygpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTMzMCw3ICszMTUsNiBAQCBib29sIFJlbmRlckxheWVy
OjpwYWludHNXaXRoRmlsdGVycygpIGNvbnN0CiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhl
cmUgd2lsbCBiZSBjYXNlcyB3aGVyZSB3ZSBwYWludCB3aXRoIGZpbHRlcnMgZXZlbiB3aXRob3V0
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLAogICAgIC8vIGFuZCB0aGlzIHdob2xlIGZ1bmN0aW9u
IHdvbid0IGJlIGluc2lkZSB0aGUgI2lmIGJlbG93LgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5oYXNGaWx0ZXIoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAKQEAgLTMzOSw3ICszMjMsNiBAQCBib29sIFJlbmRlckxheWVy
OjpwYWludHNXaXRoRmlsdGVycygpIGNvbnN0CiAKICAgICBpZiAoIW1fYmFja2luZyB8fCAhbV9i
YWNraW5nLT5jYW5Db21wb3NpdGVGaWx0ZXJzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2Vu
ZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC00NjcsMTIgKzQ1MCwxMCBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0
cnlNYXAsIFVwZGF0ZUxheQogICAgIGlmIChtX3JlZmxlY3Rpb24pCiAgICAgICAgIG1fcmVmbGVj
dGlvbi0+bGF5b3V0KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
Ly8gQ2xlYXIgdGhlIElzQ29tcG9zaXRpbmdVcGRhdGVSb290IGZsYWcgb25jZSB3ZSd2ZSBmb3Vu
ZCB0aGUgZmlyc3QgY29tcG9zaXRpbmcgbGF5ZXIgaW4gdGhpcyB1cGRhdGUuCiAgICAgYm9vbCBp
c1VwZGF0ZVJvb3QgPSAoZmxhZ3MgJiBJc0NvbXBvc2l0aW5nVXBkYXRlUm9vdCk7CiAgICAgaWYg
KGlzQ29tcG9zaXRlZCgpKQogICAgICAgICBmbGFncyAmPSB+SXNDb21wb3NpdGluZ1VwZGF0ZVJv
b3Q7Ci0jZW5kaWYKIAogICAgIGlmICh1c2VSZWdpb25CYXNlZENvbHVtbnMoKSAmJiByZW5kZXJl
cigpLmlzSW5GbG93UmVuZGVyRmxvd1RocmVhZCgpKSB7CiAgICAgICAgIHVwZGF0ZVBhZ2luYXRp
b24oKTsKQEAgLTQ4NSw3ICs0NjYsNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBv
c2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsIFVwZGF0ZUxheQogICAgIGZv
ciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgY2hpbGQtPnVwZGF0ZUxheWVyUG9zaXRpb25zKGdl
b21ldHJ5TWFwLCBmbGFncyk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKChmbGFncyAmIFVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKSAmJiBpc0NvbXBvc2l0ZWQo
KSkgewogICAgICAgICBSZW5kZXJMYXllckJhY2tpbmc6OlVwZGF0ZUFmdGVyTGF5b3V0RmxhZ3Mg
dXBkYXRlRmxhZ3MgPSBSZW5kZXJMYXllckJhY2tpbmc6OkNvbXBvc2l0aW5nQ2hpbGRyZW5Pbmx5
OwogICAgICAgICBpZiAoZmxhZ3MgJiBOZWVkc0Z1bGxSZXBhaW50SW5CYWNraW5nKQpAQCAtNDk0
LDcgKzQ3NCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRl
ckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5CiAgICAgICAgICAgICB1cGRhdGVG
bGFncyB8PSBSZW5kZXJMYXllckJhY2tpbmc6OklzVXBkYXRlUm9vdDsKICAgICAgICAgYmFja2lu
ZygpLT51cGRhdGVBZnRlckxheW91dCh1cGRhdGVGbGFncyk7CiAgICAgfQotI2VuZGlmCiAgICAg
ICAgIAogICAgIC8vIFdpdGggYWxsIG91ciBjaGlsZHJlbiBwb3NpdGlvbmVkLCBub3cgdXBkYXRl
IG91ciBtYXJxdWVlIGlmIHdlIG5lZWQgdG8uCiAgICAgaWYgKG1fbWFycXVlZSkgewpAQCAtNjk3
LDE0ICs2NzYsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudHNBcmVDb250
aWd1b3VzSW5TdGFja2luZ09yZGVyUmVjdXJzaXZlKGNvbnN0IEgKIAogICAgIGlmICghaXNTdGFj
a2luZ0NvbnRleHQoKSkgewogICAgICAgICBib29sIG5ld1ZhbHVlID0gbWF4SW5kZXggLSBtaW5J
bmRleCA9PSBjb3VudDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAg
IGJvb2wgZGlkVXBkYXRlID0gbmV3VmFsdWUgIT0gbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3VvdXNJ
blN0YWNraW5nT3JkZXI7Ci0jZW5kaWYKICAgICAgICAgbV9kZXNjZW5kYW50c0FyZUNvbnRpZ3Vv
dXNJblN0YWNraW5nT3JkZXIgPSBuZXdWYWx1ZTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgICAgIGlmIChkaWRVcGRhdGUpCiAgICAgICAgICAgICB1cGRhdGVOZWVkc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKTsKLSNlbmRpZgogICAgIH0KIH0KIApAQCAtODEyLDggKzc4Nyw2
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVu
ZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwCiAgICAgICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBw
aW5nc1RvQW5jZXN0b3IocGFyZW50KCkpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotCiB2b2lkIFJlbmRlckxheWVyOjpwb3NpdGlvbk5ld2x5Q3JlYXRlZE92ZXJmbG93
Q29udHJvbHMoKQogewogICAgIGlmICghYmFja2luZygpLT5oYXNVbnBvc2l0aW9uZWRPdmVyZmxv
d0NvbnRyb2xzTGF5ZXJzKCkpCkBAIC04MjcsOCArODAwLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cG9zaXRpb25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCkKICAgICBwb3NpdGlvbk92ZXJm
bG93Q29udHJvbHModG9JbnRTaXplKHJvdW5kZWRJbnRQb2ludChvZmZzZXRGcm9tUm9vdCkpKTsK
IH0KIAotI2VuZGlmCi0KICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogCiB2b2lkIFJlbmRl
ckxheWVyOjp1cGRhdGVCbGVuZE1vZGUoKQpAQCAtODc4LDcgKzg0OSw2IEBAIFRyYW5zZm9ybWF0
aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBs
eVRyYW5zZm9ybU9yCiAgICAgaWYgKCFtX3RyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuIFRyYW5z
Zm9ybWF0aW9uTWF0cml4KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5pc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbigp
KSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAg
IFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmFuaW1hdGlvbigpLmdldEFu
aW1hdGVkU3R5bGVGb3JSZW5kZXJlcigmcmVuZGVyZXIoKSk7CkBAIC04OTUsOSArODY1LDYgQEAg
VHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVy
U3R5bGU6OkFwcGx5VHJhbnNmb3JtT3IKICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoY3Vy
clRyYW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAgICAgICByZXR1cm4gY3Vy
clRyYW5zZm9ybTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShhcHBseU9yaWdpbik7
Ci0jZW5kaWYKIAogICAgIHJldHVybiAqbV90cmFuc2Zvcm07CiB9CkBAIC0xMTI1LDEwICsxMDky
LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKEhh
c2hTZXQ8Y29uc3QgUmVuZGVyT2JqZWN0Kj4qIG8KICAgICAgICAgbV92aXNpYmxlRGVzY2VuZGFu
dFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIG1faGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNj
ZW5kYW50RGlydHkgPSBmYWxzZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgaWYgKG1faGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2NlbmRhbnREaXJ0eSkKICAg
ICAgICAgICAgIHVwZGF0ZU5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpOwotI2VuZGlmCisKICAg
ICAgICAgbV9oYXNPdXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudERpcnR5ID0gZmFsc2U7CiAg
ICAgfQogCkBAIC0xMTY0LDcgKzExMzAsNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVEZXNj
ZW5kYW50RGVwZW5kZW50RmxhZ3MoSGFzaFNldDxjb25zdCBSZW5kZXJPYmplY3QqPiogbwogICAg
IH0KIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC8vIFJldHVybiB0cnVl
IGlmIHRoZSBuZXcgY2xpcHBpbmcgYmVoYXZpb3VyIHJlcXVpcmVzIGxheWVyIHVwZGF0ZS4KIGJv
b2wgUmVuZGVyTGF5ZXI6OmNoZWNrSWZEZXNjZW5kYW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRh
dGUoYm9vbCBpc0NsaXBwaW5nKQogewpAQCAtMTE3OSw3ICsxMTQ0LDYgQEAgYm9vbCBSZW5kZXJM
YXllcjo6Y2hlY2tJZkRlc2NlbmRhbnRDbGlwcGluZ0NvbnRleHROZWVkc1VwZGF0ZShib29sIGlz
Q2xpcHBpbmcpCiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCiB2b2lkIFJl
bmRlckxheWVyOjpkaXJ0eTNEVHJhbnNmb3JtZWREZXNjZW5kYW50U3RhdHVzKCkKIHsKQEAgLTE0
MTksNyArMTM4Myw2IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0
aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKIAogaW5saW5lIGJvb2wgUmVu
ZGVyTGF5ZXI6OnNob3VsZFJlcGFpbnRBZnRlckxheW91dCgpIGNvbnN0CiB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3JlcGFpbnRTdGF0dXMgPT0gTmVlZHNO
b3JtYWxSZXBhaW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMTQyNywxMyArMTM5MCw4
IEBAIGlubGluZSBib29sIFJlbmRlckxheWVyOjpzaG91bGRSZXBhaW50QWZ0ZXJMYXlvdXQoKSBj
b25zdAogICAgIC8vIGxheW91dCwgZG9uJ3QgbmVlZCB0byBiZSByZXBhaW50ZWQuIFRoZXkganVz
dCBuZWVkIHRvIGJlIHJlY29tcG9zaXRlZC4KICAgICBBU1NFUlQobV9yZXBhaW50U3RhdHVzID09
IE5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQpOwogICAgIHJldHVy
biAhaXNDb21wb3NpdGVkKCkgfHwgYmFja2luZygpLT5wYWludHNJbnRvQ29tcG9zaXRlZEFuY2Vz
dG9yKCk7Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIHN0YXRpYyBib29sIGNvbXBvc2l0ZWRXaXRoT3duQmFj
a2luZ1N0b3JlKGNvbnN0IFJlbmRlckxheWVyKiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXIt
PmlzQ29tcG9zaXRlZCgpICYmICFsYXllci0+YmFja2luZygpLT5wYWludHNJbnRvQ29tcG9zaXRl
ZEFuY2VzdG9yKCk7CkBAIC0xNDY1LDggKzE0MjMsNiBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5
ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3Qg
aQogICAgIHJldHVybiAwOwogfQogCi0jZW5kaWYKLQogI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
IAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRl
U2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25zdApAQCAtMTQ4MywxMiArMTQzOSw3IEBAIFJlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5v
dCBpbmNsdWRlU2VsZikgY29uCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0Zp
bHRlclJlcGFpbnRMYXllcigpIGNvbnN0CiB7CiAgICAgZm9yIChjb25zdCBSZW5kZXJMYXllciog
Y3VyciA9IHRoaXM7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQoKSkgewotICAgICAgICBpZiAo
KGN1cnIgIT0gdGhpcyAmJiBjdXJyLT5yZXF1aXJlc0Z1bGxMYXllckltYWdlRm9yRmlsdGVycygp
KQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgIHx8IGNvbXBv
c2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGN1cnIpCi0jZW5kaWYKLSAgICAgICAgICAgIHx8IGN1
cnItPmlzUm9vdExheWVyKCkKLSAgICAgICAgKQorICAgICAgICBpZiAoKGN1cnIgIT0gdGhpcyAm
JiBjdXJyLT5yZXF1aXJlc0Z1bGxMYXllckltYWdlRm9yRmlsdGVycygpKSB8fCBjb21wb3NpdGVk
V2l0aE93bkJhY2tpbmdTdG9yZShjdXJyKSB8fCBjdXJyLT5pc1Jvb3RMYXllcigpKQogICAgICAg
ICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPihjdXJyKTsKICAgICB9CiAgICAg
cmV0dXJuIDA7CkBAIC0xNTA5LDggKzE0NjAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRGaWx0
ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAg
ICAgQVNTRVJUKHBhcmVudExheWVyKTsKICAgICBGbG9hdFF1YWQgcmVwYWludFF1YWQocmVjdEZv
clJlcGFpbnQpOwogICAgIExheW91dFJlY3QgcGFyZW50TGF5ZXJSZWN0ID0gcmVuZGVyZXIoKS5s
b2NhbFRvQ29udGFpbmVyUXVhZChyZXBhaW50UXVhZCwgJnBhcmVudExheWVyLT5yZW5kZXJlcigp
KS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKwogICAgIGlmIChwYXJlbnRMYXllci0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAg
ICAgaWYgKCFwYXJlbnRMYXllci0+YmFja2luZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsKICAg
ICAgICAgICAgIHBhcmVudExheWVyLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KHBhcmVu
dExheWVyUmVjdCk7CkBAIC0xNTIwLDcgKzE0NzAsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRG
aWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
CiAgICAgICAgIHBhcmVudExheWVyID0gcmVuZGVyZXIoKS52aWV3KCkubGF5ZXIoKTsKICAgICAg
ICAgcGFyZW50TGF5ZXJSZWN0ID0gcmVuZGVyZXIoKS5sb2NhbFRvQ29udGFpbmVyUXVhZChyZXBh
aW50UXVhZCwgJnBhcmVudExheWVyLT5yZW5kZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OwogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKHBhcmVudExheWVyLT5wYWludHNXaXRoRmlsdGVy
cygpKSB7CiAgICAgICAgIHBhcmVudExheWVyLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50
aW5nSW5SZWN0KHBhcmVudExheWVyUmVjdCwgaW1tZWRpYXRlKTsKQEAgLTE1NDgsMTAgKzE0OTcs
OCBAQCBib29sIFJlbmRlckxheWVyOjpoYXNBbmNlc3RvcldpdGhGaWx0ZXJPdXRzZXRzKCkgY29u
c3QKIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZygp
IGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChpc0Nv
bXBvc2l0ZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPih0aGlz
KTsKLSNlbmRpZgogCiAgICAgY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSB0aGlzOwogICAg
IHdoaWxlIChjdXJyZW50KSB7CkBAIC0xNTYwLDExICsxNTA3LDcgQEAgUmVuZGVyTGF5ZXIqIFJl
bmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZygpIGNvbnN0CiAKICAgICAgICAgY3Vy
cmVudCA9IGNvbXBvc2l0aW5nQ29udGFpbmVyKGN1cnJlbnQpOwogICAgICAgICBBU1NFUlQoY3Vy
cmVudCk7Ci0gICAgICAgIGlmIChjdXJyZW50LT50cmFuc2Zvcm0oKQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSAgICAgICAgICAgIHx8IGNvbXBvc2l0ZWRXaXRoT3duQmFja2lu
Z1N0b3JlKGN1cnJlbnQpCi0jZW5kaWYKLSAgICAgICAgKQorICAgICAgICBpZiAoY3VycmVudC0+
dHJhbnNmb3JtKCkgfHwgY29tcG9zaXRlZFdpdGhPd25CYWNraW5nU3RvcmUoY3VycmVudCkpCiAg
ICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxSZW5kZXJMYXllcio+KGN1cnJlbnQpOwogICAg
IH0KIApAQCAtMTc5OCwxNyArMTc0MSwxMyBAQCB2b2lkIFJlbmRlckxheWVyOjphZGRDaGlsZChS
ZW5kZXJMYXllciogY2hpbGQsIFJlbmRlckxheWVyKiBiZWZvcmVDaGlsZCkKICAgICBpZiAoY2hp
bGQtPnJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgY2hpbGQtPmhhc091dE9m
Rmxvd1Bvc2l0aW9uZWREZXNjZW5kYW50KCkpCiAgICAgICAgIHNldEFuY2VzdG9yQ2hhaW5IYXNP
dXRPZkZsb3dQb3NpdGlvbmVkRGVzY2VuZGFudChjaGlsZC0+cmVuZGVyZXIoKS5jb250YWluaW5n
QmxvY2soKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgY29tcG9z
aXRvcigpLmxheWVyV2FzQWRkZWQoKnRoaXMsICpjaGlsZCk7Ci0jZW5kaWYKIH0KIAogUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyOjpyZW1vdmVDaGlsZChSZW5kZXJMYXllciogb2xkQ2hpbGQpCiB7
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIoKS5k
b2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIGNvbXBvc2l0b3IoKS5sYXllcldpbGxC
ZVJlbW92ZWQoKnRoaXMsICpvbGRDaGlsZCk7Ci0jZW5kaWYKIAogICAgIC8vIHJlbW92ZSB0aGUg
Y2hpbGQKICAgICBpZiAob2xkQ2hpbGQtPnByZXZpb3VzU2libGluZygpKQpAQCAtMTg1Niw5ICsx
Nzk1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVtb3ZlT25seVRoaXNMYXllcigpCiAgICAgLy8g
d2Fsa3MgaWdub3JlIHRoaXMgbGF5ZXIgd2hpbGUgd2UncmUgcmVtb3ZpbmcgaXQuCiAgICAgcmVu
ZGVyZXIoKS5zZXRIYXNMYXllcihmYWxzZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgY29tcG9zaXRvcigpLmxheWVyV2lsbEJlUmVtb3ZlZCgqbV9wYXJlbnQsICp0
aGlzKTsKLSNlbmRpZgogCiAgICAgLy8gRGlydHkgdGhlIGNsaXAgcmVjdHMuCiAgICAgY2xlYXJD
bGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwpAQCAtMjEyNSw4ICsyMDYyLDYgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6dW5yZWdpc3RlckFzVG91Y2hFdmVudExpc3RlbmVyRm9yU2Nyb2xsaW5n
KCkKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0KIGJvb2wgUmVuZGVyTGF5ZXI6OnVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gaXNDb21wb3NpdGVkKCkgJiYgYmFja2luZygpLT5zY3JvbGxp
bmdMYXllcigpOwpAQCAtMjE3Nyw4ICsyMTEyLDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRl
TmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCkKICAgICB9CiB9CiAKLSNlbmRpZgotCiBzdGF0aWMg
aW5saW5lIGludCBhZGp1c3RlZFNjcm9sbERlbHRhKGludCBiZWdpbm5pbmdEZWx0YSkgewogICAg
IC8vIFRoaXMgaW1wbGVtZW50aW9uIG1hdGNoZXMgRmlyZWZveCdzLgogICAgIC8vIGh0dHA6Ly9t
eHIubW96aWxsYS5vcmcvZmlyZWZveC9zb3VyY2UvdG9vbGtpdC9jb250ZW50L3dpZGdldHMvYnJv
d3Nlci54bWwjODU2LgpAQCAtMjM1MiwxMSArMjI4NSw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKGludCB4LCBpbnQgeSkKICAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5kaXNwYXRjaEZh
a2VNb3VzZU1vdmVFdmVudFNvb25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAK
ICAgICBib29sIHJlcXVpcmVzUmVwYWludCA9IHRydWU7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgaWYgKGNvbXBvc2l0b3IoKS5pbkNvbXBvc2l0aW5nTW9kZSgpICYm
IHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkpCiAgICAgICAgIHJlcXVpcmVzUmVwYWludCA9IGZh
bHNlOwotI2VuZGlmCiAKICAgICAvLyBKdXN0IHNjaGVkdWxlIGEgZnVsbCByZXBhaW50IG9mIG91
ciBvYmplY3QuCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMjQ4Niw3ICsyNDE2LDYgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBj
b25zdCBTY3JvbGxBbGlnbm0KIAogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdM
YXllcnNBZnRlclNjcm9sbCgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChjb21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01vZGUoKSkgewogICAgICAgICAvLyBP
dXIgc3RhY2tpbmcgY29udGFpbmVyIGlzIGd1YXJhbnRlZWQgdG8gY29udGFpbiBhbGwgb2Ygb3Vy
IGRlc2NlbmRhbnRzIHRoYXQgbWF5IG5lZWQKICAgICAgICAgLy8gcmVwb3NpdGlvbmluZywgc28g
dXBkYXRlIGNvbXBvc2l0aW5nIGxheWVycyBmcm9tIHRoZXJlLgpAQCAtMjQ5Nyw3ICsyNDI2LDYg
QEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCgp
CiAgICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENv
bXBvc2l0aW5nVXBkYXRlT25TY3JvbGwsIGNvbXBvc2l0aW5nQW5jZXN0b3IpOwogICAgICAgICB9
CiAgICAgfQotI2VuZGlmCiB9CiAKIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4
cG9zZShjb25zdCBMYXlvdXRSZWN0ICZ2aXNpYmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCAmdmlz
aWJsZVJlY3RSZWxhdGl2ZVRvRG9jdW1lbnQsIGNvbnN0IExheW91dFJlY3QgJmV4cG9zZVJlY3Qs
IGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFs
aWduWSkKQEAgLTI5MjYsNyArMjg1NCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByCiAgICAg
ICAgIHJldHVybjsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChzY3JvbGxiYXIgPT0gbV92QmFyLmdldCgpKSB7CiAgICAgICAgIGlmIChHcmFwaGlj
c0xheWVyKiBsYXllciA9IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewogICAgICAgICAg
ICAgbGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKQEAgLTI5MzgsNyArMjg2NSw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciog
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9Ci0jZW5kaWYKKwogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7CiAgICAg
UmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBBU1NFUlQoYm94KTsKQEAgLTI5NjMs
MTIgKzI4OTAsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbENvcm5lclJl
Y3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVy
ID0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkgewogICAgICAgICBsYXllci0+c2V0TmVlZHNEaXNw
bGF5SW5SZWN0KHJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCisKICAgICBp
ZiAobV9zY3JvbGxDb3JuZXIpCiAgICAgICAgIG1fc2Nyb2xsQ29ybmVyLT5yZXBhaW50UmVjdGFu
Z2xlKHJlY3QpOwogICAgIGlmIChtX3Jlc2l6ZXIpCkBAIC0zMTUyLDEwICszMDc4LDggQEAgdm9p
ZCBSZW5kZXJMYXllcjo6cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzKGNvbnN0IEludFNpemUmIG9m
ZnNldEZyb21Sb290KQogICAgIGlmIChtX3Jlc2l6ZXIpCiAgICAgICAgIG1fcmVzaXplci0+c2V0
RnJhbWVSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJvcmRlckJveCkpOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAgICAKICAgICBpZiAoaXNDb21wb3NpdGVkKCkpCiAg
ICAgICAgIGJhY2tpbmcoKS0+cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKCk7Ci0jZW5k
aWYKIH0KIAogaW50IFJlbmRlckxheWVyOjpzY3JvbGxXaWR0aCgpIGNvbnN0CkBAIC0zMzUwLDEx
ICszMjc0LDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0
KCkKICAgICBpZiAob3JpZ2luYWxTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkpCiAgICAg
ICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXQo
KSkpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIENvbXBvc2l0
ZWQgc2Nyb2xsaW5nIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgaWYgdGhlIGFt
b3VudCBvZiBvdmVyZmxvdyBjaGFuZ2VkLgogICAgIGlmIChjb21wb3NpdG9yKCkudXBkYXRlTGF5
ZXJDb21wb3NpdGluZ1N0YXRlKCp0aGlzKSkKICAgICAgICAgY29tcG9zaXRvcigpLnNldENvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKLSNlbmRpZgogfQogCiBib29sIFJlbmRlckxheWVy
OjpvdmVyZmxvd0NvbnRyb2xzSW50ZXJzZWN0UmVjdChjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3Qp
IGNvbnN0CkBAIC0zMzk2LDIwICszMzE4LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3Zl
cmZsb3dDb250cm9scyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFBvaW50CiAg
ICAgLy8gc2Vjb25kIHBhc3MgZG9lc24ndCBuZWVkIHRvIHJlLWVudGVyIHRoZSBSZW5kZXJUcmVl
IHRvIGdldCBpdCByaWdodC4KICAgICBpZiAoaGFzT3ZlcmxheVNjcm9sbGJhcnMoKSAmJiAhcGFp
bnRpbmdPdmVybGF5Q29udHJvbHMpIHsKICAgICAgICAgbV9jYWNoZWRPdmVybGF5U2Nyb2xsYmFy
T2Zmc2V0ID0gcGFpbnRPZmZzZXQ7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
CiAgICAgICAgIC8vIEl0J3Mgbm90IG5lY2Vzc2FyeSB0byBkbyB0aGUgc2Vjb25kIHBhc3MgaWYg
dGhlIHNjcm9sbGJhcnMgcGFpbnQgaW50byBsYXllcnMuCiAgICAgICAgIGlmICgobV9oQmFyICYm
IGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKSB8fCAobV92QmFyICYmIGxheWVyRm9yVmVy
dGljYWxTY3JvbGxiYXIoKSkpCiAgICAgICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICAgICAg
SW50UmVjdCBsb2NhbERhbWdlUmVjdCA9IGRhbWFnZVJlY3Q7CiAgICAgICAgIGxvY2FsRGFtZ2VS
ZWN0Lm1vdmVCeSgtcGFpbnRPZmZzZXQpOwogICAgICAgICBpZiAoIW92ZXJmbG93Q29udHJvbHNJ
bnRlcnNlY3RSZWN0KGxvY2FsRGFtZ2VSZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBSZW5kZXJMYXllciogcGFpbnRpbmdSb290ID0gMDsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0gICAgICAgIHBhaW50aW5nUm9vdCA9IGVuY2xvc2luZ0NvbXBvc2l0aW5n
TGF5ZXIoKTsKLSNlbmRpZgorICAgICAgICBSZW5kZXJMYXllciogcGFpbnRpbmdSb290ID0gZW5j
bG9zaW5nQ29tcG9zaXRpbmdMYXllcigpOwogICAgICAgICBpZiAoIXBhaW50aW5nUm9vdCkKICAg
ICAgICAgICAgIHBhaW50aW5nUm9vdCA9IHJlbmRlcmVyKCkudmlldygpLmxheWVyKCk7CiAKQEAg
LTM0MzEsMjMgKzMzNDksMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRy
b2xzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UG9pbnQKICAgICBwb3NpdGlv
bk92ZXJmbG93Q29udHJvbHModG9JbnRTaXplKGFkanVzdGVkUGFpbnRPZmZzZXQpKTsKIAogICAg
IC8vIE5vdyB0aGF0IHdlJ3JlIHN1cmUgdGhlIHNjcm9sbGJhcnMgYXJlIGluIHRoZSByaWdodCBw
bGFjZSwgcGFpbnQgdGhlbS4KLSAgICBpZiAobV9oQmFyCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgICAgICAmJiAhbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkKLSNl
bmRpZgotICAgICAgICAgICAgICApCisgICAgaWYgKG1faEJhciAmJiAhbGF5ZXJGb3JIb3Jpem9u
dGFsU2Nyb2xsYmFyKCkpCiAgICAgICAgIG1faEJhci0+cGFpbnQoY29udGV4dCwgZGFtYWdlUmVj
dCk7Ci0gICAgaWYgKG1fdkJhcgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICAgICAgJiYgIWxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKQotI2VuZGlmCi0gICAgICAgICAg
ICAgICkKKyAgICBpZiAobV92QmFyICYmICFsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAg
ICAgICAgIG1fdkJhci0+cGFpbnQoY29udGV4dCwgZGFtYWdlUmVjdCk7CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkpCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgLy8gV2UgZmlsbCBvdXIgc2Nyb2xsIGNvcm5l
ciB3aXRoIHdoaXRlIGlmIHdlIGhhdmUgYSBzY3JvbGxiYXIgdGhhdCBkb2Vzbid0IHJ1biBhbGwg
dGhlIHdheSB1cCB0byB0aGUKICAgICAvLyBlZGdlIG9mIHRoZSBib3guCkBAIC0zNzAxLDE0ICsz
NjA5LDEwIEBAIHN0YXRpYyB2b2lkIHBlcmZvcm1PdmVybGFwVGVzdHMoT3ZlcmxhcFRlc3RSZXF1
ZXN0TWFwJiBvdmVybGFwVGVzdFJlcXVlc3RzLCBjb25zCiAgICAgICAgIG92ZXJsYXBUZXN0UmVx
dWVzdHMucmVtb3ZlKG92ZXJsYXBwZWRSZXF1ZXN0Q2xpZW50c1tpXSk7CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KIHN0YXRpYyBpbmxpbmUgYm9vbCBzaG91bGREb1Nv
ZnR3YXJlUGFpbnQoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBib29sIHBhaW50aW5nUmVmbGVj
dGlvbikKIHsKICAgICByZXR1cm4gcGFpbnRpbmdSZWZsZWN0aW9uICYmICFsYXllci0+aGFzM0RU
cmFuc2Zvcm0oKTsKIH0KLQotI2VuZGlmCiAgICAgCiBzdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxk
U3VwcHJlc3NQYWludGluZ0xheWVyKFJlbmRlckxheWVyKiBsYXllcikKIHsKQEAgLTM3MjYsMTgg
KzM2MzAsMTMgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXll
cihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFpbnRGb3JGaXhl
ZFJvb3RCYWNrZ3JvdW5kKGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgUmVuZGVyTGF5ZXI6OlBh
aW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQogewogICAgIHJldHVybiBsYXllci0+cmVuZGVyZXIo
KS5pc1Jvb3QoKSAmJiAocGFpbnRGbGFncyAmIFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRp
bmdSb290QmFja2dyb3VuZE9ubHkpOwogfQogCi0jZW5kaWYKLQogdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRMYXllcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJ
bmZvJiBwYWludGluZ0luZm8sIFBhaW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQogewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNDb21wb3NpdGVkKCkpIHsKICAg
ICAgICAgLy8gVGhlIHVwZGF0aW5nQ29udHJvbFRpbnRzKCkgcGFpbnRpbmcgcGFzcyBnb2VzIHRo
cm91Z2ggY29tcG9zaXRpbmcgbGF5ZXJzLAogICAgICAgICAvLyBidXQgd2UgbmVlZCB0byBlbnN1
cmUgdGhhdCB3ZSBkb24ndCBjYWNoZSBjbGlwIHJlY3RzIGNvbXB1dGVkIHdpdGggdGhlIHdyb25n
IHJvb3QgaW4gdGhpcyBjYXNlLgpAQCAtMzc1Niw3ICszNjU1LDYgQEAgdm9pZCBSZW5kZXJMYXll
cjo6cGFpbnRMYXllcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRp
bmdJbmZvJgogICAgICAgICBBU1NFUlQocmVuZGVyZXIoKS5zdHlsZSgpLnBvc2l0aW9uKCkgPT0g
Rml4ZWRQb3NpdGlvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIC8v
IE5vbiBzZWxmLXBhaW50aW5nIGxlYWYgbGF5ZXJzIGRvbid0IG5lZWQgdG8gYmUgcGFpbnRlZCBh
cyB0aGVpciByZW5kZXJlcigpIHNob3VsZCBwcm9wZXJseSBwYWludCBpdHNlbGYuCiAgICAgaWYg
KCFpc1NlbGZQYWludGluZ0xheWVyKCkgJiYgIWhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFu
dCgpKQpAQCAtNTkwOSw4ICs1ODA3LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2xlYXJDbGlwUmVj
dHMoQ2xpcFJlY3RzVHlwZSB0eXBlVG9DbGVhcikKICAgICB9CiB9CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KIFJlbmRlckxheWVyQmFja2luZyogUmVuZGVyTGF5ZXI6OmVu
c3VyZUJhY2tpbmcoKQogewogICAgIGlmICghbV9iYWNraW5nKSB7CkBAIC01OTY2LDE1ICs1ODYy
LDkgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXI6OmxheWVyRm9yU2Nyb2xsQ29ybmVyKCkg
Y29uc3QKICAgICByZXR1cm4gbV9iYWNraW5nID8gbV9iYWNraW5nLT5sYXllckZvclNjcm9sbENv
cm5lcigpIDogMDsKIH0KIAotI2VuZGlmCi0KIGJvb2wgUmVuZGVyTGF5ZXI6OnBhaW50c1dpdGhU
cmFuc2Zvcm0oUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yKSBjb25zdAogewotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIHBhaW50c1RvV2luZG93ID0gIWlzQ29t
cG9zaXRlZCgpIHx8IGJhY2tpbmcoKS0+cGFpbnRzSW50b1dpbmRvdygpOwotI2Vsc2UKLSAgICBi
b29sIHBhaW50c1RvV2luZG93ID0gdHJ1ZTsKLSNlbmRpZiAgICAKICAgICByZXR1cm4gdHJhbnNm
b3JtKCkgJiYgKChwYWludEJlaGF2aW9yICYgUGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGlu
Z0xheWVycykgfHwgcGFpbnRzVG9XaW5kb3cpOwogfQogCkBAIC02MDUwLDE3ICs1OTQwLDEzIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnNldFBhcmVudChSZW5kZXJMYXllciogcGFyZW50KQogICAgIGlm
IChwYXJlbnQgPT0gbV9wYXJlbnQpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV9wYXJlbnQgJiYgIXJlbmRlcmVyKCkuZG9jdW1l
bnRCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICBjb21wb3NpdG9yKCkubGF5ZXJXaWxsQmVSZW1v
dmVkKCptX3BhcmVudCwgKnRoaXMpOwotI2VuZGlmCiAgICAgCiAgICAgbV9wYXJlbnQgPSBwYXJl
bnQ7Ci0gICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAgaWYgKG1f
cGFyZW50ICYmICFyZW5kZXJlcigpLmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAg
Y29tcG9zaXRvcigpLmxheWVyV2FzQWRkZWQoKm1fcGFyZW50LCAqdGhpcyk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBSZW5kZXJMYXllcjo6ZGlydHlaT3JkZXJMaXN0cygpCkBAIC02MDc0LDcgKzU5NjAs
NiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eVpPcmRlckxpc3RzKCkKICAgICAgICAgbV9uZWda
T3JkZXJMaXN0LT5jbGVhcigpOwogICAgIG1fek9yZGVyTGlzdHNEaXJ0eSA9IHRydWU7CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFyZW5kZXJlcigpLmRvY3Vt
ZW50QmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBpZiAoaXNGbG93VGhyZWFkQ29sbGVjdGlu
Z0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkpCiAgICAgICAgICAgICB0b1JlbmRlckZsb3dU
aHJlYWQocmVuZGVyZXIoKSkuc2V0TmVlZHNMYXllclRvUmVnaW9uTWFwcGluZ3NVcGRhdGUoKTsK
QEAgLTYwODIsNyArNTk2Nyw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRpcnR5Wk9yZGVyTGlzdHMo
KQogICAgICAgICBpZiAoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5h
YmxlZCgpKQogICAgICAgICAgICAgY29tcG9zaXRvcigpLnNldFNob3VsZFJlZXZhbHVhdGVDb21w
b3NpdGluZ0FmdGVyTGF5b3V0KCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyTGF5
ZXI6OmRpcnR5U3RhY2tpbmdDb250YWluZXJaT3JkZXJMaXN0cygpCkBAIC02MTAwLDcgKzU5ODQs
NiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1hbEZsb3dMaXN0KCkKICAgICAgICAgbV9u
b3JtYWxGbG93TGlzdC0+Y2xlYXIoKTsKICAgICBtX25vcm1hbEZsb3dMaXN0RGlydHkgPSB0cnVl
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmICghcmVuZGVyZXIo
KS5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgaWYgKGlzRmxvd1RocmVhZENv
bGxlY3RpbmdHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpKQogICAgICAgICAgICAgdG9SZW5k
ZXJGbG93VGhyZWFkKHJlbmRlcmVyKCkpLnNldE5lZWRzTGF5ZXJUb1JlZ2lvbk1hcHBpbmdzVXBk
YXRlKCk7CkBAIC02MTA4LDcgKzU5OTEsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpkaXJ0eU5vcm1h
bEZsb3dMaXN0KCkKICAgICAgICAgaWYgKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKSkKICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS5zZXRTaG91bGRSZWV2
YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lk
IFJlbmRlckxheWVyOjpyZWJ1aWxkWk9yZGVyTGlzdHMoKQpAQCAtNjEyMSwxMSArNjAwMyw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cygpCiAKIHZvaWQgUmVuZGVyTGF5
ZXI6OnJlYnVpbGRaT3JkZXJMaXN0cyhDb2xsZWN0TGF5ZXJzQmVoYXZpb3IgYmVoYXZpb3IsIE93
blB0cjxWZWN0b3I8UmVuZGVyTGF5ZXIqPj4mIHBvc1pPcmRlckxpc3QsIE93blB0cjxWZWN0b3I8
UmVuZGVyTGF5ZXIqPj4mIG5lZ1pPcmRlckxpc3QpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGJvb2wgaW5jbHVkZUhpZGRlbkxheWVycyA9IGNvbXBvc2l0b3IoKS5p
bkNvbXBvc2l0aW5nTW9kZSgpOwotI2Vsc2UKLSAgICBib29sIGluY2x1ZGVIaWRkZW5MYXllcnMg
PSBmYWxzZTsKLSNlbmRpZgogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgaWYgKCFt
X3JlZmxlY3Rpb24gfHwgcmVmbGVjdGlvbkxheWVyKCkgIT0gY2hpbGQpCiAgICAgICAgICAgICBj
aGlsZC0+Y29sbGVjdExheWVycyhpbmNsdWRlSGlkZGVuTGF5ZXJzLCBiZWhhdmlvciwgcG9zWk9y
ZGVyTGlzdCwgbmVnWk9yZGVyTGlzdCk7CkBAIC02MjUxLDEzICs2MTI5LDEyIEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnRzTGF5ZXJMaXN0c0lmTmVlZGVkKGJvb2wgcmVjdXJz
aXZlKQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDb21wb3NpdGluZ0FuZExheWVyTGlzdHNJ
Zk5lZWRlZCgpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChj
b21wb3NpdG9yKCkuaW5Db21wb3NpdGluZ01vZGUoKSkgewogICAgICAgICBpZiAoaXNEaXJ0eVN0
YWNraW5nQ29udGFpbmVyKCkgfHwgbV9ub3JtYWxGbG93TGlzdERpcnR5KQogICAgICAgICAgICAg
Y29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25I
aXRUZXN0LCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZgorCiAgICAgdXBk
YXRlTGF5ZXJMaXN0c0lmTmVlZGVkKCk7CiB9CiAKQEAgLTYyNzYsOCArNjE1Myw2IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpCiAgICAgfQogfQogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFJlbmRlckxheWVyOjpzZXRC
YWNraW5nTmVlZHNSZXBhaW50KEdyYXBoaWNzTGF5ZXI6OlNob3VsZENsaXBUb0xheWVyIHNob3Vs
ZENsaXApCiB7CiAgICAgQVNTRVJUKGlzQ29tcG9zaXRlZCgpKTsKQEAgLTYzMTgsOCArNjE5Myw2
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2Nl
bmRhbnRzKFJlbmRlckxheWVyTW9kZWxPYmplCiAgICAgfQogfQogCi0jZW5kaWYKLQogYm9vbCBS
ZW5kZXJMYXllcjo6c2hvdWxkQmVOb3JtYWxGbG93T25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IChyZW5kZXJlcigpLmhhc092ZXJmbG93Q2xpcCgpCkBAIC02NTA5LDkgKzYzODIsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjpzZXRBbmNlc3RvckNoYWluSGFzT3V0T2ZGbG93UG9zaXRpb25lZERlc2Nl
bmRhbnQoUmVuZGVyQmxvY2sqCiAKICAgICAgICAgbGF5ZXItPm1faGFzT3V0T2ZGbG93UG9zaXRp
b25lZERlc2NlbmRhbnREaXJ0eSA9IGZhbHNlOwogICAgICAgICBsYXllci0+bV9oYXNPdXRPZkZs
b3dQb3NpdGlvbmVkRGVzY2VuZGFudCA9IHRydWU7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgICAgICBsYXllci0+dXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5nKCk7
Ci0jZW5kaWYKIAogICAgICAgICBpZiAoJmxheWVyLT5yZW5kZXJlcigpID09IGNvbnRhaW5pbmdC
bG9jaykKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjUzMCwxNSArNjQwMSwxMSBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSkKICAgICBib29sIHdhc091dE9mRmxvd1Bvc2l0aW9uZWQgPSBvbGRTdHlsZSAmJiAo
b2xkU3R5bGUtPnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBvbGRTdHlsZS0+cG9z
aXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKICAgICBpZiAocGFyZW50KCkgJiYgKHJlbmRlcmVy
KCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgIT0gd2FzT3V0T2ZGbG93UG9zaXRpb25lZCkpIHsK
ICAgICAgICAgcGFyZW50KCktPmRpcnR5QW5jZXN0b3JDaGFpbkhhc091dE9mRmxvd1Bvc2l0aW9u
ZWREZXNjZW5kYW50U3RhdHVzKCk7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgICAgICBpZiAoIXJlbmRlcmVyKCkuZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpICYmIGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKSkKICAgICAgICAgICAg
IGNvbXBvc2l0b3IoKS5zZXRTaG91bGRSZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCgp
OwotI2VuZGlmCiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
CiBpbmxpbmUgYm9vbCBSZW5kZXJMYXllcjo6bmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRG
b3JDbGlwKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5l
d1N0eWxlKSBjb25zdAogewogICAgIEFTU0VSVChuZXdTdHlsZSk7CkBAIC02NTUxLDggKzY0MTgs
NiBAQCBpbmxpbmUgYm9vbCBSZW5kZXJMYXllcjo6bmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVp
bHRGb3JPdmVyZmxvdyhjb25zdCBSZW5kZXJTdAogICAgIHJldHVybiAhaXNDb21wb3NpdGVkKCkg
JiYgb2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5vdmVyZmxvd1goKSAhPSBuZXdTdHlsZS0+b3ZlcmZs
b3dYKCkpICYmIHN0YWNraW5nQ29udGFpbmVyKCktPmhhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCgp
OwogfQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFJl
bmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICBib29sIGlzTm9ybWFsRmxvd09ubHkgPSBzaG91bGRC
ZU5vcm1hbEZsb3dPbmx5KCk7CkBAIC02NjA5LDcgKzY0NzQsNiBAQCB2b2lkIFJlbmRlckxheWVy
OjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZQogICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyQ2xpZW50cygpOwogI2VuZGlmCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKCk7CiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUgPSByZW5kZXJl
cigpLnN0eWxlKCk7CkBAIC02NjMxLDcgKzY0OTUsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHls
ZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZQogICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS5zZXRDb21wb3NpdGluZ0xheWVyc05lZWRS
ZWJ1aWxkKCk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykg
JiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VS
ZWNvbXBvc2l0ZUxheWVyIHx8IGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0UG9zaXRpb25l
ZE1vdmVtZW50T25seSkKQEAgLTY2NDIsNyArNjUwNSw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0
eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlCiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdXBkYXRlT3JSZW1vdmVGaWx0ZXJF
ZmZlY3RSZW5kZXJlcigpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBi
b29sIGJhY2tpbmdEaWRDb21wb3NpdGVMYXllcnMgPSBpc0NvbXBvc2l0ZWQoKSAmJiBiYWNraW5n
KCktPmNhbkNvbXBvc2l0ZUZpbHRlcnMoKTsKICAgICBpZiAoaXNDb21wb3NpdGVkKCkgJiYgYmFj
a2luZ0RpZENvbXBvc2l0ZUxheWVycyAmJiAhYmFja2luZygpLT5jYW5Db21wb3NpdGVGaWx0ZXJz
KCkpIHsKICAgICAgICAgLy8gVGhlIGZpbHRlcnMgdXNlZCB0byBiZSBkcmF3biBieSBwbGF0Zm9y
bSBjb2RlLCBidXQgbm93IHRoZSBwbGF0Zm9ybSBjYW5ub3QgZHJhdyB0aGVtIGFueW1vcmUuCkBA
IC02NjUwLDcgKzY1MTIsNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICBzZXRC
YWNraW5nTmVlZHNSZXBhaW50KCk7CiAgICAgfQogI2VuZGlmCi0jZW5kaWYKIH0KIAogdm9pZCBS
ZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoYm9vbCBoYXNPdmVyZmxvdykKQEAg
LTY2NjgsMTEgKzY1MjksOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxhYmxlQXJl
YVNldChib29sIGhhc092ZXJmbG93KQogICAgIGVsc2UKICAgICAgICAgYWRkZWRPclJlbW92ZWQg
PSBmcmFtZVZpZXcucmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAgICAgCi0gICAgaWYgKGFk
ZGVkT3JSZW1vdmVkKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlm
IChhZGRlZE9yUmVtb3ZlZCkKICAgICAgICAgdXBkYXRlTmVlZHNDb21wb3NpdGVkU2Nyb2xsaW5n
KCk7Ci0jZW5kaWYKLSAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGFkZGVkT3JS
ZW1vdmVkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDIzOTIx
NDM1ODI4MzljMmRlNDM2MzhiNTc1MzY4MjIyNWU4Nzc5OGIuLjU0OGYwOWU4ZDIyOWZkODk3YzE2
ODliMmRlZDFiOTYxMTUzMzgzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCkBAIC0zNDQsNyArMzQ0LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXBhaW50SW5jbHVk
aW5nRGVzY2VuZGFudHMoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAvLyBJbmRpY2F0ZSB0aGF0IHRoZSBsYXllciBjb250ZW50cyBuZWVkIHRvIGJlIHJlcGFpbnRl
ZC4gT25seSBoYXMgYW4gZWZmZWN0CiAgICAgLy8gaWYgbGF5ZXIgY29tcG9zaXRpbmcgaXMgYmVp
bmcgdXNlZC4KICAgICB2b2lkIHNldEJhY2tpbmdOZWVkc1JlcGFpbnQoR3JhcGhpY3NMYXllcjo6
U2hvdWxkQ2xpcFRvTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpDbGlwVG9MYXllcik7CkBAIC0zNTIs
NyArMzUxLDYgQEAgcHVibGljOgogICAgIC8vIFRoZSByZWN0IGlzIGluIHRoZSBjb29yZGluYXRl
IHNwYWNlIG9mIHRoZSBsYXllcidzIHJlbmRlciBvYmplY3QuCiAgICAgdm9pZCBzZXRCYWNraW5n
TmVlZHNSZXBhaW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmLCBHcmFwaGljc0xheWVyOjpTaG91
bGRDbGlwVG9MYXllciA9IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyKTsKICAgICB2b2lkIHJl
cGFpbnRJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpOwotI2VuZGlmCiAKICAgICB2b2lkIHN0eWxlQ2hhbmdl
ZChTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKQEAgLTQ3
MywxMyArNDcxLDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNSb290TGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2lzUm9vdExheWVyOyB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBjb21wb3NpdG9yKCkgY29uc3Q7CiAgICAg
CiAgICAgLy8gTm90aWZpY2F0aW9uIGZyb20gdGhlIHJlbmRlcmVyIHRoYXQgaXRzIGNvbnRlbnQg
Y2hhbmdlZCAoZS5nLiBjdXJyZW50IGZyYW1lIG9mIGltYWdlIGNoYW5nZWQpLgogICAgIC8vIEFs
bG93cyB1cGRhdGVzIG9mIGxheWVyIGNvbnRlbnQgd2l0aG91dCByZXBhaW50aW5nLgogICAgIHZv
aWQgY29udGVudENoYW5nZWQoQ29udGVudENoYW5nZVR5cGUpOwotI2VuZGlmCiAKICAgICBib29s
IGNhblJlbmRlcjNEVHJhbnNmb3JtcygpIGNvbnN0OwogCkBAIC00OTgsOSArNDk0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKCk7
CiAgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2b2lkIHBvc2l0aW9uTmV3bHlD
cmVhdGVkT3ZlcmZsb3dDb250cm9scygpOwotI2VuZGlmCiAgICAgCiAgICAgYm9vbCBpc1BhZ2lu
YXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdpbmF0ZWQ7IH0KICAgICBSZW5kZXJMYXllciog
ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NpbmdQYWdp
bmF0aW9uTGF5ZXI7IH0KQEAgLTYwNCwxMyArNTk4LDExIEBAIHB1YmxpYzoKIAogICAgIFJlbmRl
ckxheWVyKiBlbmNsb3NpbmdPdmVyZmxvd0NsaXBMYXllcihJbmNsdWRlU2VsZk9yTm90KSBjb25z
dDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBFbmNsb3Npbmcg
Y29tcG9zaXRpbmcgbGF5ZXI7IGlmIGluY2x1ZGVTZWxmIGlzIHRydWUsIG1heSByZXR1cm4gdGhp
cy4KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihJbmNsdWRlU2Vs
Zk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0OwogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdD
b21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYp
IGNvbnN0OwogICAgIC8vIEFuY2VzdG9yIGNvbXBvc2l0aW5nIGxheWVyLCBleGNsdWRpbmcgdGhp
cy4KICAgICBSZW5kZXJMYXllciogYW5jZXN0b3JDb21wb3NpdGluZ0xheWVyKCkgY29uc3QgeyBy
ZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihFeGNsdWRlU2VsZik7IH0KLSNlbmRpZgog
CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGaWx0
ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0OwpAQCAtNzkyLDcg
Kzc4NCw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBib29sIGlzQ29tcG9zaXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2luZyAhPSAwOyB9CiAg
ICAgYm9vbCBoYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc0Nv
bXBvc2l0aW5nRGVzY2VuZGFudDsgfQogICAgIGJvb2wgaGFzQ29tcG9zaXRlZE1hc2soKSBjb25z
dDsKQEAgLTgwNywxMiArNzk4LDYgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNDb21wb3NpdGVk
U2Nyb2xsaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBuZWVkc0NvbXBvc2l0aW5nTGF5ZXJzUmVidWls
dEZvckNsaXAoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSog
bmV3U3R5bGUpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNDb21wb3NpdGluZ0xheWVyc1JlYnVpbHRG
b3JPdmVyZmxvdyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxl
KiBuZXdTdHlsZSkgY29uc3Q7Ci0jZWxzZQotICAgIGJvb2wgaXNDb21wb3NpdGVkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGhhc0NvbXBvc2l0ZWRNYXNrKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIG5lZWRzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKIAogICAgIGJvb2wgcGFpbnRzV2l0aFRyYW5z
cGFyZW5jeShQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IpIGNvbnN0CiAgICAgewpAQCAtODQx
LDcgKzgyNiw2IEBAIHB1YmxpYzoKIAogICAgIEVsZW1lbnQqIGVuY2xvc2luZ0VsZW1lbnQoKSBj
b25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBlbnVtIFZpZXdw
b3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uIHsKICAgICAgICAgTm9Ob3RDb21wb3Np
dGVkUmVhc29uLAogICAgICAgICBOb3RDb21wb3NpdGVkRm9yQm91bmRzT3V0T2ZWaWV3LApAQCAt
ODUxLDcgKzgzNSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25zdHJhaW5l
ZE5vdENvbXBvc2l0ZWRSZWFzb24oVmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFz
b24gcmVhc29uKSB7IG1fdmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24gPSBy
ZWFzb247IH0KICAgICBWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiB2aWV3
cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uPihtX3ZpZXdwb3J0
Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKTsgfQotI2VuZGlmCiAgICAgCiAgICAgYm9v
bCBpc1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLmlzUmVuZGVy
Rmxvd1RocmVhZCgpOyB9CiAgICAgYm9vbCBpc091dE9mRmxvd1JlbmRlckZsb3dUaHJlYWQoKSBj
b25zdCB7IHJldHVybiByZW5kZXJlcigpLmlzT3V0T2ZGbG93UmVuZGVyRmxvd1RocmVhZCgpOyB9
CkBAIC0xMDkyLDkgKzEwNzUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0QW5jZXN0b3JDaGFp
bkhhc1Zpc2libGVEZXNjZW5kYW50KCk7CiAKICAgICB2b2lkIHVwZGF0ZURlc2NlbmRhbnREZXBl
bmRlbnRGbGFncyhIYXNoU2V0PGNvbnN0IFJlbmRlck9iamVjdCo+KiBvdXRPZkZsb3dEZXNjZW5k
YW50Q29udGFpbmluZ0Jsb2NrcyA9IDApOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBib29sIGNoZWNrSWZEZXNjZW5kYW50Q2xpcHBpbmdDb250ZXh0TmVlZHNVcGRhdGUo
Ym9vbCBpc0NsaXBwaW5nKTsKLSNlbmRpZgogCiAgICAgLy8gVGhpcyBmbGFnIGlzIGNvbXB1dGVk
IGJ5IFJlbmRlckxheWVyQ29tcG9zaXRvciwgd2hpY2gga25vd3MgbW9yZSBhYm91dCAzZCBoaWVy
YXJjaGllcyB0aGFuIHdlIGRvLgogICAgIHZvaWQgc2V0SGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRh
bnQoYm9vbCBiKSB7IG1faGFzM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnQgPSBiOyB9CkBAIC0xMTM2
LDggKzExMTcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEZJWE1FOiBUZW1wb3JhcnkuIFJl
bW92ZSB3aGVuIG5ldyBjb2x1bW5zIGNvbWUgb25saW5lLgogICAgIGJvb2wgdXNlUmVnaW9uQmFz
ZWRDb2x1bW5zKCkgY29uc3Q7Ci0gICAgCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAgICAKKwogICAgIHZvaWQgc2V0SGFzQ29tcG9zaXRpbmdEZXNjZW5kYW50KGJvb2wgYikgIHsg
bV9oYXNDb21wb3NpdGluZ0Rlc2NlbmRhbnQgPSBiOyB9CiAgICAgCiAgICAgZW51bSBJbmRpcmVj
dENvbXBvc2l0aW5nUmVhc29uIHsKQEAgLTExNTMsNyArMTEzMyw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRJbmRpcmVjdENvbXBvc2l0aW5nUmVhc29uKEluZGlyZWN0Q29tcG9zaXRpbmdSZWFz
b24gcmVhc29uKSB7IG1faW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA9IHJlYXNvbjsgfQogICAg
IEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24gaW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEluZGlyZWN0Q29tcG9zaXRpbmdSZWFzb24+KG1faW5k
aXJlY3RDb21wb3NpdGluZ1JlYXNvbik7IH0KICAgICBib29sIG11c3RDb21wb3NpdGVGb3JJbmRp
cmVjdFJlYXNvbnMoKSBjb25zdCB7IHJldHVybiBtX2luZGlyZWN0Q29tcG9zaXRpbmdSZWFzb247
IH0KLSNlbmRpZgogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHogb3JkZXJpbmcgd291bGQgbm90
IGNoYW5nZSBpZiB0aGlzIGxheWVyIHdlcmUgYSBzdGFja2luZyBjb250YWluZXIuCiAgICAgYm9v
bCBjYW5CZVN0YWNraW5nQ29udGFpbmVyKCkgY29uc3Q7CkBAIC0xMjMxLDExICsxMjEwLDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fM0RUcmFuc2Zvcm1lZERlc2NlbmRhbnRTdGF0dXNEaXJ0eSA6
IDE7CiAgICAgYm9vbCBtX2hhczNEVHJhbnNmb3JtZWREZXNjZW5kYW50IDogMTsgIC8vIFNldCBv
biBhIHN0YWNraW5nIGNvbnRleHQgbGF5ZXIgdGhhdCBoYXMgM0QgZGVzY2VuZGFudHMgYW55d2hl
cmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gYSBw
cmVzZXJ2ZXMzRCBoaWVyYXJjaHkuIEhpbnQgdG8gZG8gM0QtYXdhcmUgaGl0IHRlc3RpbmcuCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgbV9oYXNDb21wb3NpdGlu
Z0Rlc2NlbmRhbnQgOiAxOyAvLyBJbiB0aGUgei1vcmRlciB0cmVlLgogICAgIHVuc2lnbmVkIG1f
aW5kaXJlY3RDb21wb3NpdGluZ1JlYXNvbiA6IDM7CiAgICAgdW5zaWduZWQgbV92aWV3cG9ydENv
bnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiA6IDI7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JN
KElPUykKICAgICBib29sIG1fYWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nIDogMTsKQEAg
LTEzMjQsOSArMTMwMSw3IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fYmxvY2tTZWxlY3Rp
b25HYXBzQm91bmRzOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93
blB0cjxSZW5kZXJMYXllckJhY2tpbmc+IG1fYmFja2luZzsKLSNlbmRpZgogCiAgICAgY2xhc3Mg
RmlsdGVySW5mbzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCmluZGV4IDlkN2JkZGVhNjE5YjM4ZGNjNGUyYzNkMGVjOTQzMzJjNjQ5NmM3
MWYuLmIzZTY0YzM4MDBhMGE1NzU0OTNjOWY1ZGIyZmQ2OTA0YzJiNWRlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNSw4ICsy
NSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLQogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogCiAjaW5jbHVkZSAi
QW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtMjYyMSw1ICsyNjE5LDMgQEAgZG91YmxlIFJlbmRl
ckxheWVyQmFja2luZzo6YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdAogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgK
aW5kZXggY2UwZjQyMGYwODYyNTE4NTU2ODk0NjcyZjdiMmIzMWYwZjQ4ODY3OC4uMDU4ZmM4NDk5
NzRhMGIxZmM0ODc0MzI1Y2UwNDg1OTRhM2I1YjhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBS
ZW5kZXJMYXllckJhY2tpbmdfaAogI2RlZmluZSBSZW5kZXJMYXllckJhY2tpbmdfaAogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIgog
I2luY2x1ZGUgIkZsb2F0UG9pbnQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAg
LTMzNCw2ICszMzIsNCBAQCBDYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5IGNhbnZhc0NvbXBvc2l0
aW5nU3RyYXRlZ3koY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2VuZGlmIC8v
IFJlbmRlckxheWVyQmFja2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDg0YTI3MWQ4Y2ViZjU2NjQ4ZGQ4M2UwYzMz
NWFkNmViYTI2ZGI2YTUuLjViZGQzMDM4Y2NiNTg5MmFlMzQwMzcyN2JjNTI3OWVjNDFmMzI2YWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0
b3IuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM3MTIsNSArMzcx
MSwzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludFJlbGF0ZWRNaWxlc3RvbmVz
VGltZXJGaXJlZChUaW1lcjxSZW5kZXJMYXllckNvCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA3ZGU0YmYz
ZDBjYzAxNDMzYzMzYTY5NzczZTg3Y2YwNjJhYzhmNzA4Li4xNTM5MjM1MjhjYjRmN2YzOGM5OWFl
YjUyZGI0YTcxYzg1MDRhNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFJlbmRlckxh
eWVyQ29tcG9zaXRvcl9oCiAjZGVmaW5lIFJlbmRlckxheWVyQ29tcG9zaXRvcl9oCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXll
clVwZGF0ZXIuaCIKQEAgLTUyMiw2ICs1MjAsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNl
bmRpZiAvLyBSZW5kZXJMYXllckNvbXBvc2l0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAppbmRleCAxZmI1YmEzMThhMWU2N2Uy
MTAxZjg3YmQ0YWJlMTIwZDk3ZGYyMzU5Li5lNGU3ODZiNDgwMjU1ZjM1YjBjZTQxMDg3MjEzOWY5
YTNiZjg4OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmNwcApAQCAtNzE4LDcgKzcxOCw2IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpnZXRSYW5nZXMoVmVjdG9yPFJlZlB0cjxSYW5nZT4+JiByYW5nZU9iamVjdHMsIGNv
bnN0CiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNvbGxlY3RzR3JhcGhpY3NMYXllcnNVbmRlclJlZ2lvbnMo
KSBjb25zdAogewogICAgIC8vIFdlIG9ubHkgbmVlZCB0byBtYXAgbGF5ZXJzIHRvIHJlZ2lvbnMg
Zm9yIG5hbWVkIGZsb3cgdGhyZWFkcy4KQEAgLTcyNyw3ICs3MjYsNiBAQCBib29sIFJlbmRlck5h
bWVkRmxvd1RocmVhZDo6Y29sbGVjdHNHcmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAvLyBDaGVjayBpZiB0aGUgY29udGVu
dCBpcyBmbG93biBpbnRvIGF0IGxlYXN0IGEgcmVnaW9uIHdpdGggcmVnaW9uIHN0eWxpbmcgcnVs
ZXMuCiB2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y2hlY2tSZWdpb25zV2l0aFN0eWxpbmco
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1Ro
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5o
CmluZGV4IGE4MmVmYTNlMDE3ZWMxNTAxZDg0MGYyNTg3MTBjODUxNTEzNjk3ZmIuLjg0MTEwZGM3
ODMyYzZmNTEzYmVlNTM0OTI2NjcyY2U1NTdkMmZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTgwLDkgKzgwLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNNYXJrZWRGb3JEZXN0cnVjdGlvbigpIGNvbnN0OwogICAgIHZvaWQg
Z2V0UmFuZ2VzKFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiYsIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNv
bnN0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9v
bCBjb2xsZWN0c0dyYXBoaWNzTGF5ZXJzVW5kZXJSZWdpb25zKCkgY29uc3Qgb3ZlcnJpZGU7Ci0j
ZW5kaWYKIAogICAgIC8vIENoZWNrIGlmIHRoZSBjb250ZW50IGlzIGZsb3duIGludG8gYXQgbGVh
c3QgYSByZWdpb24gd2l0aCByZWdpb24gc3R5bGluZyBydWxlcy4KICAgICBib29sIGhhc1JlZ2lv
bnNXaXRoU3R5bGluZygpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVnaW9uc1dpdGhTdHlsaW5nOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGMzMGI1MjVi
YjRmM2FiYTcwNDc1YWM0NTNjMDEzM2IwNmUwMDcyYTUuLjI4Yzk4ODAyMzdiYTY2NWYzYmViODYz
NTE5Y2I1YTZkYWQ3Mjk4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCkBAIC0xMTk0LDcgKzExOTQsNiBAQCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBSZW5k
ZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogewogICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSAwOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmICh2aWV3KCkudXNlc0NvbXBvc2l0aW5nKCkpIHsKICAgICAg
ICAgaWYgKFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKICAg
ICAgICAgICAgIFJlbmRlckxheWVyKiBjb21wTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5n
Q29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKQEAgLTEyMDIsNyArMTIwMSw2IEBAIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCgpIGNv
bnN0CiAgICAgICAgICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZjb21wTGF5ZXItPnJlbmRl
cmVyKCk7CiAgICAgICAgIH0KICAgICB9Ci0jZW5kaWYKICAgICAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgaWYgKHZpZXcoKS5oYXNTb2Z0d2FyZUZpbHRlcnMoKSkgewpAQCAtMTI1NSw3
ICsxMjUzLDYgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICB9CiAjZW5kaWYKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBSZW5kZXJWaWV3JiB2ID0gdmlldygp
OwogICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkgewogICAgICAgICBB
U1NFUlQocmVwYWludENvbnRhaW5lciA9PSAmdik7CkBAIC0xMjcwLDEwICsxMjY3LDYgQEAgdm9p
ZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICAgICAgQVNTRVJUKHJlcGFpbnRDb250YWluZXItPmhh
c0xheWVyKCkgJiYgcmVwYWludENvbnRhaW5lci0+bGF5ZXIoKS0+aXNDb21wb3NpdGVkKCkpOwog
ICAgICAgICByZXBhaW50Q29udGFpbmVyLT5sYXllcigpLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50
SW5SZWN0KHIsIHNob3VsZENsaXBUb0xheWVyID8gR3JhcGhpY3NMYXllcjo6Q2xpcFRvTGF5ZXIg
OiBHcmFwaGljc0xheWVyOjpEb05vdENsaXBUb0xheWVyKTsKICAgICB9Ci0jZWxzZQotICAgIGlm
IChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkKLSAgICAgICAgdG9SZW5kZXJWaWV3
KCpyZXBhaW50Q29udGFpbmVyKS5yZXBhaW50Vmlld1JlY3RhbmdsZShyLCBpbW1lZGlhdGUpOwot
I2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KGJvb2wgaW1tZWRpYXRlKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmlu
ZGV4IGQ4NjZiYzY0ZDBiYTYzNjgwMDc3OWE3MWI0YzI4NGRhNjA4NTQ0NDAuLjhlY2NmNDUzZDM1
OTllZmQ3MTgwMGVmZmE3ZTU0YWFhZTUyNTkwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGluZUJyZWFrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRl
ICJSZW5kZXJMaXN0TWFya2VyLmgiCkBAIC03MCwxMCArNzEsNiBAQAogI2luY2x1ZGUgIlNWR1Jl
bmRlclRyZWVBc1RleHQuaCIKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTYzOSwxNSArNjM2
LDExIEBAIHN0YXRpYyB2b2lkIHdyaXRlKFRleHRTdHJlYW0mIHRzLCBSZW5kZXJMYXllciYgbCwK
ICAgICAgICAgdHMgPDwgIiBsYXllclR5cGU6IGJhY2tncm91bmQgb25seSI7CiAgICAgZWxzZSBp
ZiAocGFpbnRQaGFzZSA9PSBMYXllclBhaW50UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICB0cyA8
PCAiIGxheWVyVHlwZTogZm9yZWdyb3VuZCBvbmx5IjsKLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisKICAgICBpZiAoYmVoYXZpb3IgJiBSZW5kZXJBc1RleHRTaG93Q29t
cG9zaXRlZExheWVycykgewogICAgICAgICBpZiAobC5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAg
ICAgIHRzIDw8ICIgKGNvbXBvc2l0ZWQsIGJvdW5kcz0iIDw8IGwuYmFja2luZygpLT5jb21wb3Np
dGVkQm91bmRzKCkgPDwgIiwgZHJhd3NDb250ZW50PSIgPDwgbC5iYWNraW5nKCktPmdyYXBoaWNz
TGF5ZXIoKS0+ZHJhd3NDb250ZW50KCkgPDwgIiwgcGFpbnRzIGludG8gYW5jZXN0b3I9IiA8PCBs
LmJhY2tpbmcoKS0+cGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpIDw8ICIpIjsKICAgICB9
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShiZWhhdmlvcik7Ci0jZW5kaWYKICAgICAKICAgICB0
cyA8PCAiXG4iOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAppbmRl
eCBmNjM5ODJjMGJjMDQ2ZDE3MDFhNDE2N2ZiMjg3NzIyNTA5ZjIwNDM2Li5jZDI4YTZjY2NmMDdl
MzZiZTRjZDkzNGY2YzIyYzVhMGVlM2U5NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWRlby5jcHAKQEAgLTIzMCw5ICsyMzAsNyBAQCB2b2lkIFJlbmRlclZpZGVvOjp1cGRh
dGVQbGF5ZXIoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGNvbnRlbnRDaGFuZ2VkKFZpZGVvQ2hhbmdlZCk7Ci0jZW5kaWYK
ICAgICAKICAgICBJbnRSZWN0IHZpZGVvQm91bmRzID0gdmlkZW9Cb3goKTsgCiAgICAgbWVkaWFQ
bGF5ZXItPnNldEZyYW1lVmlldygmdmlldygpLmZyYW1lVmlldygpKTsKQEAgLTI1Niw3ICsyNTQs
NiBAQCBMYXlvdXRVbml0IFJlbmRlclZpZGVvOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25z
dAogICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6bWluaW11bVJlcGxhY2VkSGVpZ2h0KCk7IAog
fQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJWaWRlbzo6
c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiB7CiAgICAgaWYgKE1lZGlhUGxh
eWVyKiBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQoKS5wbGF5ZXIoKSkKQEAgLTI2OSw3ICsyNjYsNiBA
QCB2b2lkIFJlbmRlclZpZGVvOjphY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAg
ICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB2aWRlb0VsZW1lbnQoKS5wbGF5ZXIoKSkKICAg
ICAgICAgcGxheWVyLT5hY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwogfQotI2Vu
ZGlmICAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIGJvb2wgUmVuZGVyVmlkZW86
OnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uaAppbmRleCAxNjQzMDU0MjQ3ZWFiYmIyMmIyZjUzMzk5ODI4ZjUx
N2JjNGNjNTgzLi40MTYwYTY1Y2Q2ZjAwYmRjODk0YmMyN2M3YzNiNzRiNGUxYWVjYjEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaApAQCAtNDUsMTAgKzQ1LDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEludFNpemUgZGVmYXVsdFNpemUoKTsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJp
bmcoKSBjb25zdDsKICAgICB2b2lkIGFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCk7
Ci0jZW5kaWYKIAogICAgIGJvb2wgcmVxdWlyZXNJbW1lZGlhdGVDb21wb3NpdGluZygpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggYTY3NGU4YmY3
Njc5YzJkNTNjMTFhNjE1ODRmYTFhYzVlZTA4Y2IyMy4uYzQ0OWI4ODBmMWI0YjQyZjVmYzA3MGEy
OWQ5NmFhMzZmYjM2NDdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNs
dWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1lZEZsb3dU
aHJlYWQuaCIKICNpbmNsdWRlICJSZW5kZXJTZWxlY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyV2lkZ2V0LmgiCkBAIC00NywxMCArNDgsNiBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRl
LmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9jdW1lbnQm
IGRvY3VtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKQEAgLTUzMywxNCArNTMwLDEy
IEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYgKFJlbmRlckxh
eWVyKiBjb21wb3NpdGluZ0xheWVyID0gbGF5ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJG
b3JSZXBhaW50KCkpIHsKICAgICAgICAgICAgIGlmICghY29tcG9zaXRpbmdMYXllci0+YmFja2lu
ZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZVZpZXcoKS5z
ZXRDYW5ub3RCbGl0VG9XaW5kb3coKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQotI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKGRvY3VtZW50KCkub3du
ZXJFbGVtZW50KCkpCkBAIC01NjAsOSArNTU1LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJv
eERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAg
ICAgfQogCiAgICAgYm9vbCBoYXNUaWxlZE1hcmdpbiA9IGZhbHNlOwotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBoYXNUaWxlZE1hcmdpbiA9IGNvbXBvc2l0b3IoKS5tYWlu
RnJhbWVCYWNraW5nSXNUaWxlZFdpdGhNYXJnaW4oKTsKLSNlbmRpZgogCiAgICAgUGFnZSogcGFn
ZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IHBhZ2Ug
PyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CkBAIC01OTYsMTIgKzU4OSwxMCBAQCBib29s
IFJlbmRlclZpZXc6OnNob3VsZFJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkgY29uc3QK
IAogdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Um9vdENvbnRlbnRzKCkKIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGxheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7
CiAgICAgICAgIGxheWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnQoR3JhcGhpY3NMYXllcjo6
RG9Ob3RDbGlwVG9MYXllcik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKICAgICBy
ZXBhaW50KCk7CiB9CiAKQEAgLTY2MCwyNCArNjUxLDIxIEBAIHZvaWQgUmVuZGVyVmlldzo6cmVw
YWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY29uc3QgTGF5b3V0UmVjdCYg
dXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlcGFpbnRWaWV3UmVjdGFuZ2xlKHVyLCBpbW1l
ZGlhdGUpOwotICAgIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIFJl
bmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvciA9IHRoaXMtPmNvbXBvc2l0b3IoKTsKICAg
ICBpZiAoY29tcG9zaXRvci5pbkNvbXBvc2l0aW5nTW9kZSgpKSB7CiAgICAgICAgIEludFJlY3Qg
cmVwYWludFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHVyKTsKICAgICAgICAgY29tcG9zaXRv
ci5yZXBhaW50Q29tcG9zaXRlZExheWVycygmcmVwYWludFJlY3QpOwogICAgIH0KLSNlbmRpZgog
fQogCiB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3QW5kQ29tcG9zaXRlZExheWVycygpCiB7
CiAgICAgcmVwYWludFJvb3RDb250ZW50cygpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKwogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciYgY29tcG9zaXRvciA9IHRoaXMtPmNv
bXBvc2l0b3IoKTsKICAgICBpZiAoY29tcG9zaXRvci5pbkNvbXBvc2l0aW5nTW9kZSgpKQogICAg
ICAgICBjb21wb3NpdG9yLnJlcGFpbnRDb21wb3NpdGVkTGF5ZXJzKCk7Ci0jZW5kaWYKIH0KIAog
TGF5b3V0UmVjdCBSZW5kZXJWaWV3Ojp2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25zdApAQCAtODAy
LDcgKzc5MCw2IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFNlbGVjdGlvbigpIGNvbnN0CiAg
ICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogLy8gQ29tcG9zaXRp
bmcgbGF5ZXIgZGltZW5zaW9ucyB0YWtlIG91dGxpbmUgc2l6ZSBpbnRvIGFjY291bnQsIHNvIHdl
IGhhdmUgdG8gcmVjb21wdXRlIGxheWVyCiAvLyBib3VuZHMgd2hlbiBpdCBjaGFuZ2VzLgogLy8g
RklYTUU6IFRoaXMgaXMgdWdseTsgaXQgd291bGQgYmUgbmljZSB0byBoYXZlIGEgYmV0dGVyIHdh
eSB0byBkbyB0aGlzLgpAQCAtODE1LDcgKzgwMiw2IEBAIHZvaWQgUmVuZGVyVmlldzo6c2V0TWF4
aW1hbE91dGxpbmVTaXplKGludCBvKQogICAgICAgICBjb21wb3NpdG9yKCkuc2V0Q29tcG9zaXRp
bmdMYXllcnNOZWVkUmVidWlsZCgpOyAgICAvLyBGSVhNRTogdGhpcyByZWFsbHkganVzdCBuZWVk
cyB0byBiZSBhIGdlb21ldHJ5IHVwZGF0ZS4KICAgICB9CiB9Ci0jZW5kaWYKIAogLy8gV2hlbiBl
eHBsb3JpbmcgdGhlIFJlbmRlclRyZWUgbG9va2luZyBmb3IgdGhlIG5vZGVzIGludm9sdmVkIGlu
IHRoZSBTZWxlY3Rpb24sIHNvbWV0aW1lcyBpdCdzCiAvLyByZXF1aXJlZCB0byBjaGFuZ2UgdGhl
IHRyYXZlcnNpbmcgZGlyZWN0aW9uIGJlY2F1c2UgdGhlICJzdGFydCIgcG9zaXRpb24gaXMgYmVs
b3cgdGhlICJlbmQiIG9uZS4KQEAgLTExNjcsNyArMTE1Myw2IEBAIHZvaWQgUmVuZGVyVmlldzo6
c2V0QmVzdFRydW5jYXRlZEF0KGludCB5LCBSZW5kZXJCb3hNb2RlbE9iamVjdCogZm9yUmVuZGVy
ZXIsIGJvCiAgICAgfQogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9v
bCBSZW5kZXJWaWV3Ojp1c2VzQ29tcG9zaXRpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2Nv
bXBvc2l0b3IgJiYgbV9jb21wb3NpdG9yLT5pbkNvbXBvc2l0aW5nTW9kZSgpOwpAQCAtMTE4MCwx
NiArMTE2NSwxMSBAQCBSZW5kZXJMYXllckNvbXBvc2l0b3ImIFJlbmRlclZpZXc6OmNvbXBvc2l0
b3IoKQogCiAgICAgcmV0dXJuICptX2NvbXBvc2l0b3I7CiB9Ci0jZW5kaWYKIAogdm9pZCBSZW5k
ZXJWaWV3OjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKG1fY29tcG9zaXRvcikKICAgICAgICAgbV9jb21w
b3NpdG9yLT5zZXRJc0luV2luZG93KGlzSW5XaW5kb3cpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oaXNJbldpbmRvdyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJWaWV3OjpzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMGM0ZjRjM2JhN2YyM2EzOGQ5
OWIzZGE3YWRkYWUyYWMzOTMyZWY5MS4uYmUxOTRhZWJlZjQ0YWNiNGQyOTQ1MWYwNjQ1MTYxNGJi
MWI1ZmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0zMywxMSAr
MzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb3dUaHJlYWRDb250cm9sbGVy
OwogY2xhc3MgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjsKLWNsYXNzIFJlbmRlclF1b3RlOwotCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOwotI2VuZGlmCitjbGFzcyBSZW5kZXJRdW90ZTsKIAogY2xhc3MgUmVuZGVyVmlldyBmaW5h
bCA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgpAQCAtOTksMTEgKzk2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYs
IGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3
YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdm9pZCBzZXRNYXhpbWFsT3V0bGluZVNpemUoaW50IG8pOwotI2Vsc2UKLSAgICB2
b2lkIHNldE1heGltYWxPdXRsaW5lU2l6ZShpbnQgbykgeyBtX21heGltYWxPdXRsaW5lU2l6ZSA9
IG87IH0KLSNlbmRpZgogICAgIGludCBtYXhpbWFsT3V0bGluZVNpemUoKSBjb25zdCB7IHJldHVy
biBtX21heGltYWxPdXRsaW5lU2l6ZTsgfQogCiAgICAgTGF5b3V0UmVjdCB2aWV3UmVjdCgpIGNv
bnN0OwpAQCAtMTgxLDEwICsxNzQsOCBAQCBwdWJsaWM6CiAgICAgLy8gTm90aWZpY2F0aW9uIHRo
YXQgdGhpcyB2aWV3IG1vdmVkIGludG8gb3Igb3V0IG9mIGEgbmF0aXZlIHdpbmRvdy4KICAgICB2
b2lkIHNldElzSW5XaW5kb3coYm9vbCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBjb21wb3NpdG9yKCk7CiAgICAgYm9vbCB1
c2VzQ29tcG9zaXRpbmcoKSBjb25zdDsKLSNlbmRpZgogCiAgICAgSW50UmVjdCB1bnNjYWxlZERv
Y3VtZW50UmVjdCgpIGNvbnN0OwogICAgIExheW91dFJlY3QgYmFja2dyb3VuZFJlY3QoUmVuZGVy
Qm94KiBiYWNrZ3JvdW5kUmVuZGVyZXIpIGNvbnN0OwpAQCAtMzQ1LDkgKzMzNiw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZDsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7CiAgICAgdW5zaWduZWQgbV9sYXlvdXRT
dGF0ZURpc2FibGVDb3VudDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
T3duUHRyPFJlbmRlckxheWVyQ29tcG9zaXRvcj4gbV9jb21wb3NpdG9yOwotI2VuZGlmCiAgICAg
T3duUHRyPEZsb3dUaHJlYWRDb250cm9sbGVyPiBtX2Zsb3dUaHJlYWRDb250cm9sbGVyOwogICAg
IFJlZlB0cjxJbnRlcnZhbEFyZW5hPiBtX2ludGVydmFsQXJlbmE7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggZWY4MDRiMmJlNmMzMDVlNjkyMGYwYzZl
NTI1ZmMyZWZkYjJkMzJlOS4uNTg2N2ExMTIxMWUzNTk1ZWE2ZWEzNjc2OWZjOTI2MWMyMTA1N2I2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI4LDE0
ICsyOCwxMSBAQAogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJl
bmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3
dGYvU3RhY2tTdGF0cy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFdpZGdldCos
IFJlbmRlcldpZGdldCo+JiB3aWRnZXRSZW5kZXJlck1hcCgpCkBAIC0xNDEsMTAgKzEzOCw5IEBA
IGJvb2wgUmVuZGVyV2lkZ2V0OjpzZXRXaWRnZXRHZW9tZXRyeShjb25zdCBMYXlvdXRSZWN0JiBm
cmFtZSkKICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoYm91bmRzQ2hhbmdlZCAmJiBoYXNM
YXllcigpICYmIGxheWVyKCktPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICBsYXllcigpLT5iYWNr
aW5nKCktPnVwZGF0ZUFmdGVyV2lkZ2V0UmVzaXplKCk7Ci0jZW5kaWYKKwogICAgIHJldHVybiBv
bGRGcmFtZVJlY3Quc2l6ZSgpICE9IG5ld0ZyYW1lUmVjdC5zaXplKCk7CiB9CiAKQEAgLTM4NCw3
ICszODAsNiBAQCBib29sIFJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlcwogICAgIHJldHVybiBpbnNpZGU7CiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIFJlbmRlcldpZGdldDo6
cmVxdWlyZXNMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpyZXF1
aXJlc0xheWVyKCkgfHwgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkBAIC00MDAs
NyArMzk1LDYgQEAgYm9vbCBSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZygpIGNvbnN0CiAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZW5kaWYKIAogYm9vbCBSZW5k
ZXJXaWRnZXQ6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggYWZjZWYzYTg3MzU0Y2Vj
MzY3OGFlODUyNTVmYzYzYjA4MzdhZmQ1MS4uNzg4ZGY5YjZiNDMzNmY1NTg2NjQxZTA2NTg0MDg5
ZmIwMzJkOGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAt
NzAsOSArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRQb3NpdGlvbigpOwog
ICAgIEludFJlY3Qgd2luZG93Q2xpcFJlY3QoKSBjb25zdDsKIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICBib29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
IGNvbnN0OwotI2VuZGlmCiAKICAgICBXZWFrUHRyPFJlbmRlcldpZGdldD4gY3JlYXRlV2Vha1B0
cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKQEAgLTg0
LDkgKzgyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0
TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBj
b25zdCBvdmVycmlkZTsKLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNv
bnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggNzFjNjM3NmE4MzM1Y2FjMGRhMGYwZmFjZDA0NmJhM2ZlNjJkZDkzZC4u
MTk1YmMzNTFkZGQ4ZWZjNjk1OTMyN2FkMThjZmMxZmQ1MzExMjVhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00NzQsMzAgKzQ3NCwx
NCBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBSZW5kZXJT
dHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZwogCiAgICAgICAgIGlmIChyYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV90cmFuc2Zvcm0uZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3RyYW5zZm9ybS5nZXQoKQogICAgICAgICAgICAgJiYgKnJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX3RyYW5zZm9ybS5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Ry
YW5zZm9ybS5nZXQoKSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAg
ICAgICAgIGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyB8PSBDb250ZXh0U2Vuc2l0
aXZlUHJvcGVydHlUcmFuc2Zvcm07CiAgICAgICAgICAgICAvLyBEb24ndCByZXR1cm47IGtlZXAg
bG9va2luZyBmb3IgYW5vdGhlciBjaGFuZ2UKLSNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFS
QU0oY2hhbmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fZ3JpZC5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3Jp
ZC5nZXQoKQogICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0u
Z2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJdGVtLmdldCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSNpZiAhVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLmdldCgpKSB7Ci0gICAgICAgICAgICBpZiAocmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fdHJhbnNmb3JtU3R5bGUzRCAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fdHJhbnNmb3JtU3R5bGUzRAotICAgICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2JhY2tmYWNlVmlzaWJpbGl0eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fYmFja2ZhY2VWaXNpYmlsaXR5Ci0gICAgICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fcGVyc3BlY3RpdmUgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X3BlcnNwZWN0aXZlCi0gICAgICAgICAgICAgICAgfHwgcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
cGVyc3BlY3RpdmVPcmlnaW5YICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wZXJz
cGVjdGl2ZU9yaWdpblgKLSAgICAgICAgICAgICAgICB8fCByYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9wZXJzcGVjdGl2ZU9yaWdpblkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Bl
cnNwZWN0aXZlT3JpZ2luWSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
fQotI2VuZGlmCi0KICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgIC8vIElm
IHJlZ2lvbnMgY2hhbmdlLCB0cmlnZ2VyIGEgcmVsYXlvdXQgdG8gcmUtY2FsYyByZWdpb25zLgog
ICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGFzaGJvYXJkUmVnaW9ucyAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGFzaGJvYXJkUmVnaW9ucykKQEAgLTcxMywy
NCArNjk3LDE1IEBAIGJvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzTGF5ZXJSZXBhaW50
KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmCiAjZW5kaWYKIAogICAgIGlmIChy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+b3BhY2l0eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERh
dGEtPm9wYWNpdHkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAg
IGNoYW5nZWRDb250ZXh0U2Vuc2l0aXZlUHJvcGVydGllcyB8PSBDb250ZXh0U2Vuc2l0aXZlUHJv
cGVydHlPcGFjaXR5OwogICAgICAgICAvLyBEb24ndCByZXR1cm47IGtlZXAgbG9va2luZyBmb3Ig
YW5vdGhlciBjaGFuZ2UuCi0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oY2hhbmdlZENvbnRl
eHRTZW5zaXRpdmVQcm9wZXJ0aWVzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKICAg
ICB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2ZpbHRlci5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmls
dGVyLmdldCgpCiAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXIuZ2V0
KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXIuZ2V0KCkpIHsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGNoYW5nZWRDb250ZXh0U2Vu
c2l0aXZlUHJvcGVydGllcyB8PSBDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHlGaWx0ZXI7CiAgICAg
ICAgIC8vIERvbid0IHJldHVybjsga2VlcCBsb29raW5nIGZvciBhbm90aGVyIGNoYW5nZS4KLSNl
bHNlCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCiAgICAgfQogI2VuZGlmCiAKQEAgLTc5
MSw3ICs3NjYsNiBAQCBib29sIFJlbmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc1JlcGFpbnRJZlRl
eHRPckJvcmRlck9yT3V0bGluZShjb25zdCBSZW5kZXJTdHlsZQogCiBib29sIFJlbmRlclN0eWxl
OjpjaGFuZ2VSZXF1aXJlc1JlY29tcG9zaXRlTGF5ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVy
LCB1bnNpZ25lZCYpIGNvbnN0CiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVy
aXRlZERhdGEuZ2V0KCkpIHsKICAgICAgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3Ry
YW5zZm9ybVN0eWxlM0QgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3RyYW5zZm9y
bVN0eWxlM0QKICAgICAgICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JhY2tmYWNl
VmlzaWJpbGl0eSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYmFja2ZhY2VWaXNp
YmlsaXR5CkBAIC04MDAsOSArNzc0LDcgQEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWly
ZXNSZWNvbXBvc2l0ZUxheWVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWcKICAgICAg
ICAgICAgIHx8IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX3BlcnNwZWN0aXZlT3JpZ2luWSAhPSBv
dGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcGVyc3BlY3RpdmVPcmlnaW5ZKQogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob3RoZXIp
OwotI2VuZGlmCisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTg0MCwxMCArODEyLDggQEAg
U3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhl
ciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICBpZiAoY2hhbmdlUmVxdWlyZXNSZXBhaW50KG90
aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpKQogICAgICAgICByZXR1cm4g
U3R5bGVEaWZmZXJlbmNlUmVwYWludDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBpZiAoY2hhbmdlUmVxdWlyZXNSZWNvbXBvc2l0ZUxheWVyKG90aGVyLCBjaGFuZ2Vk
Q29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJl
bmNlUmVjb21wb3NpdGVMYXllcjsKLSNlbmRpZgogCiAgICAgaWYgKGNoYW5nZVJlcXVpcmVzUmVw
YWludElmVGV4dE9yQm9yZGVyT3JPdXRsaW5lKG90aGVyLCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2
ZVByb3BlcnRpZXMpKQogICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludElmVGV4
dE9yQm9yZGVyT3JPdXRsaW5lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAppbmRleCA3M2E1MzUwY2UxNGZjZTNmMjQ4MDVlYjI5YzM4Y2VmYjNiN2U1NTI2
Li45ZGI3M2YzZWU1NDMwMWI2Njk0NTVhMTI1YTJiOGQwNmM0YzM2M2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTI1LDEwICs5MjUsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoU2l6ZSYgcGFnZVNpemUoKSBjb25zdCB7IHJldHVy
biByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9wYWdlU2l6ZTsgfQogICAgIFBhZ2VTaXplVHlwZSBw
YWdlU2l6ZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQYWdlU2l6ZVR5cGU+KHJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX3BhZ2VTaXplVHlwZSk7IH0KICAgICAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gV2hlbiBzZXQsIHRoaXMgZW5zdXJlcyB0aGF0
IHN0eWxlcyBjb21wYXJlIGFzIGRpZmZlcmVudC4gVXNlZCBkdXJpbmcgYWNjZWxlcmF0ZWQgYW5p
bWF0aW9ucy4KICAgICBib29sIGlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0
aW9uOyB9Ci0jZW5kaWYKIAogICAgIExpbmVCb3hDb250YWluIGxpbmVCb3hDb250YWluKCkgY29u
c3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUJveENvbnRhaW47IH0KICAgICBj
b25zdCBMaW5lQ2xhbXBWYWx1ZSYgbGluZUNsYW1wKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPmxpbmVDbGFtcDsgfQpAQCAtMTQzNSw5ICsxNDMzLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UGFnZVNpemVUeXBlKFBhZ2VTaXplVHlwZSB0KSB7IFNFVF9WQVIocmFyZU5v
bkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVUeXBlLCB0KTsgfQogICAgIHZvaWQgcmVzZXRQYWdl
U2l6ZVR5cGUoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fcGFnZVNpemVUeXBl
LCBQQUdFX1NJWkVfQVVUTyk7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICB2b2lkIHNldElzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKGJvb2wgYiA9IHRydWUp
IHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmlt
YXRpb24sIGIpOyB9Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0TGluZUJveENvbnRhaW4oTGluZUJv
eENvbnRhaW4gYykgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2xpbmVCb3hDb250YWlu
LCBjKTsgfQogICAgIHZvaWQgc2V0TGluZUNsYW1wKExpbmVDbGFtcFZhbHVlIGMpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbGluZUNsYW1wLCBjKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCAx
MWI0Mjg1NTkyZWQxYjljZTVkZWRlMDcwY2UxZDhiMzJkYmE4NDMwLi5mYTRhYzFjNmNjNWIwYjRk
OGYwNDE3YTFjNmVkMGMyNjRiZmJlMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDYsOSArNDYsNyBAQCBl
bnVtIFByaW50Q29sb3JBZGp1c3QgewogLy8gLSBTdHlsZURpZmZlcmVuY2VMYXlvdXQgLSBBIGZ1
bGwgbGF5b3V0IGlzIHJlcXVpcmVkLgogZW51bSBTdHlsZURpZmZlcmVuY2UgewogICAgIFN0eWxl
RGlmZmVyZW5jZUVxdWFsLAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBT
dHlsZURpZmZlcmVuY2VSZWNvbXBvc2l0ZUxheWVyLAotI2VuZGlmCiAgICAgU3R5bGVEaWZmZXJl
bmNlUmVwYWludCwKICAgICBTdHlsZURpZmZlcmVuY2VSZXBhaW50SWZUZXh0T3JCb3JkZXJPck91
dGxpbmUsCiAgICAgU3R5bGVEaWZmZXJlbmNlUmVwYWludExheWVyLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuY3BwCmluZGV4IGQyYmQ1NmY3MGNmMWY2OTQ5ZTUyZTgwNDdkNzRiNzVjOGEzYzE0MTYuLjY4
NDBjMjU4NWY5OGViYmZjNTU3NDRjMmUzODExNzBmMDQ0YTdkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAKQEAgLTg2LDkgKzg2LDcgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAgLCBtX3RleHREZWNvcmF0aW9uU3R5bGUoUmVu
ZGVyU3R5bGU6OmluaXRpYWxUZXh0RGVjb3JhdGlvblN0eWxlKCkpCiAgICAgLCBtX3dyYXBGbG93
KFJlbmRlclN0eWxlOjppbml0aWFsV3JhcEZsb3coKSkKICAgICAsIG1fd3JhcFRocm91Z2goUmVu
ZGVyU3R5bGU6OmluaXRpYWxXcmFwVGhyb3VnaCgpKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKGZhbHNlKQotI2Vu
ZGlmCiAgICAgLCBtX2hhc0FzcGVjdFJhdGlvKGZhbHNlKQogI2lmIEVOQUJMRShDU1NfQ09NUE9T
SVRJTkcpCiAgICAgLCBtX2VmZmVjdGl2ZUJsZW5kTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbEJs
ZW5kTW9kZSgpKQpAQCAtMTY2LDkgKzE2NCw3IEBAIGlubGluZSBTdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZU5vbkluCiAg
ICAgLCBtX3RleHREZWNvcmF0aW9uU3R5bGUoby5tX3RleHREZWNvcmF0aW9uU3R5bGUpCiAgICAg
LCBtX3dyYXBGbG93KG8ubV93cmFwRmxvdykKICAgICAsIG1fd3JhcFRocm91Z2goby5tX3dyYXBU
aHJvdWdoKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fcnVubmlu
Z0FjY2VsZXJhdGVkQW5pbWF0aW9uKG8ubV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24pCi0j
ZW5kaWYKICAgICAsIG1faGFzQXNwZWN0UmF0aW8oby5tX2hhc0FzcGVjdFJhdGlvKQogI2lmIEVO
QUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgLCBtX2VmZmVjdGl2ZUJsZW5kTW9kZShvLm1fZWZm
ZWN0aXZlQmxlbmRNb2RlKQpAQCAtMjU3LDkgKzI1Myw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBv
KSBjCiAgICAgICAgICYmIG1fdGV4dERlY29yYXRpb25TdHlsZSA9PSBvLm1fdGV4dERlY29yYXRp
b25TdHlsZQogICAgICAgICAmJiBtX3dyYXBGbG93ID09IG8ubV93cmFwRmxvdwogICAgICAgICAm
JiBtX3dyYXBUaHJvdWdoID09IG8ubV93cmFwVGhyb3VnaAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICAgICAgJiYgIW1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uICYm
ICFvLm1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uCi0jZW5kaWYKICNpZiBFTkFCTEUoQ1NT
X0NPTVBPU0lUSU5HKQogICAgICAgICAmJiBtX2VmZmVjdGl2ZUJsZW5kTW9kZSA9PSBvLm1fZWZm
ZWN0aXZlQmxlbmRNb2RlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDQ1MjNmM2Jl
NGM3NjhhY2RlNmE5ZmUzMDNlMDA1Y2U1MTQ1ZTRkNzIuLjNiYzI4MjViOTM2NDhjOTdiMGZjMDVk
OTRiZGYxYjFjN2ZhYzAxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTg2LDkgKzE4Niw3
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBtX3dyYXBGbG93OiAzOyAvLyBXcmFwRmxvdwogICAg
IHVuc2lnbmVkIG1fd3JhcFRocm91Z2g6IDE7IC8vIFdyYXBUaHJvdWdoCiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdW5zaWduZWQgbV9ydW5uaW5nQWNjZWxlcmF0ZWRB
bmltYXRpb24gOiAxOwotI2VuZGlmCiAKICAgICB1bnNpZ25lZCBtX2hhc0FzcGVjdFJhdGlvIDog
MTsgLy8gV2hldGhlciBvciBub3QgYW4gYXNwZWN0IHJhdGlvIGhhcyBiZWVuIHNwZWNpZmllZC4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDVmNDYyMzkzYmQyYjI2OWM0
MTUzZDAzYjI0MmZlYzEzMDY4MGE0OTQuLjdkOGVmYzU0Yjk4NWVjYmEzZDcwMjFiM2JhNGM3ZWIx
Njg1YzcxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI2NywxMyAr
MjY3LDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UqIHBh
Z2UpCiAgICAgcGFnZS0+c2V0UGFnZVNjYWxlRmFjdG9yKDEsIEludFBvaW50KDAsIDApKTsKICAg
ICBwYWdlLT5zZXRQYWdpbmF0aW9uKFBhZ2luYXRpb24oKSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgRnJhbWVWaWV3KiBtYWluRnJhbWVWaWV3ID0gcGFnZS0+bWFp
bkZyYW1lKCkudmlldygpOwogICAgIGlmIChtYWluRnJhbWVWaWV3KSB7CiAgICAgICAgIG1haW5G
cmFtZVZpZXctPnNldEhlYWRlckhlaWdodCgwKTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0
Rm9vdGVySGVpZ2h0KDApOwogICAgIH0KLSNlbmRpZgorCiAgICAgVGV4dFJ1bjo6c2V0QWxsb3dz
Um91bmRpbmdIYWNrcyhmYWxzZSk7CiAgICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFZlY3RvcjxTdHJpbmc+KCkpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRV
c2VzT3ZlcmxheVNjcm9sbGJhcnMoZmFsc2UpOwpAQCAtMTc1NCwxMiArMTc1Myw5IEBAIHZvaWQg
SW50ZXJuYWxzOjpzZXRIZWFkZXJIZWlnaHQoZmxvYXQgaGVpZ2h0KQogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT52aWV3KCkpCiAgICAgICAgIHJldHVybjsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCk7CiAg
ICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJIZWlnaHQoaGVpZ2h0KTsKLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKGhlaWdodCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldEZvb3Rlckhl
aWdodChmbG9hdCBoZWlnaHQpCkBAIC0xNzY3LDEwICsxNzYzLDkgQEAgdm9pZCBJbnRlcm5hbHM6
OnNldEZvb3RlckhlaWdodChmbG9hdCBoZWlnaHQpCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
Y29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXco
KSkKICAgICAgICAgcmV0dXJuOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKwog
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZG9jdW1lbnQtPnZpZXcoKTsKICAgICBmcmFtZVZp
ZXctPnNldEZvb3RlckhlaWdodChoZWlnaHQpOwotI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5jcHAKaW5k
ZXggNzMyZGRjMWFmYzNlNTEzYTViNjhiY2RiNDAwZTU4NGVmNDY4NmRiNi4uNTVmY2UyMzdiNjgw
NmFmZDM1ZTI2MjE0ZjFlYTA1Yzk4YjcyNDVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0RWZsLmNwcApAQCAtMTksNyArMTksNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBF
Ul9HTCkKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNpbmNsdWRlICJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oIgogCkBAIC0xMjIsNCArMTIyLDQgQEAgR3JhcGhpY3ND
b250ZXh0M0QqIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpjb250ZXh0KCkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggMWViNzk2
YjhkODU0OThhNTZhZDQ3ZjhhODE4NTAyYTY2NjlmZjE4MS4uMjQ4MTUyZWUzZGM5YTNlOWNkZWNj
YmRkMTNiYWQyYzMxMWZjMGY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVm
bC5oCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkK
IAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCiAjaW5jbHVkZSAiZXdrX3By
aXZhdGUuaCIKQEAgLTYyLDUgKzYyLDUgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2VuZGlm
IC8vIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IDI0MGFj
MDFlNDcwYWYzZGYzMGIxNGY1MjE4ZTAyOTllZDNjYThhNGIuLjlhODg1YmUzNjQwNTU3YTJkNzEy
N2M2YjM1MzFhZGYxZmZkYjk2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNjE0LDcgKzYxNCw2IEBAIFBhc3NS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWVDbGllbnRFZmw6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1l
bnVFZmwoY2xpZW50KSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2
b2lkIENocm9tZUNsaWVudEVmbDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFw
aGljc0xheWVyKiByb290TGF5ZXIpCiB7CiAgICAgZXdrX3ZpZXdfcm9vdF9ncmFwaGljc19sYXll
cl9zZXQobV92aWV3LCByb290TGF5ZXIpOwpAQCAtNjM0LDcgKzYzMyw2IEBAIENocm9tZUNsaWVu
dDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgQ2hyb21lQ2xpZW50RWZsOjphbGxvd2VkQ29tcG9z
aXRpbmdUcmlnZ2VyCiB7CiAgICAgcmV0dXJuIEFsbFRyaWdnZXJzOwogfQotI2VuZGlmCiAKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBib29sIENocm9tZUNsaWVudEVmbDo6c3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50LCBib29s
IHdpdGhLZXlib2FyZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgKaW5kZXggZjIzY2QwY2IzYmM5ODM2MjcxMzU3MmYzMTBmYTRjMjNi
ZjQ4ZGI1YS4uMGMwOTJlNzgxY2UwMjRjYzM2MjkwNzljNmMxZTNmYTdiNTQxYTk4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgK
QEAgLTEyOCwxMiArMTI4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNo
RXZlbnRzKGJvb2wpOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhp
Y3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7CiAgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29tcG9z
aXRpbmdUcmlnZ2VycygpIGNvbnN0OwotI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKaW5kZXggNmQ0MDljMDcz
MzYwOWM5MWExNjcwZjY3NzM5M2E3NjhhN2EyMDM3OS4uZDcwMzg4NGJkMjU5ZGU5MjZjN2E5M2Jh
MmUyY2I0ZmE4YmEyODA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUGFnZUNsaWVudEVmbC5jcHAKQEAgLTM2LDcgKzM2LDYgQEAgUGFnZUNsaWVudEVmbDo6
flBhZ2VDbGllbnRFZmwoKQogewogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogYm9vbCBQYWdlQ2xpZW50RWZsOjpjcmVhdGVFdmFzT2JqZWN0Rm9yQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyhFdmFzX05hdGl2ZV9TdXJmYWNlKiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0KQogewogICAgIHJldHVybiBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19vYmplY3RfY3JlYXRlKG1fdmlldywgbmF0aXZlU3VyZmFjZSwgcmVjdCk7CkBAIC00
Niw0ICs0NSwzIEBAIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiBQYWdlQ2xpZW50RWZsOjph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCgpCiB7CiAgICAgcmV0dXJuIGV3a192aWV3X2Fj
Y2VsZXJhdGVkX2NvbXBvc2l0aW5nX2NvbnRleHRfZ2V0KG1fdmlldyk7CiB9Ci0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuaAppbmRl
eCA0NTE2ZDQ2YmIwYzljMjRmYzZlODE0N2U5Y2EwOWJiZjExOTA5ZGZiLi5iOTQ1M2Q0YzcxZmRm
NGZlYjYxNjUzMjNmMDgwZDM2MThhZmM4MWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudEVmbC5oCkBAIC0zMywxMCArMzMsOCBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgUGFnZUNsaWVudEVmbChFdmFzX09iamVjdCogdmlldyk7CiAgICAgdmly
dHVhbCB+UGFnZUNsaWVudEVmbCgpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGJvb2wgY3JlYXRlRXZhc09iamVjdEZvckFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoRXZh
c19OYXRpdmVfU3VyZmFjZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRCogYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoKTsKLSNl
bmRpZgogCiAgICAgRXZhc19PYmplY3QqIHZpZXcoKSB7IHJldHVybiBtX3ZpZXc7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCAxMWVjMWFmMDMwMGRlMmNmM2NkZDg2ODNj
NmE3OGNjOTBkMWVhZjdhLi5jYzkxNDk0ODRhNmVkODQ2OWVkYjVmNGYwYWMzMjMxOTBhNDMyNDFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtMzAsMTAgKzMwLDggQEAKIAog
Ly8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7Ci0jZW5kaWYKIH0KIAogc3RydWN0IEV3a19XaW5kb3dfT2JqZWN0X0NsZWFy
ZWRfRXZlbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggOGExZmNlNzYzZjZh
ZDlkN2QwMDBiMTk2ZGRmYWM5OTNjMDhiYThlYi4uNGVmZTczMzZmZWI0OWE5YTM4MzI3OWU3NGM3
ZjVkMmIxY2I0MmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yNCw2ICsy
NCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKIAorI2lu
Y2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgiCiAjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0LmgiCiAjaW5j
bHVkZSAiQnJpZGdlLmgiCkBAIC0xMTAsMTAgKzExMSw2IEBACiAjaW5jbHVkZSAiQmF0dGVyeUNs
aWVudEVmbC5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0j
aW5jbHVkZSAiQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCIKLSNlbmRpZgotCiAj
aWYgRU5BQkxFKE5FVFdPUktfSU5GTykKICNpbmNsdWRlICJOZXR3b3JrSW5mb0NsaWVudEVmbC5o
IgogI2VuZGlmCkBAIC0yNjAsMTEgKzI1Nyw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhIHsKICAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsK
ICAgICBFd2tfSGlzdG9yeSogaGlzdG9yeTsKICAgICBPd25QdHI8UGFnZUNsaWVudEVmbD4gcGFn
ZUNsaWVudDsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFdl
YkNvcmU6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0PiBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDsKICAgICBib29sIGlzQ29tcG9zaXRpbmdBY3RpdmU7CiAgICAgUmVmUHRyPEV2
YXNfT2JqZWN0PiBjb21wb3NpdGluZ09iamVjdDsKLSNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQogICAgIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCogY29sb3JDaG9vc2Vy
Q2xpZW50OwogI2VuZGlmCkBAIC03NTcsMTMgKzc1MiwxMSBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogICAgIHBhZ2VTZXR0aW5ncy5zZXRGdWxsU2NyZWVuRW5hYmxlZCh0cnVlKTsKICNlbmRp
ZgogICAgIHBhZ2VTZXR0aW5ncy5zZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCh0
cnVlKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcGFnZVNldHRpbmdz
LnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGZhbHNlKTsKICAgICBjaGFyKiBkZWJ1
Z1Zpc3VhbHNFbnZpcm9ubWVudCA9IGdldGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVC
VUdfVklTVUFMUyIpOwogICAgIGJvb2wgc2hvd0RlYnVnVmlzdWFscyA9IGRlYnVnVmlzdWFsc0Vu
dmlyb25tZW50ICYmICFzdHJjbXAoZGVidWdWaXN1YWxzRW52aXJvbm1lbnQsICIxIik7CiAgICAg
cGFnZVNldHRpbmdzLnNldFNob3dEZWJ1Z0JvcmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7CiAgICAg
cGFnZVNldHRpbmdzLnNldFNob3dSZXBhaW50Q291bnRlcihzaG93RGVidWdWaXN1YWxzKTsKLSNl
bmRpZgogCiAgICAgdXJsID0gcGFnZVNldHRpbmdzLnVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKTsK
ICAgICBwcml2LT5zZXR0aW5ncy51c2VyU3R5bGVzaGVldCA9IGVpbmFfc3RyaW5nc2hhcmVfYWRk
KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTg0OSw5ICs4NDIsNyBAQCBzdGF0aWMg
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQogICAgIHByaXYtPmNvbnRleHRNZW51ID0gMDsKICNlbmRpZgogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHByaXYtPmlzQ29tcG9zaXRpbmdB
Y3RpdmUgPSBmYWxzZTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHByaXY7CiB9CkBAIC04OTAsOSAr
ODgxLDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfZGVsKEV3a19WaWV3X1ByaXZhdGVf
RGF0YSogcHJpdikKICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHByaXYtPmNvbnRleHRN
ZW51KTsKICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHBy
aXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0ID0gbnVsbHB0cjsKLSNlbmRpZgogCiAg
ICAgZGVsZXRlIHByaXY7CiB9CkBAIC00Njc2LDcgKzQ2NjUsNiBAQCB2b2lkIGV3a192aWV3X2lu
c3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGluc3Bl
Y3RvclZpZQogI2VuZGlmCiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2
b2lkIF9ld2tfdmlld19hY2NlbGVyYXRlZF9jb21wb3NpdGluZ19jYih2b2lkKiBkYXRhLCBFdmFz
X09iamVjdCopCiB7CiAgICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nh
c3Q8RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKj4oZGF0YSk7CkBAIC00NzY0LDcgKzQ3NTIsNiBAQCB2
b2lkIGV3a192aWV3X21hcmtfZm9yX3N5bmMoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgLy8g
SXQgd2lsbCBjYWxsIHRoZSBwaXhlbCBnZXQgY2FsbGJhY2sgdGhlbi4KICAgICBldmFzX29iamVj
dF9pbWFnZV9waXhlbHNfZGlydHlfc2V0KHByaXYtPmNvbXBvc2l0aW5nT2JqZWN0LmdldCgpLCB0
cnVlKTsKIH0KLSNlbmRpZgogCiB2b2lkIGV3a192aWV3X2N1cnNvcl9zZXQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggN2UyMTNkMTJkODA3ZDcyNGRiMzUwN2Zi
MWFhNDZkYWZlNDUzYTc4OS4uZGMxMWIwMWUxMDEwNjdkMjRhMTZmNDc5ZGYyOTgyNjNmODhmMGNh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0zNiwxMCAr
MzYsOCBAQCBjbGFzcyBDb2xvckNob29zZXJDbGllbnQ7CiAjZW5kaWYKIAogY2xhc3MgQ3Vyc29y
OwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDNEOwogY2xhc3MgR3JhcGhpY3NMYXllcjsKLSNlbmRpZgogY2xhc3MgSFRNTFBsdWdJbkVsZW1l
bnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKQEAgLTE1MSwxMiArMTQ5LDEwIEBA
IFdlYkNvcmU6OkZsb2F0UmVjdCBld2tfdmlld19wYWdlX3JlY3RfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGhhc0Rpc3BsYXllZCk7CiB2b2lkIGV3a192aWV3
X21peGVkX2NvbnRlbnRfcnVuX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBoYXNSdW4p
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBld2tfdmlld19hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZ19vYmplY3RfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
dmFzX05hdGl2ZV9TdXJmYWNlKiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0KTsKIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiBld2tfdmlld19hY2NlbGVyYXRl
ZF9jb21wb3NpdGluZ19jb250ZXh0X2dldChFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3
a192aWV3X3Jvb3RfZ3JhcGhpY3NfbGF5ZXJfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5ZXIpOwogdm9pZCBld2tfdmlld19tYXJrX2Zvcl9z
eW5jKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogdm9pZCBld2tfdmlld19mdWxsc2NyZWVuX2VudGVyKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCmluZGV4IDZmZDdlM2Mx
MTdiMGNmZGRiMmJhMjhkNWFmMWFhMTNkODk1YzM0MDQuLjVkNGU4NDgyZGEwYTdjNjBmYTZlNjVm
NjM1ZWU5NzMwNzg2NWZjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAt
MzcsOCArMzcsNiBAQAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFNDb3VudGVyLmgiCiAjZW5k
aWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0IDogcHVibGljIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgewpAQCAtMTAxLDUgKzk5LDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAjZW5kaWYgLy8gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAppbmRleCBmNDI5OTYwNWZhZmE4NGJjZmU0
YWUyMTQ1ZGFjMzE1MTBmNjgwZTZjLi40NTM1Njg2ZjIwZGI1MmI5YTAyYmE4OTY3MDc3YmJkMTZj
NmYxZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcApAQCAtMTks
NyArMTksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNp
bmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDA2
LDQgKzQwNiw0IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29u
dGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVJfR0wpCisjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
aW5kZXggMDQ0MzEzNWJhOTg0MzBmMmE0Yzg5NmQ4YWY1MjhlODJkMDkzMTUwMC4uZjYxZjlkYWJi
ZjUxOWEyMGQ0OTA3NGU0ZGI3ZjUwZTczYWI4ODBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC00NTUsMTMgKzQ1
NSwxMSBAQCBzdGF0aWMgdm9pZCBjbGVhckV2ZXJ5d2hlcmVJbkJhY2tpbmdTdG9yZShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBjYWlyb190KiBjcikKIAogdm9pZCBDaHJvbWVDbGllbnQ6OndpZGdl
dFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmIG9sZFdpZGdldFNpemUsIEludFNpemUgbmV3U2l6
ZSkKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQqIGNvbXBvc2l0aW5nQ29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKGNvbXBvc2l0aW5n
Q29udGV4dC0+ZW5hYmxlZCgpKSB7CiAgICAgICAgIG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQtPnJlc2l6ZVJvb3RMYXllcihuZXdTaXplKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSNlbmRpZgogCiAgICAgLy8gR3JvdyB0aGUgYmFja2luZyBzdG9yZSBi
eSBhdCBsZWFzdCAxLjUgdGltZXMgdGhlIGN1cnJlbnQgc2l6ZS4gVGhpcyBwcmV2ZW50cwogICAg
IC8vIGxvdHMgb2YgdW5uZWNlc3NhcnkgYWxsb2NhdGlvbnMgZHVyaW5nIGFuIG9wYXF1ZSByZXNp
emUuCkBAIC02MzIsMTAgKzYzMCw4IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpwYWludChXZWJDb3Jl
OjpUaW1lcjxDaHJvbWVDbGllbnQ+KikKIAogdm9pZCBDaHJvbWVDbGllbnQ6OmZvcmNlUGFpbnQo
KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobV93ZWJWaWV3
LT5wcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC0+ZW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47Ci0jZW5kaWYKIAogICAgIG1fZm9yY2VQYWludCA9IHRydWU7CiAgICAgcGFpbnQo
MCk7CkBAIC02NDgsMTMgKzY0NCwxMSBAQCB2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkKIAogdm9pZCBDaHJvbWVDbGll
bnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QsIGJvb2wgaW1tZWRpYXRlKQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogYWNDb250ZXh0ID0gbV93ZWJWaWV3
LT5wcml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5nZXQoKTsKICAgICBpZiAoYWND
b250ZXh0LT5lbmFibGVkKCkpIHsKICAgICAgICAgYWNDb250ZXh0LT5zZXROb25Db21wb3NpdGVk
Q29udGVudHNOZWVkRGlzcGxheSh1cGRhdGVSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSNlbmRpZgogCiAgICAgaWYgKHVwZGF0ZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47
CkBAIC02NjYsMTMgKzY2MCwxMSBAQCB2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBibwogewogICAgIG1f
YWRqdXN0bWVudFdhdGNoZXIudXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFyc0xhdGVyKCk7
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQqIGFjQ29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKGFjQ29udGV4dC0+ZW5hYmxlZCgpKSB7
CiAgICAgICAgIGFjQ29udGV4dC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXko
dXBkYXRlUmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7CiB9CkBAIC02
ODEsNyArNjczLDYgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBk
ZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb24KIHsKICAgICBtX2FkanVzdG1l
bnRXYXRjaGVyLnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnNMYXRlcigpOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0KiBjb21wb3NpdGluZ0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwogICAgIGlmIChjb21wb3NpdGluZ0NvbnRleHQtPmVu
YWJsZWQoKSkgewogICAgICAgICBBU1NFUlQoIXJlY3RUb1Njcm9sbC5pc0VtcHR5KCkpOwpAQCAt
NjkwLDcgKzY4MSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uCiAgICAgICAgIGNvbXBvc2l0
aW5nQ29udGV4dC0+c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKHJlY3RUb1Njcm9sbCwgZGVs
dGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBtX3JlY3RzVG9TY3Jv
bGwuYXBwZW5kKHJlY3RUb1Njcm9sbCk7CiAgICAgbV9zY3JvbGxPZmZzZXRzLmFwcGVuZChkZWx0
YSk7CkBAIC0xMDAwLDcgKzk5MCw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopCiB9CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcikKIHsKICAgICBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogY29udGV4dCA9IG1fd2ViVmlldy0+cHJpdi0+
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CkBAIC0xMDQyLDYgKzEwMzEsNSBA
QCBDaHJvbWVDbGllbnQ6OkNvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIENocm9tZUNsaWVudDo6YWxs
b3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKQogICAgIHJldHVybiBBbGxUcmlnZ2VyczsKICNlbmRp
ZgogfQotI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggNTFkNDNhYWQ2MjQwZDIzODZkZDEyOGZkZGU0NDBj
MmFkMGUwYWI1ZS4uMWRlN2YyZjcwODllMjkwNjVmZmNjZGMzNDM3YTFmNDE5MDU1MmVkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmgKQEAgLTE0NCwxMiArMTQ0LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CiAgICAg
ICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJp
Z2dlcnMoKSBjb25zdDsKLSNlbmRpZiAKIAogICAgICAgICB2b2lkIHBlcmZvcm1BbGxQZW5kaW5n
U2Nyb2xscygpOwogICAgICAgICB2b2lkIHBhaW50KFRpbWVyPENocm9tZUNsaWVudD4qKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA3NTdmZWUzYmEw
ZGRjYjhmNjZiZGQ2Y2MwM2YzYWFjZjljNWQwOTZlLi4wNzk3MTMxNmI3MGEyMmZmYzVmNzY5ODM1
OGU5NGM4NzczNTlkM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwCkBAIC0zNjA2LDEzICszNjA2LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldE1lZGlhU3RyZWFtRW5h
YmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZU1lZGlhU3RyZWFtKTsKICNlbmRpZgogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdTZXR0aW5nKGNvcmVTZXR0aW5ncywgc2V0dGluZ3NQcml2YXRlLT5lbmFibGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKTsKICAgICBjaGFyKiBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCA9IGdl
dGVudigiV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyIpOwogICAgIGJvb2wg
c2hvd0RlYnVnVmlzdWFscyA9IGRlYnVnVmlzdWFsc0Vudmlyb25tZW50ICYmICFzdHJjbXAoZGVi
dWdWaXN1YWxzRW52aXJvbm1lbnQsICIxIik7CiAgICAgY29yZVNldHRpbmdzLnNldFNob3dEZWJ1
Z0JvcmRlcnMoc2hvd0RlYnVnVmlzdWFscyk7CiAgICAgY29yZVNldHRpbmdzLnNldFNob3dSZXBh
aW50Q291bnRlcihzaG93RGVidWdWaXN1YWxzKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9B
VURJTykKICAgICBjb3JlU2V0dGluZ3Muc2V0V2ViQXVkaW9FbmFibGVkKHNldHRpbmdzUHJpdmF0
ZS0+ZW5hYmxlV2ViQXVkaW8pOwpAQCAtMzc1OCwxMCArMzc1Niw4IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRp
bmdzLCBHUGFyCiAgICAgICAgIHNldHRpbmdzLnNldFdlYkdMRW5hYmxlZChnX3ZhbHVlX2dldF9i
b29sZWFuKCZ2YWx1ZSkpOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1hY2NlbGVy
YXRlZC1jb21wb3NpdGluZyIpKQogICAgICAgICB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
U2V0dGluZyhzZXR0aW5ncywgZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSNlbmRpZgog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0
cmluZygiZW5hYmxlLXdlYmF1ZGlvIikpCkBAIC0zODg1LDEwICszODgxLDcgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICNlbmRpZgog
CiAgICAgcHJpdi0+c2VsZlNjcm9sbGluZyA9IGZhbHNlOwotCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0ID0g
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmNyZWF0ZSh3ZWJWaWV3KTsKLSNlbmRpZgog
CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3LCAiZGlyZWN0aW9uLWNoYW5nZWQiLCBHX0NB
TExCQUNLKHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKSwgMCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmluZGV4IGI1ZTY5Nzhh
MzI5NzlmMTY0MmRhNDYwNWQ3OGU0ZDU2MTExNTJmMGEuLjNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1
NmUzODMzM2NhZTBkZjc0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDEsOSArMTAxLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJW
aWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrRHJhZ0FuZERyb3BIZWxwZXIgZHJhZ0FuZERy
b3BIZWxwZXI7CiAgICAgYm9vbCBzZWxmU2Nyb2xsaW5nOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0PiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDsKLSNlbmRpZgogCiAjaWYgRU5B
QkxFKElDT05EQVRBQkFTRSkKICAgICBndWxvbmcgaWNvbkxvYWRlZEhhbmRsZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CmluZGV4IDE2ZmI5ZTRlNjhjMDIxY2VkMzZkMmExYzcxYzk4YTQ5ODgwMzVkZmQuLmIxYzlhN2Zk
ZTVmMDI5M2EzN2Y3NTkwN2I5NDFhNjY0MzI4YzRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC02Nyw5ICs2
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIo
Y29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSNlbmRpZgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZsdXNoQ29tcG9zaXRpbmdMYXllcnMoKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLm1tCmluZGV4IGJhZTQ2ZDNlMjM5MDAxNTllMDcwZTkxNDU3ZWM4MmEwNDFiMjkz
MWMuLmQ4MmQ1OTM4MmIzNjNhMWIyZjkzNzVlMTE1ZTY0ZjgzMmIxZmI5YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
bW0KQEAgLTI0MSw3ICsyNDEsNiBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoVwogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51SU9TKGNsaWVudCkpOwogfQogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikK
IHsKICAgICAvLyBGSVhNRTogZm9yIG5vbi1yb290IGZyYW1lcyB3ZSByZWx5IG9uIFJlbmRlclZp
ZXcgcG9zaXRpb25pbmcgdGhlIHJvb3QgbGF5ZXIsCkBAIC0yNDksNyArMjQ4LDYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3MKICAgICAvLyBTZW5kIHRoZSBkZWxlZ2F0ZSBtZXNzYWdlIG9uIHRo
ZSB3ZWIgdGhyZWFkIHRvIGF2b2lkIDxyZGFyOi8vcHJvYmxlbS84NTY3Njc3PgogICAgIFtbd2Vi
VmlldygpIF9VSUtpdERlbGVnYXRlXSBfd2VidGhyZWFkX3dlYlZpZXc6d2ViVmlldygpIGF0dGFj
aFJvb3RMYXllcjpncmFwaGljc0xheWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigp
IDogMF07CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmRpZEZsdXNoQ29t
cG9zaXRpbmdMYXllcnMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViVmll
dy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0
RGVsZWdhdGUuaAppbmRleCBkZGQ2NTg2YmQwZjJiYWZjOWNhMmYzZTczODdlZWFmZDFjNWQ2ZDk4
Li44OTkxZDg0ZjNkZTYxYzNiMzEwMDMzYzdkOWVkYmIxNzZmYzE0ZjhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApAQCAtODIsNyArODIsNyBAQAog
LSAodm9pZClhZGRJbnB1dFN0cmluZzooTlNTdHJpbmcgKilzdHIgd2l0aEZsYWdzOihOU1VJbnRl
Z2VyKWZsYWdzOwogLSAodm9pZClkZWxldGVGcm9tSW5wdXQ7CiAKLS8vIEFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nOyBvbmx5IGNhbGxlZCBpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGlz
IGRlZmluZWQKKy8vIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCiAtICh2b2lkKV93ZWJ0aHJlYWRf
d2ViVmlldzooV2ViVmlldyopd2ViVmlldyBhdHRhY2hSb290TGF5ZXI6KGlkKXJvb3RMYXllcjsK
IC0gKHZvaWQpd2ViVmlld0RpZENvbW1pdENvbXBvc2l0aW5nTGF5ZXJDaGFuZ2VzOihXZWJWaWV3
Kil3ZWJWaWV3OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggN2Y1OTExYWVm
ZTJiN2U1YjczZTU2OTA4ZGU3YzI4ODIzOTFlMmZiMi4uNTRhM2Q0ODNlNTg3YTM5YmI4ODY2Njg2
MmU2MmI1NjkyMzQ2OGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI3
LDkgKzEyNyw3IEBAIC0gKEJPT0wpY3JlYXRlUGx1Z2luCiAKICAgICBOU1N0cmluZyAqdXNlckFn
ZW50ID0gW1tzZWxmIHdlYlZpZXddIHVzZXJBZ2VudEZvclVSTDpfYmFzZVVSTC5nZXQoKV07CiAg
ICAgQk9PTCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOwotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZCA9IFtbW3NlbGYgd2ViVmlld10gcHJlZmVyZW5jZXNdIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkXTsKLSNlbmRpZgogICAgIF9ob3N0c0xheWVyc0luV2luZG93U2VydmVyID0gW3NlbGYg
d2luZG93SG9zdHNMYXllcnNJbldpbmRvd1NlcnZlcl07CiAKICAgICBfcHJveHkgPSBOZXRzY2Fw
ZVBsdWdpbkhvc3RNYW5hZ2VyOjpzaGFyZWQoKS5pbnN0YW50aWF0ZVBsdWdpbihbX3BsdWdpblBh
Y2thZ2UuZ2V0KCkgcGF0aF0sIFtfcGx1Z2luUGFja2FnZS5nZXQoKSBwbHVnaW5Ib3N0QXJjaGl0
ZWN0dXJlXSwgW19wbHVnaW5QYWNrYWdlLmdldCgpIGJ1bmRsZUlkZW50aWZpZXJdLCBzZWxmLCBf
TUlNRVR5cGUuZ2V0KCksIF9hdHRyaWJ1dGVLZXlzLmdldCgpLCBfYXR0cmlidXRlVmFsdWVzLmdl
dCgpLCB1c2VyQWdlbnQsIF9zb3VyY2VVUkwuZ2V0KCksCkBAIC0xNTEsOSArMTQ5LDcgQEAgLSAo
Qk9PTCljcmVhdGVQbHVnaW4KIC0gKHZvaWQpY3JlYXRlUGx1Z2luTGF5ZXIKIHsKICAgICBCT09M
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFsc2U7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gW1tb
c2VsZiB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRd
OwotI2VuZGlmCiAKICAgICBfcGx1Z2luTGF5ZXIgPSBXS01ha2VSZW5kZXJMYXllcihfcHJveHkt
PnJlbmRlckNvbnRleHRJRCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA2ZDBmM2RkOGFkOTEzNmJkODJiZTNmMzgy
NWU1NWI0MzM4ZjhkOTk1Li41ODkwYjY3ZTIwN2NiMDRlOWFlNTAzZWJhMTA2ZWY5MzI3OTZiZDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQpAQCAtMTA4OCw5ICsxMDg4LDcgQEAgLSAoQk9PTCljcmVhdGVQbHVnaW4KICAgICAg
ICAgICAgIF9wbHVnaW5MYXllciA9IGFkb3B0TlMoKENBTGF5ZXIgKil2YWx1ZSk7CiAKICAgICAg
ICAgICAgIEJPT0wgYWNjbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOwotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgIGFjY2xlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQgPSBbW1tzZWxmIHdlYlZpZXddIHByZWZlcmVuY2VzXSBhY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZF07Ci0jZW5kaWYKICAgICAgICAgICAgIGlmIChhY2NsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBj
YW4gYmUgc2hhcmVkIGJldHdlZW4gV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGFuZCBXZWJO
ZXRzY2FwZVBsdWdpblZpZXcuCiAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBsYXllciBp
c24ndCBnb2luZyB0byBiZSBpbnNlcnRlZCBpbnRvIGEgdmlldywgd2UgbmVlZCB0byBjcmVhdGUg
YW5vdGhlciBsYXllciBhbmQgZmxpcCBpdHMgZ2VvbWV0cnkKQEAgLTIwNzcsMTMgKzIwNzUsMTMg
QEAgLSAoTlBFcnJvcilnZXRWYXJpYWJsZTooTlBOVmFyaWFibGUpdmFyaWFibGUgdmFsdWU6KHZv
aWQgKil2YWx1ZQogICAgICAgICAgICAgKihXS05Ccm93c2VyQ29udGFpbmVyQ2hlY2tGdW5jcyAq
Kil2YWx1ZSA9IGJyb3dzZXJDb250YWluZXJDaGVja0Z1bmNzKCk7CiAgICAgICAgICAgICByZXR1
cm4gTlBFUlJfTk9fRVJST1I7CiAgICAgICAgIH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCisKICAgICAgICAgY2FzZSBXS05WU3VwcG9ydHNDb21wb3NpdGluZ0NvcmVBbmltYXRp
b25QbHVnaW5zQm9vbDoKICAgICAgICAgewogICAgICAgICAgICAgKihOUEJvb2wgKil2YWx1ZSA9
IFtbW3NlbGYgd2ViVmlld10gcHJlZmVyZW5jZXNdIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkXTsKICAgICAgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKICAgICAgICAgfQotI2Vu
ZGlmCisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29udHJvbGxlci5tbQppbmRleCBm
MmI2ZTg2OThmYmU1OTgxMGQyODgwZWU4ZGRjYTE2ZTU0ODlmM2JlLi40NTAzZWI0ZTdhNGQzZTMw
MDdmODUwOWU5ZjdkM2RmOGU3ODJkOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCkBAIC0yMzEsNyArMjMxLDYgQEAgLSAoQk9PTClw
bHVnSW5zQXJlUnVubmluZwogCiAtIChDQUxheWVyICopc3VwZXJsYXllckZvclBsdWdpblZpZXc6
KE5TVmlldyAqKXZpZXcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgd2ViRnJhbWVdKTsKICAgICBGcmFtZVZpZXcq
IGNvcmVWaWV3ID0gY29yZUZyYW1lID8gY29yZUZyYW1lLT52aWV3KCkgOiBudWxscHRyOwogICAg
IGlmICghY29yZVZpZXcpCkBAIC0yNDMsOSArMjQyLDYgQEAgLSAoQ0FMYXllciAqKXN1cGVybGF5
ZXJGb3JQbHVnaW5WaWV3OihOU1ZpZXcgKil2aWV3CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
CiAgICAgcmV0dXJuIGxheWVyRm9yV2lkZ2V0LT5wbGF0Zm9ybUxheWVyKCk7Ci0jZWxzZQotICAg
IHJldHVybiBuaWw7Ci0jZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGQ1MDQ4OTBkN2E3OGJm
ZGI4NjhjZWY5M2RhYjZiYjk3OTYzYmFlYmQuLjMzYTc0MDQ3NTlkY2VmZDhlOWNmN2Q5NGM5NjNl
MjkxZTcyZjIxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNjYsNyArMTY2LDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCBvdmVycmlkZTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5j
aHJvbml6YXRpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKQEAgLTE4Myw3ICsxODIsNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICAgICAgICAgIEFuaW1hdGlvblRyaWdnZXIpOwogICAgIH0KLSNlbmRpZgogCiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JO
b2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAyYzllYmY2ODJm
NzFhOWMwZGQzYjA3ZjdjZTc4MGJkMTg0Yjk0NmVkLi43ODczOTE3MzE5NmUyOGM3MDEyODk5OTQ5
MzI0NzhjODEwZDAxODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC02Niw2ICs2Niw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
PgpAQCAtODQsMTAgKzg1LDYgQEAKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
I2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+Ci0jZW5kaWYKLQogI2lmIFVTRShQTFVH
SU5fSE9TVF9QUk9DRVNTKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICNpbXBvcnQg
Ik5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaCIKICNlbmRpZgpAQCAtOTMwLDggKzkyNyw2IEBA
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QK
ICNlbmRpZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKQEAgLTk2NSw4ICs5NjAsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9
CiAKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFZJREVPKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6
c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQppbmRleCBmN2NmNjcyNmIzZGM3ZjZlMzgzNDlmMzRlYTY4ZTFhZDZiNTg3Yzg0Li4zZjRjMzM1
YWZjMDY3N2MzMGIwNzJhN2Q5MGVjOGZiMTVkOTVjNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAt
MTgyOSwxMiArMTgyOSwxMCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TKQogQGludGVy
ZmFjZSBXQUtWaWV3IChVSUtpdFNlY3JldHNXZWJLaXRLbm93c0Fib3V0U2VlVUlXZWJQbHVnSW5W
aWV3KQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC0gKFBsYXRmb3JtTGF5ZXIg
KilwbHVnaW5MYXllcjsKIC0gKEJPT0wpd2lsbFByb3ZpZGVQbHVnaW5MYXllcjsKIC0gKHZvaWQp
YXR0YWNoUGx1Z2luTGF5ZXI7CiAtICh2b2lkKWRldGFjaFBsdWdpbkxheWVyOwotI2VuZGlmCiBA
ZW5kCiAKIGNsYXNzIFBsdWdpbldpZGdldElPUyA6IHB1YmxpYyBQbHVnaW5XaWRnZXQgewpAQCAt
MTg0NCw3ICsxODQyLDYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICghW3BsYXRmb3JtV2lkZ2V0KCkgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwbHVnaW5MYXllcildKQpAQCAtMTg3MCw3ICsxODY3LDYg
QEAgcHVibGljOgogICAgICAgICBpZiAoW3BsYXRmb3JtV2lkZ2V0KCkgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihkZXRhY2hQbHVnaW5MYXllcildKQogICAgICAgICAgICAgW3BsYXRmb3Jt
V2lkZ2V0KCkgZGV0YWNoUGx1Z2luTGF5ZXJdOwogICAgIH0KLSNlbmRpZgogfTsKICNlbmRpZiAv
LyBQTEFURk9STShJT1MpCiAKQEAgLTE4ODIsMTMgKzE4NzgsMTEgQEAgcHVibGljOgogICAgICAg
ICA6IFBsdWdpbldpZGdldCh2aWV3KQogICAgIHsKICAgICB9Ci0gICAgCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBbKFdlYkJhc2VOZXRzY2FwZVBs
dWdpblZpZXcgKilwbGF0Zm9ybVdpZGdldCgpIHBsdWdpbkxheWVyXTsKICAgICB9Ci0jZW5kaWYK
IAogICAgIHZpcnR1YWwgYm9vbCBnZXRGb3JtVmFsdWUoU3RyaW5nJiB2YWx1ZSkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNsaXBWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJDbGlwVmlldy5tbQppbmRleCAwZWZiZjA4MTU2MzY3
ODljNTk3MDdjZTJlMTVhODIzODFlNGU3YjBlLi5hMmU5ZTllMDRlYzQ3ODc4OTE3MzFjZTFhMDc4
MGEyYjY0NzNkMGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkNs
aXBWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQ2xpcFZpZXcubW0K
QEAgLTgyLDcgKzgyLDYgQEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAtIChO
U1JlY3QpdmlzaWJsZVJlY3QKIHsKICAgICBpZiAoIV9pc1Njcm9sbGluZykKQEAgLTExNCw3ICsx
MTMsNiBAQCAtICh2b2lkKV9pbW1lZGlhdGVTY3JvbGxUb1BvaW50OihOU1BvaW50KW5ld09yaWdp
bgogCiAgICAgX2lzU2Nyb2xsaW5nID0gTk87CiB9Ci0jZW5kaWYKIAogLSAodm9pZClyZXNldEFk
ZGl0aW9uYWxDbGlwCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpp
bmRleCAyYTVlN2QwMjcyNmM0MGU1NDA2OTFhY2EzMTBhODRlZTc3M2I3NTg2Li5mNDA3NTY0ZjZi
NDI2MTQ5MTdjOTkxNDhjMjcxMWYyODQxZDdjYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEzNSw5ICsxMzUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KLSNlbmRpZgog
CiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiV2ViVUlLaXREZWxlZ2F0ZS5oIgpAQCAtMzIz
LDcgKzMyMSw2IEBAIC0gKHZvaWQpY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2Vu
ZGVyOwogQGVuZAogCiAjaWYgIVBMQVRGT1JNKElPUykKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiBzdGF0aWMgSU1QIG9sZFNldE5lZWRzRGlzcGxheUluUmVjdElNUDsKIAogc3Rh
dGljIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KE5TVmlldyAqc2VsZiwgU0VMIGNtZCwgTlNS
ZWN0IGludmFsaWRSZWN0KQpAQCAtMzU3LDcgKzM1NCw2IEBAIHN0YXRpYyB2b2lkIHNldE5lZWRz
RGlzcGxheUluUmVjdChOU1ZpZXcgKnNlbGYsIFNFTCBjbWQsIE5TUmVjdCBpbnZhbGlkUmVjdCkK
IAogICAgIGZyYW1lVmlldy0+aW52YWxpZGF0ZVJlY3QoaW52YWxpZFJlY3RJbkZyYW1lVmlld0Nv
b3JkaW5hdGVzKTsKIH0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAK
IEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoV2ViTlNBcHBsaWNhdGlvbkRldGFpbHMpCiAtICh2
b2lkKXNwZWFrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKQEAgLTU1MSwxMCArNTQ3LDggQEAg
QHB1YmxpYwogICAgIEJPT0wgc3Vidmlld3NTZXRBc2lkZTsKICNlbmRpZgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE5TVmlldyAqbGF5ZXJIb3N0aW5nVmlldzsKICAg
ICBCT09MIGRyYXdpbmdJbnRvTGF5ZXI7Ci0jZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCiAg
ICAgTlNFdmVudCAqbW91c2VEb3duRXZlbnQ7IC8vIEtlcHQgYWZ0ZXIgaGFuZGxpbmcgdGhlIGV2
ZW50LgpAQCAtNjY0LDE0ICs2NTgsMTIgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIEFT
U0VSVChvbGRTZXRDdXJzb3JGb3JNb3VzZUxvY2F0aW9uSU1QKTsKICAgICB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFvbGRTZXROZWVkc0Rpc3BsYXlJblJl
Y3RJTVApIHsKICAgICAgICAgTWV0aG9kIHNldE5lZWRzRGlzcGxheUluUmVjdE1ldGhvZCA9IGNs
YXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU1ZpZXcgY2xhc3NdLCBAc2VsZWN0b3Ioc2V0TmVlZHNE
aXNwbGF5SW5SZWN0OikpOwogICAgICAgICBBU1NFUlQoc2V0TmVlZHNEaXNwbGF5SW5SZWN0TWV0
aG9kKTsKICAgICAgICAgb2xkU2V0TmVlZHNEaXNwbGF5SW5SZWN0SU1QID0gbWV0aG9kX3NldElt
cGxlbWVudGF0aW9uKHNldE5lZWRzRGlzcGxheUluUmVjdE1ldGhvZCwgKElNUClzZXROZWVkc0Rp
c3BsYXlJblJlY3QpOwogICAgICAgICBBU1NFUlQob2xkU2V0TmVlZHNEaXNwbGF5SW5SZWN0SU1Q
KTsKICAgICB9Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjZW5k
aWYKIApAQCAtNzYwLDkgKzc1Miw3IEBAIC0gKHZvaWQpY2xlYXIKICAgICBwcm9taXNlZERyYWdU
SUZGRGF0YVNvdXJjZSA9IDA7CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBsYXllckhvc3RpbmdWaWV3ID0gbmlsOwotI2VuZGlmCiB9CiAKIEBlbmQKQEAg
LTEzNjcsMTYgKzEzNTcsMTIgQEAgLSAodm9pZClfc2V0QXNpZGVTdWJ2aWV3cwogICAgIEFTU0VS
VCghX3ByaXZhdGUtPnN1YnZpZXdzU2V0QXNpZGUpOwogICAgIEFTU0VSVChfcHJpdmF0ZS0+c2F2
ZWRTdWJ2aWV3cyA9PSBuaWwpOwogICAgIF9wcml2YXRlLT5zYXZlZFN1YnZpZXdzID0gX3N1YnZp
ZXdzOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBXZSBuZWVkIHRv
IGtlZXAgdGhlIGxheWVyLWhvc3RpbmcgdmlldyBpbiB0aGUgc3Vidmlld3MsIG90aGVyd2lzZSB0
aGUgbGF5ZXJzIGZsYXNoLgogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJIb3N0aW5nVmlldykgewog
ICAgICAgICBOU0FycmF5KiBuZXdTdWJ2aWV3cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhP
YmplY3RzOl9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3LCBuaWxdOwogICAgICAgICBfc3Vidmll
d3MgPSBuZXdTdWJ2aWV3czsKICAgICB9IGVsc2UKICAgICAgICAgX3N1YnZpZXdzID0gbmlsOwot
I2Vsc2UKLSAgICBfc3Vidmlld3MgPSBuaWw7Ci0jZW5kaWYgICAgCiAgICAgX3ByaXZhdGUtPnN1
YnZpZXdzU2V0QXNpZGUgPSBZRVM7CiAjZW5kaWYKICB9CkBAIC0xMzg1LDcgKzEzNzEsNiBAQCAt
ICh2b2lkKV9zZXRBc2lkZVN1YnZpZXdzCiAgewogI2lmICFQTEFURk9STShJT1MpCiAgICAgQVNT
RVJUKF9wcml2YXRlLT5zdWJ2aWV3c1NldEFzaWRlKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgaWYgKF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3KSB7CiAgICAgICAg
IFtfc3Vidmlld3MgcmVsZWFzZV07CiAgICAgICAgIF9zdWJ2aWV3cyA9IF9wcml2YXRlLT5zYXZl
ZFN1YnZpZXdzOwpAQCAtMTM5MywxMCArMTM3OCw2IEBAIC0gKHZvaWQpX3NldEFzaWRlU3Vidmll
d3MKICAgICAgICAgQVNTRVJUKF9zdWJ2aWV3cyA9PSBuaWwpOwogICAgICAgICBfc3Vidmlld3Mg
PSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsKICAgICB9Ci0jZWxzZQotICAgIEFTU0VSVChfc3Vi
dmlld3MgPT0gbmlsKTsKLSAgICBfc3Vidmlld3MgPSBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3czsK
LSNlbmRpZiAgICAKICAgICBfcHJpdmF0ZS0+c2F2ZWRTdWJ2aWV3cyA9IG5pbDsKICAgICBfcHJp
dmF0ZS0+c3Vidmlld3NTZXRBc2lkZSA9IE5POwogI2VuZGlmCkBAIC0xNjA2LDEwICsxNTg3LDgg
QEAgLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAogCiAgICAgaWYgKCFjYXB0dXJl
SGl0c09uU3Vidmlld3MpIHsKICAgICAgICAgTlNWaWV3KiBoaXRWaWV3ID0gW3N1cGVyIGhpdFRl
c3Q6cG9pbnRdOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgaWYg
KF9wcml2YXRlICYmIGhpdFZpZXcgPT0gX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcpCiAgICAg
ICAgICAgICBoaXRWaWV3ID0gc2VsZjsKLSNlbmRpZgogICAgICAgICByZXR1cm4gaGl0VmlldzsK
ICAgICB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKQEAgLTIzNDIsMjAgKzIzMjEsMTIgQEAg
LSAodm9pZClfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogCiAtIChCT09M
KV9pc1VzaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZwogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICByZXR1cm4gX3ByaXZhdGUtPmxheWVySG9zdGluZ1ZpZXcgIT0gbmls
OwotI2Vsc2UKLSAgICByZXR1cm4gTk87Ci0jZW5kaWYKIH0KIAogLSAoTlNWaWV3ICopX2NvbXBv
c2l0aW5nTGF5ZXJzSG9zdGluZ1ZpZXcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgcmV0dXJuIF9wcml2YXRlLT5sYXllckhvc3RpbmdWaWV3OwotI2Vsc2UKLSAgICBy
ZXR1cm4gMDsKLSNlbmRpZgogfQogCiAtIChCT09MKV9pc0luUHJpbnRNb2RlCkBAIC0zMTgyLDEz
ICszMTUzLDExIEBAIC0gKHZvaWQpdmlld0RpZE1vdmVUb1N1cGVydmlldwogICAgIGlmIChbc2Vs
ZiBzdXBlcnZpZXddICE9IG5pbCkKICAgICAgICAgW3NlbGYgYWRkU3VwZXJ2aWV3T2JzZXJ2ZXJz
XTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoW3NlbGYgc3Vw
ZXJ2aWV3XSAmJiBbc2VsZiBfaXNVc2luZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmddKSB7CiAgICAg
ICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107CiAgICAgICAgIGlmIChbd2Vi
VmlldyBfcG9zdHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uc10pCiAgICAgICAg
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRp
b25OYW1lOl9XZWJWaWV3RGlkU3RhcnRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTm90aWZpY2F0aW9u
IG9iamVjdDp3ZWJWaWV3IHVzZXJJbmZvOm5pbF07CiAgICAgfQotI2VuZGlmCiB9CiAjZW5kaWYg
Ly8gIVBMQVRGT1JNKElPUykKIApAQCAtMzY1Miw3ICszNjIxLDcgQEAgLSAodm9pZClkcmF3UmVj
dDooTlNSZWN0KXJlY3QKIAogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbc2VsZiBfd2ViVmlld107
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFQTEFURk9STShJT1MpCisj
aWYgIVBMQVRGT1JNKElPUykKICAgICAvLyBPbmx5IGRvIHRoZSBzeW5jaHJvbml6YXRpb24gZGFu
Y2UgaWYgd2UncmUgZHJhd2luZyBpbnRvIHRoZSB3aW5kb3csIG90aGVyd2lzZQogICAgIC8vIHdl
IHJpc2sgZGlzYWJsaW5nIHNjcmVlbiB1cGRhdGVzIHdoZW4gbm8gZmx1c2ggaXMgcGVuZGluZy4K
ICAgICBpZiAoW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSA9PSBbW3NlbGYgd2lu
ZG93XSBncmFwaGljc0NvbnRleHRdICYmIFt3ZWJWaWV3IF9uZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uXSkgewpAQCAtNTk5OCw3ICs1OTY3LDYgQEAgLSAoQk9PTClfbmVlZHNMYXlv
dXQKICAgICByZXR1cm4gW1tzZWxmIF9mcmFtZV0gX25lZWRzTGF5b3V0XTsKIH0KIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIC0gKHZvaWQpYXR0YWNoUm9vdExheWVyOihDQUxh
eWVyKilsYXllcgogewogI2lmICFQTEFURk9STShJT1MpCkBAIC02MDczLDggKzYwNDEsNiBAQCAt
IChCT09MKV93ZWJfaXNEcmF3aW5nSW50b0xheWVyCiAjZW5kaWYKIH0KIAotI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
SFRNTFZpZXcgKFdlYk5TVGV4dElucHV0U3VwcG9ydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKaW5kZXggOTg3NTQzOWE2MWRjNjJmYWE4ZTFi
MWZhNTkxNGFiMzA3N2RjNGYxMC4uZTRhYjBhMmQxMDVmMzFiYWRkMzU2NjNmOGNlZGUyMjhjMDdj
ZTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0lu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVy
bmFsLmgKQEAgLTMwLDkgKzMwLDcgQEAKIAogI2ltcG9ydCAiV2ViSFRNTFZpZXdQcml2YXRlLmgi
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBAY2xhc3MgQ0FMYXllcjsKLSNl
bmRpZgogQGNsYXNzIFdlYkZyYW1lOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NiwxMSAr
NjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAtICh2b2lkKV9kZXN0cm95QWxsV2ViUGx1Z2lu
czsKIC0gKEJPT0wpX25lZWRzTGF5b3V0OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogLSAodm9pZClhdHRhY2hSb290TGF5ZXI6KENBTGF5ZXIqKWxheWVyOwogLSAodm9pZClk
ZXRhY2hSb290TGF5ZXI7CiAtIChCT09MKV93ZWJfaXNEcmF3aW5nSW50b0xheWVyOwotI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCiAtICh2b2lkKV9sYXlvdXRJZk5lZWRlZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlckxheWVyLm1tCmluZGV4IDM4NGVlZmU3NzY4ODM3
MGM4YzAxMTJhNGJiZTBhZGEwYWFlZmNiN2EuLmVjMDA2NWE2MDEzMDg4NThkYmY2OTU3NmQwODJh
NTMyYWJhY2UwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVu
ZGVyTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJMYXll
ci5tbQpAQCAtODAsNyArODAsNiBAQCArIChOU1N0cmluZyAqKWNvbXBvc2l0aW5nSW5mb0Zvckxh
eWVyOihSZW5kZXJMYXllciopbGF5ZXIKICAgICAgICAgcmV0dXJuIEAiIjsKIAogICAgIE5TU3Ry
aW5nICpsYXllclR5cGUgPSBAIiI7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IGxheWVyLT5iYWNraW5nKCk7CiAgICAg
c3dpdGNoIChiYWNraW5nLT5jb21wb3NpdGluZ0xheWVyVHlwZSgpKSB7CiAgICAgICAgIGNhc2Ug
Tm9ybWFsQ29tcG9zaXRpbmdMYXllcjoKQEAgLTEwMiw3ICsxMDEsNiBAQCArIChOU1N0cmluZyAq
KWNvbXBvc2l0aW5nSW5mb0ZvckxheWVyOihSZW5kZXJMYXllciopbGF5ZXIKIAogICAgIGlmIChi
YWNraW5nLT5oYXNBbmNlc3RvckNsaXBwaW5nTGF5ZXIoKSkKICAgICAgICAgbGF5ZXJUeXBlID0g
W2xheWVyVHlwZSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpAIiAoY2xpcHBlZCkiXTsKLSNlbmRp
ZgogCiAgICAgcmV0dXJuIGxheWVyVHlwZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCBjMDgyZjkyZjdlZDA4YTVkZDc2MWZkNjg3YWM1MjU3YTg5N2EyNDUwLi5hNTlj
Zjg0ZjE4YWEzYTYyMzZjMmE3ZWQwMDMwODc1ZmY2NGE3NzY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0yMjksNiArMjI5LDcgQEAKICNpbXBvcnQgPE1vYmlsZUdlc3Rh
bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
b250Q2FjaGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JY29uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RhdGVO
b3RpZmllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1Mu
aD4KQEAgLTI0NSwxMCArMjQ2LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lmg+CiAjaW1wb3J0IDxkaXNwYXRjaC9wcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvRmFzdE1hbGxvYy5oPgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+Ci0jZW5kaWYKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMTc0NCwx
MiArMTc0MSwxMCBAQCAtICh2b2lkKV9jbG9zZQogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRy
b2xsZXIpIHsKICAgICAgICAgX3ByaXZhdGUtPmxheWVyRmx1c2hDb250cm9sbGVyLT5pbnZhbGlk
YXRlKCk7CiAgICAgICAgIF9wcml2YXRlLT5sYXllckZsdXNoQ29udHJvbGxlciA9IG51bGxwdHI7
CiAgICAgfQotI2VuZGlmCiAgICAgCiAjaWYgVVNFKEdMSUIpCiAgICAgW3NlbGYgX2NsZWFyR2xp
Ykxvb3BPYnNlcnZlcl07CkBAIC0zNDczLDcgKzM0NjgsNiBAQCAtICh2b2lkKV9yZXN0b3JlUGx1
Z0luc0Zyb21DYWNoZQogCiAtIChCT09MKV9zZXRNZWRpYUxheWVyOihDQUxheWVyKilsYXllciBm
b3JQbHVnaW5WaWV3OihOU1ZpZXcqKXBsdWdpblZpZXcKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgV2ViVGhyZWFkTG9jaygpOwogCiAgICAgRnJhbWUqIG1haW5Db3Jl
RnJhbWUgPSBbc2VsZiBfbWFpbkNvcmVGcmFtZV07CkBAIC0zNDk1LDcgKzM0ODksNyBAQCAtIChC
T09MKV9zZXRNZWRpYUxheWVyOihDQUxheWVyKilsYXllciBmb3JQbHVnaW5WaWV3OihOU1ZpZXcq
KXBsdWdpblZpZXcKICAgICAgICAgICAgIHJldHVybiBZRVM7CiAgICAgICAgIH0KICAgICB9Ci0j
ZW5kaWYKKwogICAgIHJldHVybiBOTzsKIH0KIApAQCAtMzg3MywzMCArMzg2NywyMiBAQCArIChO
U0N1cnNvciAqKV9wb2ludGluZ0hhbmRDdXJzb3IKIAogLSAoQk9PTClfcG9zdHNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTm90aWZpY2F0aW9ucwogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICByZXR1cm4gX3ByaXZhdGUtPnBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05v
dGlmaWNhdGlvbnM7Ci0jZWxzZQotICAgIHJldHVybiBOTzsKLSNlbmRpZgotCiB9CiAtICh2b2lk
KV9zZXRQb3N0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdOb3RpZmljYXRpb25zOihCT09MKWZsYWcK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgX3ByaXZhdGUtPnBvc3Rz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnMgPSBmbGFnOwotI2VuZGlmCiB9CiAK
IC0gKEJPT0wpX2lzVXNpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nCiB7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBbc2VsZiBfbWFpbkNv
cmVGcmFtZV07CiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgTlNW
aWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXdd
OwogICAgICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBj
bGFzc11dICYmIFsoV2ViSFRNTFZpZXcgKilkb2N1bWVudFZpZXcgX2lzVXNpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nXSkKICAgICAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQotI2VuZGlmCisK
ICAgICByZXR1cm4gTk87CiB9CiAKQEAgLTM5MjcsNyArMzkxMyw2IEBAIC0gKHZvaWQpc2V0VmFs
aWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb246KGludCluZXdWYWx1ZQogCiAtIChCT09M
KV9pc1NvZnR3YXJlUmVuZGVyYWJsZQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICBGcmFtZSogY29yZUZyYW1lID0gW3NlbGYgX21haW5Db3JlRnJhbWVdOwogICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcg
PSBmcmFtZS0+dmlldygpKSB7CkBAIC0zOTM1LDcgKzM5MjAsNyBAQCAtIChCT09MKV9pc1NvZnR3
YXJlUmVuZGVyYWJsZQogICAgICAgICAgICAgICAgIHJldHVybiBOTzsKICAgICAgICAgfQogICAg
IH0KLSNlbmRpZgorCiAgICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtNTIxOSw3ICs1MjA0LDcgQEAg
LSAodm9pZCljbG9zZQogICAgIC8vIF9jbG9zZSBleGlzdGVkIGZpcnN0LCBhbmQgc29tZSBjbGll
bnRzIG1pZ2h0IGJlIGNhbGxpbmcgb3Igb3ZlcnJpZGluZyBpdCwgc28gY2FsbCB0aHJvdWdoLgog
ICAgIFtzZWxmIF9jbG9zZV07CiAKLSNpZiBQTEFURk9STShJT1MpICYmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKKyNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKF9wcml2YXRlLT5sYXll
ckZsdXNoQ29udHJvbGxlcikgewogICAgICAgICBfcHJpdmF0ZS0+bGF5ZXJGbHVzaENvbnRyb2xs
ZXItPmludmFsaWRhdGUoKTsKICAgICAgICAgX3ByaXZhdGUtPmxheWVyRmx1c2hDb250cm9sbGVy
ID0gbnVsbHB0cjsKQEAgLTgzNDEsOCArODMyNiw2IEBAIC0gKFdlYkZyYW1lICopX3NlbGVjdGVk
T3JNYWluRnJhbWUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCiAtIChCT09MKV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0
aW9uCiB7CiAgICAgcmV0dXJuIF9wcml2YXRlLT5uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uOwpAQCAtODQ2NCw4ICs4NDQ3LDYgQEAgLSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNo
Rm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQKIH0KICNlbmRpZgogCi0jZW5kaWYKLQogI2lmIEVO
QUJMRShWSURFTykKIC0gKHZvaWQpX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6KFdlYkNvcmU6Ok5v
ZGUqKW5vZGUKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBk
NzA2OGVmODc2MmNkNWI2ZmM0MjViNjE0ODBkMDdhMDI2NTk3NjkyLi4xZDI5MWQ3YzkzMTIyODcx
MWFiZmFjNzdkMzVhOWU2MzJjY2Y1OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5oCkBAIC04MCw3ICs4MCw2IEBAIGNsYXNzIFBhZ2U7CiBleHRlcm4gQk9PTCBhcHBs
aWNhdGlvbklzVGVybWluYXRpbmc7CiBleHRlcm4gaW50IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291
bnQ7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBMYXllckZsdXNo
Q29udHJvbGxlcjsKIAogY2xhc3MgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVsZXIgOiBwdWJsaWMg
V2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlciB7CkBAIC0xMTYsNyArMTE1LDYgQEAgcHJpdmF0
ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgV2ViVmlld0xheWVyRmx1c2hTY2hlZHVs
ZXIgbV9sYXllckZsdXNoU2NoZWR1bGVyOwogfTsKLSNlbmRpZgogCiAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgcmVuYW1lZCB0byBXZWJWaWV3RGF0YS4KIEBpbnRlcmZhY2UgV2ViVmlld1ByaXZh
dGUgOiBOU09iamVjdCB7CkBAIC0yMzIsMTQgKzIzMCwxMiBAQCBwcml2YXRlOgogICAgIEJPT0wg
c2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW47CiAKICAgICBCT09MIGluY2x1ZGVzRmxhdHRlbmVk
Q29tcG9zaXRpbmdMYXllcnNXaGVuRHJhd2luZ1RvQml0bWFwOwotICAgIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIC8vIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgbmV4
dCB0aW1lIGEgV2ViSFRNTFZpZXcgZHJhd3MsIGl0IG5lZWRzIHRvIHRlbXBvcmFyaWx5IGRpc2Fi
bGUgc2NyZWVuIHVwZGF0ZXMKICAgICAvLyBzbyB0aGF0IHRoZSBOU1ZpZXcgZHJhd2luZyBpcyB2
aXN1YWxseSBzeW5jaHJvbml6ZWQgd2l0aCBDQUxheWVyIHVwZGF0ZXMuCiAgICAgQk9PTCBuZWVk
c09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uOwogICAgIEJPT0wgcG9zdHNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTm90aWZpY2F0aW9uczsKICAgICBSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xs
ZXI+IGxheWVyRmx1c2hDb250cm9sbGVyOwotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIE5TUGFzdGVib2FyZCAqaW5zZXJ0aW9uUGFzdGVib2FyZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IDBhYjM3M2ZjNzQ2NTExNGY1NzYyMTUxM2IwZTVk
Y2UxZWIyOWRmM2YuLjYyMzI1YWNjMjc4YWUyMjhlM2Q5ZTA1NGE0NDljMjBkMWFiYzY3ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtNDYsNyArNDYsNiBA
QAogQk9PTCBhcHBsaWNhdGlvbklzVGVybWluYXRpbmcgPSBOTzsKIGludCBwbHVnaW5EYXRhYmFz
ZUNsaWVudENvdW50ID0gMDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZv
aWQgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCiB7CiAgICAgbV9s
YXllckZsdXNoU2NoZWR1bGVyLnNjaGVkdWxlKCk7CkBAIC03MCw3ICs2OSw2IEBAIFdlYlZpZXdM
YXllckZsdXNoU2NoZWR1bGVyOjpXZWJWaWV3TGF5ZXJGbHVzaFNjaGVkdWxlcihMYXllckZsdXNo
Q29udHJvbGxlciogZmx1CiAgICAgLCBtX2ZsdXNoQ29udHJvbGxlcihmbHVzaENvbnRyb2xsZXIp
CiB7CiB9Ci0jZW5kaWYKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZXdQcml2YXRlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDQxZDJkMTc3ZDEz
ZTUxODlkMDU5ZjVhMTNhMjA2MzQ4ZGVmOTQ3ZmMuLmY2NDc1NzdjOTM4YzI0MGRkZDVjNjAwMjI3
ZDk3ZGU2ZTc1N2U0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50
ZXJuYWwuaApAQCAtOTksMTEgKzk5LDkgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7
CiAtICh2b2lkKV9kaXNwYXRjaERpZFJlY2VpdmVJY29uRnJvbVdlYkZyYW1lOihXZWJGcmFtZSAq
KXdlYkZyYW1lOwogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAt
IChCT09MKV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uOwogLSAodm9pZClfc2V0
TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjooQk9PTCluZWVkc1N5bmNocm9uaXph
dGlvbjsKIC0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoOwotI2VuZGlmCiAK
ICNpZiBVU0UoR0xJQikKIC0gKHZvaWQpX3NjaGVkdWxlR2xpYkNvbnRleHRJdGVyYXRpb25zOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAppbmRl
eCA3ZmY4NjNhYzc2MzQxYjA5MzY5M2VmMWM2M2NhMDc1OWQxYjAwOGU2Li4xOTM3ZjVmMmFmZmIz
YTkxNmUxZDNjZjQwNDY5NDU4MzRhODJhNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9G
dWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcApAQCAtMTc2LDcgKzE3Niw2IEBAIHZvaWQgSFVE
U2xpZGVyOjpkcmFnKGNvbnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBzdGFydCkKICAgICBtX2J1
dHRvblBvc2l0aW9uID0gbWF4KDAsIG1pbihtX3JlY3Qud2lkdGgoKSAtIG1fYnV0dG9uU2l6ZSwg
cG9pbnQueCgpIC0gbV9kcmFnU3RhcnRPZmZzZXQpKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIGNsYXNzIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OkxheWVyQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgTGF5ZXJDbGllbnQoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlciogcGFyZW50KSA6IG1fcGFy
ZW50KHBhcmVudCkgeyB9CkBAIC0yMzIsNyArMjMxLDYgQEAgdm9pZCBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpMYXllckNsaWVudDo6cGxhdGZvcm1DQUxheWVyTGF5b3V0U3VibGF5ZXJzT2ZM
YXkKICAgICB2aWRlb0xheWVyLT5zZXRQb3NpdGlvbih2aWRlb09yaWdpbik7CiAgICAgdmlkZW9M
YXllci0+c2V0Qm91bmRzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHZpZGVvU2l6ZSkpOwogfQot
I2VuZGlmIAogCiBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpGdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyKCkKICAgICA6IG1faHVkV2luZG93KDApCkBAIC0yNDcsMTkgKzI0NSwxNSBAQCBGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjpGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyKCkKICAgICAs
IG1faGl0V2lkZ2V0KDApCiAgICAgLCBtX21vdmluZ1dpbmRvdyhmYWxzZSkKICAgICAsIG1fdGlt
ZXIodGhpcywgJkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnRpbWVyRmlyZWQpCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICwgbV9sYXllckNsaWVudChhZG9wdFB0cihu
ZXcgTGF5ZXJDbGllbnQodGhpcykpKQogICAgICwgbV9yb290Q2hpbGQoUGxhdGZvcm1DQUxheWVy
V2luOjpjcmVhdGUoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVMYXllciwgbV9sYXllckNsaWVu
dC5nZXQoKSkpCi0jZW5kaWYKICAgICAsIG1fZnVsbHNjcmVlbldpbmRvdyhhZG9wdFB0cihuZXcg
TWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdyh0aGlzKSkpCiB7CiB9CiAKIEZ1bGxz
Y3JlZW5WaWRlb0NvbnRyb2xsZXI6On5GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyKCkKIHsKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9yb290Q2hpbGQtPnNldE93bmVy
KDApOwotI2VuZGlmCiB9CiAKIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0TWVk
aWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKQEAgLTI4NCwxNCArMjc4
LDEyIEBAIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6ZW50ZXJGdWxsc2NyZWVuKCkK
IAogICAgIG1fZnVsbHNjcmVlbldpbmRvdy0+Y3JlYXRlV2luZG93KHBhcmVudEh3bmQpOwogICAg
IDo6U2hvd1dpbmRvdyhtX2Z1bGxzY3JlZW5XaW5kb3ctPmh3bmQoKSwgU1dfU0hPVyk7Ci0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1fZnVsbHNjcmVlbldpbmRvdy0+c2V0
Um9vdENoaWxkTGF5ZXIobV9yb290Q2hpbGQpOwogCiAgICAgUGxhdGZvcm1DQUxheWVyKiB2aWRl
b0xheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIobV9tZWRpYUVsZW1lbnQt
PnBsYXRmb3JtTGF5ZXIoKSk7CiAgICAgbV9yb290Q2hpbGQtPmFwcGVuZFN1YmxheWVyKHZpZGVv
TGF5ZXIpOwogICAgIG1fcm9vdENoaWxkLT5zZXROZWVkc0xheW91dCgpOwogICAgIG1fcm9vdENo
aWxkLT5zZXRHZW9tZXRyeUZsaXBwZWQoMSk7Ci0jZW5kaWYKIAogICAgIFJFQ1Qgd2luZG93UmVj
dDsKICAgICBHZXRDbGllbnRSZWN0KG1fZnVsbHNjcmVlbldpbmRvdy0+aHduZCgpLCAmd2luZG93
UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmgK
aW5kZXggMWM3NTUxNzAxZDhiMzM5M2M5MzU1MDJkZjE1ZDg3YTliOGM0NGEwNi4uOGUxNTdkNzBj
ZmQ2NWIwNDczM2Q3NDNjYWI2MGJjYWUzNjNkNjQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaApAQCAtMzksOSArMzksNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogY2xhc3MgUGxhdGZvcm1DQUxheWVyOwotI2VuZGlmCiB9CiAKIGNsYXNz
IEhVRFdpZGdldCB7CkBAIC0xNTgsMTIgKzE1NiwxMSBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkludFNpemUgbV9mdWxsc2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2h1ZFBv
c2l0aW9uOwogICAgIE93blB0cjxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVu
V2luZG93PiBtX2Z1bGxzY3JlZW5XaW5kb3c7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQorCiAgICAgY2xhc3MgTGF5ZXJDbGllbnQ7CiAgICAgZnJpZW5kIGNsYXNzIExheWVyQ2xp
ZW50OwogICAgIE93blB0cjxMYXllckNsaWVudD4gbV9sYXllckNsaWVudDsKICAgICBSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBtX3Jvb3RDaGlsZDsKLSNlbmRpZgogCiAgICAgSFVE
QnV0dG9uIG1fcGxheVBhdXNlQnV0dG9uOwogICAgIEhVREJ1dHRvbiBtX3RpbWVTbGlkZXJCdXR0
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCAxZjRlOWE5ZDA3NjY0NmFjOGIyOGM3MjJmZDM3M2E4OTI5Yjk0MzNi
Li4zOTYyMTE5ZjU2YzQzNTM5ZTE2Mzg4ZDJmYzRjZWQyODIxZmJhMGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZFJlcXVlc3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVl
bkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFZpZGVvRWxl
bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSWNvbi5oPgpAQCAtNjIsMTAgKzYzLDYgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8d2NoYXIuaD4KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzTGF5ZXIuaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gV2hl
biB5b3UgY2FsbCBHZXRPcGVuRmlsZU5hbWUsIGlmIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaXMg
dG9vIHNtYWxsLApAQCAtNzUxLDcgKzc0OCw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRM
YXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKICAgICBtX3dlYlZpZXctPnNldExhc3RDdXJz
b3IoOjpHZXRDdXJzb3IoKSk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZy
YW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIG1fd2ViVmlldy0+c2V0
Um9vdENoaWxkTGF5ZXIoZ3JhcGhpY3NMYXllcik7CkBAIC03NjEsNyArNzU3LDYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKIHsKICAgICBt
X3dlYlZpZXctPmZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzU29vbigpOwogfQotI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiBXZWJDb3JlOjpH
cmFwaGljc0RldmljZUFkYXB0ZXIqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhpY3NEZXZpY2VBZGFw
dGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggZGEzZTE5N2ZiM2UwY2YzOWU1OTJlZjkxMDczZjhiMDUyMmVk
NTNjYS4uOGFkYjkxMTUxZGNkZGVmZTRiYzE0NGZmYTA2MzI1NDQ4MWZkYWMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTEzMCwxNiArMTMwLDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVE
aWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSopIHsgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotICAgICAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8g
ZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAgICAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwot
ICAgICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250
ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCi0gICAgICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVh
ciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXll
cnMuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkgeyB9Ci0gICAgICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUg
dmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIGRvIGFu
IGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwotI2VuZGlmCisgICAgLy8gUGFzcyAwIGFz
IHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVh
bCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopOworICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUg
bmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKKyAgICAvLyB0aGUgY2hh
bmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdy
YXBoaWNzTGF5ZXJzLgorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgeyB9CisgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRo
ZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKKyAgICAvLyB0byBkbyBhbiBl
YWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDVk
NmRiOTk2MDVjNDk1OTQ2ZjEyYTVhZTU2MDYwZDAxZTBmYTYxM2YuLmMzMzgxNmZlOTE0YWNkNGZi
N2JkNTVlMWQzZDdmNTllOTM1YjZjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAKQEAgLTE1NTAsMTUgKzE1NTAsMTIgQEAgSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQogCiBIUkVTVUxUIFdlYlBy
ZWZlcmVuY2VzOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChCT09MKiBlbmFibGVkKQog
ewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpZiBVU0UoQ0EpCiAgICAgKmVu
YWJsZWQgPSBDQUNGTGF5ZXJUcmVlSG9zdDo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJs
ZSgpICYmIGJvb2xWYWx1ZUZvcktleShXZWJLaXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZFByZWZlcmVuY2VLZXkpOwogI2Vsc2UKICAgICAqZW5hYmxlZCA9IFRSVUU7CiAjZW5kaWYKLSNl
bHNlCi0gICAgKmVuYWJsZWQgPSBGQUxTRTsKLSNlbmRpZgorCiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggYWEyZWI5ZDg3MzMzMWE1YWYwYzBmMGUwZTZkY2U3
NmVjMGEyZjBkOS4uOWVjYjRlNzFhMjU3ZDIzN2Q5MzdjMzE3YjhkMWNiOTBmNzE1MDhmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQAogI2luY2x1ZGUgPFdlYktpdFN5
c3RlbUludGVyZmFjZS9XZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4gCiAjZW5kaWYKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICNpbmNs
dWRlIDxXZWJDb3JlL0NBQ0ZMYXllclRyZWVIb3N0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUNBTGF5ZXIuaD4KICNlbmRpZgpAQCAtMzkzLDkgKzM5Myw3IEBAIFdlYlZpZXc6OldlYlZp
ZXcoKQogICAgICwgbV9sYXN0UGFuWSgwKQogICAgICwgbV94T3ZlcnBhbigwKQogICAgICwgbV95
T3ZlcnBhbigwKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX25leHREaXNwbGF5
SXNTeW5jaHJvbm91cyhmYWxzZSkKICAgICAsIG1fbGFzdFNldEN1cnNvcigwKQogICAgICwgbV91
c2VzTGF5ZXJlZFdpbmRvdyhmYWxzZSkKQEAgLTQzNCwxMiArNDMyLDkgQEAgV2ViVmlldzo6fldl
YlZpZXcoKQogICAgIEFTU0VSVCghbV9wcmVmZXJlbmNlcyk7CiAgICAgQVNTRVJUKCFtX3ZpZXdX
aW5kb3cpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2lmIFVTRShDQSkK
ICAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7CiAjZW5kaWYKLSAgICBBU1NFUlQoIW1fYmFj
a2luZ0xheWVyKTsKLSNlbmRpZgogCiAgICAgV2ViVmlld0NvdW50LS07CiAgICAgZ0NsYXNzQ291
bnQtLTsKQEAgLTcwMyw5ICs2OTgsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OmNsb3NlKCkKIAogICAgIG1fZGlkQ2xvc2UgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoZmFsc2UpOwot
I2VuZGlmCiAKICAgICBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5h
bCgpLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShfYnN0cl90KFdlYlZpZXdXaWxsQ2xvc2VOb3RpZmlj
YXRpb24pLkdldEJTVFIoKSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPih0aGlzKSwgMCk7CiAKQEAg
LTc3OSwxNCArNzcyLDEyIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6Y2xv
c2UoKQogCiB2b2lkIFdlYlZpZXc6OnJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgd2lu
ZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWlu
dENvbnRlbnRPbmx5KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBp
ZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgLy8gVGhlIGNvbnRlbnRD
aGFuZ2VkLCBpbW1lZGlhdGUsIGFuZCByZXBhaW50Q29udGVudE9ubHkgcGFyYW1ldGVycyBhcmUg
YWxsIGJhc2VkIG9uIGEgbm9uLQogICAgICAgICAvLyBjb21wb3NpdGluZyBwYWludGluZy9zY3Jv
bGxpbmcgbW9kZWwuCiAgICAgICAgIGFkZFRvRGlydHlSZWdpb24od2luZG93UmVjdCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmICghcmVwYWludENvbnRlbnRPbmx5
KSB7CiAgICAgICAgIFJFQ1QgcmVjdCA9IHdpbmRvd1JlY3Q7CkBAIC04NDUsMTIgKzgzNiwxMCBA
QCB2b2lkIFdlYlZpZXc6OmFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYgZGlydHlSZWN0
KQogICAgIC8vIGJ1dCBpdCB3YXMgYmVpbmcgaGl0IGR1cmluZyBvdXIgbGF5b3V0IHRlc3RzLCBh
bmQgaXMgYmVpbmcgaW52ZXN0aWdhdGVkIGluCiAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi8y
OTM1MC4KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgbV9iYWNraW5nTGF5ZXItPnNldE5lZWRz
RGlzcGxheUluUmVjdChkaXJ0eVJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlm
CiAKICAgICBhdXRvIG5ld1JlZ2lvbiA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlUmVjdFJnbihk
aXJ0eVJlY3QueCgpLCBkaXJ0eVJlY3QueSgpLAogICAgICAgICBkaXJ0eVJlY3QubWF4WCgpLCBk
aXJ0eVJlY3QubWF4WSgpKSk7CkBAIC04NjEsOSArODUwLDcgQEAgdm9pZCBXZWJWaWV3OjphZGRU
b0RpcnR5UmVnaW9uKEdESU9iamVjdDxIUkdOPiBuZXdSZWdpb24pCiB7CiAgICAgbV9uZWVkc0Rp
c3BsYXkgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFT
U0VSVCghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpOwotI2VuZGlmCiAKICAgICBMT0NBTF9H
RElfQ09VTlRFUigwLCBfX0ZVTkNUSU9OX18pOwogCkBAIC04ODIsMTQgKzg2OSwxMiBAQCB2b2lk
IFdlYlZpZXc6OnNjcm9sbEJhY2tpbmdTdG9yZShGcmFtZVZpZXcqIGZyYW1lVmlldywgaW50IGR4
LCBpbnQgZHksIGNvbnN0IEludAogewogICAgIG1fbmVlZHNEaXNwbGF5ID0gdHJ1ZTsKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBkb2luZyBzb21ldGhp
bmcgc21hcnRlciBoZXJlLCBsaWtlIG1vdmluZyB0aWxlcyBhcm91bmQgYW5kIHBhaW50aW5nCiAg
ICAgICAgIC8vIGFueSBuZXdseS1leHBvc2VkIHRpbGVzLiA8aHR0cDovL3dlYmtpdC5vcmcvYi81
MjcxND4KICAgICAgICAgbV9iYWNraW5nTGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChzY3Jv
bGxWaWV3UmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0jZW5kaWYKIAogICAgIExPQ0FM
X0dESV9DT1VOVEVSKDAsIF9fRlVOQ1RJT05fXyk7CiAKQEAgLTk0MSw3ICs5MjYsNyBAQCB2b2lk
IFdlYlZpZXc6OnNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgaWYgKEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKHRvcExldmVsRnJhbWUoKSkpCiAgICAgICAgIGNvcmVGcmFt
ZS0+dmlldygpLT5yZXNpemUobmV3U2l6ZSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpICYmIFVTRShDQSkKKyNpZiBVU0UoQ0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yZXNpemUoKTsKICAgICBpZiAobV9iYWNraW5nTGF5
ZXIpIHsKQEAgLTk5NSw5ICs5ODAsNyBAQCBzdGF0aWMgdm9pZCBnZXRVcGRhdGVSZWN0cyhIUkdO
IHJlZ2lvbiwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBWZWN0b3I8SW50UmVjdAogCiB2b2lk
IFdlYlZpZXc6OnVwZGF0ZUJhY2tpbmdTdG9yZShGcmFtZVZpZXcqIGZyYW1lVmlldywgSERDIGRj
LCBib29sIGJhY2tpbmdTdG9yZUNvbXBsZXRlbHlEaXJ0eSwgV2luZG93c1RvUGFpbnQgd2luZG93
c1RvUGFpbnQpCiB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFTU0VS
VCghaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpOwotI2VuZGlmCiAKICAgICBMT0NBTF9HRElf
Q09VTlRFUigwLCBfX0ZVTkNUSU9OX18pOwogCkBAIC0xMDc4LDcgKzEwNjEsNyBAQCB2b2lkIFdl
YlZpZXc6OnBhaW50KEhEQyBkYywgTFBBUkFNIG9wdGlvbnMpCiB7CiAgICAgTE9DQUxfR0RJX0NP
VU5URVIoMCwgX19GVU5DVElPTl9fKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykgJiYgVVNFKENBKQorI2lmIFVTRShDQSkKICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkgJiYgIXVzZXNMYXllcmVkV2luZG93KCkpIHsKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5mbHVzaFBlbmRpbmdMYXllckNoYW5nZXNOb3coKTsKICAgICAgICAgLy8gRmx1c2hpbmcgbWln
aHQgaGF2ZSB0YWtlbiB1cyBvdXQgb2YgY29tcG9zaXRpbmcgbW9kZS4KQEAgLTIxNDMsNyArMjEy
Niw3IEBAIHZvaWQgV2ViVmlldzo6c2V0U2hvdWxkSW52ZXJ0Q29sb3JzKGJvb2wgc2hvdWxkSW52
ZXJ0Q29sb3JzKQogCiAgICAgbV9zaG91bGRJbnZlcnRDb2xvcnMgPSBzaG91bGRJbnZlcnRDb2xv
cnM7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDQSkKKyNpZiBV
U0UoQ0EpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXRTaG91bGRJbnZlcnRDb2xvcnMoc2hvdWxkSW52ZXJ0Q29sb3JzKTsKICNlbmRpZgpAQCAt
MjM4NywxMCArMjM3MCw4IEBAIExSRVNVTFQgQ0FMTEJBQ0sgV2ViVmlldzo6V2ViVmlld1duZFBy
b2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sCiAgICAgICAgICAgICAg
ICAgUkVDVCB3aW5kb3dSZWN0OwogICAgICAgICAgICAgICAgIDo6R2V0Q2xpZW50UmVjdChoV25k
LCAmd2luZG93UmVjdCk7CiAgICAgICAgICAgICAgICAgOjpJbnZhbGlkYXRlUmVjdChoV25kLCAm
d2luZG93UmVjdCwgZmFsc2UpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAgICAgICAgICAgICBpZiAod2ViVmlldy0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpCiAg
ICAgICAgICAgICAgICAgICAgIHdlYlZpZXctPm1fYmFja2luZ0xheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKLSNlbmRpZgogICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBXTV9NT1VTRUFDVElWQVRFOgpAQCAtNDk4OCwxMiArNDk2OSwxMCBAQCBIUkVTVUxUIFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKGVuYWJsZWQpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGhyID0gcHJlZnNQcml2YXRlLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgmZW5h
YmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0
aW5ncy5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChlbmFibGVkKTsKLSNlbmRpZgog
CiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPnNob3dEZWJ1Z0JvcmRlcnMoJmVuYWJsZWQpOwogICAg
IGlmIChGQUlMRUQoaHIpKQpAQCAtNjU2Nyw3ICs2NTQ2LDYgQEAgdm9pZCBXZWJWaWV3Ojpkb3du
bG9hZFVSTChjb25zdCBVUkwmIHVybCkKICAgICBkb3dubG9hZC0+c3RhcnQoKTsKIH0KIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgV2ViVmlldzo6c2V0Um9vdENoaWxk
TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZyhsYXllciA/IHRydWUgOiBmYWxzZSk7CkBAIC02NjMwLDcgKzY2MDgsNiBAQCB2b2lkIFdl
YlZpZXc6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCBhY2NlbGVyYXRlZCkKICAgICB9
CiAjZW5kaWYKIH0KLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQogV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBXZWJWaWV3OjpncmFwaGljc0Rl
dmljZUFkYXB0ZXIoKSBjb25zdApAQCAtNjc0Miw3ICs2NzE5LDYgQEAgSFJFU1VMVCBXZWJWaWV3
OjpuZXh0RGlzcGxheUlzU3luY2hyb25vdXMoKQogICAgIHJldHVybiBTX09LOwogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBXZWJWaWV3Ojpub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUpCiB7CiAgICAgLy8gV2UgbmV2
ZXIgc2V0IGFueSBhbmltYXRpb25zIG9uIG91ciBiYWNraW5nIGxheWVyLgpAQCAtNjc4Niw4ICs2
NzYyLDYgQEAgdm9pZCBXZWJWaWV3OjpmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlcygp
CiAgICAgdmlldy0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9
CiAKLSNlbmRpZgotCiBjbGFzcyBFbnVtVGV4dE1hdGNoZXMgOiBwdWJsaWMgSUVudW1UZXh0TWF0
Y2hlcwogewogICAgIGxvbmcgbV9yZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggM2Y0NmFlMDA1MGNl
ZWE2ZDk4NWZiYTUyMDM4NTI3MDM4YTc2MTBmMi4uYmRlYjFkMDNlYzY2ZGE3YWZkOTAzODc2ODcw
NjlkN2I0ZjVmNWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMzEsOSArMzEsMTEgQEAKICNpbmNs
dWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQUNGTGF5ZXJUcmVlSG9zdENsaWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkR0RJT2JqZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dXNwZW5kYWJsZVRpbWVyLmg+CkBAIC00MiwxNyArNDQsMTIgQEAKICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotI2luY2x1ZGUgPFdlYkNvcmUvQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDbGllbnQuaD4KLSNlbmRpZgotCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVlbkNvbnRy
b2xsZXJDbGllbnQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoQ0EpCisjaWYgVVNFKENBKQogICAgIGNsYXNz
IENBQ0ZMYXllclRyZWVIb3N0OwogI2VuZGlmCiAgICAgY2xhc3MgRnVsbFNjcmVlbkNvbnRyb2xs
ZXI7CkBAIC04NywxMCArODQsOCBAQCBjbGFzcyBXZWJWaWV3CiAgICAgLCBwdWJsaWMgSVdlYk5v
dGlmaWNhdGlvbk9ic2VydmVyCiAgICAgLCBwdWJsaWMgSURyb3BUYXJnZXQKICAgICAsIFdlYkNv
cmU6OldpbmRvd01lc3NhZ2VMaXN0ZW5lcgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICAsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAsIFdlYkNvcmU6OkNB
Q0ZMYXllclRyZWVIb3N0Q2xpZW50Ci0jZW5kaWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgLCBXZWJDb3JlOjpGdWxsU2NyZWVuQ29udHJvbGxlckNsaWVudAogI2VuZGlmCkBAIC05
NTAsMTAgKzk0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgV2Vi
Q29yZTo6VVJMJik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9p
ZCBmbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKICAgICB2b2lkIHNldFJv
b3RDaGlsZExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2
aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Q7CkBAIC0xMDIzLDcgKzEw
MTYsNiBAQCBwcml2YXRlOgogICAgIC8vIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI5MjY0KQogICAgIERXT1JEIG1fbGFzdERyb3BFZmZlY3Q7CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwpAQCAtMTAzMSw3ICsxMDIz
LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIENBQ0ZMYXllclRyZWVIb3N0Q2xpZW50CiAgICAgdmly
dHVhbCB2b2lkIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFuZ2VzKCk7Ci0jZW5kaWYKIAog
ICAgIGJvb2wgbV9zaG91bGRJbnZlcnRDb2xvcnM7CiAgICAgdm9pZCBzZXRTaG91bGRJbnZlcnRD
b2xvcnMoYm9vbCk7CkBAIC0xMTUyLDcgKzExNDMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgT3duUHRy
PEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI+IG1fZnVsbFNjcmVlblZpZGVvQ29udHJvbGxlcjsK
ICNlbmRpZgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmc7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcoYm9vbCk7CiAj
aWYgVVNFKENBKQpAQCAtMTE2MCw3ICsxMTUwLDYgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fYmFja2luZ0xheWVyOwog
ICAgIGJvb2wgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7Ci0jZW5kaWYKIAogICAgIGJvb2wg
bV9uZXh0RGlzcGxheUlzU3luY2hyb25vdXM7CiAgICAgYm9vbCBtX3VzZXNMYXllcmVkV2luZG93
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmNwcAppbmRleCA5ZWFkNDUxYTU2NDAzOGNmZDE3ZWUzN2RlOGMwOGU3MDM5
YTJlZGVjLi4wZWExNTk0Mjc0YWM2YjQ3YmQ1ZTUxMjNlNDliMDU3NTA5Yjg3NThlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmNwcApAQCAtMzE3LDcgKzMxNyw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6Om5l
ZWRUb3VjaEV2ZW50cyhib29sKQogfQogI2VuZGlmCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiB2b2lkIENocm9tZUNsaWVudFdpbkNFOjphdHRhY2hSb290R3JhcGhpY3NMYXll
cihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0z
MzIsNyArMzMxLDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9p
ZCBDaHJvbWVDbGllbnRXaW5DRTo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggMzE4NDcyMDFhYWY0
OGFmZThjZThlOGY1NDE0YWRkYjYwODNlNTM1Mi4uMWFjOTA2MmJkODI0NTMyZWE1ZDUzZDE3MTM2
ZDA4OTBiYWIyYWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1YmxpYzoK
ICAgICAvLyB3aWxsIGJlIGNhbGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUg
dmVyeSBmYXN0LgogICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6Tm9kZSopIG92ZXJyaWRlOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290
IGxheWVyLgogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICAvLyBTZXRz
IGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRv
IHRoZSB3aW5kb3csCkBAIC0xNDYsNyArMTQ1LDYgQEAgcHVibGljOgogICAgIC8vIFNldHMgYSBm
bGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBu
ZWVkCiAgICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsK
LSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJz
b3IoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuY3BwCmluZGV4IDI3N2IwODkwZWQzNTQ4NTA3YmM2NThlMDkzZmM3NThkNGRh
MmYzZDMuLjNjN2IxZjBjYTI4ZTg3M2EzNjlmODIyOGIzMDY0ZGY0ZDM0MDA3MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAKQEAgLTU5LDkgKzU5LDcgQEAgUGx1Z2luQ29udHJvbGxlclByb3h5OjpQbHVnaW5Db250
cm9sbGVyUHJveHkoV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGMKICAgICAsIG1f
cGx1Z2luSW5zdGFuY2VJRChjcmVhdGlvblBhcmFtZXRlcnMucGx1Z2luSW5zdGFuY2VJRCkKICAg
ICAsIG1fdXNlckFnZW50KGNyZWF0aW9uUGFyYW1ldGVycy51c2VyQWdlbnQpCiAgICAgLCBtX2lz
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChjcmVhdGlvblBhcmFtZXRlcnMuaXNQcml2YXRlQnJvd3Np
bmdFbmFibGVkKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1faXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChjcmVhdGlvblBhcmFtZXRlcnMuaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZCkKLSNlbmRpZgogICAgICwgbV9pc0luaXRpYWxpemluZyhm
YWxzZSkKICAgICAsIG1fcGFpbnRUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZQbHVnaW5D
b250cm9sbGVyUHJveHk6OnBhaW50KQogICAgICwgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RD
b3VudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDNkMjQ5MmY5NjIzNDdiZGQ4M2IwMGEzNDg3
ZDY0ZDUzOTFhZTA0YWYuLmY0YmE0Y2JjNWE1NzY2MGQ0MmZhN2YyNTYyNTAyMTM5YjdiN2MxNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM5LDkgKzM5LDcgQEAgUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoKQogICAgICwgaXNQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGZhbHNlKQogICAgICwgYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKGZh
bHNlKQogICAgICwgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKGZh
bHNlKQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIGlzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtNTUsMTAgKzUz
LDcgQEAgdm9pZCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlzUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFzeW5jaHJvbm91c0NyZWF0aW9uSW5jb21wbGV0ZTsK
ICAgICBlbmNvZGVyIDw8IGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxl
ZDsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBlbmNvZGVyIDw8IGlz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7Ci0jZW5kaWYKIH0KIAogYm9vbCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC04NywxMCArODIsOCBAQCBib29s
IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBQbHVnaW5DcmVhdAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFydGlm
aWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDM4OWY3NTVjYjg1ZTFkMDZmYjUxMjBiNTM4OWFhNzcxNGQyMTg5ZDUuLmQyNTNk
MWNiMmIzYTA5NWZlMzlhNDE3MmQyYTIzZmYzMTQ4NWMwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
NjcsMTAgKzY3LDggQEAgc3RydWN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgLy8g
U2ltdWxhdGVkIGluaXRpYWxpemF0aW9uIGRlbGF5IHRlc3QgYXN5bmNocm9ub3VzIHBsdWdpbiBp
bml0aWFsaXphdGlvbgogICAgIGJvb2wgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVs
YXlFbmFibGVkOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFdo
ZXRoZXIgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZC4KICAgICBib29sIGlzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApp
bmRleCBhODdhMzg4MjRhMGUyY2EwZDkzNWYwYmNkNGUyMGRhMDIyNjk1MTNkLi4yYWVmMjA2NTc3
MmYxZTRjZDY1Y2QyMmQ5MzNlNDMwZDNiYjE5OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApAQCAtNTUsOSArNTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRNb2RhbFdpbmRvd0lzU2hvd2luZyhib29sKTsKICAgICB2b2lkIHNldEZ1bGxzY3Jl
ZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgY29uc3Qg
eyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQ7IH0KLSNlbmRpZgogCiAgICAg
Ym9vbCBsYXVuY2hQcm9jZXNzKGNvbnN0IFN0cmluZyYgbGF1bmNoUGF0aCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGFyZ3VtZW50cyk7CiAgICAgYm9vbCBsYXVuY2hBcHBsaWNhdGlvbkF0VVJMKGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYXJndW1lbnRzKTsK
QEAgLTExMyw3ICsxMTEsNyBAQCBwcml2YXRlOgogCiAgICAgUnVuTG9vcDo6VGltZXI8UGx1Z2lu
UHJvY2Vzcz4gbV9taW5pbXVtTGlmZXRpbWVUaW1lcjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAvLyBU
aGUgTWFjaCBwb3J0IHVzZWQgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIG1hY2hf
cG9ydF90IG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcAppbmRleCBmNGJhYWQzMzFiNDVkMzRjMThiYzI5
M2VjZWY2NTQ3ZjdhY2JkNDc2Li5kNjZiZDA2ZDQzMjFmMzM0YjQ1YWZmZDA5NmRiZDAxYWM5NmY5
OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJMYXllci5jcHAKQEAgLTg1LDcg
Kzg1LDYgQEAgV2ViUmVuZGVyTGF5ZXI6OldlYlJlbmRlckxheWVyKFJlbmRlckxheWVyKiBsYXll
cikKICAgICBtX3JlbmRlcmVyID0gV2ViUmVuZGVyT2JqZWN0OjpjcmVhdGUoJmxheWVyLT5yZW5k
ZXJlcigpKTsKICAgICBtX2lzUmVmbGVjdGlvbiA9IGxheWVyLT5pc1JlZmxlY3Rpb24oKTsKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobGF5ZXItPmlzQ29tcG9z
aXRlZCgpKSB7CiAgICAgICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IGxheWVyLT5i
YWNraW5nKCk7CiAgICAgICAgIG1faXNDbGlwcGluZyA9IGJhY2tpbmctPmhhc0NsaXBwaW5nTGF5
ZXIoKTsKQEAgLTEwNSwxMyArMTA0LDEwIEBAIFdlYlJlbmRlckxheWVyOjpXZWJSZW5kZXJMYXll
cihSZW5kZXJMYXllciogbGF5ZXIpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7Ci0jZW5kaWYKICAgICAgICAgbV9pc0NsaXBwaW5nID0gZmFsc2U7CiAgICAgICAg
IG1faXNDbGlwcGVkID0gZmFsc2U7CiAgICAgICAgIG1fY29tcG9zaXRpbmdMYXllclR5cGUgPSBO
b25lOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB9Ci0jZW5kaWYKIAog
ICAgIG1fYWJzb2x1dGVCb3VuZGluZ0JveCA9IGxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUuaAppbmRleCA2OWRmN2U2YTA4ODZiMjFiZmFjZWUyNjEzOWM4MWEzODY4OWIzMDAwLi4x
NDlhMjZkZjA1NGQxM2JiZDE0NzE0Mjg2NWE3OTBhOTJmY2U5NmUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCkBAIC0yNiw4
ICsyNiw2IEBACiAjaWZuZGVmIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlX2gKICNkZWZpbmUgUmVt
b3RlTGF5ZXJCYWNraW5nU3RvcmVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgpAQCAtMTAyLDYgKzEwMCw0IEBA
IHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjZW5kaWYgLy8gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUubW0KaW5kZXggN2RkNTJiNjA5NzFkNTFlZjYyM2E3N2E0YjA3NzM3M2Q4NTQzMDU3OC4u
OTUzOTRhZmJkMTY5YTViYWYwZGRhYzcwYWQ3ZmY0ZjFlNTRhMTJmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCkBAIC0y
Niw4ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBv
cnQgIkFyZ3VtZW50Q29kZXJzLmgiCiAjaW1wb3J0ICJNYWNoUG9ydC5oIgogI2ltcG9ydCAiUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmgiCkBAIC0zNDksNSArMzQ3LDMgQEAgdm9pZCBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6ZW51bWVyYXRlUmVjdHNCZWluZ0RyYXduKENHQ29udGV4dFJlZiBjb250
ZXh0LCB2b2kKICAgICAgICAgYmxvY2socmVjdFRvRHJhdyk7CiAgICAgfQogfQotCi0jZW5kaWYg
Ly8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmNwcAppbmRleCA4NjJkZGJiMzllMTFjYTBj
MzFiNDZkOGExMzQ3YjVmMjlmMGM5YjhhLi44MTk4ZDYxZWE4YjgzMGQ2ZDBmZGY2NWE0NjQyZWE5
NzQ4YWQ1ZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
dmFzR0xDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
dmFzR0xDb250ZXh0LmNwcApAQCAtMjQsOSArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgIkV2
YXNHTENvbnRleHQuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSw0ICs0MiwzIEBAIEV2
YXNHTENvbnRleHQ6On5FdmFzR0xDb250ZXh0KCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2
YXNHTENvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTENv
bnRleHQuaAppbmRleCAyZWY3MzY0ZGNhM2M3ODhiOTVmNWViNzUwOTFiNjE4YzhlZGQyZTA0Li44
ODYxNTliOTIzMjU1NTQxZTI5Y2RmNDI4NmRmMjk1ZmU0MzExMDJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMQ29udGV4dC5oCkBAIC0yNSw3ICsyNSw2
IEBACiAKICNpZm5kZWYgRXZhc0dMQ29udGV4dF9oCiAjZGVmaW5lIEV2YXNHTENvbnRleHRfaAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAogI2luY2x1ZGUgPEV2YXNfR0wuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtNTcsNSArNTYsNCBAQCBwcml2YXRlOgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICNlbmRpZiAvLyBFdmFzR0xDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dMU3VyZmFjZS5jcHAKaW5kZXggYzdlYzEzYzhlMDA5
MjEzNTZlNDExNGJiOGU5NDZhMzljMjliYmNjNC4uMTYzMDFjYWZiYTVmMTZjODhmMmM3NjcxOWZj
OGU2NWMxMWRhZDgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvRXZhc0dMU3VyZmFjZS5jcHAKQEAgLTI0LDggKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAi
RXZhc0dMU3VyZmFjZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ0LDQgKzQyLDMgQEAg
RXZhc0dMU3VyZmFjZTo6fkV2YXNHTFN1cmZhY2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXZhc0dMU3VyZmFjZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXZhc0dM
U3VyZmFjZS5oCmluZGV4IGY2ZmIyYjViMGUzNDc0NWM2ZDk2ZGE2ODI4ZDIyZGEzZGQ5ZDUwYTQu
LmRhNzZiMWMxZDM1MGEzMTNkZDFiNmRhYzQyMjU2NjAwZDdlYWE1MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FdmFzR0xTdXJmYWNlLmgKQEAgLTI1LDcgKzI1
LDYgQEAKIAogI2lmbmRlZiBFdmFzR0xTdXJmYWNlX2gKICNkZWZpbmUgRXZhc0dMU3VyZmFjZV9o
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjaW5jbHVkZSA8RXZhc19HTC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgpAQCAtNjUsNSArNjQsNCBAQCBwcml2YXRl
OgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICNlbmRpZiAvLyBFdmFzR0xTdXJmYWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggMGQ5NWEyNmFhNzA0ZmQwZmExNDNm
YTQ3NDIzZWQzYWMxZjliYWI5OS4uOTcwMGM1YzY5NzQxNWUxNGQ5ZjM3M2VmOTRiOTRlZTA2Mjc2
MjZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAK
QEAgLTY2LDkgKzY2LDcgQEAKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNv
cmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAjaW5jbHVkZSA8RXZhc19HTC5oPgotI2VuZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWly
b1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMjg1LDEwICsyODMsOCBAQCBFd2tWaWV3OjpF
d2tWaWV3KFdLVmlld1JlZiB2aWV3LCBFdmFzX09iamVjdCogZXZhc09iamVjdCkKICNlbmRpZgog
ICAgICwgbV9kaXNwbGF5VGltZXIodGhpcywgJkV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKQog
ICAgICwgbV9pbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUo
dGhpcywgc21hcnREYXRhKCktPmJhc2UuZXZhcykpCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogICAgICwgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50KHRoaXMpCiAgICAg
LCBtX3BhZ2VWaWV3cG9ydENvbnRyb2xsZXIocGFnZSgpLCAmbV9wYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50KQotI2VuZGlmCiAgICAgLCBtX2lzQWNjZWxlcmF0ZWQodHJ1ZSkKIHsKICAgICBB
U1NFUlQobV9ldmFzT2JqZWN0KTsKQEAgLTI5Niw3ICsyOTIsNiBAQCBFd2tWaWV3OjpFd2tWaWV3
KFdLVmlld1JlZiB2aWV3LCBFdmFzX09iamVjdCogZXZhc09iamVjdCkKIAogICAgIC8vIEZJWE1F
OiBSZW1vdmUgd2hlbiBwb3NzaWJsZS4KICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3RWZsKj4od2Vi
VmlldygpKS0+c2V0RXdrVmlldyh0aGlzKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgbV9ldmFzR0wgPSBhZG9wdFB0cihldmFzX2dsX25ldyhldmFzX29iamVjdF9ldmFz
X2dldChtX2V2YXNPYmplY3QpKSk7CiAgICAgaWYgKG1fZXZhc0dMKQogICAgICAgICBtX2V2YXNH
TENvbnRleHQgPSBFdmFzR0xDb250ZXh0OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwpAQCAtMzA3
LDE0ICszMDIsMTEgQEAgRXdrVmlldzo6RXdrVmlldyhXS1ZpZXdSZWYgdmlldywgRXZhc19PYmpl
Y3QqIGV2YXNPYmplY3QpCiAgICAgfQogCiAgICAgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IG1f
aXNBY2NlbGVyYXRlZDsKLSNlbmRpZgogICAgIFdLVmlld0luaXRpYWxpemUod2tWaWV3KCkpOwog
CiAgICAgV0tQYWdlR3JvdXBSZWYgd2tQYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2tQ
YWdlKCkpOwogICAgIFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3Vw
R2V0UHJlZmVyZW5jZXMod2tQYWdlR3JvdXApOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBXS1ByZWZlcmVuY2VzU2V0V2ViR0xFbmFibGVkKHdrUHJlZmVyZW5jZXMsIHRy
dWUpOwotI2VuZGlmCiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHdrUHJl
ZmVyZW5jZXMsIHRydWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJBdWRpb0VuYWJsZWQod2tQ
cmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCh3a1ByZWZlcmVuY2VzLCB0cnVlKTsKQEAgLTU1OSw3ICs1NTEsNiBA
QCB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKICAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX3BlbmRpbmdTdXJmYWNlUmVzaXplKSB7CiAg
ICAgICAgIC8vIENyZWF0ZSBhIEdMIHN1cmZhY2UgaGVyZSBzbyB0aGF0IEV2YXMgaGFzIG5vIGNo
YW5jZSBvZiBwYWludGluZyB0byBhbiBlbXB0eSBHTCBzdXJmYWNlLgogICAgICAgICBpZiAoIWNy
ZWF0ZUdMU3VyZmFjZSgpKQpAQCAtNTY5LDcgKzU2MCw2IEBAIHZvaWQgRXdrVmlldzo6ZGlzcGxh
eVRpbWVyRmlyZWQoVGltZXI8RXdrVmlldz4qKQogCiAgICAgICAgIG1fcGVuZGluZ1N1cmZhY2VS
ZXNpemUgPSBmYWxzZTsKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmICghbV9pc0FjY2VsZXJhdGVk
KSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBjcmVhdGVTdXJm
YWNlRm9ySW1hZ2Uoc2QtPmltYWdlKTsKQEAgLTU4MCwxMSArNTcwLDExIEBAIHZvaWQgRXdrVmll
dzo6ZGlzcGxheVRpbWVyRmlyZWQoVGltZXI8RXdrVmlldz4qKQogICAgICAgICBldmFzX29iamVj
dF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2QtPmltYWdlLCAwLCAwLCBzZC0+dmlldy53LCBzZC0+
dmlldy5oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCisKICAgICBldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9l
dmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKTsKIAog
ICAgIFdLVmlld1BhaW50VG9DdXJyZW50R0xDb250ZXh0KHdrVmlldygpKTsKLSNlbmRpZgorCiAg
ICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFjZSwgd2hpY2ggaXMgaW4g
dGhlIHBhcmVudCdzIGNvb3JkaW5hdGVzLgogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBk
YXRlX2FkZChzZC0+aW1hZ2UsIHNkLT52aWV3LngsIHNkLT52aWV3LnksIHNkLT52aWV3LncsIHNk
LT52aWV3LmgpOwogfQpAQCAtODEyLDcgKzgwMiw2IEBAIHZvaWQgRXdrVmlldzo6ZG9uZVdpdGhU
b3VjaEV2ZW50KFdLVG91Y2hFdmVudFJlZiBldmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB9
CiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgRXdrVmll
dzo6Y3JlYXRlR0xTdXJmYWNlKCkKIHsKICAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkKQEAgLTg0
Niw3ICs4MzUsNiBAQCBib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZSgpCiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAvKioK
QEAgLTEyMTEsMTIgKzExOTksMTAgQEAgdm9pZCBFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2Fs
Y3VsYXRlKEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgICAgICBzbWFydERhdGEtPnZpZXcu
aCA9IGhlaWdodDsKIAogICAgICAgICBXS1ZpZXdTZXRTaXplKHNlbGYtPndrVmlldygpLCBXS1Np
emVNYWtlKHdpZHRoLCBoZWlnaHQpKTsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgICAgIGlmIChXS1BhZ2VVc2VGaXhlZExheW91dChzZWxmLT53a1BhZ2UoKSkpCiAgICAg
ICAgICAgICBzZWxmLT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkuZGlkQ2hhbmdlVmlld3BvcnRT
aXplKHNlbGYtPnNpemUoKSk7CiAKICAgICAgICAgc2VsZi0+c2V0TmVlZHNTdXJmYWNlUmVzaXpl
KCk7Ci0jZW5kaWYKICAgICB9CiB9CiAKQEAgLTEyMjUsOSArMTIxMSw3IEBAIHZvaWQgRXdrVmll
dzo6aGFuZGxlRXZhc09iamVjdFNob3coRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gdG9TbWFydERhdGEoZXZhc09iamVjdCk7CiAg
ICAgQVNTRVJUKHNtYXJ0RGF0YSk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKCF0b0V3a1ZpZXcoc21hcnREYXRhKS0+bV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkK
LSNlbmRpZgogICAgICAgICBzaG93RXZhc09iamVjdHNJZk5lZWRlZChzbWFydERhdGEpOwogfQog
CkBAIC0xMzk1LDcgKzEzNzksNiBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmll
dzo6dGFrZVNuYXBzaG90KCkKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKIAog
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2lzQWNjZWxlcmF0ZWQpIHsKICAgICAgICAg
UmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gc25hcHNob3QgPSBnZXRJbWFnZVN1cmZhY2VGcm9tRnJh
bWVCdWZmZXIoMCwgMCwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7CiAgICAgICAgIC8vIFJlc3Vt
ZSBhbGwgYW5pbWF0aW9ucy4KQEAgLTE0MDMsNyArMTM4Niw3IEBAIFBhc3NSZWZQdHI8Y2Fpcm9f
c3VyZmFjZV90PiBFd2tWaWV3Ojp0YWtlU25hcHNob3QoKQogCiAgICAgICAgIHJldHVybiBzbmFw
c2hvdC5yZWxlYXNlKCk7CiAgICAgfQotI2VuZGlmCisKICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBzbmFwc2hvdCA9IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShzZC0+aW1hZ2UpOwogICAgIC8v
IFJlc3VtZSBhbGwgYW5pbWF0aW9ucy4KICAgICBXS1ZpZXdSZXN1bWVBY3RpdmVET01PYmplY3Rz
QW5kQW5pbWF0aW9ucyh3a1ZpZXcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmgKaW5kZXggYzUzY2NiYjBiZjJmMzYyYWJjZTJhMTVlNzA5OWJiMGYzYmRjNGRj
YS4uYjRiMWE1ZGUyNDE1Zjc0MGVjYmM4ZmQzNDU3ZTdkZTc3MWVjYjhiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMjUsNiArMjUsOCBAQAogI2lu
Y2x1ZGUgIkV2YXNHTFN1cmZhY2UuaCIKICNpbmNsdWRlICJFd2tWaWV3Q2FsbGJhY2tzLmgiCiAj
aW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmgi
CiAjaW5jbHVkZSAiUmVmUHRyRWZsLmgiCiAjaW5jbHVkZSAiV0tFaW5hU2hhcmVkU3RyaW5nLmgi
CiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKQEAgLTUwLDExICs1Miw2IEBACiAjaW5jbHVkZSAi
ZXdrX3RvdWNoLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
LSNpbmNsdWRlICJQYWdlVmlld3BvcnRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudEVmbC5oIgotI2VuZGlmCi0KIHR5cGVkZWYgc3RydWN0IF9jYWly
b19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05Miwx
MCArODksOCBAQCBjbGFzcyBFd2tQb3B1cE1lbnU7CiBjbGFzcyBFd2tTZXR0aW5nczsKIGNsYXNz
IEV3a1dpbmRvd0ZlYXR1cmVzOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
dHlwZWRlZiBzdHJ1Y3QgX0V2YXNfR0xfQ29udGV4dCBFdmFzX0dMX0NvbnRleHQ7CiB0eXBlZGVm
IHN0cnVjdCBfRXZhc19HTF9TdXJmYWNlIEV2YXNfR0xfU3VyZmFjZTsKLSNlbmRpZgogCiB0eXBl
ZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9EYXRhIEV3a19WaWV3X1NtYXJ0X0RhdGE7CiB0eXBl
ZGVmIHN0cnVjdCBFd2tfVmlld19TbWFydF9DbGFzcyBFd2tfVmlld19TbWFydF9DbGFzczsKQEAg
LTEyMCw5ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgRXdrQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9y
d2FyZExpc3QoKSB7IHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdC5nZXQoKTsgfQogICAgIEV3a1dp
bmRvd0ZlYXR1cmVzKiB3aW5kb3dGZWF0dXJlcygpOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlciYgcGFnZVZpZXdw
b3J0Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcjsgfQotI2Vu
ZGlmCiAKICAgICB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlKTsKICAgICBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwpAQCAtMTYxLDEwICsxNTQsOSBAQCBwdWJs
aWM6CiAKICAgICBXS1JlY3Qgd2luZG93R2VvbWV0cnkoKSBjb25zdDsKICAgICB2b2lkIHNldFdp
bmRvd0dlb21ldHJ5KGNvbnN0IFdLUmVjdCYpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKwogICAgIGJvb2wgY3JlYXRlR0xTdXJmYWNlKCk7CiAgICAgdm9pZCBzZXROZWVkc1N1
cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSB0cnVlOyB9Ci0jZW5kaWYK
IAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHZvaWQgcmVxdWVzdENvbG9yUGlj
a2VyKFdLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKQEAgLTI1NywxMiArMjQ5LDExIEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmpl
Y3QqIG1fZXZhc09iamVjdDsKICAgICBSZWZQdHI8RXdrQ29udGV4dD4gbV9jb250ZXh0OwogICAg
IFJlZlB0cjxFd2tQYWdlR3JvdXA+IG1fcGFnZUdyb3VwOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBPd25QdHI8RXZhc19HTD4gbV9ldmFzR0w7CiAgICAgT3duUHRyPFdl
YktpdDo6RXZhc0dMQ29udGV4dD4gbV9ldmFzR0xDb250ZXh0OwogICAgIE93blB0cjxXZWJLaXQ6
OkV2YXNHTFN1cmZhY2U+IG1fZXZhc0dMU3VyZmFjZTsKICAgICBib29sIG1fcGVuZGluZ1N1cmZh
Y2VSZXNpemU7Ci0jZW5kaWYKKwogICAgIFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1f
dXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VM
b2FkQ2xpZW50RWZsPiBtX3BhZ2VMb2FkQ2xpZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6OlBhZ2VQb2xpY3lDbGllbnRFZmw+IG1fcGFnZVBvbGljeUNsaWVudDsKQEAgLTI5NSwxMCAr
Mjg2LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV3a0NvbG9yUGlja2VyPiBtX2NvbG9yUGlja2VyOwogI2VuZGlmCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCiAgICAgV2ViS2l0OjpQYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50RWZsIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudDsKICAgICBX
ZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIgbV9wYWdlVmlld3BvcnRDb250cm9sbGVyOwot
I2VuZGlmCisKICAgICBib29sIG1faXNBY2NlbGVyYXRlZDsKIAogICAgIHN0YXRpYyBFdmFzX1Nt
YXJ0X0NsYXNzIHBhcmVudFNtYXJ0Q2xhc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcAppbmRleCA4ZTBiOWQ4MzMyNThkYzdl
MjkzNzNlZmZiOWEzOWI0MTAzODhlZTQ5Li5lZmQyNjE5NDhiOTNiM2JiYmYyM2UzOTljNTYyMjRj
MjBiYThkMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9T
bmFwc2hvdEltYWdlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L1NuYXBzaG90SW1hZ2VHTC5jcHAKQEAgLTI0LDkgKzI0LDYgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUg
IlNuYXBzaG90SW1hZ2VHTC5oIgogCiAjaWYgVVNFKE9QRU5HTF9FU18yKQpAQCAtNzMsNCArNzAs
MyBAQCBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gZ2V0SW1hZ2VTdXJmYWNlRnJvbUZyYW1l
QnVmZmVyKGludCB4LCBpbnQgeSwgaW50IHdpZAogICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0
eShuZXdTdXJmYWNlLmdldCgpKTsKICAgICByZXR1cm4gbmV3U3VyZmFjZTsKIH0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFn
ZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wu
aAppbmRleCA5YmU5Y2M1NWRmYTY2MDMyYjhmNWYzMmUwMTJkODY3YjdkYmU4YzQzLi5iNzZkOWI4
MTM5MDUzMjBhNmQyMTE1MzRiMTQ2Y2Y1ZDhmMzcwMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaApAQCAtMjYsMTEgKzI2LDgg
QEAKICNpZm5kZWYgU25hcHNob3RJbWFnZUdMX2gKICNkZWZpbmUgU25hcHNob3RJbWFnZUdMX2gK
IAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2luY2x1ZGUgPFJlZlB0ckNh
aXJvLmg+CiAKIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBnZXRJbWFnZVN1cmZhY2VGcm9t
RnJhbWVCdWZmZXIoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogCi0jZW5k
aWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2VuZGlmIC8vIFNuYXBzaG90SW1h
Z2VHTF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvVW5pdFRlc3RVdGlscy9FV0syVW5pdFRlc3RCYXNlLmNwcApp
bmRleCBjNjcxY2I3N2MxNWJlNmE0YWIxZDBkYWFjNWQzMjRmOWE3NzdkMzhmLi5kZTQxNzU1ZWI4
MTY1M2ZkZGUyNDc5ZDJhNGI1ODc0MzU3NDNiYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy9Vbml0VGVzdFV0aWxzL0VXSzJVbml0VGVzdEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL1VuaXRUZXN0
VXRpbHMvRVdLMlVuaXRUZXN0QmFzZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBFV0syVW5p
dFRlc3RCYXNlOjpTZXRVcCgpCiAgICAgdW5zaWduZWQgaW50IHdpZHRoID0gZW52aXJvbm1lbnQt
PmRlZmF1bHRXaWR0aCgpOwogICAgIHVuc2lnbmVkIGludCBoZWlnaHQgPSBlbnZpcm9ubWVudC0+
ZGVmYXVsdEhlaWdodCgpOwogCi0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVf
WCkKICAgICBjb25zdCBjaGFyKiBlbmdpbmUgPSAib3BlbmdsX3gxMSI7CiAgICAgbV9lY29yZUV2
YXMgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDApOwogICAg
IC8vIEdyYWNlZnVsIGZhbGxiYWNrIHRvIHNvZnR3YXJlIHJlbmRlcmluZyBpZiBldmFzX2dsIGVu
Z2luZSBpcyBub3QgYXZhaWxhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGMxNzYwODJhYjBiOTM3ZTE2MDZhMjEz
NDhiMTdkMTYzYTg0YzRiNzkuLjA5ZDBiOTUzMDA1NWViODczN2M3NTU3ZGI1N2U0YjdhNTcxZTVh
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5jcHAKQEAgLTIzNyw3ICsyMzcsNiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRG
aW5kSW5kaWNhdG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYgog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0y
NTIsNyArMjUxLDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzdiZWUxMmU4YzdjNWU4ZTY3
NmFiNjQzNTU2OWFhOTQ2OGU0ZmNkNi4uOGRmMzViYWFkZGVlM2VlYWU1ODY0OGNlMTgzZjdhMjdl
ZWM1Y2Y1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdl
Q2xpZW50SW1wbC5oCkBAIC05NywxMSArOTcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gZHJhZ0ltYWdlKSBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25z
dCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3Zl
cnJpZGU7Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3Qo
RG93bmxvYWRQcm94eSopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBmNzZiMDM5M2E5YWM3ZWRlNThl
Yzg0YTM0NTMyZWY3ZWZhMjNjYmE3Li43ZWNkM2IzNTY3NTRkMTM2N2M3YTNhNzQ2OTU1NTE3OGZl
YTgzZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKQEAgLTg5LDEzICs4OSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRN
ZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNh
dG9yPiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpIG92ZXJyaWRlOwotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKKwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgQ0FMYXllciAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0
IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDR0ltYWdlUmVmPiB0
YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRX
YXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KaW5kZXggODk2YzY1YjI3NWUzODdiNjI4MDAzNmE0MDQ3MTAzZDUwYmNmNjUw
Ni4uZTY0NDJhYWZiMDExODhkOGE5MjI0ZWM5N2ViZjA4Y2YzM2FjZDgyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
QEAgLTI5NSw4ICsyOTUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRGaW5kSW5kaWNhdG9y
KFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KLSAgICAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKIHZv
aWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKIH0KQEAgLTMyMCw3ICszMTks
NiBAQCBDQUxheWVyICpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RM
YXllcigpIGNvbnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KLSNlbmRpZgogCiBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gUGFnZUNsaWVudEltcGw6OnRha2VW
aWV3U25hcHNob3QoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2lu
Z0FyZWFQcm94eS5jcHAKaW5kZXggMDUyNzYzMDQzMTA4OTAwYjA2N2ZkNjJjYzZlNjcxYWZhNzY2
OTYwZC4uMjk2Nzk2YmI5MWU1Y2FkZDc3ZjU4NTY5NTlhMjJkOGE3NTdmMGY0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWREcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC02MCwx
MSArNjAsOSBAQCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OkNvb3JkaW5hdGVkRHJhd2lu
Z0FyZWFQcm94eShXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcgogCiBDb29yZGluYXRlZERyYXdpbmdB
cmVhUHJveHk6On5Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkoKQogewotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAvLyBNYWtlIHN1cmUgdG8gZXhpdCBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBtb2RlLgogICAgIGlmIChpc0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoKSkKICAgICAgICAgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OnBhaW50KEJhY2tpbmdTdG9y
ZTo6UGxhdGZvcm1HcmFwaGljc0NvbnRleHQgY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCwg
UmVnaW9uJiB1bnBhaW50ZWRSZWdpb24pCkBAIC0xMzAsNyArMTI4LDYgQEAgdm9pZCBDb29yZGlu
YXRlZERyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkKICAgICBi
YWNraW5nU3RvcmVTdGF0ZURpZENoYW5nZShSZXNwb25kSW1tZWRpYXRlbHkpOwogfQogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVh
UHJveHk6OnZpc2liaWxpdHlEaWRDaGFuZ2UoKQogewogICAgIC8vIElmIHdlIGRvbid0IGhhdmUg
YSBiYWNraW5nIHN0b3JlLCBnbyBhaGVhZCBhbmQgbWFyayB0aGUgYmFja2luZyBzdG9yZSBhcyBi
ZWluZyBjaGFuZ2VkIHNvCkBAIC0xMzgsNyArMTM1LDYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdp
bmdBcmVhUHJveHk6OnZpc2liaWxpdHlEaWRDaGFuZ2UoKQogICAgIGlmICghbV9iYWNraW5nU3Rv
cmUgJiYgbV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgYmFja2luZ1N0b3Jl
U3RhdGVEaWRDaGFuZ2UoRG9Ob3RSZXNwb25kSW1tZWRpYXRlbHkpOwogfQotI2VuZGlmCiAKIHZv
aWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjpzZXRCYWNraW5nU3RvcmVJc0Rpc2NhcmRh
YmxlKGJvb2wgaXNCYWNraW5nU3RvcmVEaXNjYXJkYWJsZSkKIHsKQEAgLTE4MCw3ICsxNzYsNiBA
QCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3Jl
U3RhdGUodWludDY0X3QgYmFja2luZ1N0bwogICAgIC8vIFN0b3AgdGhlIHJlc3BvbnNpdmVuZXNz
IHRpbWVyIHRoYXQgd2FzIHN0YXJ0ZWQgaW4gc2VuZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlLgog
ICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkucmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9w
KCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGxheWVyVHJl
ZUNvbnRleHQgIT0gbV9sYXllclRyZWVDb250ZXh0KSB7CiAgICAgICAgIGlmICghbV9sYXllclRy
ZWVDb250ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCk7CkBAIC0xOTIsMjEgKzE4NywxNiBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2lu
Z0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0
bwogICAgICAgICAgICAgQVNTRVJUKGxheWVyVHJlZUNvbnRleHQgPT0gbV9sYXllclRyZWVDb250
ZXh0KTsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogCiAgICAgaWYgKG1fbmV4dEJhY2tpbmdT
dG9yZVN0YXRlSUQgIT0gbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgc2Vu
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW1lZGlhdGVseSk7CiAgICAgZWxzZQog
ICAgICAgICBtX2hhc1JlY2VpdmVkRmlyc3RVcGRhdGUgPSB0cnVlOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChpc0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoKSkgewogICAgICAgICBBU1NFUlQoIW1fYmFja2luZ1N0b3JlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwotI2Vu
ZGlmCiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgYmFja2luZyBzdG9yZSB0aGUgcmlnaHQgc2l6ZSwg
cmV1c2UgaXQuCiAgICAgaWYgKG1fYmFja2luZ1N0b3JlICYmIChtX2JhY2tpbmdTdG9yZS0+c2l6
ZSgpICE9IHVwZGF0ZUluZm8udmlld1NpemUgfHwgbV9iYWNraW5nU3RvcmUtPmRldmljZVNjYWxl
RmFjdG9yKCkgIT0gdXBkYXRlSW5mby5kZXZpY2VTY2FsZUZhY3RvcikpCkBAIC0yMjAsMTEgKzIx
MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpCiAgICAgaWYgKGJhY2tpbmdTdG9yZVN0YXRl
SUQgPCBtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlEKQogICAgICAgICByZXR1cm47CiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGxh
eWVyVHJlZUNvbnRleHQpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YVByb3h5OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKQEAgLTIzMyw5ICsyMTks
NyBAQCB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6ZXhpdEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbgogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlE
IDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpOwotI2VuZGlmCiAKICAgICBpbmNvcnBvcmF0ZVVwZGF0ZSh1cGRhdGVJbmZvKTsK
IH0KQEAgLTI0NiwxMSArMjMwLDcgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6
OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2sKICAgICBpZiAo
YmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRh
dGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5OjppbmNvcnBvcmF0ZVVwZGF0ZShjb25zdCBVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQpAQCAtMzExLDEzICsyOTEsMTEgQEAgdm9pZCBDb29yZGluYXRlZERy
YXdpbmdBcmVhUHJveHk6OnNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRp
YXRlbHkKICAgICAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3MoKS5yZXNwb25zaXZlbmVzc1Rp
bWVyKCktPnN0YXJ0KCk7CiAgICAgfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlICYmICFt
X2xheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSBE
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlLiBOb3JtYWxseSB3ZSBkbyB0aGlzIGlu
IENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eTo6cGFpbnQsIGJ1dCB0aGF0CiAgICAgICAgIC8v
IGZ1bmN0aW9uIGlzIG5ldmVyIGNhbGxlZCB3aGVuIGluIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IG1vZGUuCiAgICAgICAgIHdhaXRGb3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKCk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVBy
b3h5Ojp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpCkBAIC0z
MjksNyArMzA3LDYgQEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JB
bmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCkKICAgICBpZiAobV93ZWJQYWdl
UHJveHktPnByb2Nlc3MoKS5pc0xhdW5jaGluZygpKQogICAgICAgICByZXR1cm47CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gRklYTUU6IHdhaXRGb3JBbmREaXNw
YXRjaEltbWVkaWF0ZWx5IHdpbGwgYWx3YXlzIHJldHVybiB0aGUgb2xkZXN0IERpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UgdGhhdAogICAgIC8vIGhhc24ndCB5ZXQgYmVlbiBwcm9j
ZXNzZWQuIEJ1dCBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gc2tpcCBhaGVhZCB0byBzb21lIG90aGVy
IERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlCiAgICAgLy8gbWVzc2FnZSwgaWYgbXVsdGlwbGUg
RGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZXMgYXJlIHdhaXRpbmcgdG8gYmUgcHJv
Y2Vzc2VkLiBGb3IgaW5zdGFuY2UsIHdlIGNvdWxkCkBAIC0zMzcsMTAgKzMxNCw4IEBAIHZvaWQg
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVC
YWNraW5nU3RvcmVTdGF0ZSgpCiAKICAgICAvLyBUaGUgdGltZW91dCwgaW4gc2Vjb25kcywgd2Ug
dXNlIHdoZW4gd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdl
IHdoZW4gd2UncmUgYXNrZWQgdG8gcGFpbnQuCiAgICAgbV93ZWJQYWdlUHJveHktPnByb2Nlc3Mo
KS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpE
cmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZT4obV93ZWJQYWdlUHJv
eHktPnBhZ2VJRCgpLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCkpOwotI2VuZGlmCiB9
CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIENvb3JkaW5hdGVkRHJh
d2luZ0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXll
clRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogewogICAgIEFTU0VSVCghaXNJbkFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkpOwpAQCAtMzczLDcgKzM0OCw2IEBAIHZvaWQgQ29vcmRp
bmF0ZWREcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyCiAgICAgbV9sYXllclRyZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4dDsK
ICAgICBtX3dlYlBhZ2VQcm94eS0+dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5
ZXJUcmVlQ29udGV4dCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVh
UHJveHk6OmRpc2NhcmRCYWNraW5nU3RvcmVTb29uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOWFhNDNjNTQ5YWFkMjljZWIxMjY3
Zjk1OTc2YWUyYmRiYjVkNTMyNS4uODhhYThlNDgxOWUyNmE5MTI3MzcyYjZmN2I2OGYxMmY2NmUz
OWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5
LmgKQEAgLTUwLDEyICs1MCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50KEJhY2tpbmdT
dG9yZTo6UGxhdGZvcm1HcmFwaGljc0NvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBX
ZWJDb3JlOjpSZWdpb24mIHVucGFpbnRlZFJlZ2lvbik7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgYm9vbCBpc0luQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKSBj
b25zdCB7IHJldHVybiAhbV9sYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKTsgfQogICAgIHZvaWQg
dmlzaWJpbGl0eURpZENoYW5nZSgpOwogCiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9yeSk7Ci0jZW5kaWYKIAogICAgIGJvb2wgaGFzUmVj
ZWl2ZWRGaXJzdFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVjZWl2ZWRGaXJzdFVwZGF0
ZTsgfQogCkBAIC04OCwxMyArODYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2VuZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlKFJlc3BvbmRJbW1lZGlhdGVseU9yTm90KTsKICAgICB2b2lkIHdhaXRG
b3JBbmREaXNwYXRjaERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKCk7CiAKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKICAgICB2b2lkIGV4aXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwotI2Vsc2UKLSAgICBib29sIGlzSW5BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYK
IAogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdTdG9yZVNvb24oKTsKICAgICB2b2lkIGRpc2NhcmRC
YWNraW5nU3RvcmUoKTsKQEAgLTExMCwxMCArMTA0LDggQEAgcHJpdmF0ZToKICAgICAvLyB3aGVu
ZXZlciBvdXIgc3RhdGUgY2hhbmdlcyBpbiBhIHdheSB0aGF0IHdpbGwgcmVxdWlyZSBhIG5ldyBi
YWNraW5nIHN0b3JlIHRvIGJlIGFsbG9jYXRlZC4KICAgICB1aW50NjRfdCBtX25leHRCYWNraW5n
U3RvcmVTdGF0ZUlEOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8v
IFRoZSBjdXJyZW50IGxheWVyIHRyZWUgY29udGV4dC4KICAgICBMYXllclRyZWVDb250ZXh0IG1f
bGF5ZXJUcmVlQ29udGV4dDsKLSNlbmRpZgogCiAgICAgLy8gV2hldGhlciB3ZSd2ZSBzZW50IGEg
VXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSBhbmQgYXJlIG5vdyB3YWl0aW5nIGZvciBh
IERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UuCiAgICAgLy8gVXNlZCB0byB0aHJv
dHRsZSBVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBtZXNzYWdlcyBzbyB3ZSBkb24ndCBzZW5kIHRo
ZW0gZmFzdGVyIHRoYW4gdGhlIFdlYiBwcm9jZXNzIGNhbiBoYW5kbGUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCmluZGV4IGZmZmY1NWI4MjRjOTY0ZmE2MWU0
ODMyYWU1NmJjMDRkNDc4ZWFlNmMuLjdiNGI5NDUyMjJkMzE3M2FiODNiNDgzZDJhMzg2ZDUyZTc4
N2Y3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBA
IC0yMCw4ICsyMCw2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIu
aCIKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5oIgpAQCAtMzU3LDUg
KzM1NSwzIEBAIGJvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxl
VG9GaXQoYm9vbCB1c2VySW5pdGlhdGVkVXBkYXRlKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5k
ZXggYjg5NzNhYmJkODllMmVhNGY0ZmJmM2VmOWUzNGU2MWY3ZThkYzRlZC4uMzE2NGVmZGE3Yjdh
NGExYjA3ODVkOTViZDE0NGViMWNkN2I5YzRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3
cG9ydENvbnRyb2xsZXIuaApAQCAtMjIsOCArMjIsNiBAQAogI2lmbmRlZiBQYWdlVmlld3BvcnRD
b250cm9sbGVyX2gKICNkZWZpbmUgUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRTaXplLmg+CkBAIC0xMTIsNSArMTEwLDQgQEAgYm9vbCBmdXp6eUNvbXBhcmUoZmxvYXQsIGZs
b2F0LCBmbG9hdCBlcHNpbG9uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAjZW5kaWYgLy8gUGFnZVZpZXdwb3J0Q29u
dHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL1dlYlZpZXcuY3BwCmluZGV4IDQ1ODBiODZkYmQ1MjA3MGE2ZjViZWFjMDlk
MzM0YjdhNzg3Y2RmODYuLmEzZjM1NWRmNmVhMzQyNzFhYmUxMWRhNTE4YjY5MzgxYzlhMTc4MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYlZpZXcuY3BwCkBAIC0xMTksMTAgKzExOSw4IEBAIHZvaWQgV2ViVmlldzo6c2V0
VmlzaWJsZShib29sIHZpc2libGUpCiAgICAgbV92aXNpYmxlID0gdmlzaWJsZTsKICAgICBtX3Bh
Z2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQ
cm94eSogZHJhd2luZ0FyZWEgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZERyYXdpbmdBcmVhUHJv
eHkqPihwYWdlKCktPmRyYXdpbmdBcmVhKCkpKQogICAgICAgICBkcmF3aW5nQXJlYS0+dmlzaWJp
bGl0eURpZENoYW5nZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViVmlldzo6c2V0VXNlclZpZXdw
b3J0VHJhbnNsYXRpb24oZG91YmxlIHR4LCBkb3VibGUgdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MWNmMDU5OTA3MjJmZWY5ZGQ5NWNhZmVh
Y2IxMGVkNjA4MjliNjI4Li5lNDAyZGMxMWQ3MDkwODI2ZDIxMTFhMmE3MTAxYTllZDc5ZDdhMjRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTEw
MSwxMSArMTAxLDkgQEAgcHJpdmF0ZToKICAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1
cmUgdmlydHVhbC4KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKHVpbnQ2NF90IC8qIGJhY2tpbmdT
dG9yZVN0YXRlSUQgKi8sIGNvbnN0IFVwZGF0ZUluZm8mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJ
RCAqLywgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSB7IH0KLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAq
LywgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgLyogYmFja2luZ1N0b3JlU3RhdGVJRCAq
LywgY29uc3QgVXBkYXRlSW5mbyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCAvKiBiYWNraW5nU3RvcmVTdGF0ZUlEICovLCBj
b25zdCBMYXllclRyZWVDb250ZXh0JikgeyB9Ci0jZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUdlb21ldHJ5KCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5l
d0ludHJpbnNpY0NvbnRlbnRTaXplKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYTI3MmNiNTlkMjhjODgy
YWMxZmVjZGI4M2M0ODNjMzY4NjVkYWQzNy4uYTEwNjY0ZGM2NmJiNTgxMmFlMzc5MzgxYWIzYTlj
MmM0NGViZjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDExICsyMyw5IEBACiBtZXNzYWdlcyAtPiBE
cmF3aW5nQXJlYVByb3h5IHsKICAgICBVcGRhdGUodWludDY0X3Qgc3RhdGVJRCwgV2ViS2l0OjpV
cGRhdGVJbmZvIHVwZGF0ZUluZm8pCiAgICAgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWlu
dDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgV2ViS2l0OjpVcGRhdGVJbmZvIHVwZGF0ZUluZm8s
IFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dCBjb250ZXh0KQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dCBjb250ZXh0KQog
ICAgIEV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBXZWJLaXQ6OlVwZGF0ZUluZm8gdXBkYXRlSW5mbykKICAgICBVcGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBXZWJLaXQ6
OkxheWVyVHJlZUNvbnRleHQgY29udGV4dCkKLSNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIC8vIFVzZWQgYnkgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4
IGU4YzQ1YTcwOWViNTcwNjM3N2U0ZTdiZWVkYWUxMTJjZWJlODI5YjguLjQ3YmVhYWU4YjEyNDM1
YzNmN2VjZDA3NGJkZGFlZjllNTIzMjE4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtNTMsMTEgKzUzLDkgQEAgRHJhd2lu
Z0FyZWFQcm94eUltcGw6OkRyYXdpbmdBcmVhUHJveHlJbXBsKFdlYlBhZ2VQcm94eSogd2ViUGFn
ZVByb3h5KQogCiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6fkRyYXdpbmdBcmVhUHJveHlJbXBsKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gTWFrZSBzdXJlIHRv
IGV4aXQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZS4KICAgICBpZiAoaXNJbkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnBhaW50KEJh
Y2tpbmdTdG9yZTo6UGxhdGZvcm1HcmFwaGljc0NvbnRleHQgY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCwgUmVnaW9uJiB1bnBhaW50ZWRSZWdpb24pCkBAIC0xNTMsNyArMTUxLDYgQEAgdm9p
ZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0
X3QgYmFja2luZ1N0b3JlU3RhdGUKICAgICAvLyBTdG9wIHRoZSByZXNwb25zaXZlbmVzcyB0aW1l
ciB0aGF0IHdhcyBzdGFydGVkIGluIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZS4KICAgICBt
X3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RvcCgpOwog
Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChsYXllclRyZWVDb250
ZXh0ICE9IG1fbGF5ZXJUcmVlQ29udGV4dCkgewogICAgICAgICBpZiAoIW1fbGF5ZXJUcmVlQ29u
dGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpOwpAQCAtMTY1LDIxICsxNjIsMTYgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6
ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGUKICAg
ICAgICAgICAgIEFTU0VSVChsYXllclRyZWVDb250ZXh0ID09IG1fbGF5ZXJUcmVlQ29udGV4dCk7
CiAgICAgICAgIH0gICAgICAgICAgICAKICAgICB9Ci0jZW5kaWYKIAogICAgIGlmIChtX25leHRC
YWNraW5nU3RvcmVTdGF0ZUlEICE9IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAg
ICAgIHNlbmRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZShSZXNwb25kSW1tZWRpYXRlbHkpOwogICAg
IGVsc2UKICAgICAgICAgbV9oYXNSZWNlaXZlZEZpcnN0VXBkYXRlID0gdHJ1ZTsKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoaXNJbkFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2JhY2tpbmdTdG9yZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShsYXllclRyZWVDb250ZXh0
KTsKLSNlbmRpZgogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGJhY2tpbmcgc3RvcmUgdGhlIHJpZ2h0
IHNpemUsIHJldXNlIGl0LgogICAgIGlmIChtX2JhY2tpbmdTdG9yZSAmJiAobV9iYWNraW5nU3Rv
cmUtPnNpemUoKSAhPSB1cGRhdGVJbmZvLnZpZXdTaXplIHx8IG1fYmFja2luZ1N0b3JlLT5kZXZp
Y2VTY2FsZUZhY3RvcigpICE9IHVwZGF0ZUluZm8uZGV2aWNlU2NhbGVGYWN0b3IpKQpAQCAtMTkz
LDExICsxODUsNyBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZQogICAgIGlmIChiYWNraW5nU3Rv
cmVTdGF0ZUlEIDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgcmV0dXJu
OwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShsYXllclRyZWVDb250ZXh0KTsKLSNlbmRpZgogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJv
eHlJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKQEAgLTIwNiw5ICsxOTQs
NyBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlUwogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0ZUlE
IDwgbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpOwotI2VuZGlmCiAKICAgICBpbmNvcnBvcmF0ZVVwZGF0ZSh1cGRhdGVJbmZvKTsK
IH0KQEAgLTIxOSwxMSArMjA1LDcgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6dXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3IKICAgICBpZiAo
YmFja2luZ1N0b3JlU3RhdGVJRCA8IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB1cGRh
dGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGxheWVyVHJlZUNvbnRleHQpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHJh
d2luZ0FyZWFQcm94eUltcGw6OmluY29ycG9yYXRlVXBkYXRlKGNvbnN0IFVwZGF0ZUluZm8mIHVw
ZGF0ZUluZm8pCkBAIC0yODQsMTMgKzI2NiwxMSBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBs
OjpzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoUmVzcG9uZEltbWVkaWF0ZWx5T3JOb3Qgcgog
ICAgICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+
c3RhcnQoKTsKICAgICB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgJiYgIW1fbGF5ZXJU
cmVlQ29udGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIERpZFVwZGF0
ZUJhY2tpbmdTdG9yZVN0YXRlIG1lc3NhZ2UuIE5vcm1hbGx5IHdlIGRvIHRoaXMgaW4gRHJhd2lu
Z0FyZWFQcm94eUltcGw6OnBhaW50LCBidXQgdGhhdAogICAgICAgICAvLyBmdW5jdGlvbiBpcyBu
ZXZlciBjYWxsZWQgd2hlbiBpbiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2RlLgogICAgICAg
ICB3YWl0Rm9yQW5kRGlzcGF0Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpOwogICAgIH0K
LSNlbmRpZgogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjp3YWl0Rm9yQW5kRGlzcGF0
Y2hEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgpCkBAIC0zMDIsNyArMjgyLDYgQEAgdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6d2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0
b3JlU3RhdGUoKQogICAgIGlmIChtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmlzTGF1bmNoaW5n
KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAvLyBGSVhNRTogd2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHkgd2lsbCBhbHdheXMg
cmV0dXJuIHRoZSBvbGRlc3QgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUgbWVzc2FnZSB0aGF0
CiAgICAgLy8gaGFzbid0IHlldCBiZWVuIHByb2Nlc3NlZC4gQnV0IGl0IG1pZ2h0IGJlIGJldHRl
ciB0byBza2lwIGFoZWFkIHRvIHNvbWUgb3RoZXIgRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUK
ICAgICAvLyBtZXNzYWdlLCBpZiBtdWx0aXBsZSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSBt
ZXNzYWdlcyBhcmUgd2FpdGluZyB0byBiZSBwcm9jZXNzZWQuIEZvciBpbnN0YW5jZSwgd2UgY291
bGQKQEAgLTMxMCwxMCArMjg5LDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6d2FpdEZv
ckFuZERpc3BhdGNoRGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoKQogCiAgICAgLy8gVGhlIHRp
bWVvdXQgd2UgdXNlIHdoZW4gd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSBtZXNzYWdlIHdoZW4gd2UncmUgYXNrZWQgdG8gcGFpbnQgaXMgNTAwIG1pbGxpc2Vjb25kcy4K
ICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+d2FpdEZvckFuZERp
c3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkRpZFVwZGF0ZUJh
Y2tpbmdTdG9yZVN0YXRlPihtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHMoNTAwKSk7Ci0jZW5kaWYKIH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsK
ICAgICBBU1NFUlQoIWlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpKTsKQEAgLTMzOCw3
ICszMTUsNiBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZQogICAgIG1fbGF5ZXJUcmVlQ29udGV4
dCA9IGxheWVyVHJlZUNvbnRleHQ7CiAgICAgbV93ZWJQYWdlUHJveHktPnVwZGF0ZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwogfQotI2VuZGlmCiAKIHZvaWQg
RHJhd2luZ0FyZWFQcm94eUltcGw6OmRpc2NhcmRCYWNraW5nU3RvcmVTb29uKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggMjI0
ZWE5MTA5NWI4OTlkM2ZiYzI0ZGZhNjJhMzQwNDRkMGVjZDAyNy4uZTRkZTRmMzIyZWFmZDU1ZDMz
NWI1ODE0ZmVhODk0YzFjMjgxNzcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKQEAgLTQ1LDkgKzQ1LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBwYWludChCYWNraW5nU3RvcmU6OlBsYXRmb3JtR3JhcGhpY3NDb250ZXh0LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6UmVnaW9uJiB1bnBhaW50ZWRSZWdpb24pOwogCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gIW1fbGF5ZXJUcmVlQ29udGV4dC5pc0Vt
cHR5KCk7IH0KLSNlbmRpZgogCiAgICAgYm9vbCBoYXNSZWNlaXZlZEZpcnN0VXBkYXRlKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNSZWNlaXZlZEZpcnN0VXBkYXRlOyB9CiAKQEAgLTczLDEzICs3MSw5
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUoUmVzcG9u
ZEltbWVkaWF0ZWx5T3JOb3QpOwogICAgIHZvaWQgd2FpdEZvckFuZERpc3BhdGNoRGlkVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUoKTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpOwogICAgIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAg
ICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0Jik7Ci0jZWxzZQotICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgogCiAgICAgdm9pZCBkaXNjYXJkQmFj
a2luZ1N0b3JlU29vbigpOwogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdTdG9yZSgpOwpAQCAtOTMs
MTAgKzg3LDggQEAgcHJpdmF0ZToKICAgICAvLyB3aGVuZXZlciBvdXIgc3RhdGUgY2hhbmdlcyBp
biBhIHdheSB0aGF0IHdpbGwgcmVxdWlyZSBhIG5ldyBiYWNraW5nIHN0b3JlIHRvIGJlIGFsbG9j
YXRlZC4KICAgICB1aW50NjRfdCBtX25leHRCYWNraW5nU3RvcmVTdGF0ZUlEOwogCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8vIFRoZSBjdXJyZW50IGxheWVyIHRyZWUg
Y29udGV4dC4KICAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKLSNlbmRp
ZgogCiAgICAgLy8gV2hldGhlciB3ZSd2ZSBzZW50IGEgVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUg
bWVzc2FnZSBhbmQgYXJlIG5vdyB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlIG1lc3NhZ2UuCiAgICAgLy8gVXNlZCB0byB0aHJvdHRsZSBVcGRhdGVCYWNraW5nU3RvcmVT
dGF0ZSBtZXNzYWdlcyBzbyB3ZSBkb24ndCBzZW5kIHRoZW0gZmFzdGVyIHRoYW4gdGhlIFdlYiBw
cm9jZXNzIGNhbiBoYW5kbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRl
eCAxZWU5NWMxYWEyNzg1MDIzMzgzMzJmMmY2ODk2MjljYmVmZWFhODBmLi5mOTg3Y2ZmMDNlY2Zi
NmJiMzI2YzAzNDI1OTM2N2ViOWE1MTJlZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKQEAgLTIwNywxMSArMjA3LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0
LCBib29sIGFuaW1hdGUpID0gMDsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSA9IDA7Ci0jZW5kaWYKIAog
I2lmICFQTEFURk9STShJT1MpICYmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgcGx1
Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFj
L1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBiNjVhNmMzM2E1NTM5MDZmZWFjNmM1ODE2
ODM2NjAyZWZhZmRjMzU4Li5iODcwYmY0ZjExMzUxNjQxM2VjZDRiYTcyMWI3ZWFiODAxZjUyYjY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYQogICAgIC8vIEZvciBub3cgb25seSBGbGFzaCBpcyBrbm93biB0byBi
ZWhhdmUgd2l0aCBhc3luY2hyb25vdXMgcGx1Zy1pbiBpbml0aWFsaXphdGlvbi4KICAgICBwYXJh
bWV0ZXJzLnN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb24gPSBtX3BsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8uYnVuZGxlSWRlbnRpZmllciA9PSAiY29tLm1h
Y3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbiI7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIEhBVkUoSE9TVEVEX0NPUkVfQU5JTUFUSU9OKQorI2lmIEhBVkUoSE9TVEVE
X0NPUkVfQU5JTUFUSU9OKQogICAgIG1hY2hfcG9ydF90IHJlbmRlclNlcnZlclBvcnQgPSBbW0NB
UmVtb3RlTGF5ZXJTZXJ2ZXIgc2hhcmVkU2VydmVyXSBzZXJ2ZXJQb3J0XTsKICAgICBpZiAocmVu
ZGVyU2VydmVyUG9ydCAhPSBNQUNIX1BPUlRfTlVMTCkKICAgICAgICAgcGFyYW1ldGVycy5hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nUG9ydCA9IElQQzo6TWFjaFBvcnQocmVuZGVyU2VydmVyUG9ydCwg
TUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCAxZDlkM2Y5MzRkYWNlMTA0YzZkN2NkYWI3YzU0YWFmYTcxYmU1MTI4
Li5hMDRjZmNjMjQ3NjM3MGZhNTg5MTlhNjNmODIyOTNkYTJkMzYyNmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzkyMSw3ICszOTIxLDYgQEAgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygp
CiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogewogICAgIG1fcGFn
ZUNsaWVudC5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQp
OwpAQCAtMzkzNiw3ICszOTM1LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWUKIHsKICAgICBt
X3BhZ2VDbGllbnQudXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29u
dGV4dCk7CiB9Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDbGVhcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTZiZjhmNDlkOTliNzZmNGFlZDIxNTc1ZTAzYmNiMWE2
ODRmMDk1ZS4uMTI3MGM0ZjEzODRlZWYzZWE4NDE5NmQ4MWM5MzVjODFiMjA1ZmZhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjk2LDExICs2OTYsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgpOwogICAgIHZvaWQg
cHJvY2Vzc0RpZENyYXNoKCk7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwotI2VuZGlmCiAgICAgCiAgICAgdm9pZCBk
aWREcmF3KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZUxvYWRDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9h
ZENsaWVudEVmbC5jcHAKaW5kZXggYjRhNDM5NGNlNzgzMjE5NjNlODg3NmVmM2MxNDcyZDQ1YjIw
ZDc4OS4uM2RiZDhmYzhjYzhiOGZiOWI3YzUxNjg4YjY5OTYxZjk2ZThmZjlkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVudEVmbC5jcHAKQEAg
LTExOCw5ICsxMTgsNyBAQCB2b2lkIFBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRDb21taXRMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cAogCiAgICAgRXdrVmlldyog
dmlldyA9IHRvUGFnZUxvYWRDbGllbnRFZmwoY2xpZW50SW5mbyktPnZpZXcoKTsKICAgICBpZiAo
V0tQYWdlVXNlRml4ZWRMYXlvdXQodmlldy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgICAgICB2aWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCku
ZGlkQ29tbWl0TG9hZCgpOwotI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCmluZGV4IDYwZDllM2Q2MDA5MGEzM2I3ZTAxM2NkZGFk
YzI2NTM2YzEzZjdiYTkuLjAyMjg3MWExMjk4ODdiMzRjZTBmNGI4Njg4YWY3N2M2ZjU1Njc4ZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcApAQCAtMjUsOSArMjUsNiBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQogI2luY2x1ZGUgIlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCIKIAogI2lu
Y2x1ZGUgIkV3a1ZpZXcuaCIKQEAgLTc4LDQgKzc1LDMgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50RWZsOjpzZXRDb250cm9sbGVyKFBhZ2VWaWV3cG9ydENvbnRyb2xsZXIqIGNv
bnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9W
aWV3Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVmlld0NsaWVu
dEVmbC5jcHAKaW5kZXggZjQ3NTg1YjExMmJjNjJhZjkyMmRkN2FmYmVmNTZlN2VhZGRkMWNiMS4u
Njc5MDM0ZDRlMjU4MTZlMDE4YjYxYmI0MTM1MDU3ODhhODAzMGFjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9WaWV3Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1ZpZXdDbGllbnRFZmwuY3BwCkBAIC01MiwxMSArNTIsNyBA
QCB2b2lkIFZpZXdDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShXS1ZpZXdSZWYsIFdL
U2l6ZSBzaXplLCBjb25zdCB2b2lkKiBjbAogewogICAgIEV3a1ZpZXcqIGV3a1ZpZXcgPSB0b0V3
a1ZpZXcoY2xpZW50SW5mbyk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0KGV3a1ZpZXct
PndrUGFnZSgpKSkKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgIGV3
a1ZpZXctPnBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoKS5kaWRDaGFuZ2VDb250ZW50c1NpemUodG9J
bnRTaXplKHNpemUpKTsKLSNlbHNlCi0gICAgICAgIHsgfQotI2VuZGlmCiAgICAgZWxzZQogICAg
ICAgICBld2tWaWV3LT5zY2hlZHVsZVVwZGF0ZURpc3BsYXkoKTsKIApAQCAtMTAyLDExICs5OCw3
IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZGlkQ2hhbmdlQ29udGVudHNQb3NpdGlvbihXS1ZpZXdS
ZWYsIFdLUG9pbnQgcG9zaXRpb24sIGNvbnN0CiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9IHRv
RXdrVmlldyhjbGllbnRJbmZvKTsKICAgICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdrVmll
dy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBld2tWaWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkucGFnZURpZFJlcXVlc3RTY3JvbGwo
dG9JbnRQb2ludChwb3NpdGlvbikpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKHBvc2l0
aW9uKTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMTcsMTIgKzEwOSw3
IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZGlkUmVuZGVyRnJhbWUoV0tWaWV3UmVmLCBXS1NpemUg
Y29udGVudHNTaXplLCBXS1JlY3QgY292ZXJlCiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9IHRv
RXdrVmlldyhjbGllbnRJbmZvKTsKICAgICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdrVmll
dy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBld2tWaWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkuZGlkUmVuZGVyRnJhbWUodG9JbnRT
aXplKGNvbnRlbnRzU2l6ZSksIHRvSW50UmVjdChjb3ZlcmVkUmVjdCkpOwotI2Vsc2UKLSAgICAg
ICAgVU5VU0VEX1BBUkFNKGNvbnRlbnRzU2l6ZSk7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShjb3Zl
cmVkUmVjdCk7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTMzLDkgKzEy
MCw3IEBAIHZvaWQgVmlld0NsaWVudEVmbDo6ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihXS1Zp
ZXdSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXdrVmlldyogZXdrVmlldyA9
IHRvRXdrVmlldyhjbGllbnRJbmZvKTsKICAgICBpZiAoV0tQYWdlVXNlRml4ZWRMYXlvdXQoZXdr
Vmlldy0+d2tQYWdlKCkpKSB7Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
ICAgICBld2tWaWV3LT5wYWdlVmlld3BvcnRDb250cm9sbGVyKCkucGFnZVRyYW5zaXRpb25WaWV3
cG9ydFJlYWR5KCk7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQ2LDEy
ICsxMzEsOCBAQCB2b2lkIFZpZXdDbGllbnRFZmw6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRl
cyhXS1ZpZXdSZWYsIFdLVmlld3BvcnRBdHRyaWJ1dGVzUgogewogICAgIEV3a1ZpZXcqIGV3a1Zp
ZXcgPSB0b0V3a1ZpZXcoY2xpZW50SW5mbyk7CiAgICAgaWYgKFdLUGFnZVVzZUZpeGVkTGF5b3V0
KGV3a1ZpZXctPndrUGFnZSgpKSkgewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICAgICAgLy8gRklYTUU6IHBhZ2VWaWV3cG9ydENvbnRyb2xsZXIgc2hvdWxkIGFjY2VwdCBX
S1ZpZXdwb3J0QXR0cmlidXRlc1JlZi4KICAgICAgICAgZXdrVmlldy0+cGFnZVZpZXdwb3J0Q29u
dHJvbGxlcigpLmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyh0b0ltcGwoYXR0cmlidXRlcykt
Pm9yaWdpbmFsQXR0cmlidXRlcygpKTsKLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShhdHRy
aWJ1dGVzKTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGV3a1ZpZXctPnNj
aGVkdWxlVXBkYXRlRGlzcGxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb250ZXh0TWFjLm1tCmluZGV4IDc5YTk5NDFmNjdkZmVmNjgyOWE2NTc3YTMyZDdmMzljMjdk
MGNkMDQuLjZlZjQ3NGQ4OTFkOTgyMGUwMjcwZDQxNWE2N2NlOTU4Njc5OTU2ZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KQEAgLTE1NCw3ICsx
NTQsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogI2VuZGlmCiAgICAgcGFyYW1ldGVycy5z
aG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0ID0gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJLaXRLZXJuaW5nQW5kTGlnYXR1
cmVzRW5hYmxlZEJ5RGVmYXVsdERlZmF1bHRzS2V5XTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pCisjaWYgSEFWRShIT1NU
RURfQ09SRV9BTklNQVRJT04pCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBtYWNoX3BvcnRfdCBy
ZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0gc2Vy
dmVyUG9ydF07CiAgICAgaWYgKHJlbmRlclNlcnZlclBvcnQgIT0gTUFDSF9QT1JUX05VTEwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBkZTU3NWIyODlkZjA5MGVhZTYyOTUwN2NlYTVi
NDgwYmM5M2JmNGFhLi41MDQwZGY0NGY0M2U1YTAzOTU1NzE3YWRhZGE3YjZhNzJiOWI4OTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVl
bi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTUwLDEzICs1MCwxMiBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVsZW1lbnQqIGVs
ZW1lbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJl
cigpLT5oYXNMYXllcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCkt
PmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIEZsb2F0UXVhZCBjb250ZW50c0JveCA9IHN0YXRp
Y19jYXN0PEZsb2F0UmVjdD4oZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+
YmFja2luZygpLT5jb250ZW50c0JveCgpKTsKICAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50
LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNvbnRlbnRzQm94KTsKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCktPnZpZXcoKS5mcmFtZVZpZXcoKS5jb250ZW50c1Rv
U2NyZWVuKGNvbnRlbnRzQm94LmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOwogICAgIH0KLSNlbmRp
ZgorCiAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmVlblJlY3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5jcHAKaW5kZXggYTllMDgxOGQyMzFhYTY1MzM2YzNiODEwMzk1Zjg5Y2Q3NDg1Nzgy
MS4uODY4ZDhjNjhlYmZlMzFjODQ1OGZkOGY2NGE1MGRjYTU5Njk3Yjk0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW4uY3BwCkBAIC0yODcsMTEgKzI4Nyw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46
OnJlbW92ZVBsdWdpblN0cmVhbShOZXRzY2FwZVBsdWdpblN0cmVhbSogcGx1Z2luU3RyZWFtKQog
CiBib29sIE5ldHNjYXBlUGx1Z2luOjppc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkK
IHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcmV0dXJuIGNvbnRyb2xs
ZXIoKS0+aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwotI2Vsc2UKLSAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbjo6cHVzaFBvcHVwc0Vu
YWJsZWRTdGF0ZShib29sIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgKaW5kZXggMTUxZDNmYzRlNjUyYWNmOTU3N2Iy
NTc3MTAyNTVhNzUwZTMxZWI5MS4uMTA4N2QxOWQzMmM2ZTk3NWM5Y2QyMzNlYTgxNmU2YzExODNk
ZmY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luQ29udHJvbGxlci5oCkBAIC04NiwxMCArODYsOCBAQCBwdWJsaWM6CiAgICAgLy8gU2V0IHRo
ZSBzdGF0dXNiYXIgdGV4dC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25z
dCBTdHJpbmcmKSA9IDA7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
Ly8gUmV0dXJuIHdoZXRoZXIgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZW5hYmxlZC4KICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpID0gMDsKLSNl
bmRpZgogCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgcGx1Zy1pbiBwcm9j
ZXNzIGhhcyBjcmFzaGVkLgogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
eHkuY3BwCmluZGV4IDcyY2FmNjQ1NmViNzkxM2UxYjhkOGY5MTkwYzRiNDA2ZWQ3MWZkOGUuLjM2
ZDI3MGUzMWUyZTMyMDg3MzU3N2I4ZDFmZjc4MWE4OGVkZTdjZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcApAQCAtMTA1LDEwICsx
MDUsNyBAQCBib29sIFBsdWdpblByb3h5Ojppbml0aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAgICAgbV9wZW5kaW5nUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLT5jb250ZW50
c1NjYWxlRmFjdG9yID0gY29udGVudHNTY2FsZUZhY3RvcigpOwogICAgIG1fcGVuZGluZ1BsdWdp
bkNyZWF0aW9uUGFyYW1ldGVycy0+aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkID0gY29udHJvbGxl
cigpLT5pc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQoKTsKICAgICBtX3BlbmRpbmdQbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMtPmFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxl
ZCA9IGNvbnRyb2xsZXIoKS0+YXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFi
bGVkKCk7Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgbV9wZW5kaW5n
UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
ID0gY29udHJvbGxlcigpLT5pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7Ci0jZW5k
aWYKIAogICAgIGlmICghY2FuSW5pdGlhbGl6ZUFzeW5jaHJvbm91c2x5KCkpCiAgICAgICAgIHJl
dHVybiBpbml0aWFsaXplU3luY2hyb25vdXNseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IDZiZjI1YTY0MmI3NWZlYTQzMDE4N2E2ZDA0Y2RmNTQxNjJlMzdkZGQuLjgyNjQ4NGM4ZWE1
NTFlNDMzMWE3M2U4ZWU2NTBlMjljNGE3Nzk1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTc3OSw3ICs3NzksNiBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQwogICAgIHJldHVybiBX
ZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CiB9CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBHcmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21l
Q2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFn
ZS0+ZHJhd2luZ0FyZWEoKS0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKQEAgLTgxMiw3ICs4MTEs
NiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0
CiAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCiBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA0MTcyNjhiMTI5MGM5ODQ0MmI5NzMzNDRmNjg4Nzg3N2ZhMzg4ZTU3Li5i
NzUzMWQxNGYzMGY2YjI0YjMxNDY4NGYxMWNlZTEwODViNmQ1MWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTIwNSw3ICsyMDUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKSBvdmVycmlkZTsKQEAgLTIyNSw3ICsyMjQsNiBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdD
b29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZERyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwCmluZGV4IGEz
YmRiMzUwYzE1OWUxZjVmMzM4MGRhNmNiMzM2YTJiNzkyZjVkOGIuLjI1NGE4M2Q4Nzg0NWU3NDY0
ZGEzMjk5NTgzZTlkYTQxZGY5ZmZkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwCkBAIC0yNjcsMTYgKzI2NywxMyBAQCB2
b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWE6OmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCkKICAg
ICBpZiAoIW1fbGF5ZXJUcmVlSG9zdCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEFTU0VSVCghbV9jb21wb3NpdGluZ0FjY29yZGluZ1Rv
UHJveHlNZXNzYWdlcyk7CiAgICAgaWYgKCFleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVQ
ZW5kaW5nKCkpIHsKICAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJl
YVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKG1fYmFja2luZ1N0b3JlU3Rh
dGVJRCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0KCkpKTsKICAgICAgICAgbV9j
b21wb3NpdGluZ0FjY29yZGluZ1RvUHJveHlNZXNzYWdlcyA9IHRydWU7CiAgICAgfQotI2VuZGlm
CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBHcmFwaGljc0xheWVyRmFj
dG9yeSogQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQogewog
ICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCkBAIC0zMjAsNyArMzE3LDYgQEAgdm9pZCBDb29yZGlu
YXRlZERyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAgICAgICAg
IHJldHVybjsKICAgICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQot
I2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6dXBkYXRlQmFja2luZ1N0b3Jl
U3RhdGUodWludDY0X3Qgc3RhdGVJRCwgYm9vbCByZXNwb25kSW1tZWRpYXRlbHksIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdp
bmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggZWI1YzViMmM4YjJjYWExOTA2
NzgxZmY1OWQ2ODk2Njg2MzQwNzBkYy4uZDMwNmU4NjIwZWMxMTQzMzkyYjRiMTMxZDNlMTZhZTYx
OGI1YmFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
RHJhd2luZ0FyZWEuaApAQCAtNjMsMTEgKzYzLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAKLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5oCmluZGV4IGFkZjdjNWNjODAwNTEzNDkzNGViNDVlZTExMDBjYjY0MDBlMmI3NTYuLjli
YzFkZTE4MmExZmE0ZTVkNGEyN2FiNGY1YTVjMDFkZjgwM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xMDEsMTEgKzEwMSw5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgeyByZXR1cm4gZmFsc2U7IH0KIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSA9IDA7Ci0jZW5kaWYKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKaW5k
ZXggMGFiZWFkOWI3YjZhMjVmYTk2NjY5ZjUwYjhkZDI5ZjE2MGRmZDQzYy4uYzBmZWExNWQxNzc5
YTRlMTA2Yzc5ZmZlNDcxZWQzNTVjMWI2OTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKQEAgLTI2OCwxNiArMjY4
LDEzIEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCiAg
ICAgaWYgKCFtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICBBU1NFUlQoIW1fY29tcG9zaXRpbmdBY2NvcmRpbmdU
b1Byb3h5TWVzc2FnZXMpOwogICAgIGlmICghZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
UGVuZGluZygpKSB7CiAgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0Fy
ZWFQcm94eTo6RW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShtX2JhY2tpbmdTdG9yZVN0
YXRlSUQsIG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7CiAgICAgICAgIG1f
Y29tcG9zaXRpbmdBY2NvcmRpbmdUb1Byb3h5TWVzc2FnZXMgPSB0cnVlOwogICAgIH0KLSNlbmRp
ZgogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogR3JhcGhpY3NMYXllckZh
Y3RvcnkqIERyYXdpbmdBcmVhSW1wbDo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQogewogICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCkBAIC0zMzIsNyArMzI5LDYgQEAgdm9pZCBEcmF3aW5nQXJlYUlt
cGw6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKICAgICAgICAgcmV0dXJuOwogICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2NoZWR1bGVMYXllckZsdXNoKCk7CiB9Ci0jZW5kaWYKIAogdm9p
ZCBEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IHN0YXRl
SUQsIGJvb2wgcmVzcG9uZEltbWVkaWF0ZWx5LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xs
T2Zmc2V0KQogewpAQCAtNTA4LDcgKzUwNCw2IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogICAgIH0gZWxzZQogICAgICAgICBkaXNwbGF5
KHVwZGF0ZUluZm8pOwogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIC8v
IFNlbmQgYWxvbmcgYSBjb21wbGV0ZSB1cGRhdGUgb2YgdGhlIHBhZ2Ugc28gd2UgY2FuIHBhaW50
IHRoZSBjb250ZW50cyByaWdodCBhZnRlciB3ZSBleGl0IHRoZQogICAgIC8vIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nIG1vZGUsIGVsaW1pbmlhdGluZyBmbGlja2VyLgogICAgIGlmIChtX2NvbXBv
c2l0aW5nQWNjb3JkaW5nVG9Qcm94eU1lc3NhZ2VzKSB7CkBAIC01MTksNyArNTE0LDYgQEAgdm9p
ZCBEcmF3aW5nQXJlYUltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCiAgICAg
ICAgIC8vIFVJIHByb2Nlc3MsIHdlIHN0aWxsIG5lZWQgdG8gbGV0IGl0IGtub3cgYWJvdXQgdGhl
IG5ldyBjb250ZW50cywgc28gc2VuZCBhbiBVcGRhdGUgbWVzc2FnZS4KICAgICAgICAgbV93ZWJQ
YWdlLT5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpVcGRhdGUobV9iYWNraW5nU3Rv
cmVTdGF0ZUlELCB1cGRhdGVJbmZvKSk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgRHJhd2lu
Z0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVTb29uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRl
eCBmMzI3ZTIwNzRhYjliN2MyOGY2YzlkODI5MjcwNGNlMWNiNGE1N2ZiLi4wMzhlY2IzNDBhZmJm
ZThhN2JhODU3YWNiNTYxYTQ4NTYwZDliMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC02NywxMSArNjcsOSBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KSBvdmVycmlkZTsKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGU7Ci0jZW5kaWYKIAogICAgIC8vIElQQyBt
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lZGlhdGVseSwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ0NzE0NzQyZWE3NTgxNmI4MTcyOTY4N2Qy
YzBjNDUwMWRiOGRlNGUuLmY5ODFhMzViZmE1ZjZkNzUyOWY4MDE5YTU4MmNjNGY1NDllNDE0ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTc5MCw3ICs3OTAsNiBAQCB2b2lkIFdlYlBhZ2U6OmNsZWFyTWFpbkZyYW1lTmFtZSgpCiAgICAg
ICAgIGZyYW1lLT50cmVlKCkuY2xlYXJOYW1lKCk7CiB9CiAKLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiB2b2lkIFdlYlBhZ2U6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIobGF5ZXIpOwpAQCAtODAwLDcgKzc5OSw2IEBAIHZvaWQgV2ViUGFnZTo6
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKICAgICBtX2RyYXdpbmdBcmVhLT5z
ZXRSb290Q29tcG9zaXRpbmdMYXllcigwKTsKIH0KLSNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OmNs
b3NlKCkKIHsKQEAgLTMwNTEsNyArMzA0OSw3IEBAIHZvaWQgV2ViUGFnZTo6bWFpbkZyYW1lRGlk
TGF5b3V0KCkKICAgICAgICAgbV9jYWNoZWRQYWdlQ291bnQgPSBwYWdlQ291bnQ7CiAgICAgfQog
Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAobV9kcmF3aW5nQXJl
YSAmJiBtX2RyYXdpbmdBcmVhLT5sYXllclRyZWVIb3N0KCkpIHsKICAgICAgICAgZG91YmxlIHJl
ZCwgZ3JlZW4sIGJsdWUsIGFscGhhOwogICAgICAgICBtX21haW5GcmFtZS0+Z2V0RG9jdW1lbnRC
YWNrZ3JvdW5kQ29sb3IoJnJlZCwgJmdyZWVuLCAmYmx1ZSwgJmFscGhhKTsKQEAgLTMxNDYsNyAr
MzE0NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCiAg
ICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDJhYjRkNDhhMjkxZDY0ODZkODQ4NmM3NjNmY2Qy
MDQ2OThiZTMzY2QuLjNiYTJmNzU3NzZhZTFiNTVhYTJkNjhhOWIyZWUwZGZkZTNhNThlNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzUyLDEw
ICszNTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAK
LSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdm9pZCBlbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2b2lkIGV4
aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwotI2VuZGlmCiAKICAgICB2b2lkIGFkZFBs
dWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgIHZvaWQgcmVtb3ZlUGx1Z2luVmlldyhQbHVnaW5W
aWV3Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAKaW5kZXggMGQ4MWYxN2NiY2JmYTFj
MjJmOGRjNDA5M2FkNjNhYjRiNWI1OTg3OC4uNGEwYmQ0ODljYTc1YWYyODkzMzNmMmQxOWI1ZWU5
OTc5OTI5OTRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcApAQCAtMjQsOSArMjQs
NiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogCkBAIC01Niw1ICs1MywzIEBAIFBhc3NSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0FSZW1vdGU6OmNyZWF0ZVBsYXRmb3Jt
Q0FMYXllcihQbGF0Zm9yCiB9CiAKIH0KLQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCmluZGV4IGU3YmQzZTMzOTc5MjA5ZjE3
YWZkMDczZTA4MmViYmM2OWRjZTYyOGEuLjFlMzQwYjY4NzQ5MjYyMGQ4NjAwNzg4ZThhYjM1YTdk
NGI0MzJlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaApAQCAtMjYsOCArMjYsNiBAQAog
I2lmbmRlZiBHcmFwaGljc0xheWVyQ0FSZW1vdGVfaAogI2RlZmluZSBHcmFwaGljc0xheWVyQ0FS
ZW1vdGVfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5
ZXIuaD4KIApAQCAtNjgsNiArNjYsNCBAQCBHUkFQSElDU0xBWUVSX1RZUEVfQ0FTVFMoR3JhcGhp
Y3NMYXllckNBUmVtb3RlLCBpc0dyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpKTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0K
ICNlbmRpZiAvLyBHcmFwaGljc0xheWVyQ0FSZW1vdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGUuY3BwCmluZGV4IDI1MTEzYTQ2ZTBlZGYyOTA0ZDlkNjNmZDI4MTAwNjAyOWZhYWVhOWQuLjcx
MTQ2MTA1NWJiYTc2MDc2MDc0MWY5ZTVlZWY1ODI5N2I4ZjkzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5jcHAKQEAgLTI0LDkgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBsYXRm
b3JtQ0FMYXllclJlbW90ZS5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0
b20uaCIKQEAgLTUzMiw1ICs1MjksMyBAQCB1aW50MzJfdCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6
Omhvc3RpbmdDb250ZXh0SUQoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biAwOwogfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZv
cm1DQUxheWVyUmVtb3RlLmgKaW5kZXggZGIxMjVjYTEwY2NhYjU1OGUzNmJlODRiNjE5MjM0YjNm
OGMwMjE5Yy4uNDY5ZGRlNTMyOTIxYzM3MzkyNTg1MTY4NTE5YWYxNjhhNDcwY2VkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Bs
YXRmb3JtQ0FMYXllclJlbW90ZS5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZV9oCiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllclJlbW90ZV9oCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CkBAIC0xNzIsNiArMTcwLDQgQEAgUExBVEZP
Uk1fQ0FMQVlFUl9UWVBFX0NBU1RTKFBsYXRmb3JtQ0FMYXllclJlbW90ZSwgaXNQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KICNlbmRpZiAvLyBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgKaW5kZXggZjU4YmZkMGM4
NDA4YjgyNGVmOWYxYmI4YTE1NzZkYmRjYTgwMjk3My4uMzMyYjcyMGZlYTBlYmJhNTEyY2Q4YzU4
MDE4NWMyNmNlZWIyZTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9o
CiAjZGVmaW5lIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbV9oCiAKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0KICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01Miw2ICs1MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotCiAjZW5kaWYgLy8gUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggOTUzOTFmN2MyMWRjZTNjODBlM2MyYmMx
MjkzMmY1Zjk0NDEyM2MwOC4uZjJjMDZiMDRmMjc4MTQ1MmEzZWRkYTMzZGZiYzQ4YTBlYTJlZDYx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KQEAgLTI0LDkgKzI0
LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0KICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIgog
CiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCkBAIC03MCw1ICs2NywzIEBAIHVpbnQz
Ml90IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6aG9zdGluZ0NvbnRleHRJRCgpCiB7CiAg
ICAgcmV0dXJuIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCk7CiB9Ci0KLSNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAKaW5kZXggY2Y0MWMyNzNlZTA5MzMxZDZjNDNl
NWRjODU0ODVkYjY0NDZiYmZmNC4uMzA1Mzc5NWM4YTY0NzJmOGYzYzRjZDg0OWJkYWY3YTU0YzVl
NDg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5n
LmNwcApAQCAtMjQsOSArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nLmgiCiAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQu
aCIKQEAgLTEwNSw1ICsxMDIsMyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZzo6c2V0Qm9yZGVyQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbAogewogICAgIG1f
dGlsZUNvbnRyb2xsZXItPnNldFRpbGVEZWJ1Z0JvcmRlckNvbG9yKGNvbG9yKTsKIH0KLQotI2Vu
ZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCmluZGV4IDJmM2NlMTQ4YWJkNzNiMzkyNzdiMDkx
YTZkNzMxMDA0ZTc1Mjc3ZTEuLjlkM2Y5NTA1OWZjNWFlNGE5MTExZTI3NTMzZTAzNjExMmU2ZjY3
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaApA
QCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmdfaAogI2RlZmluZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAogCi0jaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjEsNiArNTksNCBAQCBwcml2YXRl
OgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLQogI2VuZGlmIC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Z19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3MGVhNWZl
MTM1Zjc2ZDE3ZjUyOThjNmE1NWNlMDMxZDNjMTZhMDkzLi5mODU0ZjM2OWQ1ZjQwZmVjMWFhZGMy
MDlkNmU0NDQ3MTE2MmY2N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKQEAgLTE1NSw3ICsxNTUsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAs
IG1fc2hvdWxkVHJhY2tWaXNpdGVkTGlua3ModHJ1ZSkKICAgICAsIG1faGFzU2V0Q2FjaGVNb2Rl
bChmYWxzZSkKICAgICAsIG1fY2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBQTEFURk9STShNQUMpCisjaWYgUExB
VEZPUk0oTUFDKQogICAgICwgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoTUFDSF9QT1JU
X05VTEwpCiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCmluZGV4IDNkNDZlNGUwNzllMGZiZGYwZGE1ZjhhODdjNzA2ZWQ1NTZhNzA4
Y2YuLmY4ZDk5ZmIxZjExMDhjZDlmNWFkN2FhMDNkNjEzNGEwNzkyMDZkMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMTEsMTAgKzExMSw4IEBAIHB1YmxpYzoK
ICAgICBJbmplY3RlZEJ1bmRsZSogaW5qZWN0ZWRCdW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2lu
amVjdGVkQnVuZGxlLmdldCgpOyB9CiAKICNpZiBQTEFURk9STShNQUMpCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2Vy
dmVyUG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0OyB9
CiAjZW5kaWYKLSNlbmRpZgogICAgIAogICAgIHZvaWQgc2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlu
a3MoYm9vbCk7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhXZWJDb3JlOjpMaW5rSGFzaCk7CkBA
IC0yOTEsMTAgKzI4OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWw7
CiAgICAgQ2FjaGVNb2RlbCBtX2NhY2hlTW9kZWw7CiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpICYmIFBMQVRGT1JNKE1BQykKLSAgICBtYWNoX3BvcnRfdCBtX2NvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydDsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKKyAgICBtYWNoX3Bv
cnRfdCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKICAgICBwaWRfdCBtX3ByZXNlbnRl
ckFwcGxpY2F0aW9uUGlkOwogICAgIGRpc3BhdGNoX2dyb3VwX3QgbV9jbGVhclJlc291cmNlQ2Fj
aGVzRGlzcGF0Y2hHcm91cDsKICAgICBib29sIG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3Rp
dHV0aW9uOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGYwNGE5OGQ2MmVlZmU3YmJiYTI3ZjBlZGU0NzY4OGJjMjRiMjU4MmQuLmYyMWNhMzg5OTNh
MTk0MDMzOWJjZGIxMGNhY2MwMjhkM2U0MWY0NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNC0wMS0yOSAgQW5k
cmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyNzgzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZp
c3RvLgorCisgICAgICAgIFJlbW92ZSB0aGUgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBj
b25kaXRpb25hbHMgZnJvbSB0aGUgY29kZSBiYXNlIGFuZCBtYWtlIEFDCisgICAgICAgIG1hbmRh
dG9yeS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChpbml0RWNvcmVFdmFzKToKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5j
OgorICAgICAgICAod2luZG93Q3JlYXRlKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9lZmwvbWFp
bi5jOgorICAgICAgICAoZWxtX21haW4pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZWZsL1Bs
YXRmb3JtV2ViVmlldy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjppbml0RWNvcmVFdmFz
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8u
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFBpeGVsc0FuZENvbXBhcmVX
aXRoRXhwZWN0ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2Vi
Vmlld0VmbC5jcHA6CisgICAgICAgIChXVFI6OmluaXRFY29yZUV2YXMpOgorCiAyMDE0LTAxLTI5
ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSBsZWZ0b3ZlcnMKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGFjODVmMDRhYmZhNzcyM2FiNWJiNGUy
YTVjZjZiZWNkZjE1MjU3NjQuLmUxY2FkMzY4ZWQ5NzU2ZTA5MDEyMDRmN2IxYmE4NjAzODcwOGYx
NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAt
NDM2LDcgKzQzNiw3IEBAIHZvaWQgZHVtcCgpCiBzdGF0aWMgRWNvcmVfRXZhcyogaW5pdEVjb3Jl
RXZhcygpCiB7CiAgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gMDsKLSNpZiBkZWZpbmVkKFdU
Rl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQor
I2lmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQogICAgIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfbmV3
KCJvcGVuZ2xfeDExIiwgMCwgMCwgODAwLCA2MDAsIDApOwogICAgIGlmICghZWNvcmVFdmFzKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdl
YkxhdW5jaGVyL21haW4uYwppbmRleCAxNmU0NTI0MWI2ZmEzNzAyMDY2MmZhNDMzYzlkZjdkNTZk
M2ViYWMzLi4wYzk3OWUzY2E5ZTIxNDE1ZGFhMzFhMTI2ZTZiNGY5ZTQ2MjQ0MmEzIDEwMDY0NAot
LS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9t
YWluLmMKQEAgLTc5OCwxMSArNzk4LDExIEBAIHdpbmRvd0NyZWF0ZShVc2VyX0FyZ3VtZW50cyAq
dXNlckFyZ3MpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotI2lmIGRlZmluZWQoV1RG
X1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCisj
aWYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCiAgICAgaWYgKHVzZXJBcmdzLT5lbmdpbmUpCiAjZW5k
aWYKICAgICAgICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KHVzZXJBcmdzLT5lbmdpbmUsIDAs
IDAsIHVzZXJBcmdzLT5nZW9tZXRyeS53LCB1c2VyQXJncy0+Z2VvbWV0cnkuaCwgTlVMTCk7Ci0j
aWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBkZWZpbmVkKEhB
VkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKICAgICBlbHNlIHsKICAgICAg
ICAgY29uc3QgY2hhciogZW5naW5lID0gIm9wZW5nbF94MTEiOwogICAgICAgICBhcHAtPmVlID0g
ZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCB1c2VyQXJncy0+Z2VvbWV0cnkudywgdXNlckFy
Z3MtPmdlb21ldHJ5LmgsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZs
L21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5kZXggZjE2ZGViNDY0MmQy
YTlmZWMwNTcyZDU5ZDEyZjIwNTJiMDNhMjllYy4uMmE4ZmRhMTAxODAxOTUwNzM1ZWFkYWJlZTQ3
OGE1MmI1NDk4YmUwNCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0xOTcyLDcgKzE5NzIsNyBAQCBl
bG1fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAgICAgaWYgKGV2YXNfZW5naW5lX25h
bWUpCiAgICAgICAgIGVsbV9jb25maWdfcHJlZmVycmVkX2VuZ2luZV9zZXQoZXZhc19lbmdpbmVf
bmFtZSk7Ci0jaWYgZGVmaW5lZChXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBk
ZWZpbmVkKEhBVkVfRUNPUkVfWCkKKyNpZiBkZWZpbmVkKEhBVkVfRUNPUkVfWCkKICAgICBlbHNl
IHsKICAgICAgICAgZXZhc19lbmdpbmVfbmFtZSA9ICJvcGVuZ2xfeDExIjsKICAgICAgICAgZWxt
X2NvbmZpZ19wcmVmZXJyZWRfZW5naW5lX3NldChldmFzX2VuZ2luZV9uYW1lKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCmluZGV4IDVhM2FhNmIxZTNhOTk3
NTA5ZjcxYjk3NWVjY2ExNjAyM2RlYjY2MjUuLjYwYmM4NjlhN2Y3MjAzZWQ4ZWViOWEzMzZkMzI3
NDYyMTI4NDBlYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3Jt
V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1XZWJWaWV3
LmNwcApAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgRWNvcmVfRXZhcyogaW5pdEVjb3JlRXZhcygp
CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzOwotI2lmIGRl
ZmluZWQoV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgZGVmaW5lZChIQVZFX0VD
T1JFX1gpCisjaWYgZGVmaW5lZChIQVZFX0VDT1JFX1gpCiAgICAgZWNvcmVFdmFzID0gZWNvcmVf
ZXZhc19uZXcoIm9wZW5nbF94MTEiLCAwLCAwLCA4MDAsIDYwMCwgMCk7CiAgICAgLy8gR3JhY2Vm
dWwgZmFsbGJhY2sgdG8gc29mdHdhcmUgcmVuZGVyaW5nIGlmIGV2YXNfZ2wgZW5naW5lIGlzIG5v
dCBhdmFpbGFibGUuCiAgICAgaWYgKCFlY29yZUV2YXMpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8uY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcAppbmRleCA4MjhlNjViMWJi
N2MzNWRiN2I0NmM0YjEzMDdjNjcyOGY4OGI5MTA0Li4zYWJkZmI2YWZmNWFjNTZjOGE3ZDkxN2Nj
ZWY1MzliMzc5MTU3ODY2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NhaXJv
L1Rlc3RJbnZvY2F0aW9uQ2Fpcm8uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2Fp
cm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9p
ZCBwYWludFJlcGFpbnRSZWN0T3ZlcmxheShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIFdLQXJy
YXlSZWYgcmVwYWludAogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkdW1wUGl4ZWxzQW5kQ29tcGFy
ZVdpdGhFeHBlY3RlZChXS0ltYWdlUmVmIHdrSW1hZ2UsIFdLQXJyYXlSZWYgcmVwYWludFJlY3Rz
KQogewotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oRUZMKQor
I2lmIFBMQVRGT1JNKEVGTCkKICAgICBVTlVTRURfUEFSQU0od2tJbWFnZSk7CiAgICAgY2Fpcm9f
c3VyZmFjZV90KiBzdXJmYWNlID0gV0tJbWFnZUNyZWF0ZUNhaXJvU3VyZmFjZShUZXN0Q29udHJv
bGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+d2luZG93U25hcHNob3RJbWFnZSgpLmdldCgp
KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9y
bVdlYlZpZXdFZmwuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJW
aWV3RWZsLmNwcAppbmRleCBlYWMxNTNjNzdiOTFiMmJiMDBlNjNkNzViYmUxMjhiMTg1MzkzMTZk
Li42MGY1MzgyMGI5ODY1YTMxODMyOWJjZThmYjI0Y2EwNjc0ZmIzYmE3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKQEAgLTM3LDcg
KzM3LDcgQEAgbmFtZXNwYWNlIFdUUiB7CiBzdGF0aWMgRWNvcmVfRXZhcyogaW5pdEVjb3JlRXZh
cygpCiB7CiAgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gMDsKLSNpZiBkZWZpbmVkKFdURl9V
U0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIGRlZmluZWQoSEFWRV9FQ09SRV9YKQorI2lm
IGRlZmluZWQoSEFWRV9FQ09SRV9YKQogICAgIGNvbnN0IGNoYXIqIGVuZ2luZSA9ICJvcGVuZ2xf
eDExIjsKICAgICBlY29yZUV2YXMgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIDgwMCwg
NjAwLCAwKTsKICAgICAvLyBHcmFjZWZ1bCBmYWxsYmFjayB0byBzb2Z0d2FyZSByZW5kZXJpbmcg
aWYgZXZhc19nbCBlbmdpbmUgaXMgbm90IGF2YWlsYWJsZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>