<?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>191215</bug_id>
          
          <creation_ts>2018-11-02 15:25:00 -0700</creation_ts>
          <short_desc>Clean up drawLineForDocumentMarker()</short_desc>
          <delta_ts>2018-11-05 20:37:31 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>190774</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474651</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-02 15:25:00 -0700</bug_when>
    <thetext>Clean up drawLineForDocumentMarker()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474652</commentid>
    <comment_count>1</comment_count>
      <attachid>353737</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-02 15:32:51 -0700</bug_when>
    <thetext>Created attachment 353737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474691</commentid>
    <comment_count>2</comment_count>
      <attachid>353750</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-02 17:24:01 -0700</bug_when>
    <thetext>Created attachment 353750
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474693</commentid>
    <comment_count>3</comment_count>
      <attachid>353750</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-02 17:25:38 -0700</bug_when>
    <thetext>Comment on attachment 353750
Patch for committing

Rejecting attachment 353750 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 353750, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Alan Bujtas found in /Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/EWS/WebKit/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: https://webkit-queues.webkit.org/results/9838535</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474718</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-11-02 19:36:38 -0700</bug_when>
    <thetext>Committed r237765: &lt;https://trac.webkit.org/changeset/237765&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474719</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-02 19:37:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/45779882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353737</attachid>
            <date>2018-11-02 15:32:51 -0700</date>
            <delta_ts>2018-11-02 15:54:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191215-20181102153251.patch</filename>
            <type>text/plain</type>
            <size>45402</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVhODE0NWI2OGExNTkx
