<?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>220047</bug_id>
          
          <creation_ts>2020-12-20 15:56:30 -0800</creation_ts>
          <short_desc>Simplify CARingBuffer usage with SharedMemory storage</short_desc>
          <delta_ts>2020-12-21 15:09:04 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1715962</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-20 15:56:30 -0800</bug_when>
    <thetext>Simplify CARingBuffer usage with SharedMemory storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715963</commentid>
    <comment_count>1</comment_count>
      <attachid>416589</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-20 16:02:31 -0800</bug_when>
    <thetext>Created attachment 416589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716023</commentid>
    <comment_count>2</comment_count>
      <attachid>416589</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-12-21 10:18:39 -0800</bug_when>
    <thetext>Comment on attachment 416589
Patch

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

r=me

&gt; Source/WebKit/Shared/Cocoa/SharedRingBufferStorage.cpp:40
&gt; +void* ReadOnlySharedRingBufferStorage::data()

const void*?

&gt; Source/WebKit/Shared/Cocoa/SharedRingBufferStorage.cpp:45
&gt; +auto ReadOnlySharedRingBufferStorage::sharedFrameBounds() const -&gt; FrameBounds*

const FrameBounds*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716056</commentid>
    <comment_count>3</comment_count>
      <attachid>416617</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-21 12:09:59 -0800</bug_when>
    <thetext>Created attachment 416617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716103</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-21 14:32:02 -0800</bug_when>
    <thetext>Committed r271041: &lt;https://trac.webkit.org/changeset/271041&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416617.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716104</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-21 14:33:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/72562577&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416589</attachid>
            <date>2020-12-20 16:02:31 -0800</date>
            <delta_ts>2020-12-21 12:09:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220047-20201220160230.patch</filename>
            <type>text/plain</type>
            <size>25111</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0OWI0NjZjMzVmMzhi