YjZmOTVmMTg1MzFkMTAxZGFmMzZjZWU2Yi4uMTMzNTUwYzFmMjczNzkwMDkzZWZjOWViMzYzZDcz
Y2Q5ZjM1MTNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE4LTExLTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAg
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbiBwcmVwYXJhdGlvbiBmb3IgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDc2NCwgSSBuZWVkIHRvIGRvIGEgbGl0dGxlIGJpdCBv
ZiByZWZhY3RvcmluZy4KKyAgICAgICAgVGhpcyBwYXRjaCBoYXMgbm8gYmVoYXZpb3IgY2hhbmdl
OyBpdCBqdXN0IGRvZXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAxLiBSZW5hbWVzIGRyYXdM
aW5lRm9yRG9jdW1lbnRNYXJrZXIoKSB0byBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKCksIGJl
Y2F1c2UgMiBvZiB0aGUgMyBpbXBsZW1lbnRhdGlvbnMgZHJhdyBkb3RzCisgICAgICAgIDIuIE1v
dmVzIG91ciBpbXBsZW1lbnRhdGlvbiBiYWNrIGludG8gR3JhcGhpY3NDb250ZXh0LCBiZWNhdXNl
IGl0J3Mgc2ltcGxlciBhbmQgIEdyYXBoaWNzQ29udGV4dCBpcyBhbHJlYWR5IHBsYXRmb3JtLQor
ICAgICAgICAgICAgICAgc3BlY2lmaWMuCisgICAgICAgIDMuIFRoZSBzaWduYXR1cmUgdXNlZCB0
byBhY2NlcHQgYSBsb2NhdGlvbiBhbmQgYSB3aWR0aCwgYnV0IHdpdGhvdXQgYSBoZWlnaHQsIGl0
J3MgZGlmZmljdWx0IHRvIGtub3cgd2hhdCB0aGUgYm91bmRpbmcKKyAgICAgICAgICAgICAgIGJv
eCBpcy4gSW4gcGFydGljdWxhciwga25vd2luZyB0aGUgYm91bmRpbmcgYm94IG11c3QgYmUgcG9z
c2libGUgd2l0aG91dCBhIEdyYXBoaWNzQ29udGV4dC4gU28sIEkndmUgbW9kaWZpZWQKKyAgICAg
ICAgICAgICAgIHRoZSBzaWduYXR1cmUgdG8gYWNjZXB0IGEgcmVjdGFuZ2xlIGluc3RlYWQuIFRo
ZSBHcmFwaGljc0NvbnRleHQgZHJhd3Mgb25seSB3aXRoaW4gdGhpcyByZWN0YW5nbGUuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDYWlybzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtl
cik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0SW1wbENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dElt
cGxDYWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dElt
cGxDYWlyby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRl
Q29jb2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb2xvckZvck1hcmtlckxpbmVTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOjpsb2NhbEJvdW5kcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6YXBw
bHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdM
aW5lRm9yRG9jdW1lbnRNYXJrZXI6OmxvY2FsQm91bmRzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcjo6cmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6
Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyOjpwb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6d2lkdGggY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lRm9yRG9j
dW1lbnRNYXJrZXI6OkRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0RvdHNGb3JE
b2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6
OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKE5pY29zaWE6OkNhaXJvT3BlcmF0aW9u
UmVjb3JkZXI6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVj
b3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
Q0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JEb2N1bWVudE1hcmtlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50UGxhdGZvcm1Eb2N1bWVudE1hcmtlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
b2NvYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVJT1M6OmNvbG9yRm9yTWFya2VyTGluZVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6Y29sb3JGb3JNYXJr
ZXJMaW5lU3R5bGUpOiBEZWxldGVkLgorCiAyMDE4LTExLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVucmV2aWV3ZWQsIGFu
b3RoZXIgLS1uby12aWRlbyAtLW5vLXdlYi1hdWRpbyBidWlsZCBmaXggZm9sbG93aW5nIHIyMzc2
NzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKaW5kZXggYTNkZTg2ZDU3MmZiMTUzNGRlODAwY2ZkNjM4YjM1MDkwM2Y1YzFiYS4uODYx
OTA1MzM5YTQxZDIyYTgzMmZlNzFhM2JlZjY5MmUyM2NhODBiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTczLDEwICs3
Myw2IEBAIGNsYXNzIEZvbnQ7CiBjbGFzcyBHbHlwaEJ1ZmZlcjsKICNlbmRpZgogCi1jb25zdCBp
bnQgY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcyA9IDM7Ci1jb25zdCBpbnQgY01pc3NwZWxsaW5n
TGluZVBhdHRlcm5XaWR0aCA9IDQ7Ci1jb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5H
YXBXaWR0aCA9IDE7Ci0KIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEZsb2F0Um91bmRl
ZFJlY3Q7CiBjbGFzcyBHcmFkaWVudDsKQEAgLTEwOSwxMiArMTA1LDE1IEBAIGVudW0gU3Ryb2tl
U3R5bGUgewogICAgIFdhdnlTdHJva2UsCiB9OwogCi1lbnVtIGNsYXNzIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlIDogdWludDhfdCB7Ci0gICAgVGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0
aEFsdGVybmF0aXZlcywKLSAgICBTcGVsbGluZywKLSAgICBHcmFtbWFyLAotICAgIEF1dG9jb3Jy
ZWN0aW9uUmVwbGFjZW1lbnQsCi0gICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzCitzdHJ1Y3QgRG9j
dW1lbnRNYXJrZXJMaW5lU3R5bGUgeworICAgIGVudW0gY2xhc3MgTW9kZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLAorICAg
ICAgICBTcGVsbGluZywKKyAgICAgICAgR3JhbW1hciwKKyAgICAgICAgQXV0b2NvcnJlY3Rpb25S
ZXBsYWNlbWVudCwKKyAgICAgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzCisgICAgfSBtb2RlOwor
ICAgIGJvb2wgc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgeyBmYWxzZSB9OwogfTsKIAogbmFtZXNw
YWNlIERpc3BsYXlMaXN0IHsKQEAgLTQyMiw3ICs0MjEsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRS
ZWN0IGNvbXB1dGVVbmRlcmxpbmVCb3VuZHNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9h
dCB3aWR0aCwgYm9vbCBwcmludGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TGlu
ZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5nLCBi
b29sIGRvdWJsZUxpbmVzID0gZmFsc2UsIFN0cm9rZVN0eWxlID0gU29saWRTdHJva2UpOwogICAg
IHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRGFzaEFycmF5
JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMgPSBmYWxzZSwgU3Ryb2tl
U3R5bGUgPSBTb2xpZFN0cm9rZSk7Ci0gICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2Vy
KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUp
OworICAgIHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmLCBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDQ3ZmI0YTQyZWU0M2I0
ZWZkMTZmYmJiNDQ0OGVjMWQ5MWY4ZGEzNzcuLmQ0OGI5MjRlYjYwNDM2ZDgzMWE5OGU1Njk1YTkz
MDgyNTM4ZjQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBib3JkZXJUaGlj
a25lc3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMaW5lc0ZvclRl
eHQoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50
aW5nLCBib29sIGRvdWJsZUxpbmVzLCBmbG9hdCBzdHJva2VUaGlja25lc3MpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50Jiwg
ZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiwgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsbGlwc2UoY29uc3Qg
RmxvYXRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJikg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9DYWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA4M2MyYjBhZTJkNWYyNDg4MTFlODk5ZTEx
NzAwNjBlZjZmNTE1YmU5Li4zYWQ3MDQxODAzZjYzMWQyOGY5NzU1ODY4MDk3MGJmMWI4ZGZjZjUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWly
b09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTEwNDksMjEgKzEwNDksMjEgQEAgdm9pZCBkcmF3
TGluZXNGb3JUZXh0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0
IEZsb2F0UG9pbnQmIHAKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQs
IGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlIHN0eWxlKQordm9pZCBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29u
dGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7Ci0gICAgaWYgKHN0eWxlICE9IERvY3VtZW50TWFy
a2VyTGluZVN0eWxlOjpTcGVsbGluZwotICAgICAgICAmJiBzdHlsZSAhPSBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZTo6R3JhbW1hcikKKyAgICBpZiAoc3R5bGUubW9kZSAhPSBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZTo6U3BlbGxpbmcKKyAgICAgICAgJiYgc3R5bGUubW9kZSAhPSBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZTo6R3JhbW1hcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fpcm9fdCog
Y3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKICAgICBjYWlyb19zYXZlKGNyKTsKIAotICAgIGlm
IChzdHlsZSA9PSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmcpCisgICAgaWYgKHN0
eWxlLm1vZGUgPT0gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlNwZWxsaW5nKQogICAgICAgICBj
YWlyb19zZXRfc291cmNlX3JnYihjciwgMSwgMCwgMCk7Ci0gICAgZWxzZSBpZiAoc3R5bGUgPT0g
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkdyYW1tYXIpCisgICAgZWxzZSBpZiAoc3R5bGUubW9k
ZSA9PSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcikKICAgICAgICAgY2Fpcm9fc2V0
X3NvdXJjZV9yZ2IoY3IsIDAsIDEsIDApOwogCi0gICAgZHJhd0Vycm9yVW5kZXJsaW5lKGNyLCBv
cmlnaW4ueCgpLCBvcmlnaW4ueSgpLCB3aWR0aCwgY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcyk7
CisgICAgZHJhd0Vycm9yVW5kZXJsaW5lKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0
aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVy
YXRpb25zLmgKaW5kZXggMzliNTJhNzIxMjI0ZTBiMDAzZWEzMzQyODlkMmEwMDdhOTJjNDdlYi4u
Y2I3OGRmYjFiNWFhODM3NjAyZWM1MmM0MTRlYmRmYzQ1NzNhZGQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25z
LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBXRUJDT1JFX0VYUE9SVCB2b2lkIGRyYXdTdXJmYWNlKFBs
YXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRgogdm9pZCBkcmF3
UmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25z
dCBDb2xvciYsIFN0cm9rZVN0eWxlLCBjb25zdCBDb2xvciYpOwogdm9pZCBkcmF3TGluZShQbGF0
Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jiwg
U3Ryb2tlU3R5bGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGJvb2wpOwogdm9pZCBkcmF3TGluZXNG
b3JUZXh0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IERh
c2hBcnJheSYsIGJvb2wsIGJvb2wsIGNvbnN0IENvbG9yJiwgZmxvYXQpOwotdm9pZCBkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRQb2lu
dCYsIGZsb2F0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSk7Cit2b2lkIGRyYXdEb3RzRm9yRG9j
dW1lbnRNYXJrZXIoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBGbG9hdFJlY3QmLCBEb2N1
bWVudE1hcmtlckxpbmVTdHlsZSk7CiB2b2lkIGRyYXdFbGxpcHNlKFBsYXRmb3JtQ29udGV4dENh
aXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQ29sb3ImLCBTdHJva2VTdHlsZSwgY29uc3Qg
Q29sb3ImLCBmbG9hdCk7CiAKIHZvaWQgZHJhd0ZvY3VzUmluZyhQbGF0Zm9ybUNvbnRleHRDYWly
byYsIGNvbnN0IFBhdGgmLCBmbG9hdCwgY29uc3QgQ29sb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dENhaXJvLmNwcAppbmRleCA1Zjg1NzBiMTIxNzA1YTZiYTkxNTA2ZTMxYmVkOTdmNjQ3ODhjZjZm
Li4yZjhiOTI1ODZkM2U4ZDk0ODFlMTlhMjQ5OGQ4MmY3ZGI1ZmY5MDE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zMzcsMTggKzMzNywxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFz
aEFycmF5JgogICAgIENhaXJvOjpkcmF3TGluZXNGb3JUZXh0KCpwbGF0Zm9ybUNvbnRleHQoKSwg
cG9pbnQsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZVVuZGVybGluZXMsIG1fc3RhdGUuc3Ryb2tl
Q29sb3IsIG1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBm
bG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQogewogICAgIGlmIChwYWludGluZ0Rpc2Fi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9p
bXBsLT5kcmF3TGluZUZvckRvY3VtZW50TWFya2VyKG9yaWdpbiwgd2lkdGgsIHN0eWxlKTsKKyAg
ICAgICAgbV9pbXBsLT5kcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKHJlY3QsIHN0eWxlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7
Ci0gICAgQ2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoKnBsYXRmb3JtQ29udGV4dCgp
LCBvcmlnaW4sIHdpZHRoLCBzdHlsZSk7CisgICAgQ2Fpcm86OmRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBzdHlsZSk7CiB9CiAKIEZsb2F0UmVjdCBH
cmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMoY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBSb3VuZGluZ01vZGUgcm91bmRpbmdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5jcHAKaW5kZXggN2U5YjlkZTljY2I4MjlhYjk3MGZmMmYzMzZiZDkwODA1MGJmMWE5NS4u
Yzc3ZGZiNzA2NmMxOGQ1NmYzZDljYzFkNzkwYzkzMzU2YzQ2NDFjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0zMDMsOSArMzAzLDkgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdMaW5lc0ZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgcG9p
bnQsIGNvbnN0IEQKICAgICBDYWlybzo6ZHJhd0xpbmVzRm9yVGV4dChtX3BsYXRmb3JtQ29udGV4
dCwgcG9pbnQsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZVVuZGVybGluZXMsIHN0YXRlLnN0cm9r
ZUNvbG9yLCBzdGF0ZS5zdHJva2VUaGlja25lc3MpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dEltcGxDYWlybzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBv
cmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7Ci0gICAg
Q2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIobV9wbGF0Zm9ybUNvbnRleHQsIG9yaWdp
biwgd2lkdGgsIHN0eWxlKTsKKyAgICBDYWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlciht
X3BsYXRmb3JtQ29udGV4dCwgcmVjdCwgc3R5bGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dEltcGxDYWlybzo6ZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm8uaAppbmRleCAzMGQzZWM2NDMzMWEyNmQwN2Q0NDc2NmJjNDky
MGViNzQ1ZDBjM2Y4Li4yZDc0Mjg1MmVjNDRlYmRlZmNkYmM1N2M5MWM1YTBlZGM3M2ZmOGU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaApAQCAtODAsNyArODAsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRGFzaEFycmF5JiwgYm9vbCwgYm9vbCwgZmxvYXQpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQsIERvY3Vt
ZW50TWFya2VyTGluZVN0eWxlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRyYXdEb3RzRm9yRG9jdW1l
bnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIG92ZXJy
aWRlOwogICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29h
Lm1tCmluZGV4IGEwODkyZGMwZTFiNzdiMWIyYzY0NWZiNTI0MTQxNDI2ODE4YmYzNmIuLjRkYTVl
ZDUzNmUwNTNmN2ZmODc1YzdiOTU4Y2QzYWYwMmY0OTdhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5t
bQpAQCAtMzcsNyArMzcsNyBAQAogI2VuZGlmCiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgog
Ci0jaWYgRU5BQkxFKExFVFRFUlBSRVNTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1w
b3J0IDxwYWwvc3BpL2lvcy9Db3JlVUlTUEkuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgogCkBAIC00Nyw2ICs0Nyw3IEBAIFNPRlRfTElOS19DTEFTUyhDb3JlVUksIENVSVN0eWxlRWZm
ZWN0Q29uZmlndXJhdGlvbikKIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKIFNPRlRfTElO
SyhVSUtpdCwgX1VJS2l0R2V0VGV4dEVmZmVjdHNDYXRhbG9nLCBDVUlDYXRhbG9nICosICh2b2lk
KSwgKCkpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29sb3IpCiAjZW5kaWYKIAogI2lmZGVm
IF9fTFA2NF9fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCmluZGV4IGU2M2VlZWFkYjUzZjgz
MmMyZjBlZDU5NmFiMDcyZWEzOTU0MzY4OTMuLjQ4YjViOTQ1NWE0ZTAzNmNjZmJiZGFmODQwNThm
NjI5MzViZjAyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCkBAIC0zMiw2ICszMiw3
IEBACiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGlj
c1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBV
U0UoQVBQS0lUKQpAQCAtNDEsNiArNDIsNyBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiV0tHcmFwaGljcy5oIgorI2ltcG9ydCA8cGFsL3Nw
aS9pb3MvVUlLaXRTUEkuaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTgxLDEw
ICsxODMsNjYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFBhdHRlcm5QaGFzZUluVXNlclNwYWNl
KENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BvaW50IHBoYXMKICAgICBDR0NvbnRleHRTZXRQYXR0
ZXJuUGhhc2UoY29udGV4dCwgQ0dTaXplTWFrZShwaGFzZS54LCBwaGFzZS55KSk7CiB9CiAKLS8v
IEZJWE1FOiBXZSBuZWVkIHRvIGtlZXAgdGhpcyBmdW5jdGlvbiBzaW5jZSBpdCBpcyByZWZlcmVu
Y2VkIGJ5IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI6OmFwcGx5KCkuCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxv
YXQsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKQorc3RhdGljIENHQ29sb3JSZWYgY29sb3JGb3JN
YXJrZXJMaW5lU3R5bGUoRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGUgc3R5bGUsIGJvb2wg
dXNlRGFya01vZGUpCiB7Ci0gICAgLy8gQ29jb2EgcGxhdGZvcm1zIHVzZSBSZW5kZXJUaGVtZTo6
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcigpIHRvIHBhaW50IHRoZSBwbGF0Zm9ybSBkb2N1bWVu
dCBtYXJrZXJzLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAg
Ly8gUmVkCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6U3BlbGxpbmc6
CisgICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyAyNTUs
IDE0MCwgMTQwLCAyMTcgfSA6IENvbG9yIHsgMjU1LCA1OSwgNDgsIDE5MSB9KTsKKyAgICAvLyBC
bHVlCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6RGljdGF0aW9uQWx0
ZXJuYXRpdmVzOgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlRleHRD
aGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKKyAgICAg
ICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDQwLCAxNDUsIDI1
NSwgMjE3IH0gOiBDb2xvciB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7CisgICAgLy8gR3JlZW4KKyAg
ICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpHcmFtbWFyOgorICAgICAgICBy
ZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNTAsIDIxNSwgNzUsIDIx
NyB9IDogQ29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOworICAgIH0KKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHVzZURhcmtNb2RlKTsKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6U3BlbGxpbmc6CisgICAgICAgIHJldHVybiBb
Z2V0VUlDb2xvckNsYXNzKCkgc3lzdGVtUmVkQ29sb3JdLkNHQ29sb3I7CisgICAgY2FzZSBEb2N1
bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgorICAgIGNh
c2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBo
cmFzZVdpdGhBbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6
TW9kZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKKyAgICAgICAgcmV0dXJuIFtnZXRVSUNv
bG9yQ2xhc3MoKSBzeXN0ZW1CbHVlQ29sb3JdLkNHQ29sb3I7CisgICAgY2FzZSBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZTo6TW9kZTo6R3JhbW1hcjoKKyAgICAgICAgcmV0dXJuIFtnZXRVSUNvbG9y
Q2xhc3MoKSBzeXN0ZW1HcmVlbkNvbG9yXS5DR0NvbG9yOworICAgIH0KKyNlbmRpZgorfQorCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQoreworICAgIGlmIChw
YWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY2lyY2xlQ29s
b3IgPSBjb2xvckZvck1hcmtlckxpbmVTdHlsZShzdHlsZS5tb2RlLCBzdHlsZS5zaG91bGRVc2VE
YXJrQXBwZWFyYW5jZSk7CisKKyAgICBhdXRvIGxpbmVUaGlja25lc3MgPSByZWN0LmhlaWdodCgp
OworICAgIGF1dG8gcGF0dGVybkdhcFdpZHRoID0gbGluZVRoaWNrbmVzcyAvIDM7CisgICAgYXV0
byBwYXR0ZXJuV2lkdGggPSBsaW5lVGhpY2tuZXNzICsgcGF0dGVybkdhcFdpZHRoOworCisgICAg
RmxvYXRQb2ludCBvZmZzZXRQb2ludCA9IHJlY3QubG9jYXRpb24oKTsKKyAgICBhdXRvIHdpZHRo
ID0gcmVjdC53aWR0aCgpOworICAgIGZsb2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIHBhdHRl
cm5XaWR0aCk7CisgICAgaWYgKHBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gcGF0dGVybkdhcFdp
ZHRoKSB7CisgICAgICAgIGZsb2F0IGdhcEluY2x1ZGVXaWR0aCA9IDA7CisgICAgICAgIGlmICh3
aWR0aCA+IHBhdHRlcm5XaWR0aCkKKyAgICAgICAgICAgIGdhcEluY2x1ZGVXaWR0aCA9IHBhdHRl
cm5HYXBXaWR0aDsKKyAgICAgICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBn
YXBJbmNsdWRlV2lkdGgpIC8gMiksIDApOworICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKKyAg
ICB9CisKKyAgICBDR0NvbnRleHRSZWYgcGxhdGZvcm1Db250ZXh0ID0gdGhpcy0+cGxhdGZvcm1D
b250ZXh0KCk7CisgICAgQ0dDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyIHsgcGxhdGZvcm1D
b250ZXh0IH07CisgICAgQ0dDb250ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yKHBsYXRmb3JtQ29u
dGV4dCwgY2lyY2xlQ29sb3IpOworICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHggKz0g
cGF0dGVybldpZHRoKQorICAgICAgICBDR0NvbnRleHRBZGRFbGxpcHNlSW5SZWN0KHBsYXRmb3Jt
Q29udGV4dCwgQ0dSZWN0TWFrZShvZmZzZXRQb2ludC54KCkgKyB4LCBvZmZzZXRQb2ludC55KCks
IGxpbmVUaGlja25lc3MsIGxpbmVUaGlja25lc3MpKTsKKyAgICBDR0NvbnRleHRTZXRDb21wb3Np
dGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBrQ0dDb21wb3NpdGVTb3Zlcik7CisgICAgQ0dD
b250ZXh0RmlsbFBhdGgocGxhdGZvcm1Db250ZXh0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDFmY2VlOGIzODQz
NzMwMzZkMjNmMDkxMTJhYjYzZTc5Njk1ZWMwNDMuLjczNTNkMzdhZmIxYzE1NjMyNjBjMTkwZGFi
ZTkxM2JjYzQzNzE2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKQEAg
LTk5LDggKzk5LDggQEAgc2l6ZV90IEl0ZW06OnNpemVJbkJ5dGVzKGNvbnN0IEl0ZW0mIGl0ZW0p
CiAgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJhd0xpbmU+KGl0ZW0pKTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OgogICAgICAgICByZXR1cm4gc2l6ZW9mKGRv
d25jYXN0PERyYXdMaW5lc0ZvclRleHQ+KGl0ZW0pKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
TGluZUZvckRvY3VtZW50TWFya2VyOgotICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI+KGl0ZW0pKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RG90c0ZvckRvY3VtZW50TWFya2VyOgorICAgICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERy
YXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI+KGl0ZW0pKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
RWxsaXBzZToKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3duY2FzdDxEcmF3RWxsaXBzZT4oaXRl
bSkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXRoOgpAQCAtNjIxLDI1ICs2MjEsMjAgQEAg
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdM
aW5lc0ZvclRleHQmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQogCi12b2lkIERyYXdMaW5lRm9y
RG9jdW1lbnRNYXJrZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3Zv
aWQgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KSBjb25zdAogewotICAgIGNvbnRleHQuZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihtX3Bv
aW50LCBtX3dpZHRoLCBtX3N0eWxlKTsKKyAgICBjb250ZXh0LmRyYXdEb3RzRm9yRG9jdW1lbnRN
YXJrZXIobV9yZWN0LCBtX3N0eWxlKTsKIH0KIAotc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IERy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI6OmxvY2FsQm91bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gRHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcjo6bG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QKIHsKLSAgICAv
LyBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIHJldHVybiBhIHZhbHVlIGVxdWFsIHRvIG9yIGVuY2xv
c2luZyB3aGF0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcigpIHJl
dHVybnMuCi0KLSAgICBGbG9hdFJlY3QgcmVzdWx0KG1fcG9pbnQsIEZsb2F0U2l6ZShtX3dpZHRo
LCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7Ci0gICAgcmVzdWx0LmluZmxhdGUoY01pc3Nw
ZWxsaW5nTGluZVRoaWNrbmVzcyk7IC8vIEFjY291bnQgZm9yICJtaXNzcGVsbGluZyBkb3QiIHNu
YXBwaW5nLgotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIG1fcmVjdDsKIH0KIAotc3Rh
dGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IERyYXdMaW5l
Rm9yRG9jdW1lbnRNYXJrZXImIGl0ZW0pCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlciYgaXRlbSkKIHsK
ICAgICB0cyA8PCBzdGF0aWNfY2FzdDxjb25zdCBEcmF3aW5nSXRlbSY+KGl0ZW0pOwotICAgIHRz
LmR1bXBQcm9wZXJ0eSgicG9pbnQiLCBpdGVtLnBvaW50KCkpOwotICAgIHRzLmR1bXBQcm9wZXJ0
eSgid2lkdGgiLCBpdGVtLndpZHRoKCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgicmVjdCIsIGl0
ZW0ucmVjdCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKQEAgLTk2NSw3ICs5NjAsNyBAQCBzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgSXRlbVR5cGUm
IHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6IHRzIDw8ICJkcmF3LXJlY3QiOyBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZTogdHMgPDwgImRyYXctbGluZSI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6IHRzIDw8ICJkcmF3LWxp
bmVzLWZvci10ZXh0IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmVGb3JEb2N1
bWVudE1hcmtlcjogdHMgPDwgImRyYXctbGluZXMtZm9yLWRvY3VtZW50LW1hcmtlciI7IGJyZWFr
OworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6IHRzIDw8ICJk
cmF3LWRvdHMtZm9yLWRvY3VtZW50LW1hcmtlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkRyYXdFbGxpcHNlOiB0cyA8PCAiZHJhdy1lbGxpcHNlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6RHJhd1BhdGg6IHRzIDw8ICJkcmF3LXBhdGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1U
eXBlOjpEcmF3Rm9jdXNSaW5nUGF0aDogdHMgPDwgImRyYXctZm9jdXMtcmluZy1wYXRoIjsgYnJl
YWs7CkBAIC0xMDcyLDggKzEwNjcsOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBJdGVtJiBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lc0Zv
clRleHQ6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0PERyYXdMaW5lc0ZvclRleHQ+KGl0ZW0pOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZUZvckRvY3VtZW50TWFy
a2VyOgotICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3TGluZUZvckRvY3VtZW50TWFya2VyPihp
dGVtKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgorICAg
ICAgICB0cyA8PCBkb3duY2FzdDxEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyPihpdGVtKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd0VsbGlwc2U6CiAgICAgICAgIHRz
IDw8IGRvd25jYXN0PERyYXdFbGxpcHNlPihpdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCmluZGV4IDg3MmUzMGRjZThiNzMxMjRmNDFkOTI3ODFjNTJkNGM2YTZlYTY4ODAuLjdj
N2ViNmQ3MmYxMGQxZjI2ZDAxODY3ODFiMDIyYzZkMzkyMTQwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaApAQCAtNzcsNyArNzcsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIHsK
ICAgICBEcmF3UmVjdCwKICAgICBEcmF3TGluZSwKICAgICBEcmF3TGluZXNGb3JUZXh0LAotICAg
IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIsCisgICAgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtl
ciwKICAgICBEcmF3RWxsaXBzZSwKICAgICBEcmF3UGF0aCwKICAgICBEcmF3Rm9jdXNSaW5nUGF0
aCwKQEAgLTgyOCwyMSArODI4LDE5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RvdWJsZUxpbmVz
OwogfTsKIAotY2xhc3MgRHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlciA6IHB1YmxpYyBEcmF3aW5n
SXRlbSB7CitjbGFzcyBEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyIDogcHVibGljIERyYXdpbmdJ
dGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI+
IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFy
a2VyTGluZVN0eWxlIHN0eWxlKQorICAgIHN0YXRpYyBSZWY8RHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcj4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGUgc3R5bGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEcmF3TGluZUZv
ckRvY3VtZW50TWFya2VyKHBvaW50LCB3aWR0aCwgc3R5bGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihyZWN0LCBzdHlsZSkpOwogICAg
IH0KIAotICAgIEZsb2F0UG9pbnQgcG9pbnQoKSBjb25zdCB7IHJldHVybiBtX3BvaW50OyB9Ci0g
ICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CisgICAgRmxvYXRSZWN0
IHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KIAogcHJpdmF0ZToKLSAgICBEcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB3aWR0aCwg
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCi0gICAgICAgIDogRHJhd2luZ0l0ZW0oSXRl
bVR5cGU6OkRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpCi0gICAgICAgICwgbV9wb2ludChwb2lu
dCkKLSAgICAgICAgLCBtX3dpZHRoKHdpZHRoKQorICAgIERyYXdEb3RzRm9yRG9jdW1lbnRNYXJr
ZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkK
KyAgICAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtl
cikKKyAgICAgICAgLCBtX3JlY3QocmVjdCkKICAgICAgICAgLCBtX3N0eWxlKHN0eWxlKQogICAg
IHsKICAgICB9CkBAIC04NTEsOCArODQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6b3B0aW9u
YWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIEZsb2F0UG9pbnQgbV9wb2ludDsKLSAgICBmbG9hdCBtX3dpZHRoOwor
ICAgIEZsb2F0UmVjdCBtX3JlY3Q7CiAgICAgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgbV9zdHls
ZTsKIH07CiAKQEAgLTEzNjAsNyArMTM1Nyw3IEBAIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElT
UExBWUxJU1RfSVRFTShEcmF3UGF0dGVybikKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExB
WUxJU1RfSVRFTShEcmF3UmVjdCkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1Rf
SVRFTShEcmF3TGluZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShE
cmF3TGluZXNGb3JUZXh0KQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19ESVNQTEFZTElTVF9JVEVN
KERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0RJU1BM
QVlMSVNUX0lURU0oRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcikKIFNQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3RWxsaXBzZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRElTUExBWUxJU1RfSVRFTShEcmF3UGF0aCkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElT
UExBWUxJU1RfSVRFTShEcmF3Rm9jdXNSaW5nUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcAppbmRleCBlYTI3MzI2YjU2MWYxOWRlMjI0NzNlM2JhYzgzZjQ0ZmFh
MDkyZmZkLi41MzA3ZjAyNWZiMjE4MDMyMjk5NThjYWY5MmI1MzlhNTJjZGM2NjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yMzYsOSArMjM2LDkgQEAg
dm9pZCBSZWNvcmRlcjo6ZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwg
Y29uc3QgRGFzaEFycmF5JiB3aWR0aHMKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwog
fQogCi12b2lkIFJlY29yZGVyOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0
UG9pbnQmIHBvaW50LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUp
Cit2b2lkIFJlY29yZGVyOjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7Ci0gICAgRHJhd2luZ0l0
ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4oYXBwZW5kSXRlbShEcmF3TGluZUZv
ckRvY3VtZW50TWFya2VyOjpjcmVhdGUocG9pbnQsIHdpZHRoLCBzdHlsZSkpKTsKKyAgICBEcmF3
aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJdGVtPihhcHBlbmRJdGVtKERyYXdE
b3RzRm9yRG9jdW1lbnRNYXJrZXI6OmNyZWF0ZShyZWN0LCBzdHlsZSkpKTsKICAgICB1cGRhdGVJ
dGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXIuaAppbmRleCA1YzFjMDY2MGM3ZTU3ZGQ1NGViYWVkMmJhYzM4MDQ3ZjEzOTBmOTcxLi4xYjc5
NDM3YWM3MDI4MjY2Y2Y0OWQzYTQ1NDFlNjlkNzhhYzlhMWViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTk4LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2lu
dCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGlu
ZXMsIGZsb2F0IHN0cm9rZVRoaWNrbmVzcykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkcmF3TGluZUZv
ckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcihjb25zdCBGbG9hdFJlY3QmLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2
b2lkIGRyYXdQYXRoKGNvbnN0IFBhdGgmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVy
YXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAppbmRleCA4NWQzZWMz
MGY4MmJkZGJjNzE2NTdiNTc0NmMwNmQxMTg0YzZiMTdkLi41Nzg0OTVmZWFhMzBhOTY4NDgyMDk0
Zjk2NGViMjkwOWEyZWJlMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29z
aWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApAQCAtNjUyLDIzICs2NTIsMjMgQEAgdm9pZCBD
YWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBjb25zdCBEYXMKICAgICBhcHBlbmQoY3JlYXRlQ29tbWFuZDxEcmF3TGluZXNGb3JU
ZXh0Pihwb2ludCwgd2lkdGhzLCBwcmludGluZywgZG91YmxlVW5kZXJsaW5lcywgc3RhdGUuc3Ry
b2tlQ29sb3IsIHN0YXRlLnN0cm9rZVRoaWNrbmVzcykpOwogfQogCi12b2lkIENhaXJvT3BlcmF0
aW9uUmVjb3JkZXI6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYg
b3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCit2b2lk
IENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKIHsKLSAgICBz
dHJ1Y3QgRHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlciBmaW5hbCA6IFBhaW50aW5nT3BlcmF0aW9u
LCBPcGVyYXRpb25EYXRhPEZsb2F0UG9pbnQsIGZsb2F0LCBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZT4gewotICAgICAgICB2aXJ0dWFsIH5EcmF3TGluZUZvckRvY3VtZW50TWFya2VyKCkgPSBkZWZh
dWx0OworICAgIHN0cnVjdCBEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyIGZpbmFsIDogUGFpbnRp
bmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8RmxvYXRSZWN0LCBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZT4geworICAgICAgICB2aXJ0dWFsIH5EcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKCkgPSBk
ZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQYWludGluZ09wZXJhdGlvblJlcGxheSYg
cmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIENhaXJvOjpkcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyKGNvbnRleHRGb3JSZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKSwg
YXJnPDE+KCksIGFyZzwyPigpKTsKKyAgICAgICAgICAgIENhaXJvOjpkcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyKGNvbnRleHRGb3JSZXBsYXkocmVwbGF5ZXIpLCBhcmc8MD4oKSwgYXJnPDE+KCkp
OwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRleHRTdHJlYW0mIHRzKSBvdmVycmlk
ZQogICAgICAgICB7Ci0gICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIkRyYXdMaW5lRm9yRG9j
dW1lbnRNYXJrZXI8PlxuIjsKKyAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiRHJhd0RvdHNG
b3JEb2N1bWVudE1hcmtlcjw+XG4iOwogICAgICAgICB9CiAgICAgfTsKIAotICAgIGFwcGVuZChj
cmVhdGVDb21tYW5kPERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI+KG9yaWdpbiwgd2lkdGgsIHN0
eWxlKSk7CisgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtl
cj4ocmVjdCwgc3R5bGUpKTsKIH0KIAogdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3
RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJl
Y29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJv
L05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKaW5kZXggMDA5ZWIyMjEwOGMzZTdlZjY3
ZWE1NjY1N2MyZDc5NjNjMjMzZWFkZS4uNmQ2ZmFjMzgzZTdhZjA2YzkyMTNkY2I0ZmUwODdjZDZm
Mzg0ZDkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0
aW9uUmVjb3JkZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhd1Jl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZHJhd0xpbmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5lc0ZvclRleHQoY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYsIGNvbnN0IERhc2hBcnJheSYsIGJvb2wsIGJvb2wsIGZsb2F0KSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGZsb2F0LCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYsIFdlYkNvcmU6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgV2ViQ29yZTo6UGF0aCYpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0Q0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRleCAxMjA2MzhiMjUxYjQyOTdmOWEzZGZlMTNmNTM1
ZWJhYWE5NzcyZjY4Li5jZWVmNjhlMjIzYzE1Njg5NzgyNzk5MGNiYThjNzQ3NzVlMGU3NmJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0Q0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgY29u
c3QgQ29sb3ImIGdyYW1tYXJQYXR0ZXJuQ29sb3IoKSB7CiAgICAgcmV0dXJuIGdyYW1tYXJDb2xv
cjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIo
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZSBzdHlsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUp
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTkz
LDExICsxOTMsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHcKICAgICBpZiAoc3R5bGUgIT0g
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlNwZWxsaW5nICYmIHN0eWxlICE9IERvY3VtZW50TWFy
a2VyTGluZVN0eWxlOjpHcmFtbWFyKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGVzZSBh
cmUgdGhlIHNhbWUgZm9yIG1pc3NwZWxsaW5nIG9yIGJhZCBncmFtbWFyCi0gICAgY29uc3QgaW50
IHBhdHRlcm5IZWlnaHQgPSAzOyAvLyAzIHJvd3MKLSAgICBBU1NFUlQoY01pc3NwZWxsaW5nTGlu
ZVRoaWNrbmVzcyA9PSBwYXR0ZXJuSGVpZ2h0KTsKLSAgICBjb25zdCBpbnQgcGF0dGVybldpZHRo
ID0gNDsgLy8gNCBwaXhlbHMKLSAgICBBU1NFUlQocGF0dGVybldpZHRoID09IGNNaXNzcGVsbGlu
Z0xpbmVQYXR0ZXJuV2lkdGgpOworICAgIGF1dG8gcG9pbnQgPSByZWN0LmxvY2F0aW9uKCk7Cisg
ICAgYXV0byB3aWR0aCA9IHJlY3Qud2lkdGgoKTsKKyAgICBhdXRvIGxpbmVUaGlja25lc3MgPSBy
ZWN0LmhlaWdodCgpOworICAgIGF1dG8gcGF0dGVybkdhcFdpZHRoID0gbGluZVRoaWNrbmVzcyAv
IDM7CisgICAgYXV0byBwYXR0ZXJuV2lkdGggPSBsaW5lVGhpY2tuZXNzICsgcGF0dGVybkdhcFdp
ZHRoOwogCiAgICAgLy8gTWFrZSBzdXJlIHRvIGRyYXcgb25seSBjb21wbGV0ZSBkb3RzLgogICAg
IC8vIE5PVEU6IENvZGUgaGVyZSB1c2VkIHRvIHNoaWZ0IHRoZSB1bmRlcmxpbmUgdG8gdGhlIGxl
ZnQgYW5kIGluY3JlYXNlIHRoZSB3aWR0aApAQCAtMjA2LDkgKzIwNiw5IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50LCBmbG9hdCB3CiAgICAgLy8gc3BhY2UgYmV0d2VlbiBhZGphY2VudCBtaXNzcGVsbGVkIHdv
cmRzIHdhcyB1bmRlcmxpbmVkLgogICAgIC8vIGFsbG93IHNsaWdodGx5IG1vcmUgY29uc2lkZXJp
bmcgdGhhdCB0aGUgcGF0dGVybiBlbmRzIHdpdGggYSB0cmFuc3BhcmVudCBwaXhlbAogICAgIGZs
b2F0IHdpZHRoTW9kID0gZm1vZGYod2lkdGgsIHBhdHRlcm5XaWR0aCk7Ci0gICAgaWYgKHBhdHRl
cm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aCkKKyAg
ICBpZiAocGF0dGVybldpZHRoIC0gd2lkdGhNb2QgPiBwYXR0ZXJuR2FwV2lkdGgpCiAgICAgICAg
IHdpZHRoIC09IHdpZHRoTW9kOwotICAgICAgCisKICAgICAvLyBEcmF3IHRoZSB1bmRlcmxpbmUK
ICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29u
dGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CkBAIC0yMjAsOSArMjIwLDkgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9p
bnQsIGZsb2F0IHcKICAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4dCwga0NHQmxlbmRN
b2RlTm9ybWFsKTsKICAgICAKICAgICAvLyAzIHJvd3MsIGVhY2ggb2Zmc2V0IGJ5IGhhbGYgYSBw
aXhlbCBmb3IgYmxlbmRpbmcgcHVycG9zZXMKLSAgICBjb25zdCBDR1BvaW50IHVwcGVyUG9pbnRz
IFtdID0ge3twb2ludC54KCksIHBvaW50LnkoKSArIHBhdHRlcm5IZWlnaHQgLSAyLjUgfSwge3Bv
aW50LngoKSArIHdpZHRoLCBwb2ludC55KCkgKyBwYXR0ZXJuSGVpZ2h0IC0gMi41fX07Ci0gICAg
Y29uc3QgQ0dQb2ludCBtaWRkbGVQb2ludHMgW10gPSB7e3BvaW50LngoKSwgcG9pbnQueSgpICsg
cGF0dGVybkhlaWdodCAtIDEuNSB9LCB7cG9pbnQueCgpICsgd2lkdGgsIHBvaW50LnkoKSArIHBh
dHRlcm5IZWlnaHQgLSAxLjV9fTsKLSAgICBjb25zdCBDR1BvaW50IGxvd2VyUG9pbnRzIFtdID0g
e3twb2ludC54KCksIHBvaW50LnkoKSArIHBhdHRlcm5IZWlnaHQgLSAwLjUgfSwge3BvaW50Lngo
KSArIHdpZHRoLCBwb2ludC55KCkgKyBwYXR0ZXJuSGVpZ2h0IC0gMC41IH19OworICAgIGNvbnN0
IENHUG9pbnQgdXBwZXJQb2ludHNbXSA9IHt7IHBvaW50LngoKSwgcG9pbnQueSgpICsgbGluZVRo
aWNrbmVzcyAtIDIuNSB9LCB7cG9pbnQueCgpICsgd2lkdGgsIHBvaW50LnkoKSArIGxpbmVUaGlj
a25lc3MgLSAyLjUgfX07CisgICAgY29uc3QgQ0dQb2ludCBtaWRkbGVQb2ludHNbXSA9IHt7IHBv
aW50LngoKSwgcG9pbnQueSgpICsgbGluZVRoaWNrbmVzcyAtIDEuNSB9LCB7cG9pbnQueCgpICsg
d2lkdGgsIHBvaW50LnkoKSArIGxpbmVUaGlja25lc3MgLSAxLjUgfX07CisgICAgY29uc3QgQ0dQ
b2ludCBsb3dlclBvaW50c1tdID0ge3sgcG9pbnQueCgpLCBwb2ludC55KCkgKyBsaW5lVGhpY2tu
ZXNzIC0gMC41IH0sIHtwb2ludC54KCkgKyB3aWR0aCwgcG9pbnQueSgpICsgbGluZVRoaWNrbmVz
cyAtIDAuNSB9fTsKICAgICAKICAgICAvLyBEYXNoIGxlbmd0aHMgZm9yIHRoZSB0b3AgYW5kIGJv
dHRvbSBvZiB0aGUgZXJyb3IgdW5kZXJsaW5lIGFyZSB0aGUgc2FtZS4KICAgICAvLyBUaGVzZSBh
cmUgbWFnaWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcAppbmRleCAyM2M3ZGIxYzEx
ZmRiMGQyNDJiOTQ1NjQxY2Y4YzhmMzBmNmY4ODMyLi5iYTE1MGM2OTFhZDg1YWYyMTMxNmU2OWU4
NjBhZDVmZWJlOTQ3NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAKQEAgLTMx
OSw3ICszMTksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyhjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGZsb2F0IHdpZHRoLAogewogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IGJlN2Y4ZDRlNWE1YzAyZmQw
M2FjZDk2MjRmY2IyNjk3Yjg0MmIyZDguLjdjYmMwNzhjYWIyN2VhMmUyMTU0MDA3YzE0ZWNjOTFi
YzIyN2QyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
QEAgLTY5OCwyNCArNjk4LDI1IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRQbGF0Zm9ybURv
Y3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICAgICAgd2lk
dGggPSBtYXJrZXJSZWN0LndpZHRoKCk7CiAgICAgfQogCi0gICAgYXV0byBsaW5lU3R5bGVGb3JN
YXJrZWRUZXh0VHlwZSA9IFtdIChNYXJrZWRUZXh0OjpUeXBlIHR5cGUpIHsKKyAgICBhdXRvIGxp
bmVTdHlsZUZvck1hcmtlZFRleHRUeXBlID0gWyZdIChNYXJrZWRUZXh0OjpUeXBlIHR5cGUpIC0+
IERvY3VtZW50TWFya2VyTGluZVN0eWxlIHsKKyAgICAgICAgYm9vbCBzaG91bGRVc2VEYXJrQXBw
ZWFyYW5jZSA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgpOwogICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBNYXJrZWRUZXh0OjpTcGVsbGluZ0Vy
cm9yOgotICAgICAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGlu
ZzsKKyAgICAgICAgICAgIHJldHVybiB7IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpT
cGVsbGluZywgc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfTsKICAgICAgICAgY2FzZSBNYXJrZWRU
ZXh0OjpHcmFtbWFyRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6OkdyYW1tYXI7CisgICAgICAgICAgICByZXR1cm4geyBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZTo6TW9kZTo6R3JhbW1hciwgc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfTsKICAgICAgICAg
Y2FzZSBNYXJrZWRUZXh0OjpDb3JyZWN0aW9uOgotICAgICAgICAgICAgcmV0dXJuIERvY3VtZW50
TWFya2VyTGluZVN0eWxlOjpBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50OworICAgICAgICAgICAg
cmV0dXJuIHsgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OkF1dG9jb3JyZWN0aW9uUmVw
bGFjZW1lbnQsIHNob3VsZFVzZURhcmtBcHBlYXJhbmNlIH07CiAgICAgICAgIGNhc2UgTWFya2Vk
VGV4dDo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgotICAgICAgICAgICAgcmV0dXJuIERvY3VtZW50
TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM7CisgICAgICAgICAgICByZXR1
cm4geyBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVz
LCBzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgICAgIGNhc2UgTWFya2VkVGV4dDo6RGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlczoK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBSZW5hbWUgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OlRl
eHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXMgYW5kIHJlbW92ZSB0aGUg
UExBVEZPUk0oSU9TX0ZBTUlMWSktZ3VhcmQuCi0gICAgICAgICAgICByZXR1cm4gRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2
ZXM7CisgICAgICAgICAgICByZXR1cm4geyBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6
VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlcywgc2hvdWxkVXNlRGFy
a0FwcGVhcmFuY2UgfTsKICNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6OlNwZWxsaW5nOworICAgICAgICAgICAgcmV0dXJuIHsgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGU6Ok1vZGU6OlNwZWxsaW5nLCBzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9OwogICAgICAg
ICB9CiAgICAgfTsKIApAQCAtNzI1LDcgKzcyNiw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QK
ICAgICAvLyBvciBkZWNyZWFzZSB0aGUgdW5kZXJsaW5lIHRoaWNrbmVzcy4gIFRoZSBvdmVybGFw
IGlzIGFjdHVhbGx5IHRoZSBtb3N0IHVzZWZ1bCwgYW5kIG1hdGNoZXMgd2hhdCBBcHBLaXQgZG9l
cy4KICAgICAvLyBTbywgd2UgZ2VuZXJhbGx5IHBsYWNlIHRoZSB1bmRlcmxpbmUgYXQgdGhlIGJv
dHRvbSBvZiB0aGUgdGV4dCwgYnV0IGluIGxhcmdlciBmb250cyB0aGF0J3Mgbm90IHNvIGdvb2Qg
c28KICAgICAvLyB3ZSBwaW4gdG8gdHdvIHBpeGVscyB1bmRlciB0aGUgYmFzZWxpbmUuCi0gICAg
aW50IGxpbmVUaGlja25lc3MgPSBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzOworICAgIGludCBs
aW5lVGhpY2tuZXNzID0gMzsKICAgICBpbnQgYmFzZWxpbmUgPSBsaW5lU3R5bGUoKS5mb250TWV0
cmljcygpLmFzY2VudCgpOwogICAgIGludCBkZXNjZW50ID0gbG9naWNhbEhlaWdodCgpIC0gYmFz
ZWxpbmU7CiAgICAgaW50IHVuZGVybGluZU9mZnNldDsKQEAgLTczNywxMSArNzM4LDcgQEAgdm9p
ZCBJbmxpbmVUZXh0Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdAogICAgICAgICB1bmRlcmxpbmVPZmZzZXQgPSBiYXNlbGluZSAr
IDI7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgUmVuZGVyVGhlbWU6OnNpbmds
ZXRvbigpLmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIocmVuZGVyZXIoKSwgY29udGV4dCwgRmxv
YXRQb2ludChib3hPcmlnaW4ueCgpICsgc3RhcnQsIGJveE9yaWdpbi55KCkgKyB1bmRlcmxpbmVP
ZmZzZXQpLCB3aWR0aCwgbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5cGUobWFya2VkVGV4dC50eXBl
KSk7Ci0jZWxzZQotICAgIGNvbnRleHQuZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihGbG9hdFBv
aW50KGJveE9yaWdpbi54KCkgKyBzdGFydCwgYm94T3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNl
dCksIHdpZHRoLCBsaW5lU3R5bGVGb3JNYXJrZWRUZXh0VHlwZShtYXJrZWRUZXh0LnR5cGUpKTsK
LSNlbmRpZgorICAgIGNvbnRleHQuZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihGbG9hdFJlY3Qo
Ym94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4ueSgpICsgdW5kZXJsaW5lT2Zmc2V0LCB3
aWR0aCwgbGluZVRoaWNrbmVzcyksIGxpbmVTdHlsZUZvck1hcmtlZFRleHRUeXBlKG1hcmtlZFRl
eHQudHlwZSkpOwogfQogCiBhdXRvIElubGluZVRleHRCb3g6OmNvbXB1dGVTdHlsZUZvclVubWFy
a2VkTWFya2VkVGV4dChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbykgY29uc3QgLT4gTWFya2Vk
VGV4dFN0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAw
ZjY0MzA1NDZlMzI5YTY4NTZlYmU2YTczYjY0OWQyNmRlYmM4MDQ5Li5hYmY3NjAwMDk2ZGJjNWYy
ODcwMTNmY2E2ODUyMTcxMzY1OTI2N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKQEAgLTE0NzQsOCArMTQ3NCw0IEBAIENvbG9yIFJlbmRlclRoZW1lOjpwbGF0
Zm9ybVRhcEhpZ2hsaWdodENvbG9yKCkgY29uc3QKIAogI2VuZGlmCiAKLXZvaWQgUmVuZGVyVGhl
bWU6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYsIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGUpCi17Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKaW5kZXggNmQ1MjQ5ODA5NGM4MTNiZTk2ZjBmY2JjOWE2NzQ4ZDcwOGQ3
YzJkZC4uMDkyZmVmODE1NTAwZTg5ZGRmNWVmMzFjYzNkNzY3ODM0MGE5OGMwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTI2MSw4ICsyNjEsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50U3lzdGVtUHJldmlld0JhZGdlKEltYWdlJiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jik7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9p
ZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IFJlbmRlclRleHQmLCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgdXNpbmdEYXJrQXBwZWFyYW5jZShj
b25zdCBSZW5kZXJPYmplY3QmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaAppbmRleCAxNmRl
OTY1NGZiMjZhZWFhYWFiMWFkODM5MzgzMTM4YTU2YmZlMzFjLi5hNDY0YzEwNDAyZjA0NzEzMjg2
YjQ0NjBjNzExODM3YTYyNzg3ZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNvY29hLmgKQEAgLTM2LDE1ICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFJlbmRlclRoZW1lQ29jb2EgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogcHJpdmF0ZToK
LSAgICB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYsIEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERv
Y3VtZW50TWFya2VyTGluZVN0eWxlKSBmaW5hbDsKLQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAg
ICAgdm9pZCBhZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJT
dHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhaW50QXBw
bGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlmCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBDR0Nv
bG9yUmVmIGNvbG9yRm9yTWFya2VyTGluZVN0eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlLCBi
b29sIHVzZURhcmtNb2RlKSA9IDA7CiAKK3Byb3RlY3RlZDoKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgU3RyaW5nIG1lZGlhQ29udHJvbHNGb3JtYXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihkb3VibGUp
IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNvY29hLm1tCmluZGV4IDgzNWE2OTUyM2E0OTVmNWYxZGMzZGYxMjg4MzNkNTU3OWVhMjYyMWQu
LmZlYWNmYzViMzNjNzVkNmEwOWEyZThjYWFjYzkwYzMyNDBhMjIxODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC01MSwzMyArNTEsNiBAQCBT
T0ZUX0xJTktfTUFZX0ZBSUwoUGFzc0tpdCwgUEtEcmF3QXBwbGVQYXlCdXR0b24sIHZvaWQsIChD
R0NvbnRleHRSZWYgY29udGV4dCwgQwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgUmVu
ZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBSZW5kZXJUZXh0
JiByZW5kZXJlciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBv
cmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKLXsKLSAg
ICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGF1dG8gY2lyY2xlQ29sb3IgPSBjb2xvckZvck1hcmtlckxpbmVTdHlsZShzdHlsZSwgcmVuZGVy
ZXIuZG9jdW1lbnQoKS51c2VEYXJrQXBwZWFyYW5jZSgpKTsKLQotICAgIC8vIENlbnRlciB0aGUg
dW5kZXJsaW5lIGFuZCBlbnN1cmUgd2Ugb25seSBkcmF3IGVudGlyZSBkb3RzLgotICAgIEZsb2F0
UG9pbnQgb2Zmc2V0UG9pbnQgPSBvcmlnaW47Ci0gICAgZmxvYXQgd2lkdGhNb2QgPSBmbW9kZih3
aWR0aCwgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCk7Ci0gICAgaWYgKGNNaXNzcGVsbGlu
Z0xpbmVQYXR0ZXJuV2lkdGggLSB3aWR0aE1vZCA+IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2Fw
V2lkdGgpIHsKLSAgICAgICAgZmxvYXQgZ2FwSW5jbHVkZVdpZHRoID0gMDsKLSAgICAgICAgaWYg
KHdpZHRoID4gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCkKLSAgICAgICAgICAgIGdhcElu
Y2x1ZGVXaWR0aCA9IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuR2FwV2lkdGg7Ci0gICAgICAgIG9m
ZnNldFBvaW50Lm1vdmUoZmxvb3IoKHdpZHRoTW9kICsgZ2FwSW5jbHVkZVdpZHRoKSAvIDIpLCAw
KTsKLSAgICAgICAgd2lkdGggLT0gd2lkdGhNb2Q7Ci0gICAgfQotCi0gICAgQ0dDb250ZXh0UmVm
IHBsYXRmb3JtQ29udGV4dCA9IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgQ0dDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyIHsgcGxhdGZvcm1Db250ZXh0IH07Ci0gICAgQ0dDb250
ZXh0U2V0RmlsbENvbG9yV2l0aENvbG9yKHBsYXRmb3JtQ29udGV4dCwgY2lyY2xlQ29sb3IpOwot
ICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHggKz0gY01pc3NwZWxsaW5nTGluZVBhdHRl
cm5XaWR0aCkKLSAgICAgICAgQ0dDb250ZXh0QWRkRWxsaXBzZUluUmVjdChwbGF0Zm9ybUNvbnRl
eHQsIENHUmVjdE1ha2Uob2Zmc2V0UG9pbnQueCgpICsgeCwgb2Zmc2V0UG9pbnQueSgpLCBjTWlz
c3BlbGxpbmdMaW5lVGhpY2tuZXNzLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7Ci0gICAg
Q0dDb250ZXh0U2V0Q29tcG9zaXRlT3BlcmF0aW9uKHBsYXRmb3JtQ29udGV4dCwga0NHQ29tcG9z
aXRlU292ZXIpOwotICAgIENHQ29udGV4dEZpbGxQYXRoKHBsYXRmb3JtQ29udGV4dCk7Ci19Ci0K
ICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiBzdGF0aWMgY29uc3QgYXV0byBhcHBsZVBheUJ1dHRv
bk1pbmltdW1XaWR0aCA9IDE0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgKaW5kZXggOGUwOWRmZDVmMzk5MWZjNDFjYjRhMjFkNWE5NDIzNWNmN2NjZjA3NS4uZDRk
NmVmOTgxODgzYmFhZmVhYTA2OGRhMjI3MTI3Yzc4YTk3NmQwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTE1OCw4ICsxNTgsNiBAQCBwcml2YXRlOgog
CiAgICAgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+KSBjb25zdCBvdmVycmlkZTsKIAotICAgIENHQ29sb3JSZWYgY29sb3JGb3JNYXJr
ZXJMaW5lU3R5bGUoRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUsIGJvb2wgdXNlRGFya01vZGUpIG92
ZXJyaWRlOwotCiAgICAgU3RyaW5nIG1fbGVnYWN5TWVkaWFDb250cm9sc1NjcmlwdDsKICAgICBT
dHJpbmcgbV9tZWRpYUNvbnRyb2xzU2NyaXB0OwogICAgIFN0cmluZyBtX2xlZ2FjeU1lZGlhQ29u
dHJvbHNTdHlsZVNoZWV0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tCmluZGV4IDJlOTE4MGY4ZTIwZWE0YTdkM2I2MzAyOGZlMGVlMWYzMGY3MTI1NmYuLmE2Yzkx
MDM0YjhkNDkzNWQxMjIwNWU2ZGM4MGFjMzhlNGRiNGM2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTE0MTcsMjAgKzE0MTcsNiBAQCBTdHJpbmcg
UmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNCYXNlNjRTdHJpbmdGb3JJY29uTmFtZUFuZFR5
cGUoY29uc3QgU3RyaW5nJgogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCi1DR0NvbG9yUmVm
IFJlbmRlclRoZW1lSU9TOjpjb2xvckZvck1hcmtlckxpbmVTdHlsZShEb2N1bWVudE1hcmtlckxp
bmVTdHlsZSBzdHlsZSwgYm9vbCkKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKSB7Ci0gICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6Ci0gICAgICAgIHJldHVybiBbZ2V0VUlD
b2xvckNsYXNzKCkgc3lzdGVtUmVkQ29sb3JdLkNHQ29sb3I7Ci0gICAgY2FzZSBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2
ZXM6Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBs
YWNlbWVudDoKLSAgICAgICAgcmV0dXJuIFtnZXRVSUNvbG9yQ2xhc3MoKSBzeXN0ZW1CbHVlQ29s
b3JdLkNHQ29sb3I7Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcjoK
LSAgICAgICAgcmV0dXJuIFtnZXRVSUNvbG9yQ2xhc3MoKSBzeXN0ZW1HcmVlbkNvbG9yXS5DR0Nv
bG9yOwotICAgIH0KLX0KLQogQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1Zh
bHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMp
IGNvbnN0CiB7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCBkZjRkOTUxYzVhNTc1ZWU0OTFmMGU2Yjk3
NzYyNDRjN2U4NGM5OTc5Li5kODU3NjFhYmM5YjEyZGZkZGE1NTQ1ZGQxNGY4MDM0OTYzNzk1MGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtMTgxLDgg
KzE4MSw2IEBAIHByaXZhdGU6CiAKICAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IGZpbmFsOwogCi0gICAgQ0dDb2xv
clJlZiBjb2xvckZvck1hcmtlckxpbmVTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZSwgYm9v
bCB1c2VEYXJrTW9kZSkgb3ZlcnJpZGU7Ci0KICAgICBDb2xvckNhY2hlJiBjb2xvckNhY2hlKE9w
dGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHB1
cmdlQ2FjaGVzKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KaW5kZXggNDBhOGFlMGMyNzZhYWRiMjg5MmFiMDJjZjUxYjNlZDg4OTY1N2ZhZi4uM2Zi
ZDYwZDYxNzE3OWQ4MGIxOTI2NTlhOWI4ZjBiYzljOWU2Y2RkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjk5OSwyMyArMjk5OSw2IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnVzaW5nRGFya0FwcGVhcmFuY2UoY29uc3QgUmVuZGVyT2JqZWN0JiBv
KSBjb25zdAogICAgIHJldHVybiBvLmRvY3VtZW50KCkudXNlRGFya0FwcGVhcmFuY2UoKTsKIH0K
IAotQ0dDb2xvclJlZiBSZW5kZXJUaGVtZU1hYzo6Y29sb3JGb3JNYXJrZXJMaW5lU3R5bGUoRG9j
dW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUsIGJvb2wgdXNlRGFya01vZGUpCi17Ci0gICAgc3dp
dGNoIChzdHlsZSkgewotICAgIC8vIFJlZAotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGU6OlNwZWxsaW5nOgotICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/
IENvbG9yIHsgMjU1LCAxNDAsIDE0MCwgMjE3IH0gOiBDb2xvciB7IDI1NSwgNTksIDQ4LCAxOTEg
fSk7Ci0gICAgLy8gQmx1ZQotICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3Rh
dGlvbkFsdGVybmF0aXZlczoKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpUZXh0
Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGU6OkF1dG9jb3JyZWN0aW9uUmVwbGFjZW1lbnQ6Ci0gICAgICAgIHJl
dHVybiBjYWNoZWRDR0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyA0MCwgMTQ1LCAyNTUsIDIx
NyB9IDogQ29sb3IgeyAwLCAxMjIsIDI1NSwgMTkxIH0pOwotICAgIC8vIEdyZWVuCi0gICAgY2Fz
ZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcjoKLSAgICAgICAgcmV0dXJuIGNhY2hl
ZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xvciB7IDUwLCAyMTUsIDc1LCAyMTcgfSA6IENvbG9y
IHsgMjUsIDE3NSwgNTAsIDE5MSB9KTsKLSAgICB9Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>
<flag name="review"
          id="370950"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353750</attachid>
            <date>2018-11-02 17:24:01 -0700</date>
            <delta_ts>2018-11-02 17:25:38 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-191215-20181102172400.patch</filename>
            <type>text/plain</type>
            <size>45707</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVhODE0NWI2OGExNTkx