ZjdiZGI3YjBlOGJkMGZjNTNjNWJlMzdiOS4uODlkMzZhN2E5ZDY4NjZlZDNjNDViYjMyZTM0NzIw
MmRiNDFkZmJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEyLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgQ0FSaW5nQnVm
ZmVyIHVzYWdlIHdpdGggU2hhcmVkTWVtb3J5IHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA0NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IENBUmluZ0J1ZmZlciB1c2FnZSB3
aXRoIFNoYXJlZE1lbW9yeSBzdG9yYWdlOgorICAgICAgICAxLiBUaGVyZSBhcmUgbm93IDIgc3Rv
cmFnZSB0eXBlczoKKyAgICAgICAgICAgLSBSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
OiBVc2VkIGJ5IHRoZSByZWFkZXIKKyAgICAgICAgICAgLSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZTogVXNlZCBieSB0aGUgd3JpdGVyCisgICAgICAgICAgIE9uZSB0eXBlIGluaGVyaXRzIHRoZSBv
dGhlci4gVGhpcyBhbGxvd3MgdGhlIEFQSSB0byBiZSBhIGJpdAorICAgICAgICAgICBjbGVhcmVy
IGFuZCB3ZSBjYW4gZHJvcCB0aGUgbV9yZWFkeU9ubHkgZmxhZy4KKyAgICAgICAgMi4gRHJvcCBT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdlKCkgZnVuY3Rpb24u
IEluc3RlYWQsIHRoZSByZWFkZXIKKyAgICAgICAgICAgY2FuIG5vdyBjb25zdHJ1Y3QgYSBuZXcg
UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSBkaXJlY3RseSBvZiB0aGUgU2hhcmVkTWVt
b3J5CisgICAgICAgICAgIGhhbmRsZSBhbmQgcGFzcyBpdCB0byB0aGUgQ0FSaW5nQnVmZmVyIGNv
bnN0cnVjdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6Q0FSaW5nQnVmZmVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaDoKKwogMjAyMC0xMi0y
MCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dIFVucmV2aWV3ZWQgdHlwbyBmaXggb2YgcjI3MTAxNQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxYjZh
NDFlYmQxYTI4ZjE1YTEwYzFiMWM5NjZkZjY4MTgwNDJmMTI4Li4zYTdjMTZmOGZiYTRjMTdmMWU3
NTM0OTA4YmFiMmVjY2I5YzlkOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEy
LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkg
Q0FSaW5nQnVmZmVyIHVzYWdlIHdpdGggU2hhcmVkTWVtb3J5IHN0b3JhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA0NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IENBUmluZ0J1ZmZl
ciB1c2FnZSB3aXRoIFNoYXJlZE1lbW9yeSBzdG9yYWdlOgorICAgICAgICAxLiBUaGVyZSBhcmUg
bm93IDIgc3RvcmFnZSB0eXBlczoKKyAgICAgICAgICAgLSBSZWFkT25seVNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOiBVc2VkIGJ5IHRoZSByZWFkZXIKKyAgICAgICAgICAgLSBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZTogVXNlZCBieSB0aGUgd3JpdGVyCisgICAgICAgICAgIE9uZSB0eXBlIGluaGVy
aXRzIHRoZSBvdGhlci4gVGhpcyBhbGxvd3MgdGhlIEFQSSB0byBiZSBhIGJpdAorICAgICAgICAg
ICBjbGVhcmVyIGFuZCB3ZSBjYW4gZHJvcCB0aGUgbV9yZWFkeU9ubHkgZmxhZy4KKyAgICAgICAg
Mi4gRHJvcCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdlKCkg
ZnVuY3Rpb24uIEluc3RlYWQsIHRoZSByZWFkZXIKKyAgICAgICAgICAgY2FuIG5vdyBjb25zdHJ1
Y3QgYSBuZXcgUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSBkaXJlY3RseSBvZiB0aGUg
U2hhcmVkTWVtb3J5CisgICAgICAgICAgIGhhbmRsZSBhbmQgcGFzcyBpdCB0byB0aGUgQ0FSaW5n
QnVmZmVyIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlv
RGVzdGluYXRpb246OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzU3Rv
cmFnZUNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3Jk
ZXI6OlJlbW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
Y29yZGVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9T
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlYWRPbmx5U2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2U6OlJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpkYXRhKToK
KyAgICAgICAgKFdlYktpdDo6UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2hhcmVk
RnJhbWVCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlOjpnZXRDdXJyZW50RnJhbWVCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpS
ZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6
OlJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnVwZGF0ZUZyYW1lQm91bmRzKToKKyAg
ICAgICAgKFdlYktpdDo6U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNldFN0b3JhZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxvY2F0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRDdXJyZW50RnJhbWVCb3VuZHMp
OgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oOgorICAg
ICAgICAoV2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzdG9yYWdlIGNv
bnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yaW5nQnVmZmVyKToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpz
ZXRTdG9yYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNl
dFN0b3JhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKToKKwogMjAyMC0xMi0y
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjcwOTY5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5jcHAKaW5kZXggNDU2ZWVlMzFjZjllNDU1NzRjN2E2M2M3
MTlmMDMyODliYWE0Y2M1OC4uNjNmNmRlNzVhMjUyYzNiNTAwMWY5ZTNmOTY0ZGIyYWI4MGVkNTIz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5n
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJp
bmdCdWZmZXIuY3BwCkBAIC01OCw2ICs1OCwxMiBAQCBDQVJpbmdCdWZmZXI6OkNBUmluZ0J1ZmZl
cihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFnZT4mJiBzdG9yYWdlKQogewogfQogCitDQVJp
bmdCdWZmZXI6OkNBUmluZ0J1ZmZlcihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFnZT4mJiBz
dG9yYWdlLCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZy
YW1lQ291bnQpCisgICAgOiBtX2J1ZmZlcnMoV1RGTW92ZShzdG9yYWdlKSkKK3sKKyAgICBhbGxv
Y2F0ZShmb3JtYXQsIGZyYW1lQ291bnQpOworfQorCiB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2Nh
dGUoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNv
dW50KQogewogICAgIG1fZGVzY3JpcHRpb24gPSBmb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oCmluZGV4IGZiMDM0NmQ5OTMy
YTc2OTA0ZDZiYTZiMDcxNWNmZjNkZTQyZjc3MDcuLjhiYjBjOGJkMWJkMTYwMGU3NjQ0NWI5MTMx
MDJlMTY3MTE0ODBjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0NBUmluZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL0NBUmluZ0J1ZmZlci5oCkBAIC05MCw3ICs5MCw4IEBAIGNsYXNzIENBUmluZ0J1ZmZl
ciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgQ0FSaW5nQnVmZmVyKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ0FSaW5nQnVmZmVyKFVu
aXF1ZVJlZjxDQVJpbmdCdWZmZXJTdG9yYWdlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBDQVJpbmdCdWZmZXIoVW5pcXVlUmVmPENBUmluZ0J1ZmZlclN0b3JhZ2U+JiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIENBUmluZ0J1ZmZlcihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFn
ZT4mJiwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IGZyYW1lQ291bnQp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5DQVJpbmdCdWZmZXIoKTsKIAogICAgIGVudW0gRXJyb3Ig
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggN2MwMGNhY2JlNTFiZjM2N2Ey
N2IyMWIyZWZlOGU4MjU4Mjg4ZDJkMy4uMGY4NDA3YzFmM2RjNzg3YjUwZTliZjYwOTkxYWVlN2Ni
NDEwYjRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMp
CiAgICAgewotICAgICAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1
ZmZlci5nZXQoKSwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVz
KTsKKyAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaXBj
SGFuZGxlLmhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogI2Vu
ZGlmCiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgICAgICA6IG1faWQoaWRlbnRp
ZmllcikKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgLCBtX2F1ZGlvT3V0cHV0VW5pdEFk
YXB0b3IoKnRoaXMpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPigp
KSkKKyAgICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+KCkpCiAjZW5kaWYKICAgICB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xMTcsMTEg
KzExNyw2IEBAIHByaXZhdGU6CiAgICAgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdl
KCkpOwotICAgIH0KLQogICAgIE9TU3RhdHVzIHJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWlu
dDY0X3QgaG9zdFRpbWUsIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBp
b0RhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXggNjRiMDkxNGUxODQxMTYy
ODk3OWY0MmZiYzNiNzRiZTQzMWJhNWUwYi4uYThmOWE4ODJkNGYxZmFkMzA2ODRkNTYwYzdhM2Uz
Y2FmYWI0N2FlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkK
IFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlcihSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXImIG1hbmFnZXIpCiAgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVuZGVyZXIo
V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpKQotICAgICwg
bV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPigpKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVl
UmVmPENBUmluZ0J1ZmZlcj4oKSkKIHsKICAgICBBU1NFUlQobV9yZW5kZXJlcik7CiAKQEAgLTc1
LDExICs3NSw2IEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjp+UmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKQogICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7
CiB9CiAKLVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcjo6c3RvcmFnZSgpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwotfQotCiB2b2lkIFJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFydCgpCiB7CiAgICAgbV9yZW5k
ZXJlci0+c3RhcnQoKTsKQEAgLTEwNSw4ICsxMDAsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvTWVkaWFT
dHJlYW1UcmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFy
ZQogICAgIE1FU1NBR0VfQ0hFQ0soV2ViQXVkaW9CdWZmZXJMaXN0Ojppc1N1cHBvcnRlZERlc2Ny
aXB0aW9uKGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcykpOwogICAgIG1fZGVzY3JpcHRpb24g
PSBkZXNjcmlwdGlvbjsKIAotICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UobV9y
aW5nQnVmZmVyLmdldCgpLCBpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwotCisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaXBjSGFuZGxl
LmhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgbV9hdWRpb0J1ZmZl
ckxpc3QgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9kZXNjcmlwdGlvbik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCBkNTM5Mjli
NDgxMDAxOWZjOTJhZjNjMmNmMzBiOWM2ZGYzM2Y1YjQ2Li4zYzZkOWYzNDk4NGQ3ZjkwYzZlMDI3
YTFkNmM0YWQ4NDZmM2ZmNGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlci5oCkBAIC02MSw4ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNT
dG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNv
cmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsK
ICAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJl
ck9mRnJhbWVzKTsKIAotICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7Ci0K
ICAgICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIG1fbWFuYWdl
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXI+IG1fcmVuZGVyZXI7CiAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IG1fZGVzY3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCA1M2ZkNGI0YWVmODg1ZGNlMWEwZTIx
NGE0MTVlODJjZTUwNTQ5ZGU2Li42ODQxMzFmZDA5ZmMxMmEyYTVjYmEyYmFkYzMzMmUxMTg1YzY1
YWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTU2LDI1ICs1NiwyMCBAQCBSZW1vdGVNZWRpYVJlY29y
ZGVyOjpSZW1vdGVNZWRpYVJlY29yZGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNv
bm5lY3RpbwogICAgICwgbV93cml0ZXIoV1RGTW92ZSh3cml0ZXIpKQogewogICAgIGlmIChyZWNv
cmRBdWRpbykKLSAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KCkpOworICAgICAgICBtX3Jp
bmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKIH0KIAogUmVtb3RlTWVkaWFS
ZWNvcmRlcjo6flJlbW90ZU1lZGlhUmVjb3JkZXIoKQogewogfQogCi1TaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZSYgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcmFnZSgpCi17Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdl
KCkpOwotfQotCiB2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VD
aGFuZ2VkKGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdl
YkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51
bWJlck9mRnJhbWVzKQogewogICAgIE1FU1NBR0VfQ0hFQ0sobV9yaW5nQnVmZmVyKTsKIAogICAg
IG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFk
T25seVN0b3JhZ2UoKm1fcmluZ0J1ZmZlciwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1
ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihpcGNI
YW5kbGUuaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICBtX2F1ZGlv
QnVmZmVyTGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2NyaXB0aW9u
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuaAppbmRleCAzODhlY2JiYTM5NzkwZGYzZTRhOTFiNjIwMmY4OWIyN2Yx
NTZjZDMyLi5mOTljMjQxOTJmYTc4YmJlODRlNjIwYjhjYjk5ODMyMDVmZDM4NTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXIuaApAQCAtNzcsOCArNzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGF1c2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCi0gICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKLQog
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKICAgICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVmPFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcApp
bmRleCBkNTA3MmU1NGU4ZjNiZjg1NzUyN2FmZjM1MTY1M2E2YThlZWNiYjRlLi41OTdlNWNlMGEy
ZjdlZGU0MWMxNzAxY2YzYWNjMzQ1YWE4MWQ0OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwCkBAIC0zMiw1OCAr
MzIsNjIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0
b3JhZ2U6OnNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBzdG9yYWdlLCBjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCitSZWFk
T25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUpCisgICAgOiBtX3N0b3JhZ2Uo
U2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KSkKIHsKLSAgICBBU1NFUlQoc3RvcmFnZSB8fCAhbV9yZWFkT25seSk7Ci0gICAgbV9zdG9y
YWdlID0gV1RGTW92ZShzdG9yYWdlKTsKLSAgICBpZiAobV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIp
Ci0gICAgICAgIG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyKG1fc3RvcmFnZS5nZXQoKSwgZm9ybWF0
LCBmcmFtZUNvdW50KTsKIH0KIAotdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRl
UmVhZE9ubHlTdG9yYWdlKFdlYkNvcmU6OkNBUmluZ0J1ZmZlciYgcmluZ0J1ZmZlciwgY29uc3Qg
U2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQordm9pZCogUmVhZE9ubHlTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZTo6ZGF0YSgpCiB7Ci0gICAgaWYgKGhhbmRsZS5pc051bGwoKSkgewotICAg
ICAgICByaW5nQnVmZmVyLmRlYWxsb2NhdGUoKTsKLSAgICAgICAgbV9yZWFkT25seSA9IGZhbHNl
OwotICAgICAgICBtX3N0b3JhZ2UgPSBudWxscHRyOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIHJldHVybiBtX3N0b3JhZ2UgPyBzdGF0aWNfY2FzdDxCeXRlKj4obV9zdG9yYWdlLT5kYXRh
KCkpICsgc2l6ZW9mKEZyYW1lQm91bmRzKSA6IG51bGxwdHI7Cit9CiAKLSAgICBhdXRvIG1lbW9y
eSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7Ci0gICAgbV9zdG9yYWdlID0gV1RGTW92ZShtZW1vcnkpOwotICAgIG1fcmVhZE9u
bHkgPSB0cnVlOwotICAgIHJpbmdCdWZmZXIuYWxsb2NhdGUoZm9ybWF0LCBmcmFtZUNvdW50KTsK
K2F1dG8gUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2hhcmVkRnJhbWVCb3VuZHMo
KSBjb25zdCAtPiBGcmFtZUJvdW5kcyoKK3sKKyAgICByZXR1cm4gbV9zdG9yYWdlID8gcmVpbnRl
cnByZXRfY2FzdDxGcmFtZUJvdW5kcyo+KG1fc3RvcmFnZS0+ZGF0YSgpKSA6IG51bGxwdHI7CiB9
CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmFsbG9jYXRlKHNpemVfdCBieXRlQ291
bnQsIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVD
b3VudCkKK3ZvaWQgUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Z2V0Q3VycmVudEZy
YW1lQm91bmRzKHVpbnQ2NF90JiBzdGFydEZyYW1lLCB1aW50NjRfdCYgZW5kRnJhbWUpCiB7Ci0g
ICAgaWYgKCFtX3JlYWRPbmx5KSB7Ci0gICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVk
TWVtb3J5OjphbGxvY2F0ZShieXRlQ291bnQgKyBzaXplb2YoRnJhbWVCb3VuZHMpKTsKLSAgICAg
ICAgbmV3IChOb3ROdWxsLCBzaGFyZWRNZW1vcnktPmRhdGEoKSkgRnJhbWVCb3VuZHM7Ci0gICAg
ICAgIHNldFN0b3JhZ2UoV1RGTW92ZShzaGFyZWRNZW1vcnkpLCBmb3JtYXQsIGZyYW1lQ291bnQp
OwotICAgIH0KKyAgICBzdGFydEZyYW1lID0gbV9zdGFydEZyYW1lOworICAgIGVuZEZyYW1lID0g
bV9lbmRGcmFtZTsKIH0KIAotdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxvY2F0
ZSgpCit2b2lkIFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmZsdXNoKCkKIHsKLSAg
ICBpZiAoIW1fcmVhZE9ubHkpCi0gICAgICAgIHNldFN0b3JhZ2UobnVsbHB0ciwgeyB9LCAwKTsK
KyAgICBtX3N0YXJ0RnJhbWUgPSBtX2VuZEZyYW1lID0gMDsKIH0KIAotYXV0byBTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZTo6c2hhcmVkRnJhbWVCb3VuZHMoKSBjb25zdCAtPiBGcmFtZUJvdW5kcyoK
K3ZvaWQgUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlRnJhbWVCb3VuZHMo
KQogewotICAgIHJldHVybiBtX3N0b3JhZ2UgPyByZWludGVycHJldF9jYXN0PEZyYW1lQm91bmRz
Kj4obV9zdG9yYWdlLT5kYXRhKCkpIDogbnVsbHB0cjsKKyAgICBhdXRvKiBzaGFyZWRCb3VuZHMg
PSBzaGFyZWRGcmFtZUJvdW5kcygpOworICAgIGlmICghc2hhcmVkQm91bmRzKSB7CisgICAgICAg
IG1fc3RhcnRGcmFtZSA9IG1fZW5kRnJhbWUgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBwYWlyID0gc2hhcmVkQm91bmRzLT5ib3VuZHNCdWZmZXJbc2hhcmVkQm91bmRz
LT5ib3VuZHNCdWZmZXJJbmRleC5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpXTsKKyAg
ICBtX3N0YXJ0RnJhbWUgPSBwYWlyLmZpcnN0OworICAgIG1fZW5kRnJhbWUgPSBwYWlyLnNlY29u
ZDsKIH0KIAotdm9pZCogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmRhdGEoKQordm9pZCBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2V0U3RvcmFnZShSZWZQdHI8U2hhcmVkTWVtb3J5PiYmIHN0
b3JhZ2UsIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCkKIHsKLSAgICByZXR1cm4gbV9zdG9yYWdlID8gc3RhdGljX2Nhc3Q8Qnl0ZSo+KG1f
c3RvcmFnZS0+ZGF0YSgpKSArIHNpemVvZihGcmFtZUJvdW5kcykgOiBudWxscHRyOworICAgIG1f
c3RvcmFnZSA9IFdURk1vdmUoc3RvcmFnZSk7CisgICAgaWYgKG1fc3RvcmFnZUNoYW5nZWRIYW5k
bGVyKQorICAgICAgICBtX3N0b3JhZ2VDaGFuZ2VkSGFuZGxlcihtX3N0b3JhZ2UuZ2V0KCksIGZv
cm1hdCwgZnJhbWVDb3VudCk7CiB9CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6Omdl
dEN1cnJlbnRGcmFtZUJvdW5kcyh1aW50NjRfdCYgc3RhcnRGcmFtZSwgdWludDY0X3QmIGVuZEZy
YW1lKQordm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUoc2l6ZV90IGJ5dGVD
b3VudCwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFt
ZUNvdW50KQogewotICAgIHN0YXJ0RnJhbWUgPSBtX3N0YXJ0RnJhbWU7Ci0gICAgZW5kRnJhbWUg
PSBtX2VuZEZyYW1lOworICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjphbGxv
Y2F0ZShieXRlQ291bnQgKyBzaXplb2YoRnJhbWVCb3VuZHMpKTsKKyAgICBuZXcgKE5vdE51bGws
IHNoYXJlZE1lbW9yeS0+ZGF0YSgpKSBGcmFtZUJvdW5kczsKKyAgICBzZXRTdG9yYWdlKFdURk1v
dmUoc2hhcmVkTWVtb3J5KSwgZm9ybWF0LCBmcmFtZUNvdW50KTsKK30KKwordm9pZCBTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxvY2F0ZSgpCit7CisgICAgc2V0U3RvcmFnZShudWxscHRy
LCB7IH0sIDApOwogfQogCiB2b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRDdXJyZW50
RnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpCkBAIC05
MSwxMCArOTUsNiBAQCB2b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRDdXJyZW50RnJh
bWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0XwogICAgIG1fc3RhcnRGcmFtZSA9
IHN0YXJ0RnJhbWU7CiAgICAgbV9lbmRGcmFtZSA9IGVuZEZyYW1lOwogCi0gICAgQVNTRVJUKCFt
X3JlYWRPbmx5KTsKLSAgICBpZiAobV9yZWFkT25seSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
YXV0byogc2hhcmVkQm91bmRzID0gc2hhcmVkRnJhbWVCb3VuZHMoKTsKICAgICBpZiAoIXNoYXJl
ZEJvdW5kcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0LDI0ICsxMDQsNiBAQCB2b2lkIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRG
cmFtZSwgdWludDY0XwogICAgIHNoYXJlZEJvdW5kcy0+Ym91bmRzQnVmZmVySW5kZXguc3RvcmUo
aW5kZXhUb1dyaXRlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKIH0KIAotdm9pZCBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlRnJhbWVCb3VuZHMoKQotewotICAgIGF1dG8qIHNo
YXJlZEJvdW5kcyA9IHNoYXJlZEZyYW1lQm91bmRzKCk7Ci0gICAgaWYgKCFzaGFyZWRCb3VuZHMp
IHsKLSAgICAgICAgbV9zdGFydEZyYW1lID0gbV9lbmRGcmFtZSA9IDA7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBhdXRvIHBhaXIgPSBzaGFyZWRCb3VuZHMtPmJvdW5kc0J1ZmZlcltz
aGFyZWRCb3VuZHMtPmJvdW5kc0J1ZmZlckluZGV4LmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNx
dWlyZSldOwotICAgIG1fc3RhcnRGcmFtZSA9IHBhaXIuZmlyc3Q7Ci0gICAgbV9lbmRGcmFtZSA9
IHBhaXIuc2Vjb25kOwotfQotCi12b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpmbHVzaCgp
Ci17Ci0gICAgbV9zdGFydEZyYW1lID0gbV9lbmRGcmFtZSA9IDA7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oCmluZGV4IDJmOTZmZTE0NzU0NWY5MTM5NzgzNDAx
OWE4ZmMwOGMxMjkwNTIwNjEuLmRlODUxNTQxOGQ0YjM4Y2IyNDIwOTQ2MDEzZTRlYzUzNjkzYWNj
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaApAQCAtMzgsNDYgKzM4LDU3IEBAIGNsYXNzIENBUmluZ0J1ZmZlcjsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIDogcHVi
bGljIFdlYkNvcmU6OkNBUmluZ0J1ZmZlclN0b3JhZ2UgeworY2xhc3MgUmVhZE9ubHlTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSA6IHB1YmxpYyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlIHsK
IHB1YmxpYzoKLSAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZShGdW5jdGlvbjx2b2lkKFNoYXJl
ZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCBzaXplX3QgZnJhbWVDb3VudCk+JiYgc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0gbnVsbHB0cikK
LSAgICAgICAgOiBtX3N0b3JhZ2VDaGFuZ2VkSGFuZGxlcihXVEZNb3ZlKHN0b3JhZ2VDaGFuZ2Vk
SGFuZGxlcikpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9zdG9y
YWdlQ2hhbmdlZEhhbmRsZXIgPSBudWxscHRyOyB9CisgICAgUmVhZE9ubHlTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBSZWFkT25seVNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7CiAKICAgICBTaGFyZWRN
ZW1vcnkqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7IH0KLSAgICB2
b2lkIHVwZGF0ZVJlYWRPbmx5U3RvcmFnZShXZWJDb3JlOjpDQVJpbmdCdWZmZXImLCBjb25zdCBT
aGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKK3Byb3RlY3RlZDoKICAgICAvLyBX
ZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlCi0gICAgdm9pZCBhbGxvY2F0ZShzaXplX3QsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCkgZmluYWw7Ci0gICAgdm9pZCBkZWFsbG9jYXRlKCkgZmluYWw7CisgICAgdm9pZCBh
bGxvY2F0ZShzaXplX3QsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
Zm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkZWFsbG9j
YXRlKCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCogZGF0YSgpIGZpbmFsOwogICAgIHZvaWQgZ2V0
Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFydFRpbWUsIHVpbnQ2NF90JiBlbmRUaW1l
KSBmaW5hbDsKLSAgICB2b2lkIHNldEN1cnJlbnRGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkgZmluYWw7CisgICAgdm9pZCBzZXRDdXJyZW50RnJhbWVC
b3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpIG92ZXJyaWRlIHsg
fQogICAgIHVpbnQ2NF90IGN1cnJlbnRTdGFydEZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zdGFydEZyYW1lOyB9CiAgICAgdWludDY0X3QgY3VycmVudEVuZEZyYW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9lbmRGcmFtZTsgfQogICAgIHZvaWQgdXBkYXRlRnJhbWVCb3VuZHMoKSBm
aW5hbDsKICAgICB2b2lkIGZsdXNoKCkgZmluYWw7CiAKLXByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBib3VuZHNCdWZmZXJTaXplIHsgMzIgfTsKICAgICBzdHJ1Y3QgRnJh
bWVCb3VuZHMgewogICAgICAgICBzdGQ6OnBhaXI8dWludDY0X3QsIHVpbnQ2NF90PiBib3VuZHNC
dWZmZXJbYm91bmRzQnVmZmVyU2l6ZV07CiAgICAgICAgIEF0b21pYzx1bnNpZ25lZD4gYm91bmRz
QnVmZmVySW5kZXggeyAwIH07CiAgICAgfTsKLQotICAgIHZvaWQgc2V0U3RvcmFnZShSZWZQdHI8
U2hhcmVkTWVtb3J5PiYmLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpOwogICAgIEZyYW1lQm91bmRzKiBzaGFyZWRGcmFt
ZUJvdW5kcygpIGNvbnN0OwogCi0gICAgRnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqLCBjb25z
dCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1l
Q291bnQpPiBtX3N0b3JhZ2VDaGFuZ2VkSGFuZGxlcjsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBtX3N0b3JhZ2U7Ci0gICAgYm9vbCBtX3JlYWRPbmx5IHsgZmFsc2UgfTsKICAgICB1aW50NjRf
dCBtX3N0YXJ0RnJhbWUgeyAwIH07CiAgICAgdWludDY0X3QgbV9lbmRGcmFtZSB7IDAgfTsKIH07
CiAKK2NsYXNzIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIGZpbmFsIDogcHVibGljIFJlYWRPbmx5
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UgeworcHVibGljOgorICAgIFNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlKEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KT4mJiBzdG9yYWdl
Q2hhbmdlZEhhbmRsZXIpCisgICAgICAgIDogbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIoV1RGTW92
ZShzdG9yYWdlQ2hhbmdlZEhhbmRsZXIpKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGludmFs
aWRhdGUoKSB7IG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0gbnVsbHB0cjsgfQorCitwcml2YXRl
OgorICAgIC8vIFdlYkNvcmU6OkNBUmluZ0J1ZmZlclN0b3JhZ2UKKyAgICB2b2lkIGFsbG9jYXRl
KHNpemVfdCwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KSBmaW5hbDsKKyAgICB2b2lkIGRlYWxsb2NhdGUoKSBmaW5hbDsK
KyAgICB2b2lkIHNldEN1cnJlbnRGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50
NjRfdCBlbmRGcmFtZSkgZmluYWw7CisKKyAgICB2b2lkIHNldFN0b3JhZ2UoUmVmUHRyPFNoYXJl
ZE1lbW9yeT4mJiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3Jt
YXQsIHNpemVfdCBmcmFtZUNvdW50KTsKKworICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5
KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVf
dCBmcmFtZUNvdW50KT4gbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXI7Cit9OworCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMTZjZjQ5
ODU0MWRlODQ5YWY2Nzg1NGI4Y2EyMzMzZmRiYTJlYzk2Yy4uYjlkOTMyMDk2MzlkZDNiZjhmMjc0
ODM1MjRjZjQwNmQ2M2VjNjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0ciht
YW5hZ2VyKSkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4o
KSkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkpCiAjZW5k
aWYKIHsKICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7CkBA
IC03Nyw4ICs3Nyw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6CiB7CiAgICAgbV9kZXNjcmlw
dGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwotICAgIHN0
b3JhZ2UudXBkYXRlUmVhZE9ubHlTdG9yYWdlKCptX3JpbmdCdWZmZXIsIGhhbmRsZSwgZGVzY3Jp
cHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENB
UmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogICAgIG1fYnVmZmVyID0g
bWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1l
cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKaW5k
ZXggOWYxYjc3MmYxYTI0ZWNhNTYxNWNkYjkwNTkyN2M0NDY0MTg2ZDAyYS4uYTVlOWNlNzQxNjBk
MTQyOWE3MjRiMTk3MTFkNjQ0NzVjYzQ4ZjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJj
ZVByb3ZpZGVyTWFuYWdlci5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFQbGF5ZXJJ
ZGVudGlmaQogCiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86
OlJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQog
ICAgIDogbV9wcm92aWRlcihXVEZNb3ZlKHByb3ZpZGVyKSkKLSAgICAsIG1fcmluZ0J1ZmZlciht
YWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4oKSkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkp
CiB7CiB9CiAKQEAgLTEyNCw4ICsxMjQsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcgogewog
ICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIGF1dG8mIHN0b3JhZ2UgPSBz
dGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFn
ZSgpKTsKLSAgICBzdG9yYWdlLnVwZGF0ZVJlYWRPbmx5U3RvcmFnZSgqbV9yaW5nQnVmZmVyLCBo
YW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyID0g
bWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5n
QnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAg
ICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCA5OWEw
N2ZlOGY0ZGM3NWIzNjBmNWE1MGI3NDBmZTc3OGFmZmI4OTI3Li5kYWE1M2UyYWM4MWRlYmY3ZTkz
MzNlMDE4ZjVlODYyMzM5OTRkNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTEx
MywxNSArMTEzLDE0IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291CiAKIFJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQot
ICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVm
PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPigpKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5p
cXVlPENBUmluZ0J1ZmZlcj4oKSkKIHsKIH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUm
IGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRl
c2NyaXB0aW9uOwotICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKLSAgICBzdG9yYWdlLnVwZGF0
ZVJlYWRPbmx5U3RvcmFnZSgqbV9yaW5nQnVmZmVyLCBoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwg
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUg
dGltZSwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416617</attachid>
            <date>2020-12-21 12:09:59 -0800</date>
            <delta_ts>2020-12-21 15:09:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220047-20201221120958.patch</filename>
            <type>text/plain</type>
            <size>25315</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0OWI0NjZjMzVmMzhi