YjZmOTVmMTg1MzFkMTAxZGFmMzZjZWU2Yi4uNWZkM2JkMzRkYmFjZGEyMzc1ZDJlMDI0MzBiNDBl
NDJjYTkwMDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE4LTExLTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAg
ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBBbGFuIEJ1
anRhcy4KKworICAgICAgICBJbiBwcmVwYXJhdGlvbiBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5MDc2NCwgSSBuZWVkIHRvIGRvIGEgbGl0dGxlIGJpdCBvZiBy
ZWZhY3RvcmluZy4KKyAgICAgICAgVGhpcyBwYXRjaCBoYXMgbm8gYmVoYXZpb3IgY2hhbmdlOyBp
dCBqdXN0IGRvZXMgdGhlIGZvbGxvd2luZzoKKworICAgICAgICAxLiBSZW5hbWVzIGRyYXdMaW5l
Rm9yRG9jdW1lbnRNYXJrZXIoKSB0byBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKCksIGJlY2F1
c2UgMiBvZiB0aGUgMyBpbXBsZW1lbnRhdGlvbnMgZHJhdyBkb3RzCisgICAgICAgIDIuIE1vdmVz
IG91ciBpbXBsZW1lbnRhdGlvbiBiYWNrIGludG8gR3JhcGhpY3NDb250ZXh0LCBiZWNhdXNlIGl0
J3Mgc2ltcGxlciBhbmQgIEdyYXBoaWNzQ29udGV4dCBpcyBhbHJlYWR5IHBsYXRmb3JtLQorICAg
ICAgICAgICAgICAgc3BlY2lmaWMuCisgICAgICAgIDMuIFRoZSBzaWduYXR1cmUgdXNlZCB0byBh
Y2NlcHQgYSBsb2NhdGlvbiBhbmQgYSB3aWR0aCwgYnV0IHdpdGhvdXQgYSBoZWlnaHQsIGl0J3Mg
ZGlmZmljdWx0IHRvIGtub3cgd2hhdCB0aGUgYm91bmRpbmcKKyAgICAgICAgICAgICAgIGJveCBp
cy4gSW4gcGFydGljdWxhciwga25vd2luZyB0aGUgYm91bmRpbmcgYm94IG11c3QgYmUgcG9zc2li
bGUgd2l0aG91dCBhIEdyYXBoaWNzQ29udGV4dC4gU28sIEkndmUgbW9kaWZpZWQKKyAgICAgICAg
ICAgICAgIHRoZSBzaWduYXR1cmUgdG8gYWNjZXB0IGEgcmVjdGFuZ2xlIGluc3RlYWQuIFRoZSBH
cmFwaGljc0NvbnRleHQgZHJhd3Mgb25seSB3aXRoaW4gdGhpcyByZWN0YW5nbGUuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpD
YWlybzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxD
YWlybzo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxD
YWlyby5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29j
b2EubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpjb2xvckZvck1hcmtlckxpbmVTdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3Vt
ZW50TWFya2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbTo6c2l6ZUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRy
YXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOjpsb2NhbEJvdW5kcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6YXBwbHkg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5l
Rm9yRG9jdW1lbnRNYXJrZXI6OmxvY2FsQm91bmRzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0RvdHNGb3JEb2N1bWVu
dE1hcmtlcjo6cmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJh
d0RvdHNGb3JEb2N1bWVudE1hcmtlcjo6RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TGluZUZv
ckRvY3VtZW50TWFya2VyOjpwb2ludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjo6d2lkdGggY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdMaW5lRm9yRG9jdW1l
bnRNYXJrZXI6OkRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRl
ci5jcHA6CisgICAgICAgIChOaWNvc2lhOjpDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3RG90
c0ZvckRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKE5pY29zaWE6OkNhaXJvT3BlcmF0aW9uUmVj
b3JkZXI6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fpcm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3Jk
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3RG90c0ZvckRv
Y3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xp
bmVGb3JEb2N1bWVudE1hcmtlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dERpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpOiBEZWxldGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZVRleHRCb3g6OnBhaW50UGxhdGZvcm1Eb2N1bWVudE1hcmtlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2Nv
YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcik6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVJT1M6OmNvbG9yRm9yTWFya2VyTGluZVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6Y29sb3JGb3JNYXJrZXJM
aW5lU3R5bGUpOiBEZWxldGVkLgorCiAyMDE4LTExLTAyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVucmV2aWV3ZWQsIGFub3Ro
ZXIgLS1uby12aWRlbyAtLW5vLXdlYi1hdWRpbyBidWlsZCBmaXggZm9sbG93aW5nIHIyMzc2NzcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKaW5kZXggYTNkZTg2ZDU3MmZiMTUzNGRlODAwY2ZkNjM4YjM1MDkwM2Y1YzFiYS4uODYxOTA1
MzM5YTQxZDIyYTgzMmZlNzFhM2JlZjY5MmUyM2NhODBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTczLDEwICs3Myw2
IEBAIGNsYXNzIEZvbnQ7CiBjbGFzcyBHbHlwaEJ1ZmZlcjsKICNlbmRpZgogCi1jb25zdCBpbnQg
Y01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcyA9IDM7Ci1jb25zdCBpbnQgY01pc3NwZWxsaW5nTGlu
ZVBhdHRlcm5XaWR0aCA9IDQ7Ci1jb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBX
aWR0aCA9IDE7Ci0KIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEZsb2F0Um91bmRlZFJl
Y3Q7CiBjbGFzcyBHcmFkaWVudDsKQEAgLTEwOSwxMiArMTA1LDE1IEBAIGVudW0gU3Ryb2tlU3R5
bGUgewogICAgIFdhdnlTdHJva2UsCiB9OwogCi1lbnVtIGNsYXNzIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlIDogdWludDhfdCB7Ci0gICAgVGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFs
dGVybmF0aXZlcywKLSAgICBTcGVsbGluZywKLSAgICBHcmFtbWFyLAotICAgIEF1dG9jb3JyZWN0
aW9uUmVwbGFjZW1lbnQsCi0gICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzCitzdHJ1Y3QgRG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGUgeworICAgIGVudW0gY2xhc3MgTW9kZSA6IHVpbnQ4X3QgeworICAg
ICAgICBUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzLAorICAgICAg
ICBTcGVsbGluZywKKyAgICAgICAgR3JhbW1hciwKKyAgICAgICAgQXV0b2NvcnJlY3Rpb25SZXBs
YWNlbWVudCwKKyAgICAgICAgRGljdGF0aW9uQWx0ZXJuYXRpdmVzCisgICAgfSBtb2RlOworICAg
IGJvb2wgc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgeyBmYWxzZSB9OwogfTsKIAogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKQEAgLTQyMiw3ICs0MjEsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0
IGNvbXB1dGVVbmRlcmxpbmVCb3VuZHNGb3JUZXh0KGNvbnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB3
aWR0aCwgYm9vbCBwcmludGluZyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkcmF3TGluZUZv
clRleHQoY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0IHdpZHRoLCBib29sIHByaW50aW5nLCBib29s
IGRvdWJsZUxpbmVzID0gZmFsc2UsIFN0cm9rZVN0eWxlID0gU29saWRTdHJva2UpOwogICAgIHZv
aWQgZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRGFzaEFycmF5JiB3
aWR0aHMsIGJvb2wgcHJpbnRpbmcsIGJvb2wgZG91YmxlTGluZXMgPSBmYWxzZSwgU3Ryb2tlU3R5
bGUgPSBTb2xpZFN0cm9rZSk7Ci0gICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNv
bnN0IEZsb2F0UG9pbnQmLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpOwor
ICAgIHZvaWQgZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmLCBEb2N1
bWVudE1hcmtlckxpbmVTdHlsZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luVHJh
bnNwYXJlbmN5TGF5ZXIoZmxvYXQgb3BhY2l0eSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmRUcmFuc3BhcmVuY3lMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5oCmluZGV4IDQ3ZmI0YTQyZWU0M2I0ZWZk
MTZmYmJiNDQ0OGVjMWQ5MWY4ZGEzNzcuLmQ0OGI5MjRlYjYwNDM2ZDgzMWE5OGU1Njk1YTkzMDgy
NTM4ZjQyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRJbXBsLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBib3JkZXJUaGlja25l
c3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xpbmUoY29uc3QgRmxvYXRQb2ludCYsIGNv
bnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMaW5lc0ZvclRleHQo
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50aW5n
LCBib29sIGRvdWJsZUxpbmVzLCBmbG9hdCBzdHJva2VUaGlja25lc3MpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiwgZmxv
YXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiwgRG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgRmxv
YXRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJikgPSAw
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb09wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQ2Fpcm9PcGVyYXRpb25zLmNwcAppbmRleCA4M2MyYjBhZTJkNWYyNDg4MTFlODk5ZTExNzAw
NjBlZjZmNTE1YmU5Li5mNjVlZTI1NjU3MmIyMThlZDdkZTlmZjE4YWI2MzA2ZWEzY2Y3OTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09w
ZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvT3BlcmF0aW9ucy5jcHAKQEAgLTEwNDksMjEgKzEwNDksMjEgQEAgdm9pZCBkcmF3TGlu
ZXNGb3JUZXh0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZs
b2F0UG9pbnQmIHAKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBkcmF3TGluZUZv
ckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNv
bnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0
eWxlIHN0eWxlKQordm9pZCBkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUgc3R5bGUpCiB7Ci0gICAgaWYgKHN0eWxlICE9IERvY3VtZW50TWFya2Vy
TGluZVN0eWxlOjpTcGVsbGluZwotICAgICAgICAmJiBzdHlsZSAhPSBEb2N1bWVudE1hcmtlckxp
bmVTdHlsZTo6R3JhbW1hcikKKyAgICBpZiAoc3R5bGUubW9kZSAhPSBEb2N1bWVudE1hcmtlckxp
bmVTdHlsZTo6TW9kZTo6U3BlbGxpbmcKKyAgICAgICAgJiYgc3R5bGUubW9kZSAhPSBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6R3JhbW1hcikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Y2Fpcm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKICAgICBjYWlyb19zYXZlKGNyKTsK
IAotICAgIGlmIChzdHlsZSA9PSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmcpCisg
ICAgaWYgKHN0eWxlLm1vZGUgPT0gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlNwZWxs
aW5nKQogICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYihjciwgMSwgMCwgMCk7Ci0gICAgZWxz
ZSBpZiAoc3R5bGUgPT0gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkdyYW1tYXIpCisgICAgZWxz
ZSBpZiAoc3R5bGUubW9kZSA9PSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6R3JhbW1h
cikKICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IoY3IsIDAsIDEsIDApOwogCi0gICAgZHJh
d0Vycm9yVW5kZXJsaW5lKGNyLCBvcmlnaW4ueCgpLCBvcmlnaW4ueSgpLCB3aWR0aCwgY01pc3Nw
ZWxsaW5nTGluZVRoaWNrbmVzcyk7CisgICAgZHJhd0Vycm9yVW5kZXJsaW5lKGNyLCByZWN0Lngo
KSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fpcm9fcmVz
dG9yZShjcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKaW5kZXggMzliNTJhNzIxMjI0ZTBiMDAzZWEz
MzQyODlkMmEwMDdhOTJjNDdlYi4uY2I3OGRmYjFiNWFhODM3NjAyZWM1MmM0MTRlYmRmYzQ1NzNh
ZGQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Q2Fpcm9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRyYXdTdXJmYWNlKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90
KiwgY29uc3QgRgogdm9pZCBkcmF3UmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZs
b2F0UmVjdCYsIGZsb2F0LCBjb25zdCBDb2xvciYsIFN0cm9rZVN0eWxlLCBjb25zdCBDb2xvciYp
Owogdm9pZCBkcmF3TGluZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBGbG9hdFBvaW50JiwgU3Ryb2tlU3R5bGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGJv
b2wpOwogdm9pZCBkcmF3TGluZXNGb3JUZXh0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IERhc2hBcnJheSYsIGJvb2wsIGJvb2wsIGNvbnN0IENvbG9yJiwg
ZmxvYXQpOwotdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKFBsYXRmb3JtQ29udGV4dENh
aXJvJiwgY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSk7
Cit2b2lkIGRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBj
b25zdCBGbG9hdFJlY3QmLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSk7CiB2b2lkIGRyYXdFbGxp
cHNlKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQ29sb3Im
LCBTdHJva2VTdHlsZSwgY29uc3QgQ29sb3ImLCBmbG9hdCk7CiAKIHZvaWQgZHJhd0ZvY3VzUmlu
ZyhQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IFBhdGgmLCBmbG9hdCwgY29uc3QgQ29sb3Im
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCA1Zjg1NzBiMTIxNzA1YTZiYTkx
NTA2ZTMxYmVkOTdmNjQ3ODhjZjZmLi4yZjhiOTI1ODZkM2U4ZDk0ODFlMTlhMjQ5OGQ4MmY3ZGI1
ZmY5MDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC0zMzcsMTggKzMzNywx
OCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBv
aW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JgogICAgIENhaXJvOjpkcmF3TGluZXNGb3JUZXh0
KCpwbGF0Zm9ybUNvbnRleHQoKSwgcG9pbnQsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZVVuZGVy
bGluZXMsIG1fc3RhdGUuc3Ryb2tlQ29sb3IsIG1fc3RhdGUuc3Ryb2tlVGhpY2tuZXNzKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3Qg
RmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUg
c3R5bGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQogewog
ICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICht
X2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5kcmF3TGluZUZvckRvY3VtZW50TWFya2VyKG9yaWdp
biwgd2lkdGgsIHN0eWxlKTsKKyAgICAgICAgbV9pbXBsLT5kcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyKHJlY3QsIHN0eWxlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIEFTU0VSVCho
YXNQbGF0Zm9ybUNvbnRleHQoKSk7Ci0gICAgQ2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXIoKnBsYXRmb3JtQ29udGV4dCgpLCBvcmlnaW4sIHdpZHRoLCBzdHlsZSk7CisgICAgQ2Fpcm86
OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBzdHls
ZSk7CiB9CiAKIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2VQaXhlbHMo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBSb3VuZGluZ01vZGUgcm91bmRpbmdNb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKaW5kZXggN2U5YjlkZTljY2I4MjlhYjk3MGZm
MmYzMzZiZDkwODA1MGJmMWE5NS4uYzc3ZGZiNzA2NmMxOGQ1NmYzZDljYzFkNzkwYzkzMzU2YzQ2
NDFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCkBAIC0zMDMsOSAr
MzAzLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdMaW5lc0ZvclRleHQo
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNvbnN0IEQKICAgICBDYWlybzo6ZHJhd0xpbmVzRm9y
VGV4dChtX3BsYXRmb3JtQ29udGV4dCwgcG9pbnQsIHdpZHRocywgcHJpbnRpbmcsIGRvdWJsZVVu
ZGVybGluZXMsIHN0YXRlLnN0cm9rZUNvbG9yLCBzdGF0ZS5zdHJva2VUaGlja25lc3MpOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtl
cihjb25zdCBGbG9hdFBvaW50JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxp
bmVTdHlsZSBzdHlsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGUgc3R5bGUpCiB7Ci0gICAgQ2Fpcm86OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIobV9w
bGF0Zm9ybUNvbnRleHQsIG9yaWdpbiwgd2lkdGgsIHN0eWxlKTsKKyAgICBDYWlybzo6ZHJhd0Rv
dHNGb3JEb2N1bWVudE1hcmtlcihtX3BsYXRmb3JtQ29udGV4dCwgcmVjdCwgc3R5bGUpOwogfQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0VsbGlwc2UoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAppbmRleCAzMGQzZWM2
NDMzMWEyNmQwN2Q0NDc2NmJjNDkyMGViNzQ1ZDBjM2Y4Li4yZDc0Mjg1MmVjNDRlYmRlZmNkYmM1
N2M5MWM1YTBlZGM3M2ZmOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uaApA
QCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UmVjdChjb25zdCBGbG9hdFJl
Y3QmLCBmbG9hdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmVzRm9yVGV4
dChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRGFzaEFycmF5JiwgYm9vbCwgYm9vbCwgZmxvYXQp
IG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9h
dFBvaW50JiwgZmxvYXQsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiwgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0VsbGlwc2UoY29uc3QgRmxv
YXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJikgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYXNjYWRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FzY2FkZUNvY29hLm1tCmluZGV4IGEwODkyZGMwZTFiNzdiMWIyYzY0NWZiNTI0
MTQxNDI2ODE4YmYzNmIuLjRkYTVlZDUzNmUwNTNmN2ZmODc1YzdiOTU4Y2QzYWYwMmY0OTdhN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YXNjYWRlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhc2NhZGVDb2NvYS5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2VuZGlmCiAjaW1wb3J0
IDx3dGYvTWF0aEV4dHJhcy5oPgogCi0jaWYgRU5BQkxFKExFVFRFUlBSRVNTKQorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9Db3JlVUlTUEkuaD4KICNpbXBv
cnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCkBAIC00Nyw2ICs0Nyw3IEBAIFNPRlRfTElOS19DTEFT
UyhDb3JlVUksIENVSVN0eWxlRWZmZWN0Q29uZmlndXJhdGlvbikKIAogU09GVF9MSU5LX0ZSQU1F
V09SSyhVSUtpdCkKIFNPRlRfTElOSyhVSUtpdCwgX1VJS2l0R2V0VGV4dEVmZmVjdHNDYXRhbG9n
LCBDVUlDYXRhbG9nICosICh2b2lkKSwgKCkpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQ29s
b3IpCiAjZW5kaWYKIAogI2lmZGVmIF9fTFA2NF9fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1t
CmluZGV4IGU2M2VlZWFkYjUzZjgzMmMyZjBlZDU5NmFiMDcyZWEzOTU0MzY4OTMuLjQ4YjViOTQ1
NWE0ZTAzNmNjZmJiZGFmODQwNThmNjI5MzViZjAyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dENv
Y29hLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNHcmFw
aGljc1NQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvU3Rk
TGliRXh0cmFzLmg+CiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNDEsNiArNDIsNyBAQAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9ydCAiV0tHcmFwaGlj
cy5oIgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtMTgxLDEwICsxODMsNjYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldFBh
dHRlcm5QaGFzZUluVXNlclNwYWNlKENHQ29udGV4dFJlZiBjb250ZXh0LCBDR1BvaW50IHBoYXMK
ICAgICBDR0NvbnRleHRTZXRQYXR0ZXJuUGhhc2UoY29udGV4dCwgQ0dTaXplTWFrZShwaGFzZS54
LCBwaGFzZS55KSk7CiB9CiAKLS8vIEZJWE1FOiBXZSBuZWVkIHRvIGtlZXAgdGhpcyBmdW5jdGlv
biBzaW5jZSBpdCBpcyByZWZlcmVuY2VkIGJ5IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI6OmFw
cGx5KCkuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBGbG9hdFBvaW50JiwgZmxvYXQsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKQorc3RhdGlj
IENHQ29sb3JSZWYgY29sb3JGb3JNYXJrZXJMaW5lU3R5bGUoRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGU6Ok1vZGUgc3R5bGUsIGJvb2wgdXNlRGFya01vZGUpCiB7Ci0gICAgLy8gQ29jb2EgcGxhdGZv
cm1zIHVzZSBSZW5kZXJUaGVtZTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcigpIHRvIHBhaW50
IHRoZSBwbGF0Zm9ybSBkb2N1bWVudCBtYXJrZXJzLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBz
d2l0Y2ggKHN0eWxlKSB7CisgICAgLy8gUmVkCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZTo6TW9kZTo6U3BlbGxpbmc6CisgICAgICAgIHJldHVybiBjYWNoZWRDR0NvbG9yKHVzZURh
cmtNb2RlID8gQ29sb3IgeyAyNTUsIDE0MCwgMTQwLCAyMTcgfSA6IENvbG9yIHsgMjU1LCA1OSwg
NDgsIDE5MSB9KTsKKyAgICAvLyBCbHVlCisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHls
ZTo6TW9kZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJM
aW5lU3R5bGU6Ok1vZGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2
ZXM6CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6QXV0b2NvcnJlY3Rp
b25SZXBsYWNlbWVudDoKKyAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUg
PyBDb2xvciB7IDQwLCAxNDUsIDI1NSwgMjE3IH0gOiBDb2xvciB7IDAsIDEyMiwgMjU1LCAxOTEg
fSk7CisgICAgLy8gR3JlZW4KKyAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2Rl
OjpHcmFtbWFyOgorICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENv
bG9yIHsgNTAsIDIxNSwgNzUsIDIxNyB9IDogQ29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOwor
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVzZURhcmtNb2RlKTsKKyAgICBzd2l0Y2gg
KHN0eWxlKSB7CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6U3BlbGxp
bmc6CisgICAgICAgIHJldHVybiBbZ2V0VUlDb2xvckNsYXNzKCkgc3lzdGVtUmVkQ29sb3JdLkNH
Q29sb3I7CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6RGljdGF0aW9u
QWx0ZXJuYXRpdmVzOgorICAgIGNhc2UgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OlRl
eHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2ZXM6CisgICAgY2FzZSBEb2N1
bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudDoKKyAg
ICAgICAgcmV0dXJuIFtnZXRVSUNvbG9yQ2xhc3MoKSBzeXN0ZW1CbHVlQ29sb3JdLkNHQ29sb3I7
CisgICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6R3JhbW1hcjoKKyAgICAg
ICAgcmV0dXJuIFtnZXRVSUNvbG9yQ2xhc3MoKSBzeXN0ZW1HcmVlbkNvbG9yXS5DR0NvbG9yOwor
ICAgIH0KKyNlbmRpZgorfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIERvY3VtZW50TWFya2VyTGluZVN0eWxl
IHN0eWxlKQoreworICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gY2lyY2xlQ29sb3IgPSBjb2xvckZvck1hcmtlckxpbmVTdHlsZShzdHlsZS5t
b2RlLCBzdHlsZS5zaG91bGRVc2VEYXJrQXBwZWFyYW5jZSk7CisKKyAgICBhdXRvIGxpbmVUaGlj
a25lc3MgPSByZWN0LmhlaWdodCgpOworICAgIGF1dG8gcGF0dGVybkdhcFdpZHRoID0gbGluZVRo
aWNrbmVzcyAvIDM7CisgICAgYXV0byBwYXR0ZXJuV2lkdGggPSBsaW5lVGhpY2tuZXNzICsgcGF0
dGVybkdhcFdpZHRoOworCisgICAgRmxvYXRQb2ludCBvZmZzZXRQb2ludCA9IHJlY3QubG9jYXRp
b24oKTsKKyAgICBhdXRvIHdpZHRoID0gcmVjdC53aWR0aCgpOworICAgIGZsb2F0IHdpZHRoTW9k
ID0gZm1vZGYod2lkdGgsIHBhdHRlcm5XaWR0aCk7CisgICAgaWYgKHBhdHRlcm5XaWR0aCAtIHdp
ZHRoTW9kID4gcGF0dGVybkdhcFdpZHRoKSB7CisgICAgICAgIGZsb2F0IGdhcEluY2x1ZGVXaWR0
aCA9IDA7CisgICAgICAgIGlmICh3aWR0aCA+IHBhdHRlcm5XaWR0aCkKKyAgICAgICAgICAgIGdh
cEluY2x1ZGVXaWR0aCA9IHBhdHRlcm5HYXBXaWR0aDsKKyAgICAgICAgb2Zmc2V0UG9pbnQubW92
ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJbmNsdWRlV2lkdGgpIC8gMiksIDApOworICAgICAgICB3
aWR0aCAtPSB3aWR0aE1vZDsKKyAgICB9CisKKyAgICBDR0NvbnRleHRSZWYgcGxhdGZvcm1Db250
ZXh0ID0gdGhpcy0+cGxhdGZvcm1Db250ZXh0KCk7CisgICAgQ0dDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyIHsgcGxhdGZvcm1Db250ZXh0IH07CisgICAgQ0dDb250ZXh0U2V0RmlsbENvbG9y
V2l0aENvbG9yKHBsYXRmb3JtQ29udGV4dCwgY2lyY2xlQ29sb3IpOworICAgIGZvciAoaW50IHgg
PSAwOyB4IDwgd2lkdGg7IHggKz0gcGF0dGVybldpZHRoKQorICAgICAgICBDR0NvbnRleHRBZGRF
bGxpcHNlSW5SZWN0KHBsYXRmb3JtQ29udGV4dCwgQ0dSZWN0TWFrZShvZmZzZXRQb2ludC54KCkg
KyB4LCBvZmZzZXRQb2ludC55KCksIGxpbmVUaGlja25lc3MsIGxpbmVUaGlja25lc3MpKTsKKyAg
ICBDR0NvbnRleHRTZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZvcm1Db250ZXh0LCBrQ0dDb21w
b3NpdGVTb3Zlcik7CisgICAgQ0dDb250ZXh0RmlsbFBhdGgocGxhdGZvcm1Db250ZXh0KTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMu
Y3BwCmluZGV4IDFmY2VlOGIzODQzNzMwMzZkMjNmMDkxMTJhYjYzZTc5Njk1ZWMwNDMuLjczNTNk
MzdhZmIxYzE1NjMyNjBjMTkwZGFiZTkxM2JjYzQzNzE2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5jcHAKQEAgLTk5LDggKzk5LDggQEAgc2l6ZV90IEl0ZW06OnNpemVJbkJ5
dGVzKGNvbnN0IEl0ZW0mIGl0ZW0pCiAgICAgICAgIHJldHVybiBzaXplb2YoZG93bmNhc3Q8RHJh
d0xpbmU+KGl0ZW0pKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OgogICAg
ICAgICByZXR1cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdMaW5lc0ZvclRleHQ+KGl0ZW0pKTsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZUZvckRvY3VtZW50TWFya2VyOgotICAgICAgICByZXR1
cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI+KGl0ZW0pKTsKKyAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50TWFya2VyOgorICAgICAgICByZXR1
cm4gc2l6ZW9mKGRvd25jYXN0PERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI+KGl0ZW0pKTsKICAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKICAgICAgICAgcmV0dXJuIHNpemVvZihkb3du
Y2FzdDxEcmF3RWxsaXBzZT4oaXRlbSkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXRoOgpA
QCAtNjIxLDI1ICs2MjEsMjAgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IERyYXdMaW5lc0ZvclRleHQmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwog
fQogCi12b2lkIERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKK3ZvaWQgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjo6YXBwbHko
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIGNvbnRleHQuZHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcihtX3BvaW50LCBtX3dpZHRoLCBtX3N0eWxlKTsKKyAgICBjb250ZXh0
LmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIobV9yZWN0LCBtX3N0eWxlKTsKIH0KIAotc3RkOjpv
cHRpb25hbDxGbG9hdFJlY3Q+IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI6OmxvY2FsQm91bmRz
KGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4g
RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjo6bG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250
ZXh0JikgY29uc3QKIHsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIHJldHVybiBhIHZh
bHVlIGVxdWFsIHRvIG9yIGVuY2xvc2luZyB3aGF0IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVG
b3JEb2N1bWVudE1hcmtlcigpIHJldHVybnMuCi0KLSAgICBGbG9hdFJlY3QgcmVzdWx0KG1fcG9p
bnQsIEZsb2F0U2l6ZShtX3dpZHRoLCBjTWlzc3BlbGxpbmdMaW5lVGhpY2tuZXNzKSk7Ci0gICAg
cmVzdWx0LmluZmxhdGUoY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcyk7IC8vIEFjY291bnQgZm9y
ICJtaXNzcGVsbGluZyBkb3QiIHNuYXBwaW5nLgotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIG1fcmVjdDsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXImIGl0ZW0pCitzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRHJhd0RvdHNGb3JEb2N1
bWVudE1hcmtlciYgaXRlbSkKIHsKICAgICB0cyA8PCBzdGF0aWNfY2FzdDxjb25zdCBEcmF3aW5n
SXRlbSY+KGl0ZW0pOwotICAgIHRzLmR1bXBQcm9wZXJ0eSgicG9pbnQiLCBpdGVtLnBvaW50KCkp
OwotICAgIHRzLmR1bXBQcm9wZXJ0eSgid2lkdGgiLCBpdGVtLndpZHRoKCkpOworICAgIHRzLmR1
bXBQcm9wZXJ0eSgicmVjdCIsIGl0ZW0ucmVjdCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAKQEAg
LTk2NSw3ICs5NjAsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgY29uc3QgSXRlbVR5cGUmIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6
IHRzIDw8ICJkcmF3LXJlY3QiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZTog
dHMgPDwgImRyYXctbGluZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdMaW5lc0Zv
clRleHQ6IHRzIDw8ICJkcmF3LWxpbmVzLWZvci10ZXh0IjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVt
VHlwZTo6RHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcjogdHMgPDwgImRyYXctbGluZXMtZm9yLWRv
Y3VtZW50LW1hcmtlciI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9j
dW1lbnRNYXJrZXI6IHRzIDw8ICJkcmF3LWRvdHMtZm9yLWRvY3VtZW50LW1hcmtlciI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNlOiB0cyA8PCAiZHJhdy1lbGxpcHNlIjsg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdGg6IHRzIDw8ICJkcmF3LXBhdGgiOyBi
cmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3Rm9jdXNSaW5nUGF0aDogdHMgPDwgImRyYXct
Zm9jdXMtcmluZy1wYXRoIjsgYnJlYWs7CkBAIC0xMDcyLDggKzEwNjcsOCBAQCBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBJdGVtJiBpdGVtKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdMaW5lc0ZvclRleHQ6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0PERyYXdM
aW5lc0ZvclRleHQ+KGl0ZW0pOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3TGluZUZvckRvY3VtZW50TWFya2VyOgotICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3TGlu
ZUZvckRvY3VtZW50TWFya2VyPihpdGVtKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyOgorICAgICAgICB0cyA8PCBkb3duY2FzdDxEcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyPihpdGVtKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0VsbGlwc2U6CiAgICAgICAgIHRzIDw8IGRvd25jYXN0PERyYXdFbGxpcHNlPihpdGVtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDg3MmUzMGRjZThiNzMxMjRmNDFkOTI3
ODFjNTJkNGM2YTZlYTY4ODAuLjdjN2ViNmQ3MmYxMGQxZjI2ZDAxODY3ODFiMDIyYzZkMzkyMTQw
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtNzcsNyArNzcsNyBAQCBl
bnVtIGNsYXNzIEl0ZW1UeXBlIHsKICAgICBEcmF3UmVjdCwKICAgICBEcmF3TGluZSwKICAgICBE
cmF3TGluZXNGb3JUZXh0LAotICAgIERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIsCisgICAgRHJh
d0RvdHNGb3JEb2N1bWVudE1hcmtlciwKICAgICBEcmF3RWxsaXBzZSwKICAgICBEcmF3UGF0aCwK
ICAgICBEcmF3Rm9jdXNSaW5nUGF0aCwKQEAgLTgyOCwyMSArODI4LDE5IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2RvdWJsZUxpbmVzOwogfTsKIAotY2xhc3MgRHJhd0xpbmVGb3JEb2N1bWVudE1h
cmtlciA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CitjbGFzcyBEcmF3RG90c0ZvckRvY3VtZW50TWFy
a2VyIDogcHVibGljIERyYXdpbmdJdGVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPERyYXdM
aW5lRm9yRG9jdW1lbnRNYXJrZXI+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxv
YXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQorICAgIHN0YXRpYyBSZWY8
RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcj4gY3JlYXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEcmF3TGluZUZvckRvY3VtZW50TWFya2VyKHBvaW50LCB3aWR0aCwgc3R5bGUp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtl
cihyZWN0LCBzdHlsZSkpOwogICAgIH0KIAotICAgIEZsb2F0UG9pbnQgcG9pbnQoKSBjb25zdCB7
IHJldHVybiBtX3BvaW50OyB9Ci0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dp
ZHRoOyB9CisgICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KIAog
cHJpdmF0ZToKLSAgICBEcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5bGUpCi0gICAg
ICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpCi0g
ICAgICAgICwgbV9wb2ludChwb2ludCkKLSAgICAgICAgLCBtX3dpZHRoKHdpZHRoKQorICAgIERy
YXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZSBzdHlsZSkKKyAgICAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJh
d0RvdHNGb3JEb2N1bWVudE1hcmtlcikKKyAgICAgICAgLCBtX3JlY3QocmVjdCkKICAgICAgICAg
LCBtX3N0eWxlKHN0eWxlKQogICAgIHsKICAgICB9CkBAIC04NTEsOCArODQ5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFw
aGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIEZsb2F0UG9pbnQgbV9wb2ludDsK
LSAgICBmbG9hdCBtX3dpZHRoOworICAgIEZsb2F0UmVjdCBtX3JlY3Q7CiAgICAgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUgbV9zdHlsZTsKIH07CiAKQEAgLTEzNjAsNyArMTM1Nyw3IEBAIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3UGF0dGVybikKIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3UmVjdCkKIFNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3TGluZSkKIFNQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRElTUExBWUxJU1RfSVRFTShEcmF3TGluZXNGb3JUZXh0KQotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19ESVNQTEFZTElTVF9JVEVNKERyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIpCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0RJU1BMQVlMSVNUX0lURU0oRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtl
cikKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3RWxsaXBzZSkK
IFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3UGF0aCkKIFNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRElTUExBWUxJU1RfSVRFTShEcmF3Rm9jdXNSaW5nUGF0aCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBlYTI3MzI2YjU2MWYx
OWRlMjI0NzNlM2JhYzgzZjQ0ZmFhMDkyZmZkLi41MzA3ZjAyNWZiMjE4MDMyMjk5NThjYWY5MmI1
MzlhNTJjZGM2NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CkBAIC0yMzYsOSArMjM2LDkgQEAgdm9pZCBSZWNvcmRlcjo6ZHJhd0xpbmVzRm9yVGV4dChjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMKICAgICB1cGRhdGVJ
dGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCi12b2lkIFJlY29yZGVyOjpkcmF3TGluZUZvckRvY3Vt
ZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGUgc3R5bGUpCit2b2lkIFJlY29yZGVyOjpkcmF3RG90c0ZvckRvY3VtZW50
TWFya2VyKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgc3R5
bGUpCiB7Ci0gICAgRHJhd2luZ0l0ZW0mIG5ld0l0ZW0gPSBkb3duY2FzdDxEcmF3aW5nSXRlbT4o
YXBwZW5kSXRlbShEcmF3TGluZUZvckRvY3VtZW50TWFya2VyOjpjcmVhdGUocG9pbnQsIHdpZHRo
LCBzdHlsZSkpKTsKKyAgICBEcmF3aW5nSXRlbSYgbmV3SXRlbSA9IGRvd25jYXN0PERyYXdpbmdJ
dGVtPihhcHBlbmRJdGVtKERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI6OmNyZWF0ZShyZWN0LCBz
dHlsZSkpKTsKICAgICB1cGRhdGVJdGVtRXh0ZW50KG5ld0l0ZW0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAppbmRleCA1YzFjMDY2MGM3ZTU3ZGQ1NGViYWVkMmJh
YzM4MDQ3ZjEzOTBmOTcxLi4xYjc5NDM3YWM3MDI4MjY2Y2Y0OWQzYTQ1NDFlNjlkNzhhYzlhMWVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKQEAgLTk4LDcgKzk4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJv
cmRlclRoaWNrbmVzcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3TGluZShjb25zdCBGbG9hdFBv
aW50JiwgY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmVzRm9y
VGV4dChjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJp
bnRpbmcsIGJvb2wgZG91YmxlTGluZXMsIGZsb2F0IHN0cm9rZVRoaWNrbmVzcykgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnN0IEZsb2F0UG9pbnQmLCBm
bG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIG92ZXJyaWRlOworICAgIHZvaWQg
ZHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFJlY3QmLCBEb2N1bWVudE1hcmtl
ckxpbmVTdHlsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdQYXRoKGNvbnN0IFBhdGgmKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9j
YWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29y
ZGVyLmNwcAppbmRleCA4NWQzZWMzMGY4MmJkZGJjNzE2NTdiNTc0NmMwNmQxMTg0YzZiMTdkLi41
Nzg0OTVmZWFhMzBhOTY4NDgyMDk0Zjk2NGViMjkwOWEyZWJlMzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09w
ZXJhdGlvblJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmNwcApAQCAtNjUy
LDIzICs2NTIsMjMgQEAgdm9pZCBDYWlyb09wZXJhdGlvblJlY29yZGVyOjpkcmF3TGluZXNGb3JU
ZXh0KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBEYXMKICAgICBhcHBlbmQoY3JlYXRl
Q29tbWFuZDxEcmF3TGluZXNGb3JUZXh0Pihwb2ludCwgd2lkdGhzLCBwcmludGluZywgZG91Ymxl
VW5kZXJsaW5lcywgc3RhdGUuc3Ryb2tlQ29sb3IsIHN0YXRlLnN0cm9rZVRoaWNrbmVzcykpOwog
fQogCi12b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXIoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJM
aW5lU3R5bGUgc3R5bGUpCit2b2lkIENhaXJvT3BlcmF0aW9uUmVjb3JkZXI6OmRyYXdEb3RzRm9y
RG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBEb2N1bWVudE1hcmtlckxpbmVT
dHlsZSBzdHlsZSkKIHsKLSAgICBzdHJ1Y3QgRHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlciBmaW5h
bCA6IFBhaW50aW5nT3BlcmF0aW9uLCBPcGVyYXRpb25EYXRhPEZsb2F0UG9pbnQsIGZsb2F0LCBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZT4gewotICAgICAgICB2aXJ0dWFsIH5EcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKCkgPSBkZWZhdWx0OworICAgIHN0cnVjdCBEcmF3RG90c0ZvckRvY3VtZW50
TWFya2VyIGZpbmFsIDogUGFpbnRpbmdPcGVyYXRpb24sIE9wZXJhdGlvbkRhdGE8RmxvYXRSZWN0
LCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZT4geworICAgICAgICB2aXJ0dWFsIH5EcmF3RG90c0Zv
ckRvY3VtZW50TWFya2VyKCkgPSBkZWZhdWx0OwogCiAgICAgICAgIHZvaWQgZXhlY3V0ZShQYWlu
dGluZ09wZXJhdGlvblJlcGxheSYgcmVwbGF5ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIENhaXJvOjpkcmF3TGluZUZvckRvY3VtZW50TWFya2VyKGNvbnRleHRGb3JSZXBsYXko
cmVwbGF5ZXIpLCBhcmc8MD4oKSwgYXJnPDE+KCksIGFyZzwyPigpKTsKKyAgICAgICAgICAgIENh
aXJvOjpkcmF3RG90c0ZvckRvY3VtZW50TWFya2VyKGNvbnRleHRGb3JSZXBsYXkocmVwbGF5ZXIp
LCBhcmc8MD4oKSwgYXJnPDE+KCkpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkdW1wKFRl
eHRTdHJlYW0mIHRzKSBvdmVycmlkZQogICAgICAgICB7Ci0gICAgICAgICAgICB0cyA8PCBpbmRl
bnQgPDwgIkRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXI8PlxuIjsKKyAgICAgICAgICAgIHRzIDw8
IGluZGVudCA8PCAiRHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcjw+XG4iOwogICAgICAgICB9CiAg
ICAgfTsKIAotICAgIGFwcGVuZChjcmVhdGVDb21tYW5kPERyYXdMaW5lRm9yRG9jdW1lbnRNYXJr
ZXI+KG9yaWdpbiwgd2lkdGgsIHN0eWxlKSk7CisgICAgYXBwZW5kKGNyZWF0ZUNvbW1hbmQ8RHJh
d0RvdHNGb3JEb2N1bWVudE1hcmtlcj4ocmVjdCwgc3R5bGUpKTsKIH0KIAogdm9pZCBDYWlyb09w
ZXJhdGlvblJlY29yZGVyOjpkcmF3RWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL2NhaXJvL05p
Y29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL2NhaXJvL05pY29zaWFDYWlyb09wZXJhdGlvblJlY29yZGVyLmgKaW5k
ZXggMDA5ZWIyMjEwOGMzZTdlZjY3ZWE1NjY1N2MyZDc5NjNjMjMzZWFkZS4uNmQ2ZmFjMzgzZTdh
ZjA2YzkyMTNkY2I0ZmUwODdjZDZmMzg0ZDkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9jYWlyby9OaWNvc2lhQ2Fpcm9PcGVyYXRpb25SZWNv
cmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvY2Fp
cm8vTmljb3NpYUNhaXJvT3BlcmF0aW9uUmVjb3JkZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgZmxvYXQp
IG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd0xpbmUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdMaW5l
c0ZvclRleHQoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IERhc2hBcnJheSYsIGJv
b2wsIGJvb2wsIGZsb2F0KSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRN
YXJrZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGZsb2F0LCBXZWJDb3JlOjpEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkcmF3RG90c0ZvckRvY3VtZW50
TWFya2VyKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIFdlYkNvcmU6OkRvY3VtZW50TWFya2Vy
TGluZVN0eWxlKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdFbGxpcHNlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZHJhd1BhdGgoY29uc3QgV2ViQ29yZTo6
UGF0aCYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRleCAxMjA2Mzhi
MjUxYjQyOTdmOWEzZGZlMTNmNTM1ZWJhYWE5NzcyZjY4Li5lMGUyMzgwOTMxNjFlZGVjYmE5ZDE1
NTUyZDY3M2VmYjAyOTZmN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKQEAgLTE4NSwx
OSArMTg1LDE5IEBAIHN0YXRpYyBjb25zdCBDb2xvciYgZ3JhbW1hclBhdHRlcm5Db2xvcigpIHsK
ICAgICByZXR1cm4gZ3JhbW1hckNvbG9yOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQgd2lk
dGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZSBzdHlsZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoc3R5bGUgIT0gRG9jdW1lbnRNYXJrZXJMaW5lU3R5
bGU6OlNwZWxsaW5nICYmIHN0eWxlICE9IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpHcmFtbWFy
KQorICAgIGlmIChzdHlsZS5tb2RlICE9IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpT
cGVsbGluZyAmJiBzdHlsZS5tb2RlICE9IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpH
cmFtbWFyKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBUaGVzZSBhcmUgdGhlIHNhbWUgZm9y
IG1pc3NwZWxsaW5nIG9yIGJhZCBncmFtbWFyCi0gICAgY29uc3QgaW50IHBhdHRlcm5IZWlnaHQg
PSAzOyAvLyAzIHJvd3MKLSAgICBBU1NFUlQoY01pc3NwZWxsaW5nTGluZVRoaWNrbmVzcyA9PSBw
YXR0ZXJuSGVpZ2h0KTsKLSAgICBjb25zdCBpbnQgcGF0dGVybldpZHRoID0gNDsgLy8gNCBwaXhl
bHMKLSAgICBBU1NFUlQocGF0dGVybldpZHRoID09IGNNaXNzcGVsbGluZ0xpbmVQYXR0ZXJuV2lk
dGgpOworICAgIGF1dG8gcG9pbnQgPSByZWN0LmxvY2F0aW9uKCk7CisgICAgYXV0byB3aWR0aCA9
IHJlY3Qud2lkdGgoKTsKKyAgICBhdXRvIGxpbmVUaGlja25lc3MgPSByZWN0LmhlaWdodCgpOwor
ICAgIGF1dG8gcGF0dGVybkdhcFdpZHRoID0gbGluZVRoaWNrbmVzcyAvIDM7CisgICAgYXV0byBw
YXR0ZXJuV2lkdGggPSBsaW5lVGhpY2tuZXNzICsgcGF0dGVybkdhcFdpZHRoOwogCiAgICAgLy8g
TWFrZSBzdXJlIHRvIGRyYXcgb25seSBjb21wbGV0ZSBkb3RzLgogICAgIC8vIE5PVEU6IENvZGUg
aGVyZSB1c2VkIHRvIHNoaWZ0IHRoZSB1bmRlcmxpbmUgdG8gdGhlIGxlZnQgYW5kIGluY3JlYXNl
IHRoZSB3aWR0aApAQCAtMjA2LDIzICsyMDYsMjMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHcK
ICAgICAvLyBzcGFjZSBiZXR3ZWVuIGFkamFjZW50IG1pc3NwZWxsZWQgd29yZHMgd2FzIHVuZGVy
bGluZWQuCiAgICAgLy8gYWxsb3cgc2xpZ2h0bHkgbW9yZSBjb25zaWRlcmluZyB0aGF0IHRoZSBw
YXR0ZXJuIGVuZHMgd2l0aCBhIHRyYW5zcGFyZW50IHBpeGVsCiAgICAgZmxvYXQgd2lkdGhNb2Qg
PSBmbW9kZih3aWR0aCwgcGF0dGVybldpZHRoKTsKLSAgICBpZiAocGF0dGVybldpZHRoIC0gd2lk
dGhNb2QgPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybkdhcFdpZHRoKQorICAgIGlmIChwYXR0ZXJu
V2lkdGggLSB3aWR0aE1vZCA+IHBhdHRlcm5HYXBXaWR0aCkKICAgICAgICAgd2lkdGggLT0gd2lk
dGhNb2Q7Ci0gICAgICAKKwogICAgIC8vIERyYXcgdGhlIHVuZGVybGluZQogICAgIENHQ29udGV4
dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0
ZShjb250ZXh0KTsKIAotICAgIGNvbnN0IENvbG9yJiBwYXR0ZXJuQ29sb3IgPSBzdHlsZSA9PSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hciA/IGdyYW1tYXJQYXR0ZXJuQ29sb3IoKSA6
IHNwZWxsaW5nUGF0dGVybkNvbG9yKCk7CisgICAgY29uc3QgQ29sb3ImIHBhdHRlcm5Db2xvciA9
IHN0eWxlLm1vZGUgPT0gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6Ok1vZGU6OkdyYW1tYXIgPyBn
cmFtbWFyUGF0dGVybkNvbG9yKCkgOiBzcGVsbGluZ1BhdHRlcm5Db2xvcigpOwogICAgIHNldENH
U3Ryb2tlQ29sb3IoY29udGV4dCwgcGF0dGVybkNvbG9yKTsKIAogICAgIHdrU2V0UGF0dGVyblBo
YXNlSW5Vc2VyU3BhY2UoY29udGV4dCwgcG9pbnQpOwogICAgIENHQ29udGV4dFNldEJsZW5kTW9k
ZShjb250ZXh0LCBrQ0dCbGVuZE1vZGVOb3JtYWwpOwogICAgIAogICAgIC8vIDMgcm93cywgZWFj
aCBvZmZzZXQgYnkgaGFsZiBhIHBpeGVsIGZvciBibGVuZGluZyBwdXJwb3NlcwotICAgIGNvbnN0
IENHUG9pbnQgdXBwZXJQb2ludHMgW10gPSB7e3BvaW50LngoKSwgcG9pbnQueSgpICsgcGF0dGVy
bkhlaWdodCAtIDIuNSB9LCB7cG9pbnQueCgpICsgd2lkdGgsIHBvaW50LnkoKSArIHBhdHRlcm5I
ZWlnaHQgLSAyLjV9fTsKLSAgICBjb25zdCBDR1BvaW50IG1pZGRsZVBvaW50cyBbXSA9IHt7cG9p
bnQueCgpLCBwb2ludC55KCkgKyBwYXR0ZXJuSGVpZ2h0IC0gMS41IH0sIHtwb2ludC54KCkgKyB3
aWR0aCwgcG9pbnQueSgpICsgcGF0dGVybkhlaWdodCAtIDEuNX19OwotICAgIGNvbnN0IENHUG9p
bnQgbG93ZXJQb2ludHMgW10gPSB7e3BvaW50LngoKSwgcG9pbnQueSgpICsgcGF0dGVybkhlaWdo
dCAtIDAuNSB9LCB7cG9pbnQueCgpICsgd2lkdGgsIHBvaW50LnkoKSArIHBhdHRlcm5IZWlnaHQg
LSAwLjUgfX07CisgICAgY29uc3QgQ0dQb2ludCB1cHBlclBvaW50c1tdID0ge3sgcG9pbnQueCgp
LCBwb2ludC55KCkgKyBsaW5lVGhpY2tuZXNzIC0gMi41IH0sIHtwb2ludC54KCkgKyB3aWR0aCwg
cG9pbnQueSgpICsgbGluZVRoaWNrbmVzcyAtIDIuNSB9fTsKKyAgICBjb25zdCBDR1BvaW50IG1p
ZGRsZVBvaW50c1tdID0ge3sgcG9pbnQueCgpLCBwb2ludC55KCkgKyBsaW5lVGhpY2tuZXNzIC0g
MS41IH0sIHtwb2ludC54KCkgKyB3aWR0aCwgcG9pbnQueSgpICsgbGluZVRoaWNrbmVzcyAtIDEu
NSB9fTsKKyAgICBjb25zdCBDR1BvaW50IGxvd2VyUG9pbnRzW10gPSB7eyBwb2ludC54KCksIHBv
aW50LnkoKSArIGxpbmVUaGlja25lc3MgLSAwLjUgfSwge3BvaW50LngoKSArIHdpZHRoLCBwb2lu
dC55KCkgKyBsaW5lVGhpY2tuZXNzIC0gMC41IH19OwogICAgIAogICAgIC8vIERhc2ggbGVuZ3Ro
cyBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG9mIHRoZSBlcnJvciB1bmRlcmxpbmUgYXJlIHRoZSBz
YW1lLgogICAgIC8vIFRoZXNlIGFyZSBtYWdpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0RGlyZWN0MkQu
Y3BwCmluZGV4IDIzYzdkYjFjMTFmZGIwZDI0MmI5NDU2NDFjZjhjOGYzMGY2Zjg4MzIuLmJhMTUw
YzY5MWFkODVhZjIxMzE2ZTY5ZTg2MGFkNWZlYmU5NDc2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHREaXJlY3QyRC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4
dERpcmVjdDJELmNwcApAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cywgZmxvYXQgd2lkdGgs
CiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvckRvY3VtZW50TWFya2Vy
KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5l
U3R5bGUgc3R5bGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxl
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5k
ZXggYmU3ZjhkNGU1YTVjMDJmZDAzYWNkOTYyNGZjYjI2OTdiODQyYjJkOC4uN2NiYzA3OGNhYjI3
ZWEyZTIxNTQwMDdjMTRlY2M5MWJjMjI3ZDJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNjk4LDI0ICs2OTgsMjUgQEAgdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdAogICAgICAgICB3aWR0aCA9IG1hcmtlclJlY3Qud2lkdGgoKTsKICAgICB9CiAKLSAg
ICBhdXRvIGxpbmVTdHlsZUZvck1hcmtlZFRleHRUeXBlID0gW10gKE1hcmtlZFRleHQ6OlR5cGUg
dHlwZSkgeworICAgIGF1dG8gbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5cGUgPSBbJl0gKE1hcmtl
ZFRleHQ6OlR5cGUgdHlwZSkgLT4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUgeworICAgICAgICBi
b29sIHNob3VsZFVzZURhcmtBcHBlYXJhbmNlID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLnVzZURh
cmtBcHBlYXJhbmNlKCk7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIE1h
cmtlZFRleHQ6OlNwZWxsaW5nRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGU6OlNwZWxsaW5nOworICAgICAgICAgICAgcmV0dXJuIHsgRG9jdW1lbnRNYXJr
ZXJMaW5lU3R5bGU6Ok1vZGU6OlNwZWxsaW5nLCBzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9Owog
ICAgICAgICBjYXNlIE1hcmtlZFRleHQ6OkdyYW1tYXJFcnJvcjoKLSAgICAgICAgICAgIHJldHVy
biBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6R3JhbW1hcjsKKyAgICAgICAgICAgIHJldHVybiB7
IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpHcmFtbWFyLCBzaG91bGRVc2VEYXJrQXBw
ZWFyYW5jZSB9OwogICAgICAgICBjYXNlIE1hcmtlZFRleHQ6OkNvcnJlY3Rpb246Ci0gICAgICAg
ICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkF1dG9jb3JyZWN0aW9uUmVwbGFj
ZW1lbnQ7CisgICAgICAgICAgICByZXR1cm4geyBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9k
ZTo6QXV0b2NvcnJlY3Rpb25SZXBsYWNlbWVudCwgc2hvdWxkVXNlRGFya0FwcGVhcmFuY2UgfTsK
ICAgICAgICAgY2FzZSBNYXJrZWRUZXh0OjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6Ci0gICAgICAg
ICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGU6OkRpY3RhdGlvbkFsdGVybmF0aXZl
czsKKyAgICAgICAgICAgIHJldHVybiB7IERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpNb2RlOjpE
aWN0YXRpb25BbHRlcm5hdGl2ZXMsIHNob3VsZFVzZURhcmtBcHBlYXJhbmNlIH07CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgY2FzZSBNYXJrZWRUZXh0OjpEaWN0YXRpb25QaHJh
c2VXaXRoQWx0ZXJuYXRpdmVzOgogICAgICAgICAgICAgLy8gRklYTUU6IFJlbmFtZSBEb2N1bWVu
dE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0
aXZlcyBhbmQgcmVtb3ZlIHRoZSBQTEFURk9STShJT1NfRkFNSUxZKS1ndWFyZC4KLSAgICAgICAg
ICAgIHJldHVybiBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5nRGljdGF0aW9u
UGhyYXNlV2l0aEFsdGVybmF0aXZlczsKKyAgICAgICAgICAgIHJldHVybiB7IERvY3VtZW50TWFy
a2VyTGluZVN0eWxlOjpNb2RlOjpUZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJu
YXRpdmVzLCBzaG91bGRVc2VEYXJrQXBwZWFyYW5jZSB9OwogI2VuZGlmCiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJldHVy
biBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc7CisgICAgICAgICAgICByZXR1cm4g
eyBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6TW9kZTo6U3BlbGxpbmcsIHNob3VsZFVzZURhcmtB
cHBlYXJhbmNlIH07CiAgICAgICAgIH0KICAgICB9OwogCkBAIC03MjUsNyArNzI2LDcgQEAgdm9p
ZCBJbmxpbmVUZXh0Qm94OjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIC8vIG9yIGRlY3JlYXNlIHRoZSB1bmRlcmxpbmUgdGhp
Y2tuZXNzLiAgVGhlIG92ZXJsYXAgaXMgYWN0dWFsbHkgdGhlIG1vc3QgdXNlZnVsLCBhbmQgbWF0
Y2hlcyB3aGF0IEFwcEtpdCBkb2VzLgogICAgIC8vIFNvLCB3ZSBnZW5lcmFsbHkgcGxhY2UgdGhl
IHVuZGVybGluZSBhdCB0aGUgYm90dG9tIG9mIHRoZSB0ZXh0LCBidXQgaW4gbGFyZ2VyIGZvbnRz
IHRoYXQncyBub3Qgc28gZ29vZCBzbwogICAgIC8vIHdlIHBpbiB0byB0d28gcGl4ZWxzIHVuZGVy
IHRoZSBiYXNlbGluZS4KLSAgICBpbnQgbGluZVRoaWNrbmVzcyA9IGNNaXNzcGVsbGluZ0xpbmVU
aGlja25lc3M7CisgICAgaW50IGxpbmVUaGlja25lc3MgPSAzOwogICAgIGludCBiYXNlbGluZSA9
IGxpbmVTdHlsZSgpLmZvbnRNZXRyaWNzKCkuYXNjZW50KCk7CiAgICAgaW50IGRlc2NlbnQgPSBs
b2dpY2FsSGVpZ2h0KCkgLSBiYXNlbGluZTsKICAgICBpbnQgdW5kZXJsaW5lT2Zmc2V0OwpAQCAt
NzM3LDExICs3MzgsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50UGxhdGZvcm1Eb2N1bWVu
dE1hcmtlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIHVuZGVybGlu
ZU9mZnNldCA9IGJhc2VsaW5lICsgMjsKICAgICB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkuZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihyZW5k
ZXJlcigpLCBjb250ZXh0LCBGbG9hdFBvaW50KGJveE9yaWdpbi54KCkgKyBzdGFydCwgYm94T3Jp
Z2luLnkoKSArIHVuZGVybGluZU9mZnNldCksIHdpZHRoLCBsaW5lU3R5bGVGb3JNYXJrZWRUZXh0
VHlwZShtYXJrZWRUZXh0LnR5cGUpKTsKLSNlbHNlCi0gICAgY29udGV4dC5kcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4u
eSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvck1hcmtlZFRleHRUeXBl
KG1hcmtlZFRleHQudHlwZSkpOwotI2VuZGlmCisgICAgY29udGV4dC5kcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyKEZsb2F0UmVjdChib3hPcmlnaW4ueCgpICsgc3RhcnQsIGJveE9yaWdpbi55KCkg
KyB1bmRlcmxpbmVPZmZzZXQsIHdpZHRoLCBsaW5lVGhpY2tuZXNzKSwgbGluZVN0eWxlRm9yTWFy
a2VkVGV4dFR5cGUobWFya2VkVGV4dC50eXBlKSk7CiB9CiAKIGF1dG8gSW5saW5lVGV4dEJveDo6
Y29tcHV0ZVN0eWxlRm9yVW5tYXJrZWRNYXJrZWRUZXh0KGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvKSBjb25zdCAtPiBNYXJrZWRUZXh0U3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCmluZGV4IDBmNjQzMDU0NmUzMjlhNjg1NmViZTZhNzNiNjQ5ZDI2ZGViYzgw
NDkuLmFiZjc2MDAwOTZkYmM1ZjI4NzAxM2ZjYTY4NTIxNzEzNjU5MjY3YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMTQ3NCw4ICsxNDc0LDQgQEAgQ29s
b3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtVGFwSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogCiAjZW5k
aWYKIAotdm9pZCBSZW5kZXJUaGVtZTo6ZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihjb25zdCBS
ZW5kZXJUZXh0JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYsIGZsb2F0LCBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZSkKLXsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA2ZDUyNDk4MDk0YzgxM2Jl
OTZmMGZjYmM5YTY3NDhkNzA4ZDdjMmRkLi4wOTJmZWY4MTU1MDBlODlkZGY1ZWYzMWNjM2Q3Njc4
MzQwYTk4YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMjYx
LDggKzI2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTeXN0ZW1QcmV2aWV3
QmFkZ2UoSW1hZ2UmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKTsKICNlbmRp
ZgogCi0gICAgdmlydHVhbCB2b2lkIGRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVu
ZGVyVGV4dCYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxv
YXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGluZVN0eWxlKTsKLQogICAgIHZpcnR1YWwgYm9vbCB1
c2luZ0RhcmtBcHBlYXJhbmNlKGNvbnN0IFJlbmRlck9iamVjdCYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDb2NvYS5oCmluZGV4IDE2ZGU5NjU0ZmIyNmFlYWFhYWIxYWQ4MzkzODMxMzhhNTZiZmUzMWMu
LmE0NjRjMTA0MDJmMDQ3MTMyODZiNDQ2MGM3MTE4MzdhNjI3ODdkZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApAQCAtMzYsMTUgKzM2LDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyVGhlbWVDb2NvYSA6IHB1YmxpYyBSZW5k
ZXJUaGVtZSB7CiBwcml2YXRlOgotICAgIHZvaWQgZHJhd0xpbmVGb3JEb2N1bWVudE1hcmtlcihj
b25zdCBSZW5kZXJUZXh0JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgb3Jp
Z2luLCBmbG9hdCB3aWR0aCwgRG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUpIGZpbmFsOwotCiAjaWYg
RU5BQkxFKEFQUExFX1BBWSkKICAgICB2b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5
bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRl
OwogICAgIGJvb2wgcGFpbnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIENHQ29sb3JSZWYgY29sb3JGb3JNYXJrZXJMaW5lU3R5bGUoRG9jdW1l
bnRNYXJrZXJMaW5lU3R5bGUsIGJvb2wgdXNlRGFya01vZGUpID0gMDsKIAorcHJvdGVjdGVkOgog
I2lmIEVOQUJMRShWSURFTykKICAgICBTdHJpbmcgbWVkaWFDb250cm9sc0Zvcm1hdHRlZFN0cmlu
Z0ZvckR1cmF0aW9uKGRvdWJsZSkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KaW5kZXggODM1YTY5NTIzYTQ5NWY1ZjFkYzNk
ZjEyODgzM2Q1NTc5ZWEyNjIxZC4uZmVhY2ZjNWIzM2M3NWQ2YTA5YTJlOGNhYWNjOTBjMzI0MGEy
MjE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0K
QEAgLTUxLDMzICs1MSw2IEBAIFNPRlRfTElOS19NQVlfRkFJTChQYXNzS2l0LCBQS0RyYXdBcHBs
ZVBheUJ1dHRvbiwgdm9pZCwgKENHQ29udGV4dFJlZiBjb250ZXh0LCBDCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdm9pZCBSZW5kZXJUaGVtZUNvY29hOjpkcmF3TGluZUZvckRvY3VtZW50TWFy
a2VyKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UG9pbnQmIG9yaWdpbiwgZmxvYXQgd2lkdGgsIERvY3VtZW50TWFya2VyTGlu
ZVN0eWxlIHN0eWxlKQotewotICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBjaXJjbGVDb2xvciA9IGNvbG9yRm9yTWFya2VyTGlu
ZVN0eWxlKHN0eWxlLCByZW5kZXJlci5kb2N1bWVudCgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOwot
Ci0gICAgLy8gQ2VudGVyIHRoZSB1bmRlcmxpbmUgYW5kIGVuc3VyZSB3ZSBvbmx5IGRyYXcgZW50
aXJlIGRvdHMuCi0gICAgRmxvYXRQb2ludCBvZmZzZXRQb2ludCA9IG9yaWdpbjsKLSAgICBmbG9h
dCB3aWR0aE1vZCA9IGZtb2RmKHdpZHRoLCBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKTsK
LSAgICBpZiAoY01pc3NwZWxsaW5nTGluZVBhdHRlcm5XaWR0aCAtIHdpZHRoTW9kID4gY01pc3Nw
ZWxsaW5nTGluZVBhdHRlcm5HYXBXaWR0aCkgewotICAgICAgICBmbG9hdCBnYXBJbmNsdWRlV2lk
dGggPSAwOwotICAgICAgICBpZiAod2lkdGggPiBjTWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRo
KQotICAgICAgICAgICAgZ2FwSW5jbHVkZVdpZHRoID0gY01pc3NwZWxsaW5nTGluZVBhdHRlcm5H
YXBXaWR0aDsKLSAgICAgICAgb2Zmc2V0UG9pbnQubW92ZShmbG9vcigod2lkdGhNb2QgKyBnYXBJ
bmNsdWRlV2lkdGgpIC8gMiksIDApOwotICAgICAgICB3aWR0aCAtPSB3aWR0aE1vZDsKLSAgICB9
Ci0KLSAgICBDR0NvbnRleHRSZWYgcGxhdGZvcm1Db250ZXh0ID0gY29udGV4dC5wbGF0Zm9ybUNv
bnRleHQoKTsKLSAgICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIgeyBwbGF0Zm9ybUNv
bnRleHQgfTsKLSAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3JXaXRoQ29sb3IocGxhdGZvcm1Db250
ZXh0LCBjaXJjbGVDb2xvcik7Ci0gICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCArPSBj
TWlzc3BlbGxpbmdMaW5lUGF0dGVybldpZHRoKQotICAgICAgICBDR0NvbnRleHRBZGRFbGxpcHNl
SW5SZWN0KHBsYXRmb3JtQ29udGV4dCwgQ0dSZWN0TWFrZShvZmZzZXRQb2ludC54KCkgKyB4LCBv
ZmZzZXRQb2ludC55KCksIGNNaXNzcGVsbGluZ0xpbmVUaGlja25lc3MsIGNNaXNzcGVsbGluZ0xp
bmVUaGlja25lc3MpKTsKLSAgICBDR0NvbnRleHRTZXRDb21wb3NpdGVPcGVyYXRpb24ocGxhdGZv
cm1Db250ZXh0LCBrQ0dDb21wb3NpdGVTb3Zlcik7Ci0gICAgQ0dDb250ZXh0RmlsbFBhdGgocGxh
dGZvcm1Db250ZXh0KTsKLX0KLQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKIHN0YXRpYyBjb25z
dCBhdXRvIGFwcGxlUGF5QnV0dG9uTWluaW11bVdpZHRoID0gMTQwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAppbmRleCA4ZTA5ZGZkNWYzOTkxZmM0MWNiNGEyMWQ1
YTk0MjM1Y2Y3Y2NmMDc1Li5kNGQ2ZWY5ODE4ODNiYWFmZWFhMDY4ZGEyMjcxMjdjNzhhOTc2ZDA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTU4LDgg
KzE1OCw2IEBAIHByaXZhdGU6CiAKICAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgQ0dD
b2xvclJlZiBjb2xvckZvck1hcmtlckxpbmVTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZSwg
Ym9vbCB1c2VEYXJrTW9kZSkgb3ZlcnJpZGU7Ci0KICAgICBTdHJpbmcgbV9sZWdhY3lNZWRpYUNv
bnRyb2xzU2NyaXB0OwogICAgIFN0cmluZyBtX21lZGlhQ29udHJvbHNTY3JpcHQ7CiAgICAgU3Ry
aW5nIG1fbGVnYWN5TWVkaWFDb250cm9sc1N0eWxlU2hlZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMmU5MTgwZjhlMjBlYTRhN2QzYjYzMDI4ZmUw
ZWUxZjMwZjcxMjU2Zi4uYTZjOTEwMzRiOGQ0OTM1ZDEyMjA1ZTZkYzgwYWMzOGU0ZGI0YzY2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTQxNywy
MCArMTQxNyw2IEBAIFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc0Jhc2U2NFN0
cmluZ0Zvckljb25OYW1lQW5kVHlwZShjb25zdCBTdHJpbmcmCiAKICNlbmRpZiAvLyBFTkFCTEUo
VklERU8pCiAKLUNHQ29sb3JSZWYgUmVuZGVyVGhlbWVJT1M6OmNvbG9yRm9yTWFya2VyTGluZVN0
eWxlKERvY3VtZW50TWFya2VyTGluZVN0eWxlIHN0eWxlLCBib29sKQotewotICAgIHN3aXRjaCAo
c3R5bGUpIHsKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpTcGVsbGluZzoKLSAg
ICAgICAgcmV0dXJuIFtnZXRVSUNvbG9yQ2xhc3MoKSBzeXN0ZW1SZWRDb2xvcl0uQ0dDb2xvcjsK
LSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpEaWN0YXRpb25BbHRlcm5hdGl2ZXM6
Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6VGV4dENoZWNraW5nRGljdGF0aW9u
UGhyYXNlV2l0aEFsdGVybmF0aXZlczoKLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxl
OjpBdXRvY29ycmVjdGlvblJlcGxhY2VtZW50OgotICAgICAgICByZXR1cm4gW2dldFVJQ29sb3JD
bGFzcygpIHN5c3RlbUJsdWVDb2xvcl0uQ0dDb2xvcjsKLSAgICBjYXNlIERvY3VtZW50TWFya2Vy
TGluZVN0eWxlOjpHcmFtbWFyOgotICAgICAgICByZXR1cm4gW2dldFVJQ29sb3JDbGFzcygpIHN5
c3RlbUdyZWVuQ29sb3JdLkNHQ29sb3I7Ci0gICAgfQotfQotCiBDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBjb25zdCBib29sIGZvclZpc2l0ZWRM
aW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGlu
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGRmNGQ5
NTFjNWE1NzVlZTQ5MWYwZTZiOTc3NjI0NGM3ZTg0Yzk5NzkuLmQ4NTc2MWFiYzliMTJkZmRkYTU1
NDVkZDE0ZjgwMzQ5NjM3OTUwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC0xODEsOCArMTgxLDYgQEAgcHJpdmF0ZToKIAogICAgIENvbG9yIHN5c3Rl
bUNvbG9yKENTU1ZhbHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qg
ZmluYWw7CiAKLSAgICBDR0NvbG9yUmVmIGNvbG9yRm9yTWFya2VyTGluZVN0eWxlKERvY3VtZW50
TWFya2VyTGluZVN0eWxlLCBib29sIHVzZURhcmtNb2RlKSBvdmVycmlkZTsKLQogICAgIENvbG9y
Q2FjaGUmIGNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KSBjb25zdCBm
aW5hbDsKIAogICAgIHZvaWQgcHVyZ2VDYWNoZXMoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA0MGE4YWUwYzI3NmFhZGIyODkyYWIwMmNm
NTFiM2VkODg5NjU3ZmFmLi4zZmJkNjBkNjE3MTc5ZDgwYjE5MjY1OWE5YjhmMGJjOWM5ZTZjZGQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yOTk5
LDIzICsyOTk5LDYgQEAgYm9vbCBSZW5kZXJUaGVtZU1hYzo6dXNpbmdEYXJrQXBwZWFyYW5jZShj
b25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiAgICAgcmV0dXJuIG8uZG9jdW1lbnQoKS51c2VE
YXJrQXBwZWFyYW5jZSgpOwogfQogCi1DR0NvbG9yUmVmIFJlbmRlclRoZW1lTWFjOjpjb2xvckZv
ck1hcmtlckxpbmVTdHlsZShEb2N1bWVudE1hcmtlckxpbmVTdHlsZSBzdHlsZSwgYm9vbCB1c2VE
YXJrTW9kZSkKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKSB7Ci0gICAgLy8gUmVkCi0gICAgY2FzZSBE
b2N1bWVudE1hcmtlckxpbmVTdHlsZTo6U3BlbGxpbmc6Ci0gICAgICAgIHJldHVybiBjYWNoZWRD
R0NvbG9yKHVzZURhcmtNb2RlID8gQ29sb3IgeyAyNTUsIDE0MCwgMTQwLCAyMTcgfSA6IENvbG9y
IHsgMjU1LCA1OSwgNDgsIDE5MSB9KTsKLSAgICAvLyBCbHVlCi0gICAgY2FzZSBEb2N1bWVudE1h
cmtlckxpbmVTdHlsZTo6RGljdGF0aW9uQWx0ZXJuYXRpdmVzOgotICAgIGNhc2UgRG9jdW1lbnRN
YXJrZXJMaW5lU3R5bGU6OlRleHRDaGVja2luZ0RpY3RhdGlvblBocmFzZVdpdGhBbHRlcm5hdGl2
ZXM6Ci0gICAgY2FzZSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZTo6QXV0b2NvcnJlY3Rpb25SZXBs
YWNlbWVudDoKLSAgICAgICAgcmV0dXJuIGNhY2hlZENHQ29sb3IodXNlRGFya01vZGUgPyBDb2xv
ciB7IDQwLCAxNDUsIDI1NSwgMjE3IH0gOiBDb2xvciB7IDAsIDEyMiwgMjU1LCAxOTEgfSk7Ci0g
ICAgLy8gR3JlZW4KLSAgICBjYXNlIERvY3VtZW50TWFya2VyTGluZVN0eWxlOjpHcmFtbWFyOgot
ICAgICAgICByZXR1cm4gY2FjaGVkQ0dDb2xvcih1c2VEYXJrTW9kZSA/IENvbG9yIHsgNTAsIDIx
NSwgNzUsIDIxNyB9IDogQ29sb3IgeyAyNSwgMTc1LCA1MCwgMTkxIH0pOwotICAgIH0KLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>
<flag name="commit-queue"
          id="370965"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>