ZjdiZGI3YjBlOGJkMGZjNTNjNWJlMzdiOS4uNjdhYmY4N2Y4MDBkNTBlYjQ0MjQ2MjJmMzRlY2E4
M2RmOTA0ZDY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEyLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgQ0FSaW5nQnVm
ZmVyIHVzYWdlIHdpdGggU2hhcmVkTWVtb3J5IHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA0NworCisgICAgICAgIFJldmlld2VkIGJ5
IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFNpbXBsaWZ5IENBUmluZ0J1ZmZlciB1c2FnZSB3aXRo
IFNoYXJlZE1lbW9yeSBzdG9yYWdlOgorICAgICAgICAxLiBUaGVyZSBhcmUgbm93IDIgc3RvcmFn
ZSB0eXBlczoKKyAgICAgICAgICAgLSBSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOiBV
c2VkIGJ5IHRoZSByZWFkZXIKKyAgICAgICAgICAgLSBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTog
VXNlZCBieSB0aGUgd3JpdGVyCisgICAgICAgICAgIE9uZSB0eXBlIGluaGVyaXRzIHRoZSBvdGhl
ci4gVGhpcyBhbGxvd3MgdGhlIEFQSSB0byBiZSBhIGJpdAorICAgICAgICAgICBjbGVhcmVyIGFu
ZCB3ZSBjYW4gZHJvcCB0aGUgbV9yZWFkeU9ubHkgZmxhZy4KKyAgICAgICAgMi4gRHJvcCBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdlKCkgZnVuY3Rpb24uIElu
c3RlYWQsIHRoZSByZWFkZXIKKyAgICAgICAgICAgY2FuIG5vdyBjb25zdHJ1Y3QgYSBuZXcgUmVh
ZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSBkaXJlY3RseSBvZiB0aGUgU2hhcmVkTWVtb3J5
CisgICAgICAgICAgIGhhbmRsZSBhbmQgcGFzcyBpdCB0byB0aGUgQ0FSaW5nQnVmZmVyIGNvbnN0
cnVjdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6Q0FSaW5nQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaDoKKwogMjAyMC0xMi0yMCAg
RnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2lu
Q2Fpcm9dIFVucmV2aWV3ZWQgdHlwbyBmaXggb2YgcjI3MTAxNQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxYjZhNDFl
YmQxYTI4ZjE1YTEwYzFiMWM5NjZkZjY4MTgwNDJmMTI4Li5iNjVmYzBjMjczM2RiYjMyZjViMzk5
MWFkMGRjYmNjM2Y0N2I3NGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEyLTIw
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgQ0FS
aW5nQnVmZmVyIHVzYWdlIHdpdGggU2hhcmVkTWVtb3J5IHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA0NworCisgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFNpbXBsaWZ5IENBUmluZ0J1ZmZlciB1c2Fn
ZSB3aXRoIFNoYXJlZE1lbW9yeSBzdG9yYWdlOgorICAgICAgICAxLiBUaGVyZSBhcmUgbm93IDIg
c3RvcmFnZSB0eXBlczoKKyAgICAgICAgICAgLSBSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlOiBVc2VkIGJ5IHRoZSByZWFkZXIKKyAgICAgICAgICAgLSBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZTogVXNlZCBieSB0aGUgd3JpdGVyCisgICAgICAgICAgIE9uZSB0eXBlIGluaGVyaXRzIHRo
ZSBvdGhlci4gVGhpcyBhbGxvd3MgdGhlIEFQSSB0byBiZSBhIGJpdAorICAgICAgICAgICBjbGVh
cmVyIGFuZCB3ZSBjYW4gZHJvcCB0aGUgbV9yZWFkeU9ubHkgZmxhZy4KKyAgICAgICAgMi4gRHJv
cCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9ubHlTdG9yYWdlKCkgZnVuY3Rp
b24uIEluc3RlYWQsIHRoZSByZWFkZXIKKyAgICAgICAgICAgY2FuIG5vdyBjb25zdHJ1Y3QgYSBu
ZXcgUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSBkaXJlY3RseSBvZiB0aGUgU2hhcmVk
TWVtb3J5CisgICAgICAgICAgIGhhbmRsZSBhbmQgcGFzcyBpdCB0byB0aGUgQ0FSaW5nQnVmZmVy
IGNvbnN0cnVjdG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbik6CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcjo6YXVkaW9TYW1wbGVzU3RvcmFnZUNo
YW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJl
YW1UcmFja1JlbmRlcmVyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVjb3JkZXI6OlJl
bW90ZU1lZGlhUmVjb3JkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlY29yZGVy
OjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9TaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlYWRPbmx5U2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2U6OlJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpkYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2hhcmVkRnJhbWVC
b3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlOjpnZXRDdXJyZW50RnJhbWVCb3VuZHMpOgorICAgICAgICAoV2ViS2l0OjpSZWFkT25s
eVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OlJlYWRP
bmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnVwZGF0ZUZyYW1lQm91bmRzKToKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OnNldFN0b3JhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxvY2F0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzZXRDdXJyZW50RnJhbWVCb3VuZHMpOgorICAg
ICAgICAqIFNoYXJlZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oOgorICAgICAgICAo
V2ViS2l0OjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzdG9yYWdlIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9yaW5nQnVmZmVyKToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9y
YWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVBy
b3ZpZGVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6UmVtb3RlQXVkaW8pOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3Jh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVt
b3RlQXVkaW86OlJlbW90ZUF1ZGlvKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRTdG9yYWdlKToKKwogMjAyMC0xMi0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVy
dGluZyByMjcwOTY5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvQ0FSaW5nQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0NBUmluZ0J1ZmZlci5jcHAKaW5kZXggNDU2ZWVlMzFjZjllNDU1NzRjN2E2M2M3MTlmMDMy
ODliYWE0Y2M1OC4uNjNmNmRlNzVhMjUyYzNiNTAwMWY5ZTNmOTY0ZGIyYWI4MGVkNTIzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQ0FSaW5nQnVmZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZm
ZXIuY3BwCkBAIC01OCw2ICs1OCwxMiBAQCBDQVJpbmdCdWZmZXI6OkNBUmluZ0J1ZmZlcihVbmlx
dWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFnZT4mJiBzdG9yYWdlKQogewogfQogCitDQVJpbmdCdWZm
ZXI6OkNBUmluZ0J1ZmZlcihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFnZT4mJiBzdG9yYWdl
LCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291
bnQpCisgICAgOiBtX2J1ZmZlcnMoV1RGTW92ZShzdG9yYWdlKSkKK3sKKyAgICBhbGxvY2F0ZShm
b3JtYXQsIGZyYW1lQ291bnQpOworfQorCiB2b2lkIENBUmluZ0J1ZmZlcjo6YWxsb2NhdGUoY29u
c3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQog
ewogICAgIG1fZGVzY3JpcHRpb24gPSBmb3JtYXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9DQVJpbmdCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0NBUmluZ0J1ZmZlci5oCmluZGV4IGZiMDM0NmQ5OTMyYTc2OTA0
ZDZiYTZiMDcxNWNmZjNkZTQyZjc3MDcuLjhiYjBjOGJkMWJkMTYwMGU3NjQ0NWI5MTMxMDJlMTY3
MTE0ODBjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0NBUmluZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L0NBUmluZ0J1ZmZlci5oCkBAIC05MCw3ICs5MCw4IEBAIGNsYXNzIENBUmluZ0J1ZmZlciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
Q0FSaW5nQnVmZmVyKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ0FSaW5nQnVmZmVyKFVuaXF1ZVJl
ZjxDQVJpbmdCdWZmZXJTdG9yYWdlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBD
QVJpbmdCdWZmZXIoVW5pcXVlUmVmPENBUmluZ0J1ZmZlclN0b3JhZ2U+JiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIENBUmluZ0J1ZmZlcihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyU3RvcmFnZT4mJiwg
Y29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90IGZyYW1lQ291bnQpOwogICAg
IFdFQkNPUkVfRVhQT1JUIH5DQVJpbmdCdWZmZXIoKTsKIAogICAgIGVudW0gRXJyb3IgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggN2MwMGNhY2JlNTFiZjM2N2EyN2IyMWIy
ZWZlOGU4MjU4Mjg4ZDJkMy4uMGY4NDA3YzFmM2RjNzg3YjUwZTliZjYwOTkxYWVlN2NiNDEwYjRm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgYXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoY29uc3QgU2hhcmVk
TWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAg
ewotICAgICAgICBzdG9yYWdlKCkudXBkYXRlUmVhZE9ubHlTdG9yYWdlKG1fcmluZ0J1ZmZlci5n
ZXQoKSwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAg
ICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaXBjSGFuZGxl
LmhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogI2VuZGlmCiAK
QEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgICAgICA6IG1faWQoaWRlbnRpZmllcikK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgLCBtX2F1ZGlvT3V0cHV0VW5pdEFkYXB0b3Io
KnRoaXMpCi0gICAgICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6Q0FS
aW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPigpKSkKKyAg
ICAgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKICAgICB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xMTcsMTEgKzExNyw2
IEBAIHByaXZhdGU6CiAgICAgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwot
ICAgIH0KLQogICAgIE9TU3RhdHVzIHJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3Qg
aG9zdFRpbWUsIFVJbnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEp
CiAgICAgewogICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRp
b01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKaW5kZXggNjRiMDkxNGUxODQxMTYyODk3OWY0
MmZiYzNiNzRiZTQzMWJhNWUwYi4uYThmOWE4ODJkNGYxZmFkMzA2ODRkNTYwYzdhM2UzY2FmYWI0
N2FlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5jcHAKQEAg
LTU3LDcgKzU3LDcgQEAgc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKIFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlcihSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIG1h
bmFnZXIpCiAgICAgOiBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVuZGVyZXIoV2ViQ29y
ZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI6OmNyZWF0ZSgpKQotICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWVSZWY8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPigpKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlUmVmPENB
UmluZ0J1ZmZlcj4oKSkKIHsKICAgICBBU1NFUlQobV9yZW5kZXJlcik7CiAKQEAgLTc1LDExICs3
NSw2IEBAIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjp+UmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIoKQogICAgIG1fcmVuZGVyZXItPmNsZWFyKCk7CiB9CiAK
LVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlcjo6c3RvcmFnZSgpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwotfQotCiB2b2lkIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOjpzdGFydCgpCiB7CiAgICAgbV9yZW5kZXJlci0+
c3RhcnQoKTsKQEAgLTEwNSw4ICsxMDAsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyOjphdWRpb1NhbXBsZXNTdG9yYWdlQ2hhbmdlZChjb25zdCBTaGFyZQogICAg
IE1FU1NBR0VfQ0hFQ0soV2ViQXVkaW9CdWZmZXJMaXN0Ojppc1N1cHBvcnRlZERlc2NyaXB0aW9u
KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcykpOwogICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKIAotICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0b3JhZ2UobV9yaW5nQnVm
ZmVyLmdldCgpLCBpcGNIYW5kbGUuaGFuZGxlLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMp
OwotCisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZVJlZjxDQVJpbmdCdWZmZXI+KG1ha2VV
bmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaXBjSGFuZGxlLmhhbmRs
ZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgbV9hdWRpb0J1ZmZlckxpc3Qg
PSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9kZXNjcmlwdGlvbik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuaAppbmRleCBkNTM5MjliNDgxMDAx
OWZjOTJhZjNjMmNmMzBiOWM2ZGYzM2Y1YjQ2Li4zYzZkOWYzNDk4NGQ3ZjkwYzZlMDI3YTFkNmM0
YWQ4NDZmM2ZmNGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlci5o
CkBAIC02MSw4ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdWRpb1NhbXBsZXNTdG9yYWdl
Q2hhbmdlZChjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKICAgICB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUsIHVpbnQ2NF90IG51bWJlck9mRnJh
bWVzKTsKIAotICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJiBzdG9yYWdlKCk7Ci0KICAgICBS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIG1fbWFuYWdlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI+
IG1fcmVuZGVyZXI7CiAgICAgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVz
Y3JpcHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCA1M2ZkNGI0YWVmODg1ZGNlMWEwZTIxNGE0MTVl
ODJjZTUwNTQ5ZGU2Li42ODQxMzFmZDA5ZmMxMmEyYTVjYmEyYmFkYzMzMmUxMTg1YzY1YWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlci5jcHAKQEAgLTU2LDI1ICs1NiwyMCBAQCBSZW1vdGVNZWRpYVJlY29yZGVyOjpS
ZW1vdGVNZWRpYVJlY29yZGVyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rp
bwogICAgICwgbV93cml0ZXIoV1RGTW92ZSh3cml0ZXIpKQogewogICAgIGlmIChyZWNvcmRBdWRp
bykKLSAgICAgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VV
bmlxdWVSZWY8U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KCkpOworICAgICAgICBtX3JpbmdCdWZm
ZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKTsKIH0KIAogUmVtb3RlTWVkaWFSZWNvcmRl
cjo6flJlbW90ZU1lZGlhUmVjb3JkZXIoKQogewogfQogCi1TaGFyZWRSaW5nQnVmZmVyU3RvcmFn
ZSYgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcmFnZSgpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4obV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwot
fQotCiB2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6OmF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2Vk
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUsIGNvbnN0IFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9m
RnJhbWVzKQogewogICAgIE1FU1NBR0VfQ0hFQ0sobV9yaW5nQnVmZmVyKTsKIAogICAgIG1fZGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIHN0b3JhZ2UoKS51cGRhdGVSZWFkT25seVN0
b3JhZ2UoKm1fcmluZ0J1ZmZlciwgaXBjSGFuZGxlLmhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4o
bWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihpcGNIYW5kbGUu
aGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICBtX2F1ZGlvQnVmZmVy
TGlzdCA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2NyaXB0aW9uKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRp
YVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIuaAppbmRleCAzODhlY2JiYTM5NzkwZGYzZTRhOTFiNjIwMmY4OWIyN2YxNTZjZDMy
Li5mOTljMjQxOTJmYTc4YmJlODRlNjIwYjhjYjk5ODMyMDVmZDM4NTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaApA
QCAtNzcsOCArNzcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc3VtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCi0gICAgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UmIHN0b3JhZ2UoKTsKLQogICAgIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAg
ICBNZWRpYVJlY29yZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVmPFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBtX3dyaXRlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmNwcAppbmRleCBk
NTA3MmU1NGU4ZjNiZjg1NzUyN2FmZjM1MTY1M2E2YThlZWNiYjRlLi44YWYyNjM3OWEwZTRlZWE1
NDMxNmQyNDEwM2EwMDlmYjI0NzRlYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuY3BwCkBAIC0zMiw3OSArMzIsMzgg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6
OnNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBzdG9yYWdlLCBjb25zdCBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCitSZWFkT25seVNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlKGNv
bnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5kbGUpCisgICAgOiBtX3N0b3JhZ2UoU2hhcmVk
TWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSkK
IHsKLSAgICBBU1NFUlQoc3RvcmFnZSB8fCAhbV9yZWFkT25seSk7Ci0gICAgbV9zdG9yYWdlID0g
V1RGTW92ZShzdG9yYWdlKTsKLSAgICBpZiAobV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIpCi0gICAg
ICAgIG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyKG1fc3RvcmFnZS5nZXQoKSwgZm9ybWF0LCBmcmFt
ZUNvdW50KTsKIH0KIAotdm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlUmVhZE9u
bHlTdG9yYWdlKFdlYkNvcmU6OkNBUmluZ0J1ZmZlciYgcmluZ0J1ZmZlciwgY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBm
b3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQordm9pZCogUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZTo6ZGF0YSgpCiB7Ci0gICAgaWYgKGhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBy
aW5nQnVmZmVyLmRlYWxsb2NhdGUoKTsKLSAgICAgICAgbV9yZWFkT25seSA9IGZhbHNlOwotICAg
ICAgICBtX3N0b3JhZ2UgPSBudWxscHRyOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
YXV0byBtZW1vcnkgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIG1fc3RvcmFnZSA9IFdURk1vdmUobWVtb3J5KTsKLSAg
ICBtX3JlYWRPbmx5ID0gdHJ1ZTsKLSAgICByaW5nQnVmZmVyLmFsbG9jYXRlKGZvcm1hdCwgZnJh
bWVDb3VudCk7Ci19Ci0KLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmFsbG9jYXRlKHNp
emVfdCBieXRlQ291bnQsIGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBz
aXplX3QgZnJhbWVDb3VudCkKLXsKLSAgICBpZiAoIW1fcmVhZE9ubHkpIHsKLSAgICAgICAgYXV0
byBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKGJ5dGVDb3VudCArIHNpemVv
ZihGcmFtZUJvdW5kcykpOwotICAgICAgICBuZXcgKE5vdE51bGwsIHNoYXJlZE1lbW9yeS0+ZGF0
YSgpKSBGcmFtZUJvdW5kczsKLSAgICAgICAgc2V0U3RvcmFnZShXVEZNb3ZlKHNoYXJlZE1lbW9y
eSksIGZvcm1hdCwgZnJhbWVDb3VudCk7Ci0gICAgfQorICAgIHJldHVybiBtX3N0b3JhZ2UgPyBz
dGF0aWNfY2FzdDxCeXRlKj4obV9zdG9yYWdlLT5kYXRhKCkpICsgc2l6ZW9mKEZyYW1lQm91bmRz
KSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmRlYWxsb2Nh
dGUoKQorYXV0byBSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpzaGFyZWRGcmFtZUJv
dW5kcygpIGNvbnN0IC0+IGNvbnN0IEZyYW1lQm91bmRzKgogewotICAgIGlmICghbV9yZWFkT25s
eSkKLSAgICAgICAgc2V0U3RvcmFnZShudWxscHRyLCB7IH0sIDApOworICAgIHJldHVybiBtX3N0
b3JhZ2UgPyByZWludGVycHJldF9jYXN0PGNvbnN0IEZyYW1lQm91bmRzKj4obV9zdG9yYWdlLT5k
YXRhKCkpIDogbnVsbHB0cjsKIH0KIAotYXV0byBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2hh
cmVkRnJhbWVCb3VuZHMoKSBjb25zdCAtPiBGcmFtZUJvdW5kcyoKK2F1dG8gUmVhZE9ubHlTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZTo6c2hhcmVkRnJhbWVCb3VuZHMoKSAtPiBGcmFtZUJvdW5kcyoK
IHsKICAgICByZXR1cm4gbV9zdG9yYWdlID8gcmVpbnRlcnByZXRfY2FzdDxGcmFtZUJvdW5kcyo+
KG1fc3RvcmFnZS0+ZGF0YSgpKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQqIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlOjpkYXRhKCkKLXsKLSAgICByZXR1cm4gbV9zdG9yYWdlID8gc3RhdGljX2Nhc3Q8
Qnl0ZSo+KG1fc3RvcmFnZS0+ZGF0YSgpKSArIHNpemVvZihGcmFtZUJvdW5kcykgOiBudWxscHRy
OwotfQotCi12b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpnZXRDdXJyZW50RnJhbWVCb3Vu
ZHModWludDY0X3QmIHN0YXJ0RnJhbWUsIHVpbnQ2NF90JiBlbmRGcmFtZSkKK3ZvaWQgUmVhZE9u
bHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6Z2V0Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90
JiBzdGFydEZyYW1lLCB1aW50NjRfdCYgZW5kRnJhbWUpCiB7CiAgICAgc3RhcnRGcmFtZSA9IG1f
c3RhcnRGcmFtZTsKICAgICBlbmRGcmFtZSA9IG1fZW5kRnJhbWU7CiB9CiAKLXZvaWQgU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U6OnNldEN1cnJlbnRGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkKK3ZvaWQgUmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZTo6Zmx1c2goKQogewotICAgIG1fc3RhcnRGcmFtZSA9IHN0YXJ0RnJhbWU7Ci0gICAgbV9l
bmRGcmFtZSA9IGVuZEZyYW1lOwotCi0gICAgQVNTRVJUKCFtX3JlYWRPbmx5KTsKLSAgICBpZiAo
bV9yZWFkT25seSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byogc2hhcmVkQm91bmRzID0g
c2hhcmVkRnJhbWVCb3VuZHMoKTsKLSAgICBpZiAoIXNoYXJlZEJvdW5kcykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgdW5zaWduZWQgaW5kZXhUb1dyaXRlID0gKHNoYXJlZEJvdW5kcy0+Ym91bmRz
QnVmZmVySW5kZXgubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKSArIDEpICUgYm91bmRz
QnVmZmVyU2l6ZTsKLSAgICBzaGFyZWRCb3VuZHMtPmJvdW5kc0J1ZmZlcltpbmRleFRvV3JpdGVd
ID0gc3RkOjptYWtlX3BhaXIoc3RhcnRGcmFtZSwgZW5kRnJhbWUpOwotICAgIHNoYXJlZEJvdW5k
cy0+Ym91bmRzQnVmZmVySW5kZXguc3RvcmUoaW5kZXhUb1dyaXRlLCBzdGQ6Om1lbW9yeV9vcmRl
cl9yZWxlYXNlKTsKKyAgICBtX3N0YXJ0RnJhbWUgPSBtX2VuZEZyYW1lID0gMDsKIH0KIAotdm9p
ZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6dXBkYXRlRnJhbWVCb3VuZHMoKQordm9pZCBSZWFk
T25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjp1cGRhdGVGcmFtZUJvdW5kcygpCiB7CiAgICAg
YXV0byogc2hhcmVkQm91bmRzID0gc2hhcmVkRnJhbWVCb3VuZHMoKTsKICAgICBpZiAoIXNoYXJl
ZEJvdW5kcykgewpAQCAtMTE3LDkgKzc2LDM3IEBAIHZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2U6OnVwZGF0ZUZyYW1lQm91bmRzKCkKICAgICBtX2VuZEZyYW1lID0gcGFpci5zZWNvbmQ7CiB9
CiAKLXZvaWQgU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U6OmZsdXNoKCkKK3ZvaWQgU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2U6OnNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBzdG9yYWdl
LCBjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291
bnQpCiB7Ci0gICAgbV9zdGFydEZyYW1lID0gbV9lbmRGcmFtZSA9IDA7CisgICAgbV9zdG9yYWdl
ID0gV1RGTW92ZShzdG9yYWdlKTsKKyAgICBpZiAobV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIpCisg
ICAgICAgIG1fc3RvcmFnZUNoYW5nZWRIYW5kbGVyKG1fc3RvcmFnZS5nZXQoKSwgZm9ybWF0LCBm
cmFtZUNvdW50KTsKK30KKwordm9pZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6YWxsb2NhdGUo
c2l6ZV90IGJ5dGVDb3VudCwgY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQs
IHNpemVfdCBmcmFtZUNvdW50KQoreworICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVt
b3J5OjphbGxvY2F0ZShieXRlQ291bnQgKyBzaXplb2YoRnJhbWVCb3VuZHMpKTsKKyAgICBuZXcg
KE5vdE51bGwsIHNoYXJlZE1lbW9yeS0+ZGF0YSgpKSBGcmFtZUJvdW5kczsKKyAgICBzZXRTdG9y
YWdlKFdURk1vdmUoc2hhcmVkTWVtb3J5KSwgZm9ybWF0LCBmcmFtZUNvdW50KTsKK30KKwordm9p
ZCBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZTo6ZGVhbGxvY2F0ZSgpCit7CisgICAgc2V0U3RvcmFn
ZShudWxscHRyLCB7IH0sIDApOworfQorCit2b2lkIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlOjpz
ZXRDdXJyZW50RnJhbWVCb3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJh
bWUpCit7CisgICAgbV9zdGFydEZyYW1lID0gc3RhcnRGcmFtZTsKKyAgICBtX2VuZEZyYW1lID0g
ZW5kRnJhbWU7CisKKyAgICBhdXRvKiBzaGFyZWRCb3VuZHMgPSBzaGFyZWRGcmFtZUJvdW5kcygp
OworICAgIGlmICghc2hhcmVkQm91bmRzKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25l
ZCBpbmRleFRvV3JpdGUgPSAoc2hhcmVkQm91bmRzLT5ib3VuZHNCdWZmZXJJbmRleC5sb2FkKHN0
ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpICsgMSkgJSBib3VuZHNCdWZmZXJTaXplOworICAgIHNo
YXJlZEJvdW5kcy0+Ym91bmRzQnVmZmVyW2luZGV4VG9Xcml0ZV0gPSBzdGQ6Om1ha2VfcGFpcihz
dGFydEZyYW1lLCBlbmRGcmFtZSk7CisgICAgc2hhcmVkQm91bmRzLT5ib3VuZHNCdWZmZXJJbmRl
eC5zdG9yZShpbmRleFRvV3JpdGUsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1NoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9TaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oCmluZGV4IDJmOTZmZTE0NzU0NWY5MTM5NzgzNDAx
OWE4ZmMwOGMxMjkwNTIwNjEuLmQ0NThhOTlkY2UzNDJiNjhjYjAwOGIzYjEwYzZiMGE4MzFjNzRl
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvU2hhcmVkUmluZ0J1
ZmZlclN0b3JhZ2UuaApAQCAtMzgsNDYgKzM4LDU4IEBAIGNsYXNzIENBUmluZ0J1ZmZlcjsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlIDogcHVi
bGljIFdlYkNvcmU6OkNBUmluZ0J1ZmZlclN0b3JhZ2UgeworY2xhc3MgUmVhZE9ubHlTaGFyZWRS
aW5nQnVmZmVyU3RvcmFnZSA6IHB1YmxpYyBXZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlIHsK
IHB1YmxpYzoKLSAgICBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZShGdW5jdGlvbjx2b2lkKFNoYXJl
ZE1lbW9yeSosIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0
LCBzaXplX3QgZnJhbWVDb3VudCk+JiYgc3RvcmFnZUNoYW5nZWRIYW5kbGVyID0gbnVsbHB0cikK
LSAgICAgICAgOiBtX3N0b3JhZ2VDaGFuZ2VkSGFuZGxlcihXVEZNb3ZlKHN0b3JhZ2VDaGFuZ2Vk
SGFuZGxlcikpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9zdG9y
YWdlQ2hhbmdlZEhhbmRsZXIgPSBudWxscHRyOyB9CisgICAgUmVhZE9ubHlTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSgpID0gZGVmYXVsdDsKKyAgICBleHBsaWNpdCBSZWFkT25seVNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7CiAKICAgICBTaGFyZWRN
ZW1vcnkqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2UuZ2V0KCk7IH0KLSAgICB2
b2lkIHVwZGF0ZVJlYWRPbmx5U3RvcmFnZShXZWJDb3JlOjpDQVJpbmdCdWZmZXImLCBjb25zdCBT
aGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCk7CiAKK3Byb3RlY3RlZDoKICAgICAvLyBX
ZWJDb3JlOjpDQVJpbmdCdWZmZXJTdG9yYWdlCi0gICAgdm9pZCBhbGxvY2F0ZShzaXplX3QsIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCkgZmluYWw7Ci0gICAgdm9pZCBkZWFsbG9jYXRlKCkgZmluYWw7CisgICAgdm9pZCBh
bGxvY2F0ZShzaXplX3QsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
Zm9ybWF0LCBzaXplX3QgZnJhbWVDb3VudCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkZWFsbG9j
YXRlKCkgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCogZGF0YSgpIGZpbmFsOwogICAgIHZvaWQgZ2V0
Q3VycmVudEZyYW1lQm91bmRzKHVpbnQ2NF90JiBzdGFydFRpbWUsIHVpbnQ2NF90JiBlbmRUaW1l
KSBmaW5hbDsKLSAgICB2b2lkIHNldEN1cnJlbnRGcmFtZUJvdW5kcyh1aW50NjRfdCBzdGFydEZy
YW1lLCB1aW50NjRfdCBlbmRGcmFtZSkgZmluYWw7CisgICAgdm9pZCBzZXRDdXJyZW50RnJhbWVC
b3VuZHModWludDY0X3Qgc3RhcnRGcmFtZSwgdWludDY0X3QgZW5kRnJhbWUpIG92ZXJyaWRlIHsg
fQogICAgIHVpbnQ2NF90IGN1cnJlbnRTdGFydEZyYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zdGFydEZyYW1lOyB9CiAgICAgdWludDY0X3QgY3VycmVudEVuZEZyYW1lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9lbmRGcmFtZTsgfQogICAgIHZvaWQgdXBkYXRlRnJhbWVCb3VuZHMoKSBm
aW5hbDsKICAgICB2b2lkIGZsdXNoKCkgZmluYWw7CiAKLXByaXZhdGU6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBib3VuZHNCdWZmZXJTaXplIHsgMzIgfTsKICAgICBzdHJ1Y3QgRnJh
bWVCb3VuZHMgewogICAgICAgICBzdGQ6OnBhaXI8dWludDY0X3QsIHVpbnQ2NF90PiBib3VuZHNC
dWZmZXJbYm91bmRzQnVmZmVyU2l6ZV07CiAgICAgICAgIEF0b21pYzx1bnNpZ25lZD4gYm91bmRz
QnVmZmVySW5kZXggeyAwIH07CiAgICAgfTsKKyAgICBjb25zdCBGcmFtZUJvdW5kcyogc2hhcmVk
RnJhbWVCb3VuZHMoKSBjb25zdDsKKyAgICBGcmFtZUJvdW5kcyogc2hhcmVkRnJhbWVCb3VuZHMo
KTsKIAotICAgIHZvaWQgc2V0U3RvcmFnZShSZWZQdHI8U2hhcmVkTWVtb3J5PiYmLCBjb25zdCBX
ZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291
bnQpOwotICAgIEZyYW1lQm91bmRzKiBzaGFyZWRGcmFtZUJvdW5kcygpIGNvbnN0OwotCi0gICAg
RnVuY3Rpb248dm9pZChTaGFyZWRNZW1vcnkqLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpPiBtX3N0b3JhZ2VDaGFuZ2Vk
SGFuZGxlcjsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0b3JhZ2U7Ci0gICAgYm9vbCBt
X3JlYWRPbmx5IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX3N0YXJ0RnJhbWUgeyAwIH07CiAg
ICAgdWludDY0X3QgbV9lbmRGcmFtZSB7IDAgfTsKIH07CiAKK2NsYXNzIFNoYXJlZFJpbmdCdWZm
ZXJTdG9yYWdlIGZpbmFsIDogcHVibGljIFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Ug
eworcHVibGljOgorICAgIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlKEZ1bmN0aW9uPHZvaWQoU2hh
cmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3Jt
YXQsIHNpemVfdCBmcmFtZUNvdW50KT4mJiBzdG9yYWdlQ2hhbmdlZEhhbmRsZXIpCisgICAgICAg
IDogbV9zdG9yYWdlQ2hhbmdlZEhhbmRsZXIoV1RGTW92ZShzdG9yYWdlQ2hhbmdlZEhhbmRsZXIp
KQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIGludmFsaWRhdGUoKSB7IG1fc3RvcmFnZUNoYW5n
ZWRIYW5kbGVyID0gbnVsbHB0cjsgfQorCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6OkNBUmlu
Z0J1ZmZlclN0b3JhZ2UKKyAgICB2b2lkIGFsbG9jYXRlKHNpemVfdCwgY29uc3QgV2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KSBmaW5h
bDsKKyAgICB2b2lkIGRlYWxsb2NhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHNldEN1cnJlbnRGcmFt
ZUJvdW5kcyh1aW50NjRfdCBzdGFydEZyYW1lLCB1aW50NjRfdCBlbmRGcmFtZSkgZmluYWw7CisK
KyAgICB2b2lkIHNldFN0b3JhZ2UoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiwgY29uc3QgV2ViQ29y
ZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KTsK
KworICAgIEZ1bmN0aW9uPHZvaWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KT4gbV9zdG9yYWdl
Q2hhbmdlZEhhbmRsZXI7Cit9OworCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMTZjZjQ5ODU0MWRlODQ5YWY2Nzg1NGI4Y2EyMzMz
ZmRiYTJlYzk2Yy4uYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2VjNjBhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00Nyw3ICs0Nyw3
IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKICAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVu
aXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oKSkpCisgICAgLCBtX3JpbmdCdWZmZXIo
bWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkpCiAjZW5kaWYKIHsKICAgICBtX21hbmFnZXItPmFk
ZFNvdXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7CkBAIC03Nyw4ICs3Nyw3IEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0
IFNoYXJlZE1lbW9yeTo6CiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0g
ICAgYXV0byYgc3RvcmFnZSA9IHN0YXRpY19jYXN0PFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlJj4o
bV9yaW5nQnVmZmVyLT5zdG9yYWdlKCkpOwotICAgIHN0b3JhZ2UudXBkYXRlUmVhZE9ubHlTdG9y
YWdlKCptX3JpbmdCdWZmZXIsIGhhbmRsZSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsK
KyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJl
ZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOwogICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRl
ck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKaW5kZXggOWYxYjc3MmYxYTI0ZWNhNTYxNWNk
YjkwNTkyN2M0NDY0MTg2ZDAyYS4uYTVlOWNlNzQxNjBkMTQyOWE3MjRiMTk3MTFkNjQ0NzVjYzQ4
ZjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlci5jcHAKQEAg
LTExNiw3ICsxMTYsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFQbGF5ZXJJZGVudGlmaQogCiBSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyTWFuYWdlcjo6UmVtb3RlQXVkaW86OlJlbW90ZUF1ZGlvKFJlZjxSZW1vdGVB
dWRpb1NvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQogICAgIDogbV9wcm92aWRlcihXVEZNb3Zl
KHByb3ZpZGVyKSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4o
bWFrZVVuaXF1ZVJlZjxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oKSkpCisgICAgLCBtX3JpbmdC
dWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkpCiB7CiB9CiAKQEAgLTEyNCw4ICsxMjQs
NyBAQCB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOjpSZW1vdGVBdWRpbzo6
c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcgogewogICAgIG1fZGVzY3JpcHRpb24gPSBkZXNj
cmlwdGlvbjsKIAotICAgIGF1dG8mIHN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZlci0+c3RvcmFnZSgpKTsKLSAgICBzdG9yYWdlLnVwZGF0
ZVJlYWRPbmx5U3RvcmFnZSgqbV9yaW5nQnVmZmVyLCBoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1i
ZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+
KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwg
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKICAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8
V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCA5OWEwN2ZlOGY0ZGM3NWIzNjBmNWE1MGI3NDBm
ZTc3OGFmZmI4OTI3Li5kYWE1M2UyYWM4MWRlYmY3ZTkzMzNlMDE4ZjVlODYyMzM5OTRkNmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTExMywxNSArMTEzLDE0IEBAIHZvaWQgUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291CiAKIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVBdWRp
bzo6UmVtb3RlQXVkaW8oUmVmPFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQog
ICAgIDogbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VV
bmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdl
PigpKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4oKSkKIHsK
IH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0
b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwotICAgIGF1dG8mIHN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZSY+KG1fcmluZ0J1ZmZl
ci0+c3RvcmFnZSgpKTsKLSAgICBzdG9yYWdlLnVwZGF0ZVJlYWRPbmx5U3RvcmFnZSgqbV9yaW5n
QnVmZmVyLCBoYW5kbGUsIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5n
QnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJh
bWVzKTsKIH0KIAogdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86
OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVRpbWUgdGltZSwgdWludDY0X3QgbnVtYmVyT2ZG
cmFtZXMpCg==
</data>
<flag name="commit-queue"
          id="434215"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>