<?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>99746</bug_id>
          
          <creation_ts>2012-10-18 12:22:21 -0700</creation_ts>
          <short_desc>Replace uses of ArgumentEncoder/ArgumentDecoder with MessageEncoder/MessageDecoder</short_desc>
          <delta_ts>2012-10-18 14:34:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>kling</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745465</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 12:22:21 -0700</bug_when>
    <thetext>Replace uses of ArgumentEncoder/ArgumentDecoder with MessageEncoder/MessageDecoder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745467</commentid>
    <comment_count>1</comment_count>
      <attachid>169449</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 12:26:44 -0700</bug_when>
    <thetext>Created attachment 169449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745487</commentid>
    <comment_count>2</comment_count>
      <attachid>169451</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 12:55:48 -0700</bug_when>
    <thetext>Created attachment 169451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745497</commentid>
    <comment_count>3</comment_count>
      <attachid>169451</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-18 13:07:41 -0700</bug_when>
    <thetext>Comment on attachment 169451
Patch

Attachment 169451 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14460116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745499</commentid>
    <comment_count>4</comment_count>
      <attachid>169455</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 13:10:42 -0700</bug_when>
    <thetext>Created attachment 169455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745504</commentid>
    <comment_count>5</comment_count>
      <attachid>169455</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-18 13:19:48 -0700</bug_when>
    <thetext>Comment on attachment 169455
Patch

Attachment 169455 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14463110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745505</commentid>
    <comment_count>6</comment_count>
      <attachid>169457</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 13:21:10 -0700</bug_when>
    <thetext>Created attachment 169457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745519</commentid>
    <comment_count>7</comment_count>
      <attachid>169457</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-18 13:42:04 -0700</bug_when>
    <thetext>Comment on attachment 169457
Patch

Attachment 169457 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14460126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745526</commentid>
    <comment_count>8</comment_count>
      <attachid>169462</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 13:47:24 -0700</bug_when>
    <thetext>Created attachment 169462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745544</commentid>
    <comment_count>9</comment_count>
      <attachid>169462</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-18 13:59:47 -0700</bug_when>
    <thetext>Comment on attachment 169462
Patch

Attachment 169462 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14466093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745547</commentid>
    <comment_count>10</comment_count>
      <attachid>169462</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-18 14:00:48 -0700</bug_when>
    <thetext>Comment on attachment 169462
Patch

Attachment 169462 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14466092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745551</commentid>
    <comment_count>11</comment_count>
      <attachid>169471</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 14:02:40 -0700</bug_when>
    <thetext>Created attachment 169471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745562</commentid>
    <comment_count>12</comment_count>
      <attachid>169471</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-18 14:14:50 -0700</bug_when>
    <thetext>Comment on attachment 169471
Patch

Attachment 169471 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14457172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745563</commentid>
    <comment_count>13</comment_count>
      <attachid>169474</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 14:15:33 -0700</bug_when>
    <thetext>Created attachment 169474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745586</commentid>
    <comment_count>14</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-18 14:34:02 -0700</bug_when>
    <thetext>Committed r131807: &lt;http://trac.webkit.org/changeset/131807&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169449</attachid>
            <date>2012-10-18 12:26:44 -0700</date>
            <delta_ts>2012-10-18 12:55:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018122529.patch</filename>
            <type>text/plain</type>
            <size>228118</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDFhODljYjI0ZDEzMTY2
MzliYjAxMTU0NmI5MDdkYmRlNDNiNTBiOS4uYTExMTE4ZjE2NGU0MGU3YzQ1ZWI3NDhjZDgxNmM3
YzIzYTYwYzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCiAy
MDEyLTEwLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBEb24ndCB1c2UgdXNpbmcgbmFtZXNwYWNlIFdlYktpdCBpbiBwcml2YXRl
IGhlYWRlcnMgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJm
OWU5OWQ3ZmYuLmM3MzgyNDUxNzViOWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTY0LDkgKzY0LDkgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nl
c3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdk
ODY2Zjg3YjE4YzI1NWRiMTQzNmYyNDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRh
MDI3NjA5ZGI5YTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC01NiwxMyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBD
OjpDb25uZWN0aW9uKik7CiAKICAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU5ldHdvcmtQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7
CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEz
ZjA4MjUzMjhjMjc4MTQ4OWEyNDMxMjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEw
YjVmOTEwNDRmZWIzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmNwcApAQCAtNTM2LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vz
c0luY29taW5nTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VE
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgYm9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAg
ICAgICAgbV9jb25uZWN0aW9uUXVldWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZSh0aGlzLCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29t
aW5nTWVzc2FnZS5hcmd1bWVudHMoKSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3Nh
Z2VEZWNvZGVyKiBkZWNvZGVyID0gaW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAg
ICBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0
aW9uV29ya1F1ZXVlKHRoaXMsIGluY29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIs
IGRpZEhhbmRsZU1lc3NhZ2UpOwogICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAg
ICAgICAgICAgLy8gQSBjb25uZWN0aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdl
LCBvdXIgd29yayBoZXJlIGlzIGRvbmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVs
ZWFzZUFyZ3VtZW50cygpOwpAQCAtNjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpz
ZW5kT3V0Z29pbmdNZXNzYWdlcygpCiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3Bh
dGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29k
ZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgTWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5p
c1N5bmMoKSk7CiAKICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRl
Y29kZXItPmRlY29kZVVJbnQ2NChzeW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1
ZXN0SUQpIHsKICAgICAgICAgLy8gV2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2Uu
Ci0gICAgICAgIGRlY29kZXItPm1hcmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0lu
dmFsaWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVu
dEVuY29kZXIgc2hvdWxkIGJlIE1lc3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3Vt
ZW50RW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIs
IHN5bmNSZXF1ZXN0SUQpOworICAgIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVy
ID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAg
Ly8gSGFuZCBvZmYgYm90aCB0aGUgZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50Lgog
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNv
ZGVyLCByZXBseUVuY29kZXIpOwogCiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBp
bnZhbGlkLCB3ZSBzaG91bGQgc2VuZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NF
UlQoIWRlY29kZXItPmlzSW52YWxpZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlk
KCkpOwogCiAgICAgaWYgKHJlcGx5RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9w
dFB0cihzdGF0aWNfY2FzdDxNZXNzYWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkp
KSk7CkBAIC02NTQsNyArNjU0LDcgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdN
ZXNzYWdlKEluY29taW5nTWVzc2FnZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVu
TG9vcC0+ZGlzcGF0Y2goV1RGOjpiaW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2Us
IHRoaXMpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlE
IG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRp
c3BhdGNoTWVzc2FnZShNZXNzYWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICAvLyBUcnkgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlm
IChtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBk
ZWNvZGVyKSkKQEAgLTY4MSw5ICs2ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVz
c2FnZShJbmNvbWluZ01lc3NhZ2UmIG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UgPSBmYWxzZTsKIAogICAgIGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQot
ICAgICAgICBkaXNwYXRjaFN5bmNNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50
cy5nZXQoKSk7CisgICAgICAgIGRpc3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQo
KSwgKmFyZ3VtZW50cyk7CiAgICAgZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2Fn
ZS5tZXNzYWdlSUQoKSwgYXJndW1lbnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdl
KG1lc3NhZ2UubWVzc2FnZUlEKCksICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UgfD0gYXJndW1lbnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hN
ZXNzYWdlQ291bnQtLTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggNzMxM2I3ZmJiMmY4MGQzOTA0NzFlYmQ0ZmE1NDNiYWY2YWFjYWViZi4uNzFh
MTM5MDA2OTNmZjZhN2NhMGYwN2VmMTE3ZGQ5NzM2M2MzYjM5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJs
aWM6CiAKICAgICBjbGFzcyBRdWV1ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlv
biosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25X
b3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBk
aWRIYW5kbGVNZXNzYWdlKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwg
flF1ZXVlQ2xpZW50KCkgeyB9CkBAIC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpc3BhdGNoQ29ubmVjdGlvbkRpZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3Nh
Z2UoKTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZShNZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9p
ZCBkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZShNZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9p
ZCBkaXNwYXRjaFN5bmNNZXNzYWdlKE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2
b2lkIGRpZEZhaWxUb1NlbmRTeW5jTWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBv
biBhbnkgdGhyZWFkLgpAQCAtNDQwLDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJv
b2wgQ29ubmVjdGlvbjo6d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVz
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlv
bklEKCkgPT0gZGVzdGluYXRpb25JRCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
KHRoaXMsIE1lc3NhZ2VJRChUOjptZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpk
ZWNvZGVyKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5
OTE5YWNiODRhMWZhNzc2N2I3Li43OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVm
NGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3Nh
Z2UuaApAQCAtMiw2ICsyLDggQEAKICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRl
ICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMy
LDEzMSBAQCB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBj
b25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVu
Y3Rpb25zLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9u
KGNvbnN0IEFyZ3VtZW50czAmLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
Y29uc3QgQXJndW1lbnRzMTxQMT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzMTxQMT4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3Vt
ZW50MSwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0
eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBB
cmd1bWVudHMyPFAxLCBQMj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVy
LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3Qg
QXJndW1lbnRzMjxQMSwgUDI+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1l
bnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVu
Y3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIs
IHR5cGVuYW1lIFAzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQ
MSwgUDIsIFAzPiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9i
amVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVu
dHMzPFAxLCBQMiwgUDM+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3Mu
YXJndW1lbnQzLCBkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUg
TUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgot
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIs
IFAzLCBQND4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3Mu
YXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rl
cik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVu
dDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5
cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5j
dGlvbihjb25zdCBBcmd1bWVudHM1PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnRE
ZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFy
Z3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwg
ZGVjb2Rlcik7CiB9CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlw
ZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1l
IFA1LCB0eXBlbmFtZSBQNj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50
czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVj
dC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1l
bnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1
bWVudERlY29kZXIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFy
Z3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1l
bnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMs
IHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBl
bmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEs
IFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwg
Qyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3Mu
YXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0
LCBhcmdzLmFyZ3VtZW50NSwgYXJncy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVu
dERlY29kZXIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3Mu
YXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1
LCBhcmdzLmFyZ3VtZW50NiwgYXJncy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJp
YWRpYyBkaXNwYXRjaCBmdW5jdGlvbnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRz
LgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVu
YW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBS
MiwgdHlwZW5hbWUgUjM+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0
PFAxLCBQMiwgUDMsIFA0PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywg
UDQ+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIz
PiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipm
dW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50Mywg
YXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVw
bHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFy
Z3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMs
IHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBl
bmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUg
UjI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMs
IFA0LCBQNSwgUDY+JiBhcmdzLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJn
dW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwg
UDY+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiBy
ZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdz
LmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29k
ZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVj
b2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIs
IHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBl
bmFtZSBSMSwgdHlwZW5hbWUgUjIsIHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5
QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNv
bnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBBcmd1bWVudHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVj
dCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5h
cmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1
bWVudDEsIHJlcGx5QXJncy5hcmd1bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlB
cmdzLmFyZ3VtZW50Myk7CiB9CiAKIC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNz
YWdlKEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlw
ZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFu
ZGxlTWVzc2FnZShBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNv
ZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1l
c3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29k
ZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlw
ZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2Rl
KGFyZ3VtZW50cykpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAg
ICByZXR1cm47CiAKICAgICB0eXBlbmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1l
bnRzOwogICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBv
YmplY3QsIGZ1bmN0aW9uKTsKLSAgICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50
cyk7CisgICAgcmVwbHlFbmNvZGVyLmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNz
YWdlT25Db25uZWN0aW9uUXVldWUoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRs
ZU1lc3NhZ2VPbkNvbm5lY3Rpb25RdWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFt
ZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnRE
ZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3Vt
ZW50cykpCiAgICAgICAgIHJldHVybjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlv
biwgYXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
K3ZvaWQgaGFuZGxlTWVzc2FnZVZhcmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVl
VHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVu
dHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2Jq
ZWN0LCBmdW5jdGlvbik7CisgICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rl
ciwgb2JqZWN0LCBmdW5jdGlvbik7CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgTWVzc2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUg
YXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHR5cGVuYW1lIFQ6OlJlcGx5OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2Fs
bE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50
cywgb2JqZWN0LCBmdW5jdGlvbik7Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1
bWVudHMpOworICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5
QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJl
cGx5QXJndW1lbnRzKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNv
ZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVN
ZXNzYWdlRGVsYXllZChDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1G
IGZ1bmN0aW9uKQogewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1
bWVudHM7Ci0gICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UmVmUHRyPHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYo
bmV3IHR5cGVuYW1lIFQ6OkRlbGF5ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVs
ZWFzZSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlci5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdl
UmVjZWl2ZXIuaAppbmRleCBmN2I2MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3
Li45NTYwZTY2ZWViMmQ4YzYwYTBmODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2
ICszMiwxNiBAQAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKLWNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3Mg
TWVzc2FnZUVuY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2
ZXIgewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFy
Z3VtZW50RGVjb2RlciopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1
bWVudEVuY29kZXI+JikKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVj
dGlvbiosIE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4
OGNiOThhZjdjOWFjMjYxOTFhMjUuLmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0
NTAxNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZVJlY2VpdmVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01l
c3NhZ2VSZWNlaXZlck1hcC5jcHAKQEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNl
aXZlck1hcDo6a25vd3NIb3dUb0hhbmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29u
c3QKICAgICByZXR1cm4gbV9nbG9iYWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJ
RC5tZXNzYWdlQ2xhc3MoKSk7CiB9CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRj
aE1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdl
SUQsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIq
IG1lc3NhZ2VSZWNlaXZlciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlE
Lm1lc3NhZ2VDbGFzcygpKSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAg
bWVzc2FnZVJlY2VpdmVyLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29s
IE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBNZXNzYWdlSUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3du
UHRyPE1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVj
ZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVz
c2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2Rlciwg
cmVwbHkpOworICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdk
YTA0MDg0MzlkNzJlM2RhMi4uOGNmYjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVj
ZWl2ZXJNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VS
ZWNlaXZlck1hcC5oCkBAIC0zMiw5ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAot
Y2xhc3MgQXJndW1lbnRFbmNvZGVyOwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29u
bmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBj
bGFzcyBNZXNzYWdlUmVjZWl2ZXI7CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00
Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtu
b3dzSG93VG9IYW5kbGVNZXNzYWdlKE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3Bh
dGNoTWVzc2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAg
ICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNo
TWVzc2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJv
b2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNz
YWdlIHJlY2VpdmVycyB0aGF0IGRvbid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5o
CmluZGV4IDgzZGQzZmI3NDM1NzE2ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3
ZGZlZWZiOGViYzliNjQ3ZTE3OTUzZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycyYpOwogICAgIHZvaWQgZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1
Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRy
b2xsZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1
Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4mKTsKIAogICAgIGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3
MTI1ZDdkODY1M2JlMGIyYmMzOWFiOTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1
ZjUxNmQ4MTEzZjYxMzhmM2UwMGZhNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblBy
b2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQ
bHVnaW5Qcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
CmluZGV4IDY0NTE1M2NlZTFlMmYyZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5
ZGVmMzI5M2RmNGMxNWJmYjZlNjRkZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24q
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEKSBPVkVSUklERTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRS
ZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlUGx1Z2luUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQ
bHVnaW5Qcm9jZXNzKGNvbnN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAg
ICB2b2lkIGNyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dp
dGhEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVk
YjBiNWZjNjdiYjkxNjIzYzQ2NzY1NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2Yzll
MDVkM2E5YTdlZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6c2V0R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0
aW9uU3RyaW5nKQogICAgIGNvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbjo6U2V0RXhjZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICBDb25uZWN0aW9uU3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJl
bnRDb25uZWN0aW9uKGNvbm5lY3Rpb25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkp
IHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkp
IHsKKyAgICBpZiAoIWRlY29kZXIuZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJv
bGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdl
dChhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5
KiBwbHVnaW5Db250cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFBsdWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJv
dGVjdG9yIHByb3RlY3RvcihwbHVnaW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxl
cigpKTsKLSAgICBwbHVnaW5Db250cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9s
bGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBw
bHVnaW5Db250cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJl
cGx5KQordm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJy
ZW50Q29ubmVjdGlvblB1c2hlciBjdXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwg
Y29ubmVjdGlvbik7CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5k
ZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVz
dGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJl
Y2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAg
bV9ucFJlbW90ZU9iamVjdE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAt
PmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJl
cGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9s
bGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0
KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkq
IHBsdWdpbkNvbnRyb2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKICAgICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUGx1Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90
ZWN0b3IgcHJvdGVjdG9yKHBsdWdpbkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVy
KCkpOwotICAgIHBsdWdpbkNvbnRyb2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250
cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBs
eSk7CisgICAgcGx1Z2luQ29udHJvbGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRy
b2xsZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQz
ODA2NDI2YjY3Li44YTE1YzljMmJkMTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oCkBAIC02MiwxNCArNjIsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5D
b250cm9sbGVyUHJveHkoUGx1Z2luQ29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8g
TWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAg
dm9pZCBjcmVhdGVQbHVnaW4oY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1Jl
ZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXll
ZFJlcGx5Pik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVn
aW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3Qg
cGx1Z2luSW5zdGFuY2VJRCwgYm9vbCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDU2ZDk3YmM4
MWUzY2U2YTRlOGVhZmYyNTNkNDQ0YzY2YzE5NmM0MDkuLmEzNmM1MDQ5MGIxOGYyMDczZDUwYjQw
MTRlYmQ4ZTM0NWNhNTM5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkKQEAgLTEzMywxNCArMTMzLDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNs
YXJhdGlvbihtZXNzYWdlKToKICAgICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZ
RURfQVRUUklCVVRFKToKICAgICAgICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25f
cGFyYW1ldGVyX3R5cGUoeC50eXBlKSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRS
ZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRy
PENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cj4pO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5
KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+KTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5E
ZWxheWVkUmVwbHkoKTtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5q
b2luKFsnICcuam9pbih4KSBmb3IgeCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2
YXRlOlxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRz
O1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiBtX2VuY29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnICAgIH07XG5cbicpCiAKICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMg
UmVwbHk7XG4nICUgcmVwbHlfdHlwZShtZXNzYWdlKSkKQEAgLTMwNiw3ICszMDYsNyBAQCBkZWYg
aGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vf
c3RhdGVtZW50KHJlY2VpdmVyLCBtZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdz
ID0gWydhcmd1bWVudHMnLCAndGhpcycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZl
ciwgbWVzc2FnZSldCisgICAgZGlzcGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0
aGlzJywgJyYlcycgJSBoYW5kbGVyX2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBk
aXNwYXRjaF9mdW5jdGlvbiA9ICdoYW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0
dHJpYnV0ZShWQVJJQURJQ19BVFRSSUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiAr
PSAnVmFyaWFkaWMnCkBAIC0zMzMsNyArMzMzLDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQo
cmVjZWl2ZXIsIG1lc3NhZ2UpOgogCiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5k
KCcgICAgY2FzZSBNZXNzYWdlczo6JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdl
LmlkKCkpKQotICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6
OiVzOjolcz4oJXNhcmd1bWVudHMsIHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNo
X2Z1bmN0aW9uLCByZWNlaXZlci5uYW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlm
IG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYg
bWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBo
YW5kbGVyX2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgn
ICAgICAgICBDb3JlSVBDOjolczxNZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlF
bmNvZGVyLCB0aGlzLCAmJXMpO1xuJyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFt
ZSwgbWVzc2FnZS5uYW1lLCAnY29ubmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUo
REVMQVlFRF9BVFRSSUJVVEUpIGVsc2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShE
RUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1l
c3NhZ2UpKSkKICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICBy
ZXR1cm4gc3Vycm91bmRfaW5fY29uZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25k
aXRpb24pCkBAIC00MDksNyArNDA5LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihm
aWxlKToKICAgICBoZWFkZXJzID0gewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJf
ZmlsZW5hbWUocmVjZWl2ZXIpOiBbTm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6
IFtOb25lXSwKLSAgICAgICAgJyJBcmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAg
ICciTWVzc2FnZURlY29kZXIuaCInOiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRp
b25zID0ge30KQEAgLTQ4OCw5ICs0ODgsOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVy
KGZpbGUpOgogICAgICAgICAgICAgaWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnI2lmICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVs
YXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFz
c093blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdl
Lm5hbWUpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFt
ZSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0
aW9uKVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFy
Z3VtZW50cylcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIo
ZW5jb2RlcilcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAg
ICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
QEAgLTUwMSw5ICs1MDEsOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnYm9vbCAlczo6RGVsYXllZFJlcGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcs
ICcuam9pbihbJyAnLmpvaW4oeCkgZm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgne1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9hcmd1bWVudHMpO1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBt
X2FyZ3VtZW50cy0+ZW5jb2RlKCVzKTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBs
eV9wYXJhbWV0ZXJzXQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0
ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+KG1fYXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAg
ICByZXN1bHQgKz0gWycgICAgbV9lbmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3Ig
eCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgYm9vbCByZXN1bHQgPSBtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVy
LnJlbGVhc2UoKSk7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVj
dGlvbiA9IG51bGxwdHI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVy
biByZXN1bHQ7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTUzMyw3
ICs1MzMsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAg
ICAgICAgIGFzeW5jX21lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlz
cGF0Y2hfb25fY29ubmVjdGlvbl9xdWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVz
c2FnZSlcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJ3ZvaWQgJXM6OmRpZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRs
ZU1lc3NhZ2UpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIo
TVNWQylcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxu
JykKQEAgLTU1MCw3ICs1NTAsNyBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUp
OgogICAgICAgICByZXN1bHQuYXBwZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdl
czoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2Vp
dmVyLm5hbWUpKQorICAgICAgICByZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwg
cmVjZWl2ZXIubmFtZSkpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5k
PigpKSB7XG4nICUgcmVjZWl2ZXIubmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2Fn
ZXNdCkBAIC01NjIsNyArNTYyLDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxl
KToKIAogICAgIGlmIHN5bmNfbWVzc2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiolcywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+JiByZXBseSlcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBj
b25uZWN0aW9uJyBpZiBzeW5jX2RlbGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qJXMsIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBs
eUVuY29kZXIpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlv
bicgaWYgc3luY19kZWxheWVkX21lc3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd7XG4nKQogICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQu
Z2V0PE1lc3NhZ2VzOjolczo6S2luZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAg
IHJlc3VsdCArPSBbc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1l
c3NhZ2UgaW4gc3luY19tZXNzYWdlc10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQppbmRleCA4ZWJiZmQ4OWRhZWQ3YmRjYjM0M2Ni
OGQ4MmFhOTdhMWNhNzg4YzcwLi40YWFhYzMxMjZkYzY1NTcxNDgwOTY2YzFlMDNkMTdkY2E3MmE5
ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNf
dW5pdHRlc3QucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
X3VuaXR0ZXN0LnB5CkBAIC00NjcsMTQgKzQ2NywxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2lucyA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Ym9vbD4gewogc3RydWN0IEdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uIDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6OlN0cmluZyY+IHsKICAgICBzdGF0
aWMgY29uc3QgS2luZCBtZXNzYWdlSUQgPSBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbklEOwog
ICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGVs
YXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNv
bm5lY3Rpb24+LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pOworICAgICAg
ICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgUGFzc093blB0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4pOwogICAgICAgICB+RGVsYXllZFJlcGx5KCk7CiAK
ICAgICAgICAgYm9vbCBzZW5kKGNvbnN0IENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29u
bmVjdGlvbkhhbmRsZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgICAgICBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiBtX2FyZ3VtZW50czsKKyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiBtX2VuY29kZXI7CiAgICAgfTsKIAogICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1l
bnRzMTxDb3JlSVBDOjpDb25uZWN0aW9uOjpIYW5kbGUmPiBSZXBseTsKQEAgLTQ4OCwxNCArNDg4
LDE0IEBAIHN0cnVjdCBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiA6IENvcmVJUEM6OkFyZ3Vt
ZW50czE8Y29uc3QgV1RGOjpTdHJpbmcmPiB7CiBzdHJ1Y3QgVGVzdE11bHRpcGxlQXR0cmlidXRl
cyA6IENvcmVJUEM6OkFyZ3VtZW50czAgewogICAgIHN0YXRpYyBjb25zdCBLaW5kIG1lc3NhZ2VJ
RCA9IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXNJRDsKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewotICAgICAgICBEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiwgUGFzc093blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+KTsKKyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+
KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgpOwogCiAgICAgICAgIGJvb2wgc2VuZCgpOwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKLSAgICAgICAgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gbV9hcmd1bWVu
dHM7CisgICAgICAgIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gbV9lbmNvZGVyOwog
ICAgIH07CiAKICAgICB0eXBlZGVmIENvcmVJUEM6OkFyZ3VtZW50czAgUmVwbHk7CkBAIC02MTMs
NyArNjEzLDYgQEAgX2V4cGVjdGVkX3JlY2VpdmVyX2ltcGxlbWVudGF0aW9uID0gIiIiLyoKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpZiBFTkFC
TEUoREVQUkVDQVRFRF9GRUFUVVJFKSB8fCBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkUpCiAj
aW5jbHVkZSAiRHVtbXlUeXBlLmgiCkBAIC02MjIsNiArNjIxLDcgQEAgX2V4cGVjdGVkX3JlY2Vp
dmVyX2ltcGxlbWVudGF0aW9uID0gIiIiLyoKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAi
TWFjaFBvcnQuaCIKICNlbmRpZgorI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKQEAgLTY0MCw5ICs2NDAsOSBAQCBuYW1lc3BhY2UgTWVzc2FnZXMg
ewogCiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKLUdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
IGNvbm5lY3Rpb24sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiBhcmd1bWVu
dHMpCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVw
bHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRy
PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCi0gICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVudHMpCisgICAgLCBtX2VuY29kZXIo
ZW5jb2RlcikKIHsKIH0KIApAQCAtNjUzLDE2ICs2NTMsMTYgQEAgR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6fkRlbGF5ZWRSZXBseSgpCiAKIGJvb2wgR2V0UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpIYW5kbGUmIGNvbm5lY3Rpb25IYW5kbGUpCiB7Ci0gICAgQVNTRVJUKG1fYXJndW1l
bnRzKTsKLSAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKGNvbm5lY3Rpb25IYW5kbGUpOwotICAgIGJv
b2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nh
c3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1fYXJndW1lbnRzLnJlbGVhc2UoKSkpOworICAg
IEFTU0VSVChtX2VuY29kZXIpOworICAgIG1fZW5jb2Rlci0+ZW5jb2RlKGNvbm5lY3Rpb25IYW5k
bGUpOworICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KG1fZW5j
b2Rlci5yZWxlYXNlKCkpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorVGVzdE11bHRpcGxl
QXR0cmlidXRlczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBD
OjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2Fy
Z3VtZW50cyhhcmd1bWVudHMpCisgICAgLCBtX2VuY29kZXIoZW5jb2RlcikKIHsKIH0KIApAQCAt
NjczLDggKzY3Myw4IEBAIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6fkRl
bGF5ZWRSZXBseSgpCiAKIGJvb2wgVGVzdE11bHRpcGxlQXR0cmlidXRlczo6RGVsYXllZFJlcGx5
OjpzZW5kKCkKIHsKLSAgICBBU1NFUlQobV9hcmd1bWVudHMpOwotICAgIGJvb2wgcmVzdWx0ID0g
bV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+KG1fYXJndW1lbnRzLnJlbGVhc2UoKSkpOworICAgIEFTU0VSVChtX2Vu
Y29kZXIpOworICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5kU3luY1JlcGx5KG1f
ZW5jb2Rlci5yZWxlYXNlKCkpOwogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KQEAgLTY4NSw3ICs2ODUsNyBAQCBib29sIFRlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxl
TWVzc2FnZSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlT25Db25uZWN0
aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBib29s
JiBkaWRIYW5kbGVNZXNzYWdlKQogewogI2lmIENPTVBJTEVSKE1TVkMpCiAjcHJhZ21hIHdhcm5p
bmcocHVzaCkKQEAgLTY5Myw3ICs2OTMsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQ
YWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKgogI2Vu
ZGlmCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigp
KSB7CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdENvbm5lY3Rpb25RdWV1ZUlEOgot
ICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWU8TWVzc2FnZXM6
OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWU+KGNvbm5lY3Rpb24sIGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OnRlc3RDb25uZWN0aW9uUXVldWUpOworICAgICAgICBDb3JlSVBDOjpoYW5k
bGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWU8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0
aW9uUXVldWU+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0Q29ubmVj
dGlvblF1ZXVlKTsKICAgICAgICAgZGlkSGFuZGxlTWVzc2FnZSA9IHRydWU7CiAgICAgICAgIHJl
dHVybjsKICAgICBkZWZhdWx0OgpAQCAtNzA0LDQ4ICs3MDQsNDggQEAgdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbioKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2U6OmRpZFJl
Y2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
c3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAg
Y2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6TG9hZFVSTElEOgotICAgICAgICBDb3JlSVBDOjpoYW5k
bGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMPihhcmd1bWVudHMsIHRoaXMsICZX
ZWJQYWdlOjpsb2FkVVJMKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmxvYWRVUkwpOwog
ICAgICAgICByZXR1cm47CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBjYXNlIE1lc3Nh
Z2VzOjpXZWJQYWdlOjpUb3VjaEV2ZW50SUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3Nh
Z2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoRXZlbnQ+KGFyZ3VtZW50cywgdGhpcywgJldlYlBh
Z2U6OnRvdWNoRXZlbnQpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2Vz
OjpXZWJQYWdlOjpUb3VjaEV2ZW50PihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dG91Y2hFdmVu
dCk7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbklEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGFyZ3VtZW50
cywgdGhpcywgJldlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lv
bik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9zZUlE
OgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9z
ZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6Y2xvc2UpOworICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9zZT4oZGVjb2RlciwgdGhpcywgJldl
YlBhZ2U6OmNsb3NlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3Nh
Z2U8TWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlPihhcmd1bWVudHMsIHRo
aXMsICZXZWJQYWdlOjpwcmVmZXJlbmNlc0RpZENoYW5nZSk7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlPihkZWNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UpOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6U2VuZERvdWJsZUFuZEZsb2F0SUQ6Ci0g
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3Vi
bGVBbmRGbG9hdD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZERvdWJsZUFuZEZsb2F0
KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6U2Vu
ZERvdWJsZUFuZEZsb2F0PihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6c2VuZERvdWJsZUFuZEZs
b2F0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRJ
bnRzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6
OlNlbmRJbnRzPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpzZW5kSW50cyk7CisgICAgICAg
IENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmRJbnRzPihkZWNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOwogICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXNJRDoKLSAgICAgICAg
Q29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFBhcmFtZXRlckF0
dHJpYnV0ZXM+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OnRlc3RQYXJhbWV0ZXJBdHRyaWJ1
dGVzKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6
VGVzdFBhcmFtZXRlckF0dHJpYnV0ZXM+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFy
YW1ldGVyQXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb25J
RDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmRp
ZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVz
c2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik7CiAg
ICAgICAgIHJldHVybjsKICNlbmRpZgogI2lmIEVOQUJMRShERVBSRUNBVEVEX0ZFQVRVUkUpCiAg
ICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbklEOgotICAgICAg
ICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEZXByZWNhdGVkT3Bl
cmF0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVj
YXRlZE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmRlcHJlY2F0ZWRPcGVyYXRp
b24pOwogICAgICAgICByZXR1cm47CiAjZW5kaWYKICNpZiBFTkFCTEUoRVhQRVJJTUVOVEFMX0ZF
QVRVUkUpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6RXhwZXJpbWVudGFsT3BlcmF0aW9u
SUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4
cGVyaW1lbnRhbE9wZXJhdGlvbj4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6ZXhwZXJpbWVu
dGFsT3BlcmF0aW9uKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6RXhwZXJpbWVudGFsT3BlcmF0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6
ZXhwZXJpbWVudGFsT3BlcmF0aW9uKTsKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAgICAgZGVm
YXVsdDoKQEAgLTc1NSwyMSArNzU1LDIxIEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dl
YlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmRp
ZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
IHsKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OldlYlBhZ2U6OktpbmQ+KCkp
IHsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW5JRDoKLSAgICAgICAg
Q29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luPihh
cmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6Y3JlYXRlUGx1Z2luKTsKKyAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1
Z2luPihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6Y3JlYXRlUGx1Z2lu
KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFT
Y3JpcHRBbGVydElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpX
ZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMs
ICZXZWJQYWdlOjpydW5KYXZhU2NyaXB0QWxlcnQpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnQ+KGRlY29kZXIsICpy
ZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjpydW5KYXZhU2NyaXB0QWxlcnQpOwogICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2Fn
ZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBhcmd1
bWVudHMsIHJlcGx5LCB0aGlzLCAmV2ViUGFnZTo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24p
OworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZDxNZXNzYWdlczo6V2ViUGFn
ZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+KGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5
RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKICAg
ICAgICAgcmV0dXJuOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQ
YWdlOjpJbnRlcnByZXRLZXlFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdl
PE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnRlcnByZXRLZXlFdmVudD4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmludGVycHJldEtleUV2ZW50KTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGRl
Y29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdlOjppbnRlcnByZXRLZXlFdmVudCk7
CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAppbmRl
eCBlMGFmOThiYmFhYWNiM2RkMDViMWI3MzI3YjgzZjI0YzdkYWFiNjE3Li45MmQwYTQ1ZDI2NDYw
NjYwMzEwOTU0YzU4Njg0OTk4ZGUwOWEzZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPE5QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyPiBjcmVhdGUoTlBSZW1vdGVPYmplY3RNYXAqLCBQbHVnaW4qLCB1aW50NjRfdCBucE9iamVj
dElELCBOUE9iamVjdCopOwogICAgIH5OUE9iamVjdE1lc3NhZ2VSZWNlaXZlcigpOwogCi0gICAg
dm9pZCBkaWRSZWNlaXZlU3luY05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICBQbHVnaW4qIHBsdWdpbigpIGNvbnN0
IHsgcmV0dXJuIG1fcGx1Z2luOyB9CiAgICAgTlBPYmplY3QqIG5wT2JqZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9ucE9iamVjdDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCmluZGV4IGI1ZWMyZDlkYTM5ZjI2ZGNiNDMyMGQ5NWUw
M2YyZmNhZTRlN2Q3ZGYuLmE1MDE4NmNjNGY0NjA4NTM3YjkxMmYyZWYwMzg3OGVkOTI1NTA4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVj
dE1hcC5jcHAKQEAgLTIyNywxMyArMjI3LDEzIEBAIHZvaWQgTlBSZW1vdGVPYmplY3RNYXA6OnBs
dWdpbkRlc3Ryb3llZChQbHVnaW4qIHBsdWdpbikKICAgICB9CiB9CiAKLXZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5
KQordm9pZCBOUFJlbW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIqIG1l
c3NhZ2VSZWNlaXZlciA9IG1fcmVnaXN0ZXJlZE5QT2JqZWN0cy5nZXQoYXJndW1lbnRzLT5kZXN0
aW5hdGlvbklEKCkpOworICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2
ZXIgPSBtX3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsK
ICAgICBpZiAoIW1lc3NhZ2VSZWNlaXZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbWVzc2Fn
ZVJlY2VpdmVyLT5kaWRSZWNlaXZlU3luY05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIG1lc3NhZ2VSZWNl
aXZlci0+ZGlkUmVjZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05Q
UmVtb3RlT2JqZWN0TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90
ZU9iamVjdE1hcC5oCmluZGV4IDBiZmFlZmRmNWJlYTc0NWRiNjhiM2VhMzY1NTE1MTdkNzNlZDRk
ZTQuLjY4ZDMyYWJiYWNjYzYxMmFhMmZjYmMwZjU5YjlkNmMwODQwNjg0ZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaApAQCAtNjQs
NyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBsdWdpbkRlc3Ryb3llZChQbHVnaW4qKTsK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5QUmVtb3RlT2JqZWN0TWFwKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcAppbmRl
eCA5NzQzYTc4Yzc3MDg0NDQ5MzdiNmY5YWUxZjE2OGU3ZTI2ZmJlMTZkLi45MmU2M2M0ZmMzZGI4
ZGM5ZGMwMzIwYzM2M2NkZDljZTA4YTdhMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
bm5lY3Rpb24uY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9kCiAK
ICAgICBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiBtZXNzYWdlRGF0YSA9IENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcjo6Y3JlYXRlKCk7CiAgICAgbWVzc2FnZURhdGEtPmVuY29kZSht
ZXNzYWdlTmFtZSk7Ci0gICAgZW5jb2RlTWVzc2FnZUJvZHkobWVzc2FnZURhdGEuZ2V0KCksIG1l
c3NhZ2VCb2R5KTsKKyAgICBlbmNvZGVNZXNzYWdlQm9keSgqbWVzc2FnZURhdGEsIG1lc3NhZ2VC
b2R5KTsKIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViQ29ubmVjdGlvbjo6
SGFuZGxlTWVzc2FnZShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKG1lc3NhZ2VEYXRhLT5idWZmZXIo
KSwgbWVzc2FnZURhdGEtPmJ1ZmZlclNpemUoKSkpLCAwKTsKIH0KQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBXZWJDb25uZWN0aW9uOjpoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmIG1lc3NhZ2VEYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWRlY29kZU1lc3NhZ2VCb2R5KGRlY29kZXIuZ2V0
KCksIG1lc3NhZ2VCb2R5KSkKKyAgICBpZiAoIWRlY29kZU1lc3NhZ2VCb2R5KCpkZWNvZGVyLCBt
ZXNzYWdlQm9keSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY2xpZW50LmRpZFJlY2VpdmVN
ZXNzYWdlKHRoaXMsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaAppbmRleCBiMTRkMWYzNDdjNTAwZTk4ODI5NDk5OWU5NWI4
ZTdkMzVkMGQ3ODI0Li4wNmEwMTM0ZGM5NjhiMjIwMzMzMGM1OTEwODkwYTNlMDE4NzQ1NmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmgKQEAgLTU4LDExICs1OCwxMSBAQCBw
cm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgV2ViQ29ubmVjdGlvbihQYXNzUmVmUHRyPENvcmVJUEM6
OkNvbm5lY3Rpb24+KTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
QVBJVHlwZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqLCBBUElPYmplY3QqKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGRlY29k
ZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFJlZlB0cjxBUElPYmplY3Q+
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImLCBBUElPYmplY3QqKSA9IDA7CisgICAgdmlydHVhbCBib29sIGRlY29kZU1l
c3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUElPYmplY3Q+Jikg
PSAwOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNvbm5lY3Rpb25NZXNz
YWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKICAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSYgbWVzc2FnZURhdGEpOwogCiAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nl
c3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQ
cm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuY3BwCmluZGV4IDVjNGIyMDZhMDhhNWUxZjc1NjQ0
OTY1MWQ3ZmRiNTEwNjBmZWVhOGEuLmUyNDM0MmFmZDY2YTE4OGJiOTY2OTA2NGYyMDY2ZGRjNjE0
MGI4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hh
cmVkV29ya2VyUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJv
Y2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmNwcApAQCAtMTAxLDkgKzEwMSw5IEBAIGJvb2wgU2hh
cmVkV29ya2VyUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBT
aGFyZWRXb3JrZXJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQ
cm9jZXNzLmgKaW5kZXggZDg2NDE1NTdlZDNhYzhhNDgzMTNkNjY4YWQwM2VkMjFhMzBmZGNkMS4u
MzllYzZiYjk4Y2IxZWExNTBiM2Q2N2JkZjFkMDFjNzRmZGUxMTgyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNz
LmgKQEAgLTU1LDEyICs1NSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRU
ZXJtaW5hdGUoKTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xv
c2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkUmVjZWl2ZVNoYXJlZFdvcmtl
clByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVNoYXJlZFdv
cmtlclByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBpbml0aWFsaXplU2hhcmVk
V29ya2VyUHJvY2Vzcyhjb25zdCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CiAgICAgdm9pZCBjcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWEyYWJiZGYxOTIwM2M1
YjhkMjMyNDllZDI2ZWUzM2Q4NWRiM2E1YS4uMzczOGVhNGMzMDI4YjM4NTZlZThkOWVjYjdhZDlk
YTY2NzBkZGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lkIGRlbGV0ZUNv
bXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7CiAgICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdM
YXllcihXZWJMYXllcklEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHB1cmdl
R0xSZXNvdXJjZXMoKTsKICAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRy
YWplY3RvcnlWZWN0b3IpOwpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1v
dmVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZvaWQgY3JlYXRl
RGlyZWN0bHlDb21wb3NpdGVkSW1hZ2UoaW50NjRfdCwgY29uc3QgV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYpOwogICAgIHZvaWQgZGVzdHJveURpcmVjdGx5Q29tcG9zaXRlZEltYWdl
KGludDY0X3QpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwog
ICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxQb3Np
dGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAppbmRleCBjMWVkYTFm
ZDE5MDdjOTk3ZGJhODNmZTMwYzQ3YjU2NjJlNmYzOWI5Li43MTA4ZTI3MmQzOThmYjdjZTk0NzM3
OWVlODZkZTQwYzRjNmI0ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZURvd25sb2FkUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZURvd25sb2FkUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwog
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgdm9pZCBzdGFydFRyYW5zZmVyKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHku
Y3BwCmluZGV4IDJkMjZmNDgxODBiMGVkMzIzM2IwMzJkNTE3YmVjMDJlZTg4MzkyMGUuLjkwMGQ2
YTU4ODJmZjI0OTgyN2I2MDQyZmY1M2IwNmU3NTNlNjdmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgV2ViQ29y
ZTo6SW50UmVjdCBEcmF3aW5nQXJlYVByb3h5Ojpjb250ZW50c1JlY3QoKSBjb25zdAogICAgIHJl
dHVybiBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fd2ViUGFnZVByb3h5LT52aWV3U2l6ZSgp
KTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eTo6ZGlk
UmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggYTM4OTFiYWRjZGU0MTAzNzRjMjkwYzU0MDZjMzcyMzQ4ZWQ1ZDZhYS4uNDUwODE2YTM0YjVi
ZGY5ZjNiYjIwZWEzNWE2ZTQ5YTFiYTJkZWFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00NCw4ICs0NCw4IEBAIHR5cGVkZWYgc3RydWN0IF9j
YWlybyBjYWlyb190OwogI2VuZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBB
cmd1bWVudERlY29kZXI7CiAgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdl
RGVjb2RlcjsKICAgICBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTcwLDcgKzcwLDcgQEAgcHVi
bGljOgogCiAgICAgRHJhd2luZ0FyZWFUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSA9IDA7
CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRp
bGVGb3JMYXllcihpbnQgLyogbGF5ZXJJRCAqLywgaW50IC8qIHRpbGVJRCAqLywgY29uc3QgV2Vi
S2l0OjpVcGRhdGVJbmZvJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVRpbGVGb3JMYXll
cihpbnQgLyogbGF5ZXJJRCAqLywgaW50IC8qIHRpbGVJRCAqLywgY29uc3QgV2ViS2l0OjpVcGRh
dGVJbmZvJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGVGb3JMYXllcihpbnQgLyog
bGF5ZXJJRCAqLywgaW50IC8qIHRpbGVJRCAqLykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UoKSB7IHJldHVybiBtX3dlYlBhZ2VQ
cm94eTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcAppbmRleCA5NjZhYzZiM2M5NjBiMDc1ZjUxN2Y5ZTFlMjU0YWJjZjZl
MGZiODg5Li5iNjVmOGRlYmFlZTA1ZWM4NjRkNzEyYWFhZDkwNGVjNzY2NDJkNDQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAg
LTM2NiwxMCArMzY2LDEwIEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4CiB9CiAKICNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCi12b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRSZWNl
aXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjpkaWRSZWNl
aXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAg
ICAgIG1fbGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICAgICAgbV9sYXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0K
IAogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4
MzdkZjQ1NzVkM2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYy
NWNiMmYwZjkxNzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwog
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJs
ZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1Jl
Y3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
aW5kZXggZmU1MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcy
ZGE2MjgwOWEwZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQog
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUy
OTdkMmMxMjIyZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmly
dHVhbCB2b2lkIHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5
NzcxNjQ3NWVlM2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdl
MTQ3NzVhNDYzODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmNwcApAQCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eTo6cG9wdWxhdGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0K
IH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eTo6c2hvdyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywg
Y29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5
NDU0MGFlLi5kNTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQog
CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwog
ICAgIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0
NDkxOTkzMDBkZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJk
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3Bs
dWdpblByb2Nlc3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAK
LXZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Q
cm9jZXNzUHJveHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRl
eCAxMzJiYjc0YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBh
ODAxNDBmZDhmODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVu
Y2goKTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vz
c0xhdW5jaGVyOjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFBy
b2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAg
Ly8gTWVzc2FnZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94
eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24oY29uc3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBkaWRDbGVhclNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdv
cmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0
MmRmODhjYzU5My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVk
V29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAg
dm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVk
T3JGYWlsZWRUb0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVt
b3ZlU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtl
clByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNz
UHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJl
ZFdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdv
cmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1
ZmVkMmZhNTk3MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBi
NjI2NmUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtl
cnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYw
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWls
ZWRUb0xhdW5jaCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
bG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsK
IApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7
CiAKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVk
V29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IDRmYzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIw
NzM1OWQxNDkyZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5j
cHAKQEAgLTU4LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9h
cnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFj
aykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUw
Y2RjNmNkODliY2UuLmE2NDJjMTk4YjZkNjM4ODY0NjhkOGRjZmRmYzM4NDc4MWFlYTJhYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNzMsOCArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2lu
RGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCog
bV93ZWJDb250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNr
PiA+IG1fYXJyYXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjQyYjdiMDIxNzQ2NTZlYzZjZDNlMjYw
N2ZkOGNkM2U3YmY0ZjFjMC4uZTFiNzU1YTIwZWE5ODA2ZWJmY2MxODc0ZTZhNjEwNzQyOGRmNTdk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmNwcApAQCAtNTksOSArNTksOSBAQCB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6
OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZQogICAg
IG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7CiB9CiAKLXZvaWQgV2ViQmF0dGVyeU1h
bmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVy
eU1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaAppbmRleCA2NWM2NjE0ZGFkZTkxODJjYjgz
ZGRmNTM3Y2NiY2Y5OGFmZGIyNDRlLi44M2UyMTI4YWM2OWQ0NzRiOTAwM2I2ZDY5ODA0MTg3ODQx
MDBkNTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmgKQEAgLTU5LDEwICs1OSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkJhdHRl
cnlNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQg
c3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggODZiYTkxYzA4NDJiMDljOTkyYWEzZTY3NmVhNTRjODIyOTRhZjhkNC4uZmY0M2IzNDExNjU4
Y2NlMjYyNWRjOTcwMmY0Y2FjZjdlMjJmYTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTIsMTQgKzUy
LDE0IEBAIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzLCBDCiAKIC8vIFdlYkNvbm5lY3Rpb24KIAotdm9p
ZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGFyZ3VtZW50RW5jb2RlciwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkK
K3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewot
ICAgIGFyZ3VtZW50RW5jb2Rlci0+ZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIo
bWVzc2FnZUJvZHkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIFJlZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKK2Jvb2wgV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFh
cmd1bWVudERlY29kZXItPmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3Nh
Z2VCb2R5LCBtX3Byb2Nlc3MpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKFdlYkNvbnRleHRV
c2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2VzcykpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY3LDE5ICs2NywxOSBAQCBib29sIFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndQogCiAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKIAotdm9p
ZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJDb25uZWN0aW9uPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0aW9uTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVX
ZWJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50
RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBtX3By
b2Nlc3MtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cywgcmVwbHkpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggMTYwODEzMjQ3ZDBmMGY5YTczN2Q4YTUyYzQ3Njc3YWZhMzky
OGZhNy4uMGIxZmMwOWY4OTcxMjJjMzlkMDI5NTA5OTYzNzY5MTU5ZmY2YmIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC00MiwxMiArNDIsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdl
YkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KLSAgICB2aXJ0dWFsIHZv
aWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwgQVBJT2JqZWN0
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFJlZlB0cjxBUElPYmplY3Q+JikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQ
SU9iamVjdCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwog
CiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4m
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9S
TShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggODFlN2Jj
NDc3ZDRiNmY4MTFlYjQ0MDc0M2U1Y2VhYzMyMTQ4NzQyMS4uOGE0NGI3ODE0NGQyZjFlY2RmYWFl
OTJiMGEzZGQyMTdkM2VhZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcApAQCAtNzgyLDI2ICs3ODIsMjYgQEAgdm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVj
ZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzoKICAgICBt
X21lc3NhZ2VSZWNlaXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZUNsYXNzLCBtZXNz
YWdlUmVjZWl2ZXIpOwogfQogCi1ib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK2Jvb2wgV2ViQ29u
dGV4dDo6ZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQogewotICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgIHJldHVybiBtX21l
c3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICByZXR1cm4gbV9t
ZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZl
ck1hcC5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29udGV4
dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250
ZXh0PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9h
ZFByb3h5PigpKSB7Ci0gICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0g
bV9kb3dubG9hZHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAg
ICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGlmIChEb3dubG9hZFByb3h5
KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgp
KS5nZXQoKSkKKyAgICAgICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIFdlYkNvbnRleHQ6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lcwogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVm
UHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7CiAgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6
OmZyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAg
ICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1l
c3NhZ2VEZWNvZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBk
aWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJv
ZHkuZ2V0KCkpOwpAQCAtODI0LDE2ICs4MjQsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29udGV4
dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7
CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0Pigp
KSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJD
b250ZXh0TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkpIHsKLSAgICAgICAgaWYgKERvd25sb2Fk
UHJveHkqIGRvd25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoYXJndW1lbnRzLT5kZXN0aW5h
dGlvbklEKCkpLmdldCgpKQotICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5
bmNEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOworICAgICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93
bmxvYWRzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBk
b3dubG9hZFByb3h5LT5kaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtODQ0LDEyICs4NDQsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzoKICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IG1lc3NhZ2VCb2R5OwogICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2Rl
ciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVj
dGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENv
cmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2Rl
cikpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgUmVmUHRyPEFQSU9i
amVjdD4gcmV0dXJuRGF0YTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpLCByZXR1
cm5EYXRhKTsKLSAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4
dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpKSkpOworICAgICAgICAgICAgcmVw
bHlFbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2Rl
cihyZXR1cm5EYXRhLmdldCgpKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggOWU4ZDgwNTRhYzczZTYxOTYyMTA1ZWRk
MzMzYTBhNTEwNzVjYTg1OS4uNTFjOTcwMGQ0MTBjYjIyODA3NzdhMmU2YTlhMTUyNmFjNDllNTNl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC05MSw4ICs5MSw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxsQ29udGV4
dHMoKTsKIAogICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFz
cywgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyKik7Ci0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgYm9vbCBkaXNwYXRjaE1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGluaXRpYWxpemVJ
bmplY3RlZEJ1bmRsZUNsaWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCop
OwogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29u
bmVjdGlvbkNsaWVudCopOwpAQCAtMTUxLDggKzE1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZFZpc2l0ZWRMaW5rSGFzaChXZWJDb3JlOjpMaW5rSGFzaCk7CiAKICAgICAvLyBNZXNzYWdlUmVj
ZWl2ZXIuCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwpOwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVNb2RlbDsgfQpAQCAtMjgzLDggKzI4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRH
ZXRXZWJDb3JlU3RhdGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogICAgICAgICAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQ29u
dGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lk
KiBjb250ZXh0KTsKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCBhYTMzY2U2
MmZkMzY0ZDRkZDk0MmIyYjk5Yzg1MWRjZWNlOWU1OGZjLi44Y2IxNDM3YzRjY2IxOGM2NDAwNDQz
MGMwNGNlNGRmMGQ5YmJmOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29va2llTWFuYWdlclByb3h5LmNwcApAQCAtNjQsOSArNjQsOSBAQCB2b2lkIFdlYkNvb2tp
ZU1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGll
bnQqIGNsaWVudAogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBX
ZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUGFzc1JlZlB0cjxB
cnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAppbmRleCA2OTgxYzBkMDYyZmM1ZjU2MWIwYmVhMWFl
NjUyOTIyMTYxY2UwZGUyLi5kYWJhNDY2Y2Q4YWEzYmE3YWJiNzAzYzliODIzNTVhYTQ5OGJlYWM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5oCkBAIC04OCw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdl
KCk7CiAgICAgCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
SFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBhM2ZkYTY1NTZjMTQyZTQ3MzM3
NWVjZTU2MDhlOGY2NTg4NDI2NjIwLi5iNTBhNGExNDQxYjYyNzNiMTEyZGUyMjMzYzI3OTEwNjQ4
MTQ0ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTIzMiw5ICsyMzIsOSBAQCB2b2lkIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5OjpkaWRNb2RpZnlEYXRhYmFzZShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsCiAgICAgbV9jbGllbnQuZGlkTW9kaWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBk
YXRhYmFzZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3ZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJE
YXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5o
CmluZGV4IGI3MjRhODQ3ZGNjY2Q4ZmZiN2IxNzA5N2QwZjU5ZTUwZWViNDRlYjkuLjdjNjk1ZmNi
YmEwZDYwNGI1ZDQ0MjEwZGRlYzhmZmU2NDA4OGQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCkBAIC04MSw4ICs4MSw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBl
OyB9CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldERhdGFiYXNlc0J5T3JpZ2lu
KGNvbnN0IFZlY3RvcjxPcmlnaW5BbmREYXRhYmFzZXM+JiBvcmlnaW5BbmREYXRhYmFzZXMsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGZlNzFlY2FhNGEwZTc2ZjgxNGQ4
NzJjMWQyZmZmYTcxYWE4Zjk3YmYuLmU0OWFkODZlZmNlNzA3OGNjYTA2YTFiYjM2MDY5Y2IwNTYy
N2RlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCB2b2lkIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3KQogICAg
IG1fd2ViVmlldyA9IHdlYlZpZXc7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYgcmVwbHkpCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRpZFJlY2VpdmVT
eW5jV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxs
U2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oCmluZGV4IGI4M2FmNTQ3NjdjNmYxMDU5N2MyZjcxZWQ0MjY1ZWU1NjEz
YjFlMDguLjA0YWVkOWEzZjM0NWZkOTQ1NzE1OGI2YWIxODRkMGJmMmQ3OWIwOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aApAQCAtNzksOCArNzksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGxTY3JlZW4oKTsKICAg
ICB2b2lkIGNsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQg
d2lsbEVudGVyRnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsU2NyZWVuKCk7CkBA
IC0xMDEsOCArMTAxLDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAg
ICBQbGF0Zm9ybVdlYlZpZXcqIG1fd2ViVmlldzsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZTIwZDFlZWJkNzJjZTU3MTM3M2Jm
YWI0YjQzZmM5ODY0MmYwODliOC4uM2NmZTg2YmMzMjY2YWM4NTU1MGNjM2NiNzg2ZGUzM2U0MjBi
N2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC03Myw5ICs3Myw5IEBAIHZvaWQgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3Qg
U3RyaW5nCiAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oZXJyb3JNZXNzYWdl
KSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5OjpzdGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggOGY0MTAyYjYxZjI5YmU5ZWEyNjdi
ZWZkZGM0Mjk4Y2QzOWFkN2YwOS4uODFmYzE5ZThlMjUxNTJiZDgxNDVlZGEyNTdmYTUyODFkZTVk
MTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4
IDhiNzFlODllMDQwMjAyMDhhOWUwODA4YjQ1ZGRmZWYxOGNkNTQ5MzEuLjQwMmQyZDM5ZjhkMWRh
M2UwNjJkMWU4OTRkYWQ3MmIwYWYzYzE3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJY29uRGF0YWJhc2UuY3BwCkBAIC0yODQsMTQgKzI4NCwxNCBAQCB2b2lkIFdlYkljb25E
YXRhYmFzZTo6ZGlkRmluaXNoVVJMSW1wb3J0KCkKICAgICBtX3VybEltcG9ydENvbXBsZXRlZCA9
IHRydWU7CiB9CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIpCit2b2lkIFdlYkljb25EYXRhYmFz
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViSWNvbkRhdGFi
YXNlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0
YWJhc2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVy
KTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6Om5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJ
Y29uRGF0YWJhc2UuaAppbmRleCA4NjQzYTQ4MWQxZDg2NDQ5NzJhZTNkYWViNGMxZjg2YzM5MmYw
ZGU2Li4wOTQ3ZWMwMGI0OTlhMDFhMWUwYzBhYTIyZDcwNzBjZTQ1NjE1ZmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCkBAIC0xMDMsMTEgKzEwMywxMSBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJ
Y29uRGF0YWJhc2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
Ykljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+Jik7CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5oCmluZGV4IDY5MjJiN2Q3MzUxMWFhNjFmOTI0M2VjNjEwOWVjMzJiMTk2YzllYmQuLjg4NTc1
YTNjYzQyZTQ1ZDdhMmRjOWUzN2Q1NGVlODk3M2VjZDZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMjUsOCArMTI1LDggQEAgcHVibGlj
OgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0
ZWQgV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgYm9vbCBpc0luc3BlY3RvclBhZ2UoV2ViUGFnZVBy
b3h5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ1NGQwODJmNTZhMDMyMmI2ODcxMDgx
ZTQxZjAxMWUyNzZhY2VlMmIuLmRlZmI4Y2NlOTFmNDUzYWU0MDYyMWIyYzI3NDhiNTNmNjkxOGJh
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuY3BwCkBAIC01OCw5ICs1OCw5IEBAIGJvb2wgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5
KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZv
aWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyUHJveHk6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAppbmRleCA5YzYzMTQyZjY5ZTRl
M2UyMDRmOWQyMTU4YWNmZTU3NDkxNzljOGE1Li5iYTM5MmJiMmVjZjc1MzgzNzJjYTk2ODNiMjg4
ZDA2ZDE4NjYxNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxT
ZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBX
ZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFy
cmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA4MWNmOThm
NTZjMTczZjQ0NDFjM2IwMzhiODM3Y2RlOTRiNDQwNmVkLi4xNTU3MzhiMDk2Mjk5MTRmODhjMDMw
OWQ2MzU4NWUxOGFjMDljNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIGJvb2wg
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94
eSopIGNvbnN0CiAgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwogfQogCi12
b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVX
ZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1l
c1dpdGhNZWRpYUNhY2hlKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHkuaAppbmRleCA0OGU4OGUwZmM0OWNmZGQyZjk0ZTJkODU0OGViZmU2ZDE1ODAzZDI4Li40NTMx
YTcyMTA4Nzg5OGQ1MDQ0MzQwNjBmY2QyMjdmMjI0ZGYxOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDgg
KzY1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hl
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBD
b3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRl
eHQqIG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxs
YmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFhMzk5YmMwZjhh
NGUwMmY4MTZjNjgxZmUxNjVkOTViZTMyZjM2My4uMWFkMWUyYjljOWE4NjNkZjJiY2E1NTE2ZDdh
NjA2YWZjNjQyNWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCkBAIC02OCwxNCArNjgsMTQgQEAgdm9pZCBX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3Jt
YXRpb24oY29uc3QgQXRvbWkKICAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViTmV0d29ya0luZm9NYW5hZ2VyOjpEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24o
ZXZlbnRUeXBlLCBuZXR3b3JrSW5mb3JtYXRpb24tPmRhdGEoKSkpOwogfQogCi12b2lkIFdlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAotdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5KQog
ewotICAgIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5
bmNXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5OjpzdGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMmM0ZWY3YzY3ZWJjNTE1OTg4
ZWVmOTBiZGQzYTYzY2VmOWM1YzM2ZS4uNDU2MDEwYzI1YjcxMGQxMTEzMWJkZjBjNDY2YWUyY2Uy
MzUyNjA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5LmgKQEAgLTU4LDEyICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1w
bGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVw
ZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDdlZjRhMjQ5ZmU3NzRmMmY4ODU5NzIwZjc1ZjVlYjQ3MDIwMTMwMWIuLjgxODY5NWFkZWVjMDYx
NWU3MjEwZGI4MGJiZjdjZTE3NWY5ZTA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC03MjIsMTEgKzcyMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91
bGRHbwogICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZEl0ZW0gPSBpdGVtICYmIG1fbG9hZGVyQ2xp
ZW50LnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRoaXMsIGl0ZW0pOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1J
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94
eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBt
X3Byb2Nlc3MtPndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQpAQCAtMTgzNSwxNiArMTgzNSwx
NiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnN0b3JlKCkpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSA6IDApOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NEcmF3aW5nQXJlYVByb3h5PigpKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2Vp
dmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eT4oKSkgewot
ICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2Ry
YXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNl
bmRpZgpAQCAtMTg1Miw0MCArMTg1Miw0MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJJbnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yUHJv
eHkqIGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAgICAgICAgICAgaW5zcGVjdG9y
LT5kaWRSZWNlaXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVsbFNj
cmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVjZWl2
ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
SW5zcGVjdG9yUHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNw
ZWN0b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVj
ZWl2ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCBy
ZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5N
YW5hZ2VyKCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cywgcmVwbHkpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZl
U3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRG8gc29t
ZXRoaW5nIHdpdGggcmVwbHkuCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2
ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQpAQCAtMTk5MCwxMSArMTk5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoUHJvZ3Jlc3MoKQogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RB
RykKLXZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lz
dGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNl
cnZpY2VJbmZvJiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAw
NSwxMyArMjAwNSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNl
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50UwogfQogI2VuZGlmCiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJM
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBjbGVhclBlbmRpbmdBUElSZXF1ZXN0VVJMKCk7
CiAKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDI0
LDExICsyMDI0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEu
Z2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiB1cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3By
b2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1
cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CkBAIC0yMDQwLDExICsyMDQwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAg
ICAgbV9sb2FkZXJDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2Vy
RGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVz
ZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDY4LDExICsyMDY4LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZy
YW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAg
aWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMTAsMTEg
KzIxMTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKICAgICBtX2xvYWRlckNsaWVudC5k
aWRDb21taXRMb2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVj
b2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9w
cm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMjMsMTEgKzIxMjMsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIENvcmVJUEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlz
aExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250
ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3Mu
Z2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7
CkBAIC0yMTM4LDExICsyMTM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvCiAgICAgbV9s
b2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2Vy
RGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVz
ZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTU1LDExICsyMTU1LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVyCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFt
ZSh0aGlzLCBmcmFtZSwgZXJyb3IsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5n
JiB1cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5n
JiB1cmwsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxB
UElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVu
dHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxNzIsMTEgKzIxNzIsMTEgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRh
dGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxl
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwpAQCAtMjE4NywxMSArMjE4NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiB0aXRsZQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMs
IHRpdGxlLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2Vy
TWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7
Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdl
YkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIy
MDAsMTEgKzIyMDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWMKICAgICBtX2xvYWRlckNs
aWVudC5kaWRGaXJzdExheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkp
OwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBX
ZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0y
MjEzLDMxICsyMjEzLDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlCiAgICAgbV9sb2FkZXJD
bGllbnQuZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodGhpcywgZnJhbWUs
IHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4g
dXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2Rl
KG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0KHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlvdXQo
dWludDMyX3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVz
ZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgp
KTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9sb2FkZXJDbGllbnQuZGlkTGF5b3V0KHRoaXMsIHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9u
ZXM+KGxheW91dE1pbGVzdG9uZXMpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwog
ICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEs
IG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVj
b2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKQEAgLTIyNDgsMTEgKzIyNDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1
bWUKICAgICBtX2xvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywg
ZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjI2MSwxMSArMjI2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ogog
ICAgIG1fbG9hZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlz
LCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVu
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNz
LmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OwpAQCAtMjI3NCwxMSArMjI3NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndQogICAgIG1f
bG9hZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1
c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjg4LDExICsyMjg4LDExIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IEludGVudERhdGEmIGludGVudERhdGEsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMzE0LDExICsyMzE0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCiB9
CiAKIC8vIFBvbGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlv
blR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRv
biwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1v
ZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJE
YXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHBlbmRpbmdBUElSZXF1
ZXN0VVJMKCkpCkBAIC0yMzUyLDExICsyMzUyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9w
CiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1
aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBm
cmFtZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9k
aWZpZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0
PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNv
ZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMzcyLDExICsyMzcyLDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJ
RCwgdWludDMyX3Qgb3BhCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwg
dWludDY0X3QmIGRvd25sb2FkSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0
aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yNDA0LDExICsy
NDA0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAgICAgfQogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nl
c3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjQxOSwxMSArMjQxOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgog
CiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVj
dG9yJiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3Jt
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1Bh
aXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwpAQCAtMjU2MiwxMSArMjU2MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV91aUNsaWVudC5zZXRT
dGF0dXNUZXh0KHRoaXMsIHRleHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3Vs
dERhdGEsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
Y29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90
IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBp
ZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihv
cGFxdWVNb2RpZmllcnMpOwpAQCAtMzAxMiwxOSArMzAxMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aGlkZVBvcHVwTWVudSgpCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLXZvaWQg
V2ViUGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlv
biwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIGNvbnN0
IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRJdGVtcywgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRl
eHRNZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1
bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJ
dGVtRGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJl
c3VsdERhdGEsIHByb3Bvc2VkSXRlbXMsIGFyZ3VtZW50cyk7CisgICAgaW50ZXJuYWxTaG93Q29u
dGV4dE1lbnUobWVudUxvY2F0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgcHJvcG9zZWRJdGVtcywg
ZGVjb2Rlcik7CiAgICAgCiAgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2YgaW50ZXJuYWxT
aG93Q29udGV4dE1lbnUsIGFsd2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVu
dSBpcyBoaWRkZW4gc28gaXQgc3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCks
IG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRN
ZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBv
aW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RS
ZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2Vk
SXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxB
UElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVu
dHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlQ29udGV4dE1lbnVI
aXRUZXN0UmVzdWx0RGF0YSA9IGhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVlZGU2Yjk2ZjgyOTUyNGRlZGMwMjI4ZGIxODA1MmI4
NzE1ZmY5MTcuLjk1NTI4YWI3ZjlhYjI0MWFhMjdiZTBmMjdiMmQ1OGU4YjE5NWViYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRp
ZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0s
IFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbSk7Ci0gICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cyk7CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNv
bnN0OwogICAgIFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpAQCAtNTkxLDggKzU5MSw4
IEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBwcm9j
ZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVk
V2hpbGVQcm9jZXNzVW5yZXNwb25zaXZlKCk7CkBAIC03NTIsNDkgKzc1Miw0OSBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50
NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdl
Q2FjaGUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFn
ZUNhY2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBj
b25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTGF5
b3V0KHVpbnQzMl90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVI
YXNDdXN0b21SZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAg
ICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3Qg
U3RyaW5nJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0KENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRMYXlvdXQodWludDMy
X3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lk
IGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9p
ZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGZyYW1lRGlk
QmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFy
dFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZv
aWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2
b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRl
bnREYXRhJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
SW50ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFH
KQotICAgIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgSW50ZW50U2VydmljZUluZm8mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IEludGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNl
bmRpZgogICAgIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50
NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJz
LCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNl
aXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25s
b2FkSUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGlu
dDMyX3QgbW91c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5h
dmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90
JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0
aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5
QWN0aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7Cisg
ICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAotICAg
IHZvaWQgd2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJh
bWVJRCwgY29uc3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHdpbGxTdWJt
aXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0
cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIFJlc291cmNlIGxvYWQgY2xpZW50CiAg
ICAgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgcGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpOwpAQCAtODEzLDcgKzgxMyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lkIHNo
b3VsZEludGVycnVwdEphdmFTY3JpcHQoYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIHNldFN0YXR1
c1RleHQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChj
b25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3Qg
bW9kaWZpZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1
bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3BhcXVlUGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJMKTsKICAgICB2b2lkIHNldFRv
b2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7CiAgICAgdm9pZCBnZXRU
b29sYmFyc0FyZVZpc2libGUoYm9vbCYgdG9vbGJhcnNBcmVWaXNpYmxlKTsKQEAgLTkxMiw4ICs5
MTIsOCBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29u
dGV4dCBNZW51LgotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKLSAgICB2b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVu
dUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdl
YkNvbnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlm
CiAKICAgICAvLyBTZWFyY2ggcG9wdXAgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiODgzMjM4MzBhZGQyOTQxODc4YTdjYWFiODIw
NzBkOTMxOTc4NTFlLi4wZDZiNjIyZWY5ZmNlY2IzZmVhMGM3NWIyNjFjNDAxNDkxZDY1ZTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk1
LDE3ICszOTUsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFNoYXJlZFdvcmtlclByb2Nl
c3NDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgLyogdXJsICovLAogICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQogewotICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cykpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5Pigp
KSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25J
RCgpOworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAg
IGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTQxMywyMCArNDEzLDIwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJl
cGx5RW5jb2RlcikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaFN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgaWYgKG1fY29udGV4
dC0+ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJl
cGx5RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2Vp
dmVTeW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cywgcmVwbHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0
aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklE
KCk7CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTQzNCwxMyAr
NDM0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBhZ2VQcm94
eS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
cmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKQot
ICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlkSGFuZGxlTWVzc2FnZSk7
CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0aW9uV29y
a1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxlTWVzc2FnZSk7
CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA3NTI0
ZGYyZmY0NjAwZjhlYjVmNjg2YzBkMWU4NDk3ZDI1MTBlMGZhLi4wYTg1ODE2OWU5NDk4YTZmMDcz
OWEyMGY5NjQ1ZTU1Mjc2YmQyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0xNjIsOCArMTYyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTcxLDcgKzE3MSw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xp
ZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1
ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wm
IGRpZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1l
cjo6Q2xpZW50CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NU
aW1lciopIE9WRVJSSURFOwpAQCAtMTkwLDkgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRVcGRhdGVIaXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CiAKICAgICAvLyBJbXBsZW1l
bnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94
eU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVN
ZXNzYWdlKTsKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVy
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjMjk4MDc5N2E3ZTA4M2FiMzBmMzMyYjAy
ZGMxYjQ4NDg0NWFlMDEuLjQxYjhmYmJkYjM1Y2I2MDRiMjVmMWZhMzExMzFjY2FlMzc3MmQ1M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5OjpjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1Rv
Q2xlYXIKICAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhl
bUlmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNo
ZUZvckFsbE9yaWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDllNTliNjQx
ZjRjM2ZiZTgwZGE5YWRiMjYzNjgyNzBlZjNmYjkxMmUuLjFjNjIwNzA3Yjg0NDI2ZmRmZTg3Zjc0
NTJmNjk0NmJjMDRmNDc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQog
CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5z
KGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVmlicmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJh
dGlvblByb3h5LmNwcAppbmRleCAwNTkwZjMwY2M1NzhjZjA1MjMxMTkyMmIxZmM5ZTljMTkwNGZi
OTEzLi5iYjFmOTZmNTI3MTE4MWFhYjg2ZjY2NTU5MzEzZDc0NDliYjBjMzY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTU3LDkgKzU3
LDkgQEAgdm9pZCBXZWJWaWJyYXRpb25Qcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdL
VmlicmF0aW9uUHJvdmlkZXIqIHByb3ZpZGVyKQogICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShw
cm92aWRlcik7CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJWaWJy
YXRpb25Qcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlZpYnJh
dGlvblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2
b2lkIFdlYlZpYnJhdGlvblByb3h5Ojp2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRpbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IDY3NmQz
YTQ5NzY3NDBjN2M1MzdlZmIwZmYwZDg5MmU5OTczODUzMzQuLjVjNmRlMTdkNzIxMDRmYWQwNDQ2
MGMxMGJlMzQxZWY5NTIxZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJWaWJyYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJW
aWJyYXRpb25Qcm94eS5oCkBAIC01NSwxMCArNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJW
aWJyYXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJW
aWJyYXRpb25Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
VmlicmF0aW9uUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHZpYnJhdGUodWlu
dDY0X3QgdmlicmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAppbmRleCBlMmJmMzQyM2Q5ZDI1ODgyNDI0ZjNlNDIxNjZlZWIxOTUy
YTgwZDc4Li44MDQ5OGE1ZWE4YzYwODFhNDY4NTZiYzM4NjhiZTI3ZDhkNjZiOTI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJD
bGllCiAgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQogCi12b2lkIFdlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVx
dWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAogdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVnaXN0ZXJVUklTY2hlbWUo
Y29uc3QgU3RyaW5nJiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2YTNkNmU4MjZj
NTMwMmM5OGQwZWUwOTc1ZjY5NmJkMzY2MjcwOTc1Li5lNGI4Y2NlMzc1NDJhZGZhMTc1MTVkOWYx
MWE4ZjI5NjM4NzUyMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291
cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTU3LDggKzU3LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7
IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViU291cFJlcXVlc3RNYW5h
Z2VyQ2xpZW50IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAKaW5kZXggOWMxYWQ4Nzk4NWQyZjdjYmQ3OTczMjJlNzYyYTBhMDljMTI0Zjdj
OC4uMGJkZmIwMTMyZTg4MDUyN2I1NGIzMTZlZTAzNGNkODRkNzM5ODk0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBA
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigp
CiB7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAppbmRleCAzOGQ0OGUxMTll
ZjI2MzhiMTBlNjc3M2VhZTczMDUzN2Q5ZTIyZmJjLi4zMjU4NDY5YmE4NDhjNDA4MDFmN2NkZmEw
NzRlNDUwMjQyNzE1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAg
IGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYg
c2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGVsZXRlQWxs
RW50cmllcygpOwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CkBA
IC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNw
cAppbmRleCBhNjg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1Li45Mzg3NDFk
NjJkNzc5MjA4NDZlNjQ2Y2Q3NTlkMGRlMjU4YjE2NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCkBAIC01OCw5ICs1OCw5IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6
QXV0aGVudGljYXRpb25NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0
aW9uKCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRoZW50aWNh
dGlvbk1hbmFnZXIsIHRoaXMpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCA5M2FmZTQ0NmJiMDQwOTZjMDgxMTYzZWVhZDkzZGI4
MmQwM2FkOWI1Li4xNjcwOGNlNmJkNDU0YzQxMWFmNjYzOTBiNmVkM2RlY2VmMjJiNjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0ZToK
ICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFuYWdlck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm9Gb3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBj
b25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXgg
MDRkZWM4NjQwMDc1NTAxNTQyNWNhZmRjZDJjOWIxOTAzNWQxYjY4ZC4uMDg5MmYyMTc4YjkyZmJi
M2U3OTkzOTFlNzEzMGEyZWQ5NDZhYzAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC00OCw5ICs0OCw5
IEBAIFdlYkJhdHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIoKQogewogfQogCi12b2lk
IFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJCYXR0ZXJ5TWFuYWdl
cjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCmluZGV4IDUwOTcxOGQ0
MjFjN2RlMTEzM2ZmZWMyY2ZlZTg1ODYxOThiZTQxYTEuLmJiZTRmNThhMjcxMGNlZjE4NDUxNzM3
MjViMmVhZjY1MTcwMjg2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAgICAgdm9pZCB1
cGRhdGVCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmKTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdl
bmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJQ
cm9jZXNzKiBtX3Byb2Nlc3M7CiAgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFn
ZXIuY3BwCmluZGV4IDZmM2FmMWQxMDFlMTIxMDUxZTNlY2JlODBmMjIyY2M5ZTZjZTAwODUuLmU1
MDAwZDRhYzQyYjQ5ODcxNzQ5ZTEwODI2YTY1MmE4ZTA1YmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAg
LTQ2LDkgKzQ2LDkgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCiB7CiB9
CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFu
YWdlcjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5o
CmluZGV4IGNmNzhhMTE0ZTBlNTJlZWQ4YjVkODkyNTYwNjIzNzFiNjhkMGNkYzEuLmFhYzA0MTky
YmY3OTZmMTAyMWEzODExODgxZmYzNThhNmY4NjljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzUsOCArMzUs
OCBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERl
Y29kZXI7CiAgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlRGVjb2RlcjsK
ICAgICBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViQ29v
a2llTWFuYWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJl
ZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaENv
b2tpZXNEaWRDaGFuZ2UoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWlu
dDMyX3Qgc3RvcmFnZVR5cGUpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29r
aWVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVu
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCAxYzdhNzhkYjAyYzczNzBjNGI1MWY4NjIy
OTdmNGZhNDcxMzQ5NTE4Li4wMzIzNjk4Y2ViNTBmYzQyODViY2FjODg1ZjgzZTAwZmNjZGJlYWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVs
bFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc4LDkgKzc4LDkgQEAgV2ViQ29yZTo6
RWxlbWVudCogV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBtX2Vs
ZW1lbnQuZ2V0KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAogYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2Ny
ZWVuKGJvb2wgd2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCAzOTZhNGFk
YjE5MmVmMDY2M2NiMTUwN2I4NGZiNDJhNzc3ZWJkNGU4Li44YzA0OTIyNWI4YzEzNTZiYmVmNjBh
MGQ1OTQxNjA3ZDA2N2FhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzIsOCArMzIs
OCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xh
c3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNv
ZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2Uq
KTsKICAgICB2aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2Fy
ZCk7CiAgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KTsKQEAgLTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVs
bFNjcmVlbihib29sKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogCi0gICAg
dm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
OwogCiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJ
bnRSZWN0IG1fZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAy
YWVjNWE3MjdkNTA5MTE0YWYyOThkZWNlZTI4N2QwNWZlNzJkYjBkLi4wMWRiMzE1YWFkNjYxNDk1
YmY1Mzc4NWU1N2M3MTg4Y2Y1MTYwMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3Bw
CkBAIC00OSw5ICs0OSw5IEBAIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9u
TWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlk
UmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2Vi
UGFnZShXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggOGExNDA1
ZDE0ODMzZTg3Yzk2NThlZDIzNzNmOTU3OGE0ZTA0NTY0ZC4uNmUyNDU1NzBkN2FjOWNmMGY3ZTU5
YWIwYTkzM2JkMDgxNzVkZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC01NSwx
MCArNTUsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9j
YXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5n
ZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lk
IGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYklj
b25EYXRhYmFzZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFi
YXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAyMTdmMWU4MGFiMWY5YTZlYzhiZTM2
NWY0NDJjMzRhM2ZmNzUxYWExLi5hMDQ3OTNlYjRjZDI1NDRhZmZjZTgyYmJlMWZiMmYyZTY3OTVi
NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9X
ZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
Y29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xNDMsOSArMTQzLDkgQEAg
dm9pZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6dXJsSW1wb3J0RmluaXNoZWQoKQogewogfQogCi12
b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCAyMDk2YWJhNGNk
MzExZjkyNWY3NGVkMmYxMDhlOTMyYTY1OTU1NjkxLi5jZDlmNzE3NmU1YzYzMjdmYzA4NWQ1NzIy
ZGM5MjQ2ZWE0YTRjZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lj
b25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTM2LDggKzM2
LDggQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVj
b2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNzAsMTAgKzcwLDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNpb24sIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRGF0YUZvckljb25VUkwoY29uc3Qg
U3RyaW5nJiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPik7CiAgICAgICAg
IAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAg
ICAgLy8gQ2FsbGJhY2tzIGZyb20gdGhlIFVJUHJvY2VzcwogICAgIHZvaWQgdXJsSW1wb3J0Rmlu
aXNoZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVT
dG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKaW5k
ZXggMTEzN2JhZTIxMDA0OTUzZWYzYTk3MTA5ZmQ4ODEwZjljZTY0OGNhMi4uMmZkZjRlZDVhOGJh
MjY2ZTYxMTc2MjEzZTFjMTViODZiZGJiOWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlcjo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHN0YXRpYyB2b2lkIGtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJzKFZlY3RvcjxT
ZWN1cml0eU9yaWdpbkRhdGE+JiBpZGVudGlmaWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIuaAppbmRleCBlOGRlMGFkYzJhYzZjMDdjZjkzNzJkNWJkZjc5MWFhYmVk
ZjFmNDgyLi43MmE0NGMxMjZlMjA4MDIzODAyM2UwMmEyNzE2M2RjZjBlOWY3MTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1
ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCkBAIC0zMSw5ICszMSw5IEBACiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAg
ICBjbGFzcyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFz
cyBNZXNzYWdlSUQ7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7Citj
bGFzcyBNZXNzYWdlSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDYsNyBA
QCBjbGFzcyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlN0b3Jh
Z2VUcmFja2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlciYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToK
ICAgICBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKGNvbnN0IFN0cmlu
ZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT3JpZ2lucygp
IE9WRVJSSURFOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9v
cmlnaW5zUmVxdWVzdENhbGxiYWNrSURzOwogICAgIGJvb2wgbV9vcmlnaW5zTG9hZGVkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJN
ZWRpYUNhY2hlTWFuYWdlci5jcHAKaW5kZXggNGE1ZDdmOTVlNzUxZTgyOTY0NjE2OGRjMjljMDZj
YWM4NzBhNjQ3OC4uYjA5ZDY0MTRkMmEyMmI0M2IxN2UxNDFiYmM1ODY0MjE3MTgzY2RkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUv
V2ViTWVkaWFDYWNoZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyOjpXZWJNZWRpYUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTWVkaWFDYWNo
ZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyOjpnZXRIb3N0bmFtZXNXaXRoTWVkaWFDYWNoZSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2Fj
aGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuaAppbmRleCA5MDliZTk3YmExYzdjMjlhOTI4ODBjNGQyODAwYTk0YWQ5
NjEzOTA0Li5mYzYyYmU0YWQyM2YwNWIzMzhkMDI4YmQzNzcyMmE1MWY1MjQyZGU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwotICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3Mg
Q29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV2ViTWVkaWFDYWNo
ZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNZWRpYUNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJNZWRp
YUNhY2hlTWFuYWdlcigpOwpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xl
YXJDYWNoZUZvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZv
ckFsbEhvc3RuYW1lcygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFn
ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVN
YW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZv
L1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKaW5kZXggOGMxMDM3MWZkNjgwNjAyYzBmODQ1ZTQ4
MTMzNmRkNjI0NzUwYTA1MC4uNjMxZjAyMjM0ZWMwYmY4ZDA4MmE0OWUyYTNiYmM2NTY2MTkxZjkx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJO
ZXR3b3JrSW5mb01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJO
ZXR3b3JrSW5mb01hbmFnZXI6On5XZWJOZXR3b3JrSW5mb01hbmFnZXIoKQogewogfQogCi12b2lk
IFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7Ci0gICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01h
bmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
V2ViTmV0d29ya0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29y
a0luZm9NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlci5oCmluZGV4IGQzZGFiODQ0YzhiYWQyMTc4OWY4MzA5NTRmY2Ez
ODhhNmViYmZkMTUuLmZjYjhkMDI3MGM1ZmNmNzY0M2FlNGQ0ODUxMjIyNmExNDg1M2VhNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29y
a0luZm9NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
by9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICAg
ICBkb3VibGUgYmFuZHdpZHRoKFdlYlBhZ2UqKSBjb25zdDsKICAgICBib29sIG1ldGVyZWQoV2Vi
UGFnZSopIGNvbnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdl
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0
aW9uKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJOZXR3b3JrSW5mbzo6
RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2I2ODkx
MmZlOWFhYmI0MmMyZTc4Y2FmNDg2NDllYTUwNzA0MjNlMC4uZmI0MmJjYzQzMjMzMmUyMTYwNTdm
ODk1YTIzZTIzNTc2NmFmZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cApAQCAtNjMsOSArNjMsOSBAQCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0
aW9uTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5p
dGlhbGl6ZShjb25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggNmE3MGZjNjBjODU1Y2QzMTk2MTAwOTk2YjM1
YmJhNmVjNGQ3ZjM4My4uYTNmNjU4ZjI0NTYwZmFlODE3Yzk5MjUwNTJmOTI4YmM1OGE0YTUyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFz
cyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29k
ZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgog
ICAgIC8vIFRoaXMgY2FsbGJhY2sgY29tZXMgZnJvbSBXZWJDb3JlLCBub3QgbWVzc2FnZWQgZnJv
bSB0aGUgVUkgcHJvY2Vzcy4KICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiwgV2ViUGFnZSopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgdm9pZCBkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZywgYm9vbCBhbGxvd2VkKTsKIAogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZv
ciBwZXJtaXNzaW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KQEAgLTc0
LDcgKzc0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdl
bmVyYXRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAgICAgCiAgICAgdm9pZCBkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKTsKICAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkYjdlNWUxZjNiMGFhYzMz
Y2MyZmZiMjkzZTRlN2MyYjhhZjE4NTUuLmZjZmIyNDlhZGVmZjQ3MmZjNDdkNjcyMmMxNGZmZGJj
NTE5M2RkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODcsMjggKzg3LDI4IEBA
IHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpblByb3h5KFBsdWdpblBy
b3h5KiBwbHVnaW4pCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXItPnJlbW92
ZVBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEFT
U0VSVChhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUKGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKTsKIAotICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9IG1fcGx1Z2lu
cy5nZXQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIFBsdWdpblByb3h5KiBwbHVn
aW5Qcm94eSA9IG1fcGx1Z2lucy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogICAgIGlm
ICghcGx1Z2luUHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRS
ZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKKyAgICBwbHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3Zv
aWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJl
bW90ZU9iamVjdE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5j
b2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlv
bklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRp
b25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklE
KSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJl
Y2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0CiAgICAgaWYgKCFwbHVn
aW5Qcm94eSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVT
eW5jUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9p
ZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiop
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IGI5YmY4MWM3MTY2ZDY3MDlhYzA4OGNmODRjN2Ri
OTlhNTI1MDA5ZDUuLjJkYzJjY2E1OWZmZDdkMDMwNjNiMTA2YjlkYTljY2MzNWRlYWNlNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0ZToKICAgICBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBj
b25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXph
dGlvbik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2b2lkIHNldEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmKTsK
IAogICAgIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogbV9wbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5oCmluZGV4IDAyZmExYWI1NzcxOWI5ODg3ZDI3YTZiZDIzNTRiNTQxZWU3ODQx
MWUuLjgxMDRhZjIwNDNkZGZkOTgzMDg1NzcxZmFhODQ3MTU4ZDlmOWYwMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC02MCw4ICs2
MCw4IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbHVnaW5JbnN0YW5jZUlEOyB9CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hl
ZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICBib29sIGlzQmVpbmdBc3luY2hyb25vdXNs
eUluaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nT25Bc3luY2hyb25vdXNJbml0
aWFsaXphdGlvbjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAppbmRl
eCBlODg2OTYzNzEyODU5NWVkOGI5MTJhMjU3YzNkMjRhMGFjZGE0YjNkLi42ODEwZjBhYmRiOWRi
ZWJhOTlmYTNlMWU5YjBmMDZjZTQ1YWUwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlci5jcHAKQEAgLTU2LDkgKzU2LDkgQEAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6On5X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyLmgKaW5kZXggMDE3MjM4OTRjZjUzZmFjZWQ5NjI1ZmNiNGVjZTI2Y2E0
NmZjNDhjMC4uODNhMWNjMzA0NTNjZjI2ZTNlZTg5MGE3ODVhYThlOGRhMGYxMzRkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNh
Y2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwog
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC00NywxNCArNDcsMTQgQEAgY2xhc3MgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlciYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAg
ICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyKCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9p
ZCBnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CiAgICAgdm9pZCBj
bGVhckNhY2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9D
bGVhcikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggNWUxNTJlZTk4YWFkMDYwY2Q3YTcwYzFlM2U3
YjBjMTQ4NDVmYWE4MC4uZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1ZGZhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzLmNwcApAQCAtNDksMzQgKzQ5LDMzIEBAIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
czo6V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6
CiAKIC8vIFdlYkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVu
Y29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogYXJndW1lbnRFbmNvZGVy
LCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6
OmVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJ
T2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworICAgIGVuY29kZXIu
ZW5jb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9
CiAKLWJvb2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4m
IG1lc3NhZ2VCb2R5KQorYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3Nh
Z2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVj
dD4mIG1lc3NhZ2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiAvLyBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLQotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAg
ICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQogewotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgbV9wcm9jZXNz
LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCBy
ZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGlkQ2xv
c2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IGNkZmY0YWMy
N2YwYjkzNDljNTlhZGRiZjI5YjAyODk0MGUwMzQxODYuLmFmNTkxMTE1YjkxNzhkZTUwODRlY2M3
NjRlMzg2MjU5MjdlZjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDEsMTQgKzQxLDE0IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25u
ZWN0aW9uCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNv
ZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0
PiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQ
SU9iamVjdD4mKSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSAg
T1ZFUlJJREU7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdp
bmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDUzZDM4OTVjZGY0N2JkYjk3
NmM0MjA5YWE1MDczYzRkMDIzYjM1MzkuLjA1Yjc1YTFjYmY3NzNkZTIyNzg4ZjY3Y2RlY2Y0Yjll
ODdhOTg4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTYyLDkgKzYyLDkg
QEAgV2ViRGF0YWJhc2VNYW5hZ2VyOjp+V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKIH0KIAotdm9p
ZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNl
TWFuYWdlcjo6Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0YWJhc2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGFiYXNlTWFuYWdlci5oCmluZGV4IDYwZmZiMTBjZGFjNjcwMTE4ZDI5Y2VjNGIx
NzE4NWQzOTc0ZDJlY2EuLmFkYjRkNGI4M2E4ZDNhOWMxYzg5MzZiMTk1MmNmMmY1MWRlMmI4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0YWJhc2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1
bWVudERlY29kZXI7CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CiBj
bGFzcyBNZXNzYWdlSUQ7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
V2ViRGF0YWJhc2VNYW5hZ2VyJiBzaGFyZWQoKTsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
KGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAgICAgdm9pZCBzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3Q7CiAKIHB1YmxpYzoKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZU1hbmFnZXIoKTsK
IAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJEYXRhYmFzZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGNvbnN0OwogICAgIHZvaWQgZ2V0RGF0YWJhc2VPcmlnaW5zKHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggZGJlYmQzODZhNWU1N2M4OWYyOWYyMTNjZDljYTA1
ZTkzYTY2M2YyOS4uNzc2YThkOTdlMTMxNzNmYzVlZmZiOTUwMDM1YWM5YjBjNzBmODhjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBA
IC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3Rv
cmVzKCk7CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0
b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
RmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXgg
Y2E0NzYxNzllMWRhNzk3NGFkZDUwMWI2ZDI5MWJiODQxMzRmZTVkMy4uYzhlOTZjM2MwZTMzMTJk
Zjc5YjRjYWZiNDc1NGNlYmZkYmU4YjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1l
bnREZWNvZGVyOwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29k
ZXI7CiAgICAgY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc093blB0cjxEcmF3aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25z
dCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWEo
KTsKICAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisgICAgdm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBz
Y3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKQEAg
LTk0LDcgKzk0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJU
cmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuY3BwCmluZGV4IGQ2Y2VmMTQyZjdiNmRmZjBkZTUxODU3NjMzMzVkOGIz
NTI3MDMzOWUuLjg1NmVlOGU5YzE2NTQ2NjAyMjBkYWE2YTk4MzJhMTBmOTQzNDE5OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUlt
cGwuY3BwCkBAIC03MjcsMTAgKzcyNywxMCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxh
eShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRv
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IERyYXdpbmdBcmVhSW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9z
dCkKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0
b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IDhiYWJl
MDEwODc4MjQ5ODY3YjE2NTNjM2I0NWZjNGU1M2U0ODcxZjYuLmJhOTM5NTRmOWI3ZDliMGRhZTUz
M2U2MzJkNTc0NDkzOTQ1Mjk3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHAKaW5kZXggYTUzMjIwNjEwYzdjZmQ3ZGMzYjVjY2IyZDBhMGY1YjZiMzM3MTg0My4uMmE3ZTdm
NDkzMGVjOTFhZmRkM2NkZGMxZjA4YjNhNGMwMzg5ZGJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTcyLDEw
ICs3MiwxMCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBh
Z2UoV2ViUGFnZSogd2ViUGFnZSkKIH0KICNlbmRpZgogCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIEV2
ZW50RGlzcGF0Y2hlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3Nh
Z2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NFdmVudERp
c3BhdGNoZXI+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VP
bkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIGRp
ZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRp
ZEhhbmRsZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IGFh
NzBhOTNlNTVjZjc2ZTFiMzIyNjFiZmEzNDY3Mjg4MDVhZDEzNDAuLmE0ZjliOTljZTIxM2E4NWFk
MDBmOTQyYjUzZDlhZTUwMTJmMzAyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTYwLDEwICs2MCwxMCBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVldWVDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
Ym9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBp
biBnZW5lcmF0ZWQgRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQg
ZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlk
UmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMK
ICAgICB2b2lkIHdoZWVsRXZlbnQoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViV2hlZWxFdmVudCYsIGJvb2wgY2FuR29CYWNrLCBib29sIGNhbkdvRm9yd2Fy
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhv
c3QuaAppbmRleCA5NWRjOGU5Y2E0YjdhNmY1ZGZhYjIzNGI0MWJjOGIxMGNlNGJiZjdlLi5kN2Mz
OGIzYWY3ZTkzYTQzZGNkNzhiNzQyYWFhMTcwZjg3OTU3ZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTk0LDcgKzk0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0Rm9yTGF5
ZXIoaW50IC8qIGxheWVySUQgKi8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHB1cmdl
QmFja2luZ1N0b3JlcygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVl
Q29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IGMwNDE1NDZhODZjYjM1ZGZhNTkwNDY2ZDA5YjVi
YTg3NmQ1NmY2NTguLjJmMTA0NzU4OTg3MWM3MzQ4MTZmYmEzNDBhZDUwMWJkNTBhMTQ4MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIFdlYlBhZ2UqIGluc3BlY3RvclBhZ2UoKSBj
b25zdCB7IHJldHVybiBtX2luc3BlY3RvclBhZ2U7IH0KIAogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViSW5zcGVjdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJJbnNwZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBDYWxsZWQgYnkgV2Vi
SW5zcGVjdG9yIG1lc3NhZ2VzCiAgICAgdm9pZCBzaG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTgyZTY1YzA2Njk0ZTEyMTljZjc2
NzQwZTAzNTkyY2Q0MjhhYzNkZS4uMTBkMDMzZDYzY2MzZTM1YTkwZDMzNjhkOTQ5ODkxZTU4YjYw
NGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTIxNSwxNCArMTIxNSwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldEdhcEJldHdlZW5QYWdl
cyhkb3VibGUgZ2FwKQogICAgIG1fcGFnZS0+c2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZU5hbWUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQor
dm9pZCBXZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZU5hbWUsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIEluamVj
dGVkQnVuZGxlKiBpbmplY3RlZEJ1bmRsZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVk
QnVuZGxlKCk7CiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgaWYgKCFhcmd1bWVudERlY29k
ZXItPmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29k
ZXIobWVzc2FnZUJvZHkpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUt
PmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5n
ZXQoKSk7CkBAIC0yNzYzLDE4ICsyNzYzLDE4IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2Vi
UGFnZUFyZUZvY3VzZWQoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLT5pc0ZvY3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgp
OwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhPigpKSB7CiAgICAgICAg
IGlmIChtX2RyYXdpbmdBcmVhKQotICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2
ZURyYXdpbmdBcmVhTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVl
Q29vcmRpbmF0b3I+KCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCi0gICAgICAgICAg
ICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjc4
MiwyNCArMjc4MiwyNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJbnNw
ZWN0b3I+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gdGhpcy0+
aW5zcGVjdG9yKCkpCi0gICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJJbnNwZWN0
b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAg
IGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXI+KCkpIHsKLSAgICAgICAgZnVsbFNjcmVlbk1h
bmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0
cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAgICBkaWRS
ZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
LCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAgICAgCiBJbmplY3RlZEJ1bmRs
ZUJhY2tGb3J3YXJkTGlzdCogV2ViUGFnZTo6YmFja0ZvcndhcmRMaXN0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBhNWYyYmJiNzVmMzJjNTFk
YTE0YWZjMDY5OWRkZjcxMzIxM2RkMGQuLjdkYjY1ZTk5ZTM0M2UzMDk2MGRkMWM1YTIyNDFiMmJk
NzU5YzY2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMjM5LDggKzIzOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+KTsK
IAogICAgIC8vIC0tIENhbGxlZCBmcm9tIFdlYlByb2Nlc3MuCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIC8v
IC0tIEluamVjdGVkQnVuZGxlIG1ldGhvZHMKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAg
LTMyMCw3ICszMjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlTGVuZ3RoKGRvdWJsZSk7
CiAgICAgdm9pZCBzZXRHYXBCZXR3ZWVuUGFnZXMoZG91YmxlKTsKIAotICAgIHZvaWQgcG9zdElu
amVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAg
IGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7
IH0KICAgICBib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4g
bV9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsgfQpAQCAtNjEyLDggKzYxMiw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCi0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
YlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQ
Qzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZUdyb3VwUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2VHcm91cFByb3h5LmNwcAppbmRleCBmNTlmYmJhZjVmODM2MWY4MWEyZGFmZWM3ZjY3NTk0OTcy
YWMyODczLi4zNDBjNTQzMGVmNGQxMGVmOGY3NzRlYzM3MjI5ZmUzMDlkYzZiMTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQ
cm94eS5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViUGFnZUdyb3VwUHJveHk6On5XZWJQYWdlR3Jv
dXBQcm94eSgpCiB7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VHcm91cFByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUGFnZUdyb3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVX
ZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KICAgICAKIFdlYlBhZ2VHcm91cFByb3h5OjpXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQ
YWdlR3JvdXBEYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuaAppbmRleCBjYmIwNzk0MjEzZDJkMWZhMWU5ODJm
MGFjNWY4NGMwOWM1YzJhZWQ4Li4wMGRhNjRiMjQyMjQ3OWFhZjU5YzVkNWQ5NDE1ZDdjYzgyMTZi
NThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZUdyb3VwUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUdyb3VwUHJveHkuaApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNs
YXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsK
IH0KIApAQCAtNTQsMTQgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmlzaWJsZVRvSW5q
ZWN0ZWRCdW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5k
bGU7IH0KICAgICBib29sIGlzVmlzaWJsZVRvSGlzdG9yeUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS52aXNpYmxlVG9IaXN0b3J5Q2xpZW50OyB9CiAgICAgCi0gICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZUdyb3VwUHJveHkoY29uc3QgV2ViUGFnZUdy
b3VwRGF0YSYpOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIAogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2Vi
Q29yZTo6VXNlclN0eWxlU2hlZXQmKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2Vi
Q29yZTo6VXNlclNjcmlwdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNDNlZDE2YjFhMzljOThkNzVlYmZlNTQxOTYwYmVhNGViZWY5OWY0ZC4uM2ZkMjM0
ZWE4MWZlNDQzMDYwMmRjOGQzOWNjNmI4OTcyMzdiY2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xODcsMTcgKzE4NywxNyBAQCB2b2lkIFdlYlByb2Nl
c3M6OmluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVu
dGlmaWVyLCBSdQogICAgIHN0YXJ0UmFuZG9tQ3Jhc2hUaHJlYWRJZlJlcXVlc3RlZCgpOwogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAK
LSAgICBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGFyZ3VtZW50cyk7
CisgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzLCBkZWNvZGVyKTsK
IAogICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsKIAogICAgIFJlZlB0cjxB
UElPYmplY3Q+IGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YTsKICAgICBJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihpbmplY3RlZEJ1bmRs
ZUluaXRpYWxpemF0aW9uVXNlckRhdGEpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQYXRo
LmlzRW1wdHkoKSkgewpAQCAtNjA2LDkgKzYwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6dGVybWlu
YXRlKCkKICAgICBtX3J1bkxvb3AtPnN0b3AoKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIp
CiB7ICAgCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7
CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYg
KCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTYxNiw4MyArNjE2LDgzIEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgcGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2Vp
dmVXZWJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcj4oKSkgewot
ICAgICAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlcj4oKSkg
ewotICAgICAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkNvb2tpZU1hbmFn
ZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VN
YW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBX
ZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fYmF0dGVyeU1h
bmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpN
ZXNzYWdlQ2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9uZXR3b3Jr
SW5mb01hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
I2VuZGlmCiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYklj
b25EYXRhYmFzZVByb3h5PigpKSB7Ci0gICAgICAgIG1faWNvbkRhdGFiYXNlUHJveHkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBt
X2ljb25EYXRhYmFzZVByb3h5LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI+KCkpIHsK
LSAgICAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJNZWRpYUNhY2hlTWFuYWdlcj4o
KSkgewotICAgICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJNZWRp
YUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigp
KSB7Ci0gICAgICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uTWFu
YWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkgewotICAg
ICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShTT1VQKQog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVlc3RN
YW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9zb3VwUmVx
dWVzdE1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogICAgIAogICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUGFnZUdyb3VwUHJveHk+KCkpIHsKLSAg
ICAgICAgdWludDY0X3QgcGFnZUdyb3VwSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsK
KyAgICAgICAgdWludDY0X3QgcGFnZUdyb3VwSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsK
ICAgICAgICAgaWYgKCFwYWdlR3JvdXBJRCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
CkBAIC03MDAsMTAgKzcwMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICBp
ZiAoIXBhZ2VHcm91cFByb3h5KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAg
ICAgcGFnZUdyb3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgcGFnZUdyb3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgfQogCi0gICAgdWludDY0X3Qg
cGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlE
ID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJl
dHVybjsKICAgICAKQEAgLTcxMSw3ICs3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwog
ICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIHBhZ2UtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpAQCAtNzQzLDEw
ICs3NDMsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2UKICAgICAvLyB3ZSdsbCBsZXQgaXQg
c2xpZGUuCiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rp
b25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJv
b2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzcz4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2Vi
UHJvY2Vzc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlV2ViUHJv
Y2Vzc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyLCBkaWRIYW5kbGVNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZWNjYmI4ZDYwZTdhNDVkOTRj
YjRiZjJhNmU1MDgyMDcyZTNlNDk2OS4uYjQyYTBlYzE2ZDdkZGYyMjUxYTU3OGE4NDVkMTliNjFk
ZTIzZDE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5MSw4
ICsxOTEsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIAotICAgIHZv
aWQgaW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5
RG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2Vj
dXJlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwpAQCAtMjYxLDggKzI2MSw4IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xhc3MgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiop
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMjcw
LDExICsyNzAsMTEgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVj
dGlvbjo6UXVldWVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29y
a1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAg
ICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nl
c3NNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxl
TWVzc2FnZSk7CiAKICAgICB2b2lkIGRpZEdldFBsdWdpbnMoQ29yZUlQQzo6Q29ubmVjdGlvbios
IHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCmlu
ZGV4IGZjYzQyZTk2NDQzOTI4ZTdmOThmYjVhNDBkNjQwMDhlM2Y1ODUzNGUuLjEwNzY2ZDJjYzNk
YzM4ODhlYTUxM2NhODUwZGE4OWVhODQ0NGU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBp
ZCBOU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoTlNBcHBsaWNhdGlv
biosIFNFTCkKICAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBh
Y2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CiB9CiAgICAgCi12b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7
CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMudWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9XZWJQcm9jZXNzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQ
cm9jZXNzUXQuY3BwCmluZGV4IGNmZDJjMWEyZDYxNzY2MjdhNmQzYTNjN2IxMDBiNWFiOGY5NDc1
ODAuLjkyY2FlYmUyOTZhYWY3NGM3YzljZDVhYmJlZGYxNzdkMjdmZWFkNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKQEAgLTEzNSw3ICsxMzUs
NyBAQCBzdGF0aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogfQogI2Vu
ZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFu
YWdlciA9IG5ldyBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOwogICAgIEFTU0VSVCghcGFy
YW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5LmlzTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCmluZGV4IDUxZWYzYTdiMmMyN2IxN2I4
MjEzYjdmOWY2NjNlNGY5Y2QzMDQwOTAuLmJkYmFmN2Q0MzQ1OWZmOTA3ZDk5OGMyYjU5Y2Y4Nzcy
Y2JhMTkwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQ
cm9jZXNzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlBy
b2Nlc3NTb3VwLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hh
bmdlZCh2b2lkKikKICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFdlYkNvcmU6OnVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBpZiAo
IXBhcmFtZXRlcnMubGFuZ3VhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0U291cFNlc3Npb25B
Y2NlcHRMYW5ndWFnZShwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4
IDc0MDZkNjg1ZTFhYzJhNTdlYzAyZGZkNzM5Mzc1NTA5MDNiZWQzNTcuLmI5YjM1ODdmNGUzYTc4
OTRhMDllYmMxOTliOTA1NjBmZThhMjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Niw5ICs4
Niw5IEBAIFdlYlNvdXBSZXF1ZXN0TWFuYWdlcjo6fldlYlNvdXBSZXF1ZXN0TWFuYWdlcigpCiB7
CiB9CiAKLXZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVl
c3RNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlNv
dXBSZXF1ZXN0TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAogdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OnJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0
IFN0cmluZyYgc2NoZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oCmluZGV4IDc2NTQ0NjY1M2Q1NTRiMTExZWFlZDdk
OGNkZmM2Zjc3NjkxNjVjZjAuLmQzNGNjNDA3YmI3YzIxNGZhNzA0ZDMzZTMyN2VjYzgxYjYyM2Q4
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVx
dWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291
cFJlcXVlc3RNYW5hZ2VyLmgKQEAgLTUwLDEwICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZW5kKEdTaW1wbGVBc3luY1Jlc3VsdCosIEdDYW5jZWxsYWJsZSopOwogICAgIEdJbnB1dFN0cmVh
bSogZmluaXNoKEdTaW1wbGVBc3luY1Jlc3VsdCopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFn
ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKICAgICB2b2lkIGRpZEhhbmRsZVVSSVJlcXVlc3QoY29uc3QgQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZSYsIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCmluZGV4IGYwYzE5NTVhNTdlZjBiNzM3Njkz
M2YwZGEwMWFkZGQ2NDg3NTM0NGUuLjI1ZGJjMzZjNDk5YmYzOTQ2OTM0YjRlMTJlNjU2MjMwYWQ5
YmIxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nl
c3NXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NX
aW4uY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFy
UmVzb3VyY2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIKICNlbmRp
ZiAvLyBVU0UoQ0ZORVRXT1JLKQogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgc2V0U2hvdWxk
UGFpbnROYXRpdmVDb250cm9scyhwYXJhbWV0ZXJzLnNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169451</attachid>
            <date>2012-10-18 12:55:48 -0700</date>
            <delta_ts>2012-10-18 13:10:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018125433.patch</filename>
            <type>text/plain</type>
            <size>227987</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uYjY1ZjhkZWJh
ZWUwNWVjODY0ZDcxMmFhYWQ5MDRlYzc2NjQyZDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAg
ICBpZiAobV9sYXllclRyZWVDb29yZGluYXRvclByb3h5KQotICAgICAgICBtX2xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHktPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fbGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgRHJhd2luZ0Fy
ZWFQcm94eUltcGw6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB2aXNpYmxlQ29udGVudHNSZWN0LCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggNzYyZTM1YzY5ODM3ZGY0NTc1ZDNlYTZhZDU1
NTJjNDVlMWUyNDFmNy4uZmUwNTEwZWY4NjFkNGY5NmYxMDBiZWZmMjVjYjJmMGY5MTc0ZTBhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgK
QEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aXNpYmxlQ29udGVudHNSZWN0LCBmbG9hdCBzY2FsZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9yeSk7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
ICNlbmRpZgogI2Vsc2UKICAgICBib29sIGlzSW5BY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGZlNTI4MzUxYWQ5
NjYzZWQ0NTUwNTQ2NGEwOTU3ZGE2MDdjYjU0MDAuLmQwOGE4OTE3MmRhNjI4MDlhMGU0YjNlMmM4
OWJlMWQ1MWNkMTgxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02Miw3ICs2Miw3IEBAIE5ldHdv
cmtQcm9jZXNzUHJveHk6On5OZXR3b3JrUHJvY2Vzc1Byb3h5KCkKIAogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IDU3ZTM3ZTY1MzBhM2ZmMzMyNTQ5MzE5NDY1Mjk3ZDJjMTIyMmY3ZmQuLjFk
YjVkOTlmZTVjM2UyNTNhNTVkZTU1NzZjZGRmNjliOWRmYjc3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdv
cmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24q
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jTWVz
c2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCAwN2UxZjg0OTc3MTY0NzVlZTNiZjE5NmJj
NTQ5ZDc5ZDAxYTdlY2I3Li4xZTExYzU3ZGY1ODYyYWMxNDI5YjM3ZTE0Nzc1YTQ2Mzg0NzVkZjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTcyLDkg
KzcyLDkgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnBvcHVsYXRlQ29weU9m
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSGFzaE1hcDwKICAgICB9CiB9CiAKLXZvaWQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OnNob3coV2ViUGFn
ZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNv
bnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFu
ZywgY29uc3QgU3RyaW5nJiBkaXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
aW5kZXggNjIwOTE1ZDE0YjYxOGFhMTE2MTYxYjNjMjI5Y2FmZTlhOTQ1NDBhZS4uZDU0MzM4NzY5
OTU2MDk1MmQyZmYxZTBkOTk3MzU2MWFjZWIzN2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmgKQEAgLTY4LDggKzY4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzCiAgICAgdm9pZCBjYW5jZWwodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKaW5kZXggMTBmNThiOWJiMzI1MjQzZjM4NjA5NDQ5MTk5MzAwZGZhNmVkZjYx
Ni4uZTUxZWVkN2RmYWY0YTY2ZDFiYjM3NjViNDRhYzNkOTI4OTUyZGMxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
Y3BwCkBAIC0xNTYsOSArMTU2LDkgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnBsdWdpblBy
b2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAgICAgbV9wbHVnaW5Qcm9jZXNzTWFuYWdl
ci0+cmVtb3ZlUGx1Z2luUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2
ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRD
bG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTMyYmI3NGJmZDVkY2Ex
YjlmNDc3Zjk2NTg1ZTYzNTczZmRhM2RiOC4uYmRhZGUyN2U1MjAwYTgwMTQwZmQ4Zjg1YmYzOGE1
MmQyOTA3NDEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTk4LDE1ICs5OCwxNSBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCk7CiAKICAgICAvLyBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNv
bm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxl
cnMKLSAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKICAgICB2b2lkIGRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IENvcmVJ
UEM6OkF0dGFjaG1lbnQmLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb24pOwogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoRGF0YShjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkQ2xlYXJTaXRlRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDVhNzk2NzU3MjhlYzIzMmUyYTA2ODc4YWZkYTdmNDJkZjg4Y2M1OTMuLjhlMmY4
ZTUxMWQ4MWE1OTNkOTg5NTFhMjkyMzM0MDMwNzIyN2ZkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTEzLDkgKzExMyw5IEBAIHZvaWQgU2hhcmVkV29ya2Vy
UHJvY2Vzc1Byb3h5OjpzaGFyZWRXb3JrZXJQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2go
KQogICAgIG1fc2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXItPnJlbW92ZVNoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eSh0aGlzKTsKIH0KIAotdm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclByb2Nl
c3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtl
clByb2Nlc3NQcm94eS5oCmluZGV4IDQ3NzQ4MmY5ZTVkMTI3NWNlNWZlZDJmYTU5NzIwMTc5MWFj
NTgwYzIuLmUzYjZhMmFjYzYxOWYyNGFjZjdkNDA0MzYxNzY3YjQwYjYyNjZlMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJz
L1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzaGFyZWRXb3JrZXJQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAKQEAgLTY4LDcgKzY4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94
eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24oY29uc3QgQ29yZUlQQzo6QXR0YWNobWVudCYpOwogCiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemVTaGFyZWRXb3JrZXJQcm9jZXNzKFNoYXJlZFdvcmtlclByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA0ZmM0MWJhMjEy
ZmIxNWNhNWVhYmNiODFlNWMxZDJjMTM1NGVkZjJhLi4yMDU1MGQyMDczNTlkMTQ5MmVhNzIwMGYy
NzU0ZWJkNjYwNGI2ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC01OCw5ICs1OCw5
IEBAIGJvb2wgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRl
KFdlYlByb2Nlc3NQcm94eSopIGNvbnN0CiAgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNF
bXB0eSgpOwogfQogCi12b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZl
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lk
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHkuaAppbmRleCA0NjQ2MjE4NTZiNjljNWViYWU5OGJiOWFlNzU1MGNkYzZjZDg5YmNlLi5hNjQy
YzE5OGI2ZDYzODg2NDY4ZDhkY2ZkZmMzODQ3ODFhZWEyYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKQEAgLTczLDggKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJh
Y2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IGI0MmI3YjAyMTc0NjU2ZWM2Y2QzZTI2MDdmZDhjZDNlN2JmNGYxYzAu
LmUxYjc1NWEyMGVhOTgwNmViZmNjMTg3NGU2YTYxMDc0MjhkZjU3ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKQEAgLTU5
LDkgKzU5LDkgQEAgdm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlk
ZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqIHByb3ZpZGUKICAgICBtX3Byb3ZpZGVyLmluaXRp
YWxpemUocHJvdmlkZXIpOwogfQogCi12b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQmF0dGVy
eU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0
YXJ0VXBkYXRpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJh
dHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5LmgKaW5kZXggNjVjNjYxNGRhZGU5MTgyY2I4M2RkZjUzN2NjYmNmOThhZmRi
MjQ0ZS4uODNlMjEyOGFjNjlkNDc0YjkwMDNiNmQ2OTgwNDE4Nzg0MTAwZDU2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCkBAIC01
OSwxMCArNTksMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAog
ICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5h
Z2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsK
ICAgICB2b2lkIHN0b3BVcGRhdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDg2YmE5MWMwODQyYjA5
Yzk5MmFhM2U2NzZlYTU0YzgyMjk0YWY4ZDQuLmZmNDNiMzQxMTY1OGNjZTI2MjVkYzk3MDJmNGNh
Y2Y3ZTIyZmEzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94
eSogcHJvY2VzcywgQwogCiAvLyBXZWJDb25uZWN0aW9uCiAKLXZvaWQgV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBh
cmd1bWVudEVuY29kZXIsIEFQSU9iamVjdCogbWVzc2FnZUJvZHkpCit2b2lkIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29k
ZXItPmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9k
eSkpOwogfQogCi1ib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VC
b2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBSZWZQdHI8QVBJ
T2JqZWN0PiYgbWVzc2FnZUJvZHkpCitib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRl
Y29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRy
PEFQSU9iamVjdD4mIG1lc3NhZ2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5k
ZWNvZGUoV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNz
KSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVy
KG1lc3NhZ2VCb2R5LCBtX3Byb2Nlc3MpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CkBAIC02NywxOSArNjcsMTkgQEAgYm9vbCBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3UK
IAogLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAKLXZvaWQgV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkg
ewotICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkK
K3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZl
U3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAg
ICBtX3Byb2Nlc3MtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDE2MDgxMzI0N2QwZjBmOWE3MzdkOGE1MmM0NzY3N2FmYTM5MjhmYTcuLjBiMWZjMDlmODk3
MTIyYzM5ZDAyOTUwOTk2Mzc2OTE1OWZmNmJiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDIsMTIgKzQyLDEy
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJv
eHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7
CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VC
b2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVN
ZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyJiwgUmVmUHRyPEFQSU9iamVjdD4mKSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rl
cj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDgxZTdiYzQ3N2Q0YjZmODExZWI0NDA3
NDNlNWNlYWMzMjE0ODc0MjEuLjhhNDRiNzgxNDRkMmYxZWNkZmFhZTkyYjBhM2RkMjE3ZDNlYWVm
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTc4MiwyNiAr
NzgyLDI2IEBAIHZvaWQgV2ViQ29udGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1l
c3NhZ2VDbGFzcyBtZXNzYWdlQ2xhc3MsIENvcmVJUEM6CiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJN
YXAuYWRkTWVzc2FnZVJlY2VpdmVyKG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKIH0K
IAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICByZXR1
cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAu
ZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLWJv
b2wgV2ViQ29udGV4dDo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
cj4mIHJlcGx5KQorYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFw
LmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29k
ZXIsIHJlcGx5KTsKKyAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5j
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9
CiAKLXZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAg
ICBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworICAgICAgICBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKSkgewotICAg
ICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChh
cmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCi0gICAgICAgICAgICBkb3dubG9hZFBy
b3h5LT5kaWRSZWNlaXZlRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9
IG1fZG93bmxvYWRzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAg
ICAgICBkb3dubG9hZFByb3h5LT5kaWRSZWNlaXZlRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC04MTEsNyArODExLDcgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAg
ICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1l
c3NhZ2VCb2R5OwogICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlRGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihj
b25uZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6
Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTgy
NCwxNiArODI0LDE2IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAgICBkaWRS
ZWNlaXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NE
b3dubG9hZFByb3h5PigpKSB7Ci0gICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFBy
b3h5ID0gbV9kb3dubG9hZHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkK
LSAgICAgICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVTeW5jRG93bmxvYWRQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAg
aWYgKERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpLmdldCgpKQorICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlk
UmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg0NCwx
MiArODQ0LDEyIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6CiAgICAgICAgICAgICBTdHJpbmcg
bWVzc2FnZU5hbWU7CiAgICAgICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsK
ICAgICAgICAgICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIo
bWVzc2FnZUJvZHksIFdlYlByb2Nlc3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikp
OwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2Fn
ZU5hbWUsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGE7
CiAgICAgICAgICAgICBkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSwgcmV0dXJuRGF0YSk7Ci0gICAgICAg
ICAgICByZXBseS0+ZW5jb2RlKENvcmVJUEM6OkluKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29k
ZXIocmV0dXJuRGF0YS5nZXQoKSkpKTsKKyAgICAgICAgICAgIHJlcGx5RW5jb2Rlci0+ZW5jb2Rl
KENvcmVJUEM6OkluKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQo
KSkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYkNv
bnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVzc2FnZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oCmluZGV4IDllOGQ4MDU0YWM3M2U2MTk2MjEwNWVkZDMzM2EwYTUxMDc1Y2E4NTku
LjUxYzk3MDBkNDEwY2IyMjgwNzc3YTJlNmE5YTE1MjZhYzQ5ZTUzZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0Kj4mIGFsbENvbnRleHRzKCk7CiAKICAgICB2b2lk
IGFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3MsIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciopOwotICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAg
IGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyPiYpOworICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Cisg
ICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVDbGll
bnQoY29uc3QgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQqKTsKICAgICB2b2lkIGluaXRp
YWxpemVDb25uZWN0aW9uQ2xpZW50KGNvbnN0IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQqKTsK
QEAgLTE1MSw4ICsxNTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2go
V2ViQ29yZTo6TGlua0hhc2gpOwogCiAgICAgLy8gTWVzc2FnZVJlY2VpdmVyLgotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KSBPVkVSUklERTsKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKICAgICBD
YWNoZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KQEAg
LTI4Myw4ICsyODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0V2ViQ29yZVN0YXRpc3Rp
Y3MoY29uc3QgU3RhdGlzdGljc0RhdGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICAgICAg
CiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2
ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
Q29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29u
dGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAKICAgICBzdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQodm9pZCogY29udGV4dCk7CiAgICAg
dm9pZCBsYW5ndWFnZUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYWEzM2NlNjJmZDM2NGQ0ZGQ5NDJiMmI5
OWM4NTFkY2VjZTllNThmYy4uOGNiMTQzN2M0Y2NiMThjNjQwMDQ0MzBjMDRjZTRkZjBkOWJiZjhi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6Omlu
aXRpYWxpemVDbGllbnQoY29uc3QgV0tDb29raWVNYW5hZ2VyQ2xpZW50KiBjbGllbnQKICAgICBt
X2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclBy
b3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZl
V2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJv
eHk6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJw
Q2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5LmgKaW5kZXggNjk4MWMwZDA2MmZjNWY1NjFiMGJlYTFhZTY1MjkyMjE2MWNlMGRlMi4u
ZGFiYTQ2NmNkOGFhM2JhN2FiYjcwM2M5YjgyMzU1YWE0OThiZWFjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtODgsOCArODgs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgY29va2llc0RpZENoYW5nZSgpOwogICAgIAogICAgIC8v
IENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVN
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNv
b2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICB2b2lkIHBlcnNpc3RIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQ
b2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1h
bmFnZXJQcm94eS5jcHAKaW5kZXggYTNmZGE2NTU2YzE0MmU0NzMzNzVlY2U1NjA4ZThmNjU4ODQy
NjYyMC4uYjUwYTRhMTQ0MWI2MjczYjExMmRlMjIzM2MyNzkxMDY0ODE0NDg5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yMzIsOSArMjMyLDkgQEAgdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkTW9k
aWZ5RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLAogICAgIG1fY2xpZW50
LmRpZE1vZGlmeURhdGFiYXNlKHRoaXMsIG9yaWdpbi5nZXQoKSwgZGF0YWJhc2VJZGVudGlmaWVy
KTsKIH0KIAotdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaAppbmRleCBiNzI0YTg0N2Rj
Y2NkOGZmYjdiMTcwOTdkMGY1OWU1MGVlYjQ0ZWI5Li43YzY5NWZjYmJhMGQ2MDRiNWQ0NDIxMGRk
ZWM4ZmZlNjQwODhkOGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuaApAQCAtODEsOCArODEsOCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFu
ZGxlcnMuCiAgICAgdm9pZCBkaWRHZXREYXRhYmFzZXNCeU9yaWdpbihjb25zdCBWZWN0b3I8T3Jp
Z2luQW5kRGF0YWJhc2VzPiYgb3JpZ2luQW5kRGF0YWJhc2VzLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmNwcAppbmRleCBmZTcxZWNhYTRhMGU3NmY4MTRkODcyYzFkMmZmZmE3MWFhOGY5
N2JmLi5lNDlhZDg2ZWZjZTcwNzhjY2EwNmExYmIzNjA2OWNiMDU2MjdkZTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
Y3BwCkBAIC01NCwxNCArNTQsMTQgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXRXZWJWaWV3KFBsYXRmb3JtV2ViVmlldyogd2ViVmlldykKICAgICBtX3dlYlZpZXcgPSB3ZWJW
aWV3OwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBs
eSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApp
bmRleCBiODNhZjU0NzY3YzZmMTA1OTdjMmY3MWVkNDI2NWVlNTYxM2IxZTA4Li4wNGFlZDlhM2Yz
NDVmZDk0NTcxNThiNmFiMTg0ZDBiZjJkNzliMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTc5LDggKzc5LDgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNGdWxsU2NyZWVuKCk7CiAgICAgdm9pZCBjbG9zZSgpOwog
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIHdpbGxFbnRlckZ1bGxTY3Jl
ZW4oKTsKICAgICB2b2lkIGRpZEVudGVyRnVsbFNjcmVlbigpOwpAQCAtMTAxLDggKzEwMSw4IEBA
IHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgUGxhdGZvcm1XZWJWaWV3
KiBtX3dlYlZpZXc7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwCmluZGV4IGUyMGQxZWViZDcyY2U1NzEzNzNiZmFiNGI0M2ZjOTg2NDJmMDg5
YjguLjNjZmU4NmJjMzI2NmFjODU1NTBjYzNjYjc4NmRlMzNlNDIwYjdiNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
LmNwcApAQCAtNzMsOSArNzMsOSBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Ojpw
cm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZwogICAgIG1fY29u
dGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OkRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGVycm9yTWVzc2FnZSkpOwogfQogCi12b2lkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGlu
ZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS5oCmluZGV4IDhmNDEwMmI2MWYyOWJlOWVhMjY3YmVmZGRjNDI5OGNkMzlhZDdm
MDkuLjgxZmMxOWU4ZTI1MTUyYmQ4MTQ1ZWRhMjU3ZmE1MjgxZGU1ZDEwMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5o
CkBAIC01NywxMCArNTcsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lk
IHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAppbmRleCA4YjcxZTg5ZTA0MDIwMjA4
YTllMDgwOGI0NWRkZmVmMThjZDU0OTMxLi40MDJkMmQzOWY4ZDFkYTNlMDYyZDFlODk0ZGFkNzJi
MGFmM2MxN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNl
LmNwcApAQCAtMjg0LDE0ICsyODQsMTQgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEZpbmlz
aFVSTEltcG9ydCgpCiAgICAgbV91cmxJbXBvcnRDb21wbGV0ZWQgPSB0cnVlOwogfQogCi12b2lk
IFdlYkljb25EYXRhYmFzZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyKQordm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGRpZFJl
Y2VpdmVXZWJJY29uRGF0YWJhc2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rl
cik7CiB9CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2
ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rl
ciwgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5jV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQgV2Vi
SWNvbkRhdGFiYXNlOjpub3RpZnlJY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
IHBhZ2VVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKaW5k
ZXggODY0M2E0ODFkMWQ4NjQ0OTcyYWUzZGFlYjRjMWY4NmMzOTJmMGRlNi4uMDk0N2VjMDBiNDk5
YTAxYTFlMGMwYWEyMmQ3MDcwY2U0NTYxNWZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJY29uRGF0YWJhc2UuaApAQCAtMTAzLDExICsxMDMsMTEgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoVVJMSW1wb3J0KCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJJY29uRGF0YWJhc2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJJY29uRGF0YWJhc2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAg
dm9pZCBub3RpZnlJY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA2OTIyYjdk
NzM1MTFhYTYxZjkyNDNlYzYxMDllYzMyYjE5NmM5ZWJkLi44ODU3NWEzY2M0MmU0NWQ3YTJkYzll
MzdkNTRlZTg5NzNlY2Q2ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaApAQCAtMTI1LDggKzEyNSw4IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYkluc3BlY3RvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICNlbmRpZgogCiAg
ICAgc3RhdGljIGJvb2wgaXNJbnNwZWN0b3JQYWdlKFdlYlBhZ2VQcm94eSopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LmNwcAppbmRleCA0NTRkMDgyZjU2YTAzMjJiNjg3MTA4MWU0MWYwMTFlMjc2YWNlZTJi
Li5kZWZiOGNjZTkxZjQ1M2FlNDA2MjFiMmMyNzQ4YjUzZjY5MThiYWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5LmNwcApAQCAtNTgsOSArNTgsOSBAQCBib29sIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0CiAgICAgcmV0
dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwogfQogCi12b2lkIFdlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpnZXRL
ZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJh
Y2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclByb3h5LmgKaW5kZXggOWM2MzE0MmY2OWU0ZTNlMjA0ZjlkMjE1OGFjZmU1
NzQ5MTc5YzhhNS4uYmEzOTJiYjJlY2Y3NTM4MzcyY2E5NjgzYjI4OGQwNmQxODY2MTRhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuaApAQCAtNjcsOCArNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
R2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRh
PiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJS
SURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJD
b250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1f
YXJyYXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggODFjZjk4ZjU2YzE3M2Y0NDQxYzNiMDM4
YjgzN2NkZTk0YjQ0MDZlZC4uMTU1NzM4YjA5NjI5OTE0Zjg4YzAzMDlkNjM1ODVlMThhYzA5YzRm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5LmNwcApAQCAtNTcsOSArNTcsOSBAQCBib29sIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHk6OnNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdAogICAgIHJl
dHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKIH0KIAotdm9pZCBXZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9p
ZCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OjpnZXRIb3N0bmFtZXNXaXRoTWVkaWFDYWNoZShQ
YXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKaW5kZXggNDhlODhl
MGZjNDljZmRkMmY5NGUyZDg1NDhlYmZlNmQxNTgwM2QyOC4uNDUzMWE3MjEwODc4OThkNTA0NDM0
MDYwZmNkMjI3ZjIyNGRmMTlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCkBAIC02NSw4ICs2NSw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRHZXRIb3N0bmFtZXNXaXRoTWVkaWFDYWNoZShjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJl
Y2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9W
RVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNh
bGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDIxYTM5OWJjMGY4YTRlMDJmODE2YzY4MWZlMTY1
ZDk1YmUzMmYzNjMuLjFhZDFlMmI5YzlhODYzZGYyYmNhNTUxNmQ3YTYwNmFmYzY0MjVkNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmNwcApAQCAtNjgsMTQgKzY4LDE0IEBAIHZvaWQgV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHk6OnByb3ZpZGVyRGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0IEF0b21p
CiAgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5ldHdvcmtJ
bmZvTWFuYWdlcjo6RGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGV2ZW50VHlwZSwgbmV0d29y
a0luZm9ybWF0aW9uLT5kYXRhKCkpKTsKIH0KIAotdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRS
ZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50
RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseSkKIHsKLSAgICBkaWRSZWNlaXZl
U3luY1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKIH0KIAogdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6c3RhcnRVcGRh
dGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eS5oCmluZGV4IDJjNGVmN2M2N2ViYzUxNTk4OGVlZjkwYmRkM2E2M2NlZjlj
NWMzNmUuLjQ1NjAxMGMyNWI3MTBkMTExMzFiZGYwYzQ2NmFlMmNlMjM1MjYwNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94
eS5oCkBAIC01OCwxMiArNTgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVy
YXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2
b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAg
ICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2b2lkIHN0b3BVcGRhdGluZygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3ZWY0YTI0OWZlNzc0ZjJm
ODg1OTcyMGY3NWY1ZWI0NzAyMDEzMDFiLi44MTg2OTVhZGVlYzA2MTVlNzIxMGRiODBiYmY3Y2Ux
NzVmOWUwNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNzIyLDExICs3MjIsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCYgc2hvdWxkR28KICAgICBzaG91bGRH
b1RvQmFja0ZvcndhcmRJdGVtID0gaXRlbSAmJiBtX2xvYWRlckNsaWVudC5zaG91bGRHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSh0aGlzLCBpdGVtKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Ondp
bGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5n
ZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gbV9wcm9jZXNzLT53ZWJCYWNr
Rm9yd2FyZEl0ZW0oaXRlbUlEKSkKQEAgLTE4MzUsMTYgKzE4MzUsMTYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zdG9yZSgpKSwgbV9wYWdlSUQsIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24g
PyBDb3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgOiAw
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94
eT4oKSkgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2Ry
YXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk+KCkpIHsKLSAgICAgICAgbV9kcmF3aW5n
QXJlYS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVj
ZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTE4NTIsNDAg
KzE4NTIsNDAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9y
UHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IgPSB0
aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYklu
c3BlY3RvclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4oKSkgewot
ICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2Vi
UGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvclByb3h5Pigp
KSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVjdG9yID0gdGhpcy0+aW5z
cGVjdG9yKCkpCi0gICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVTeW5jV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVTeW5jV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsK
KyAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICNlbmRpZgogCiAgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIHJlcGx5
LgotICAgIGRpZFJlY2VpdmVTeW5jV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5jV2ViUGFnZVByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKQEAgLTE5OTAsMTEgKzE5OTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaFBy
b2dyZXNzKCkKIH0KIAogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgSW50ZW50U2VydmljZUluZm8mIHNlcnZpY2VJbmZvLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2Vydmlj
ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxB
UElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVz
c2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVu
dHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIwMDUsMTMgKzIwMDUsMTMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IEludGVudFMKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCgpOwogCiAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNz
YWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50
cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUg
PSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAyNCwxMSArMjAyNCwxMSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbgogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjA0MCwx
MSArMjA0MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZgogICAgIG1fbG9hZGVyQ2xpZW50
LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHRoaXMs
IGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNz
LmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OwpAQCAtMjA2OCwxMSArMjA2OCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJMb2FkRGVw
ZW5kZW50Q2FsbGJhY2tzKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21t
aXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Ym9vbCBmcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbVJlcHJl
c2VudGF0aW9uLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTEwLDExICsyMTEwLDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkQ29tbWl0TG9hZEZvckZy
YW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMTIzLDExICsyMTIzLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1
CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodGhpcywg
ZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlz
aExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjEzOCwxMSArMjEz
OCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjbwogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZp
bmlzaExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNz
LmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OwpAQCAtMjE1NSwxMSArMjE1NSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcgogICAgIG1f
bG9hZGVyQ2xpZW50LmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUodGhpcywgZnJhbWUsIGVy
cm9yLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVl
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVl
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMTcyLDExICsyMTcyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDMyX3QKICAgICBtX2xvYWRlckNsaWVudC5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWUodGhpcywgZnJhbWUsIHN0YXRpY19jYXN0PFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlPihv
cGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSksIHVzZXJEYXRhLmdldCgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5n
ZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
QEAgLTIxODcsMTEgKzIxODcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUKICAgICBtX2xv
YWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aGlzLCB0aXRsZSwgZnJhbWUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8
QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1l
c3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1l
bnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjAwLDExICsyMjAwLDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRy
PEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBt
ZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3Vt
ZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
c3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjIxMywzMSArMjIxMywzMSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgQ29yZQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXQoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJv
Y2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dCh0aGlzLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlv
dXQodWludDMyX3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTGF5b3V0KHVpbnQzMl90IGxheW91dE1p
bGVzdG9uZXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0
cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1
bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
ZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRp
ZExheW91dCh0aGlzLCBzdGF0aWNfY2FzdDxMYXlvdXRNaWxlc3RvbmVzPihsYXlvdXRNaWxlc3Rv
bmVzKSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVtb3Zl
RnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhp
ZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkp
OwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBX
ZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0y
MjQ4LDExICsyMjQ4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZW1vdmVGcmFtZUZyb21I
aWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lCiAgICAgbV9sb2FkZXJD
bGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0g
ICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyNjEs
MTEgKzIyNjEsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjoKICAgICBtX2xvYWRlckNsaWVu
dC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRh
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyNzQsMTEgKzIy
NzQsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRS
dW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjI4OCwxMSArMjI4OCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZAogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRh
JiBpbnRlbnREYXRhLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgSW50ZW50RGF0YSYgaW50ZW50RGF0YSwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjMxNCwxMSArMjMxNCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVG
cmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQogfQogCiAvLyBQb2xpY3lDbGll
bnQKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBv
cGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYg
cG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90
IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qg
b3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJl
Y2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93
bmxvYWRJRCkKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250
ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3Mu
Z2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAocmVxdWVzdC51cmwoKSAhPSBwZW5kaW5nQVBJUmVxdWVzdFVSTCgpKQpAQCAtMjM1
MiwxMSArMjM1MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcAogICAgIH0KIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBm
cmFtZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9k
aWZpZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qg
b3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBv
cGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjM3MiwxMSArMjM3MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYQog
ICAgICAgICBsaXN0ZW5lci0+dXNlKCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0
ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2
ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9h
ZElEKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBv
bGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVj
dD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVj
b2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNv
ZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjQwNCwxMSArMjQwNCwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUmVzb3VyY2VSZXNwbwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBp
ZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTI0MTks
MTEgKzI0MTksMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3Qgc291cmNlRnJhbWVJRCwgY29uc3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFs
dWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5n
ZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
QEAgLTI1NjIsMTEgKzI1NjIsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFN0YXR1c1RleHQo
Y29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIG1fdWlDbGllbnQuc2V0U3RhdHVzVGV4dCh0aGlzLCB0
ZXh0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBv
cGFxdWVNb2RpZmllcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9p
ZCBXZWJQYWdlUHJveHk6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RS
ZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURl
Y29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVj
b2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZp
ZXJzID0gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4ob3BhcXVlTW9kaWZpZXJzKTsK
QEAgLTMwMTIsMTkgKzMwMTIsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhpZGVQb3B1cE1lbnUo
KQogfQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRl
c3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0TWVudShjb25zdCBJbnRQ
b2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0
UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3Nl
ZEl0ZW1zLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpbnRlcm5h
bFNob3dDb250ZXh0TWVudShtZW51TG9jYXRpb24sIGhpdFRlc3RSZXN1bHREYXRhLCBwcm9wb3Nl
ZEl0ZW1zLCBhcmd1bWVudHMpOworICAgIGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2Nh
dGlvbiwgaGl0VGVzdFJlc3VsdERhdGEsIHByb3Bvc2VkSXRlbXMsIGRlY29kZXIpOwogICAgIAog
ICAgIC8vIE5vIG1hdHRlciB0aGUgcmVzdWx0IG9mIGludGVybmFsU2hvd0NvbnRleHRNZW51LCBh
bHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIG1lbnUgaXMgaGlkZGVuIHNvIGl0
IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4uCiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbigpLCBtX3BhZ2VJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2lu
dCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVz
dWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3NlZEl0
ZW1zLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVBy
b3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3Qg
VmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZUNvbnRleHRNZW51SGl0VGVzdFJlc3VsdERhdGEg
PSBoaXRUZXN0UmVzdWx0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBlZWRlNmI5NmY4Mjk1MjRkZWRjMDIyOGRiMTgwNTJiODcxNWZmOTE3Li45NTUyOGFi
N2Y5YWIyNDFhYTI3YmUwZjI3YjJkNThlOGIxOTVlYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMDQsNyArMzA0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
dHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2Fy
ZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmUHRyPEFQ
SU9iamVjdD4gPiogcmVtb3ZlZEl0ZW1zKTsKICAgICB2b2lkIHNob3VsZEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCYgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0pOwotICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0
ZW1JRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpOworICAgIHZvaWQgd2ls
bEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIAogICAgIFN0cmluZyBhY3RpdmVVUkwoKSBjb25zdDsKICAgICBTdHJpbmcg
cHJvdmlzaW9uYWxVUkwoKSBjb25zdDsKQEAgLTU5MSw4ICs1OTEsOCBAQCBwdWJsaWM6CiAjZW5k
aWYKICNlbmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZSgpOwogICAgIHZvaWQgaW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVz
cG9uc2l2ZSgpOwpAQCAtNzUyLDQ5ICs3NTIsNDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
UGFnZVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQ
YWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAg
ICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYXJl
bnRGcmFtZUlEKTsKICAgICB2b2lkIGRpZFNhdmVGcmFtZVRvUGFnZUNhY2hlKHVpbnQ2NF90IGZy
YW1lSUQpOwogICAgIHZvaWQgZGlkUmVzdG9yZUZyYW1lRnJvbVBhZ2VDYWNoZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBwYXJlbnRGcmFtZUlEKTsKIAotICAgIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbVJlcHJlc2Vu
dGF0aW9uLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5p
c2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAg
ICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKLSAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dChDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZExheW91dCh1aW50MzJfdCBsYXlv
dXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50
YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaW5pc2hM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9p
ZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwor
ICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dChDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkTGF5b3V0KHVpbnQzMl90IGxheW91dE1pbGVzdG9u
ZXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZy
b21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKKyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVp
bnQ2NF90IGZyYW1lSUQsIGJvb2wpOwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAg
IHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dy
ZXNzKCk7CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgdm9pZCBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudERhdGEmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLSAgICB2b2lkIHJlZ2lz
dGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNl
cnZpY2VJbmZvJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCByZWdpc3Rl
ckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2
aWNlSW5mbyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAjZW5kaWYKICAgICAKLSAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWlu
dDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1
dHRvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9u
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
dWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50
NjRfdCYgZG93bmxvYWRJRCk7Ci0gICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWlu
dDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1
aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90
IG1vZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3Qm
IHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOworICAgIHZvaWQgdW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKLSAgICB2b2lkIHdpbGxTdWJtaXRG
b3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmlu
Z1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCB3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0
ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAKICAgICAvLyBSZXNvdXJjZSBsb2FkIGNsaWVudAogICAgIHZvaWQgZGlkSW5pdGlh
dGVMb2FkRm9yUmVzb3VyY2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHBhZ2VJc1Byb3Zp
c2lvbmFsbHlMb2FkaW5nKTsKQEAgLTgxMyw3ICs4MTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBTdHJpbmcmIHJlc3VsdCk7CiAgICAgdm9pZCBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KGJvb2wmIHJlc3VsdCk7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmlu
ZyYpOwotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJl
c3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG1vZGlmaWVycywgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChj
b25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3Qg
bW9kaWZpZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkKHVpbnQzMl90IG9wYXF1ZVBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBwbHVnaW5zUGFnZVVSTCk7CiAgICAgdm9pZCBzZXRUb29sYmFyc0FyZVZpc2libGUo
Ym9vbCB0b29sYmFyc0FyZVZpc2libGUpOwogICAgIHZvaWQgZ2V0VG9vbGJhcnNBcmVWaXNpYmxl
KGJvb2wmIHRvb2xiYXJzQXJlVmlzaWJsZSk7CkBAIC05MTIsOCArOTEyLDggQEAgcHJpdmF0ZToK
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIC8vIENvbnRleHQgTWVudS4KLSAgICB2
b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBpbnRl
cm5hbFNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBzaG93
Q29udGV4dE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3Qg
V2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYsIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBpbnRlcm5hbFNob3dD
b250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBX
ZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURh
dGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRpZgogCiAgICAgLy8gU2VhcmNo
IHBvcHVwIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggYjg4MzIzODMwYWRkMjk0MTg3OGE3Y2FhYjgyMDcwZDkzMTk3ODUxZS4uMGQ2
YjYyMmVmOWZjZWNiM2ZlYTBjNzViMjYxYzQwMTQ5MWQ2NWUyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM5NSwxNyArMzk1LDE3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRTaGFyZWRXb3JrZXJQcm9jZXNzQ29ubmVjdGlvbihjb25z
dCBTdHJpbmcmIC8qIHVybCAqLywKICAgICAvLyBGSVhNRTogSW1wbGVtZW50CiB9CiAKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpZiAo
bV9jb250ZXh0LT5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpKQorICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkgewotICAgICAgICBkaWRS
ZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1
aW50NjRfdCBwYWdlSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRf
dCBwYWdlSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC00MTMsMjAgKzQxMywyMCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQwogICAgIGlmICghcGFnZVByb3h5KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFn
ZVByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0g
ICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cywgcmVwbHkpKQorICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoU3luY01l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYlByb2Nlc3NQcm94eT4oKSkgewotICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAg
ICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAg
IHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlmICghcGFn
ZUlEKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC00MzQsMTMgKzQzNCwxMyBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcgogICAgIGlmICghcGFnZVByb3h5KQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYg
ZGlkSGFuZGxlTWVzc2FnZSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMsIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNl
aXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwogfQogCiB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNzUyNGRmMmZmNDYwMGY4ZWI1ZjY4
NmMwZDFlODQ5N2QyNTEwZTBmYS4uMGE4NTgxNjllOTQ5OGE2ZjA3MzlhMjBmOTY0NWU1NTI3NmJk
MjJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAt
MTYyLDggKzE2Miw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQp
OwogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE3MSw3ICsxNzEsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBi
b29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdl
KSBPVkVSUklERTsKIAogICAgIC8vIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudAogICAgIHZv
aWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKSBPVkVSUklERTsK
QEAgLTE5MCw5ICsxOTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRp
dGxlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1
cmwsIHVpbnQ2NF90IGZyYW1lSUQpOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBy
b2Nlc3NQcm94eU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nl
c3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rl
cj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0
aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CiAKICAgICBS
ZXNwb25zaXZlbmVzc1RpbWVyIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmNwcAppbmRleCAzYzI5ODA3OTdhN2UwODNhYjMwZjMzMmIwMmRjMWI0ODQ4NDVhZTAxLi40
MWI4ZmJiZGIzNWNiNjA0YjI1ZjFmYTMxMTMxY2NhZTM3NzJkNTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6
Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyCiAgICAgbV93ZWJD
b250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1JZk5lY2Vzc2FyeShNZXNz
YWdlczo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OkNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKGNh
Y2hlc1RvQ2xlYXIpKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2
ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRleCA5ZTU5YjY0MWY0YzNmYmU4MGRhOWFkYjI2
MzY4MjcwZWYzZmI5MTJlLi4xYzYyMDcwN2I4NDQyNmZkZmU4N2Y3NDUyZjY5NDZiYzA0ZjQ3NGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDggKzY1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKaW5k
ZXggMDU5MGYzMGNjNTc4Y2YwNTIzMTE5MjJiMWZjOWU5YzE5MDRmYjkxMy4uYmIxZjk2ZjUyNzEx
ODFhYWI4NmY2NjU1OTMxM2Q3NDQ5YmIwYzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIHZvaWQgV2ViVmli
cmF0aW9uUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1ZpYnJhdGlvblByb3ZpZGVy
KiBwcm92aWRlcikKICAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwogfQogCi12
b2lkIFdlYlZpYnJhdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJWaWJyYXRpb25Q
cm94eTo6dmlicmF0ZSh1aW50NjRfdCB2aWJyYXRpb25UaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaAppbmRleCA2NzZkM2E0OTc2NzQwYzdjNTM3ZWZi
MGZmMGQ4OTJlOTk3Mzg1MzM0Li41YzZkZTE3ZDcyMTA0ZmFkMDQ0NjBjMTBiZTM0MWVmOTUyMWUx
M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaApA
QCAtNTUsMTAgKzU1LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7
CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViVmlicmF0aW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlicmF0aW9uUHJveHlNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCB2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRp
bWUpOwogICAgIHZvaWQgY2FuY2VsVmlicmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
aW5kZXggZTJiZjM0MjNkOWQyNTg4MjQyNGYzZTQyMTY2ZWViMTk1MmE4MGQ3OC4uODA0OThhNWVh
OGM2MDgxYTQ2ODU2YmMzODY4YmUyN2Q4ZDY2YjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtNTEsOSArNTEsOSBAQCB2b2lkIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5Ojppbml0
aWFsaXplQ2xpZW50KGNvbnN0IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xpZQogICAgIG1fY2xpZW50
LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNl
aXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViU291
cFJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNmEzZDZlODI2YzUzMDJjOThkMGVlMDk3NWY2
OTZiZDM2NjI3MDk3NS4uZTRiOGNjZTM3NTQyYWRmYTE3NTE1ZDlmMTFhOGYyOTYzODc1MjIyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC01Nyw4ICs1Nyw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICAvLyBDb3Jl
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNv
dXBSZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4
dCogbV93ZWJDb250ZXh0OwogICAgIFdlYlNvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCBtX2NsaWVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCmluZGV4
IDljMWFkODc5ODVkMmY3Y2JkNzk3MzIyZTc2MmEwYTA5YzEyNGY3YzguLjBiZGZiMDEzMmU4ODA1
MjdiNTRiMzE2ZWUwMzRjZDg0ZDczOTg5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcApAQCAtNDksOSArNDksOSBAQCBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlcjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKaW5kZXggMzhkNDhlMTE5ZWYyNjM4YjEwZTY3NzNlYWU3
MzA1MzdkOWUyMmZiYy4uMzI1ODQ2OWJhODQ4YzQwODAxZjdjZGZhMDc0ZTQ1MDI0MjcxNWU4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKQEAgLTMwLDkg
KzMwLDkgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENv
cmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBDb25uZWN0aW9u
OwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdl
RGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VJRDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
NSw3ICs0NSw3IEBAIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXImIHNoYXJlZCgpOwogCi0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoKTsKICAgICB2
b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodWludDY0X3QpOwpAQCAtNTUsNyArNTUsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnModWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggYTY4NThhYzI4
ZDU5ZGNlNjI4NWQ2YzM2YTc3ZGI0N2U3NjdhMmUwNS4uOTM4NzQxZDYyZDc3OTIwODQ2ZTY0NmNk
NzU5ZDBkZTI1OGIxNjZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApA
QCAtNTgsOSArNTgsOSBAQCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkF1dGhlbnRpY2F0aW9uTWFu
YWdlcigpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5hZGRNZXNzYWdl
UmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzQXV0aGVudGljYXRpb25NYW5hZ2VyLCB0aGlz
KTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBBdXRoZW50aWNh
dGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogfQogCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKaW5kZXggOTNhZmU0NDZiYjA0MDk2YzA4MTE2M2VlYWQ5M2RiODJkMDNhZDliNS4uMTY3MDhj
ZTZiZDQ1NGM0MTFhZjY2MzkwYjZlZDNkZWNlZjIyYjY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCkBAIC02Myw4ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgQXV0aGVudGljYXRp
b25NYW5hZ2VyKCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKICAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCmluZGV4IDA0ZGVjODY0MDA3NTUwMTU0
MjVjYWZkY2QyYzliMTkwMzVkMWI2OGQuLjA4OTJmMjE3OGI5MmZiYjNlNzk5MzkxZTcxMzBhMmVk
OTQ2YWMwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9X
ZWJCYXR0ZXJ5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0
ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJCYXR0ZXJ5TWFu
YWdlcjo6fldlYkJhdHRlcnlNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5TWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQmF0
dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFn
ZShXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9C
YXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Jh
dHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaAppbmRleCA1MDk3MThkNDIxYzdkZTExMzNmZmVjMmNm
ZWU4NTg2MTk4YmU0MWExLi5iYmU0ZjU4YTI3MTBjZWYxODQ1MTczNzI1YjJlYWY2NTE3MDI4NjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVy
eU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0
dGVyeU1hbmFnZXIuaApAQCAtNTgsMTEgKzU4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENo
YW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgV2ViQmF0dGVyeVN0YXR1czo6RGF0YSYpOwogICAgIHZvaWQgdXBkYXRlQmF0dGVyeVN0YXR1
cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQmF0dGVy
eU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0dGVy
eU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRl
cnlNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViUHJvY2VzcyogbV9wcm9jZXNz
OwogICAgIEhhc2hTZXQ8V2ViUGFnZSo+IG1fcGFnZVNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAppbmRleCA2ZjNh
ZjFkMTAxZTEyMTA1MWUzZWNiZTgwZjIyMmNjOWU2Y2UwMDg1Li5lNTAwMGQ0YWM0MmI0OTg3MTc0
OWUxMDgyNmE2NTJhOGUwNWJmODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdl
YkNvb2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYkNvb2tp
ZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZl
V2ViQ29va2llTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmdldEhvc3RuYW1l
c1dpdGhDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCBjZjc4YTExNGUw
ZTUyZWVkOGI1ZDg5MjU2MDYyMzcxYjY4ZDBjZGMxLi5hYWMwNDE5MmJmNzk2ZjEwMjFhMzgxMTg4
MWZmMzU4YTZmODY5Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Q29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAgLTM1LDggKzM1LDggQEAKICNlbmRpZgogCiBu
YW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwogICAgIGNsYXNz
IENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xhc3MgTWVzc2Fn
ZUlEOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdlYkNvb2tpZU1hbmFnZXIgewogcHVi
bGljOgogICAgIHN0YXRpYyBXZWJDb29raWVNYW5hZ2VyJiBzaGFyZWQoKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIAogICAgIHZvaWQgZGlzcGF0Y2hDb29raWVzRGlkQ2hhbmdlKCk7
CiAKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0b3JhZ2VUeXBl
KTsKICNlbmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAKaW5kZXggMWM3YTc4ZGIwMmM3MzcwYzRiNTFmODYyMjk3ZjRmYTQ3MTM0OTUxOC4u
MDMyMzY5OGNlYjUwZmM0Mjg1YmNhYzg4NWY4M2UwMGZjY2RiZWFkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCkBAIC03OCw5ICs3OCw5IEBAIFdlYkNvcmU6OkVsZW1lbnQqIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyOjplbGVtZW50KCkKICAgICByZXR1cm4gbV9lbGVtZW50LmdldCgpOyAKIH0K
IAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVl
bk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIGJv
b2wgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXli
b2FyZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKaW5kZXggMzk2YTRhZGIxOTJlZjA2NjNjYjE1MDdi
ODRmYjQyYTc3N2ViZDRlOC4uOGMwNDkyMjViOGMxMzU2YmJlZjYwYTBkNTk0MTYwN2QwNjdhYWE0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2Ny
ZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3Nh
Z2VJRDsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+
V2ViRnVsbFNjcmVlbk1hbmFnZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQpOwogICAgIHZvaWQgZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CkBAIC03Myw3ICs3Myw3
IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oYm9vbCk7CiAg
ICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvcmU6
OkludFJlY3QgbV9pbml0aWFsRnJhbWU7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX2ZpbmFsRnJh
bWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMmFlYzVhNzI3ZDUwOTExNGFm
Mjk4ZGVjZWUyODdkMDVmZTcyZGIwZC4uMDFkYjMxNWFhZDY2MTQ5NWJmNTM3ODVlNTdjNzE4OGNm
NTE2MDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNDksOSArNDksOSBA
QCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6On5XZWJHZW9sb2NhdGlvbk1hbmFnZXIoKQogewogfQog
Ci12b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAK
IHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDhhMTQwNWQxNDgzM2U4N2M5NjU4ZWQy
MzczZjk1NzhhNGUwNDU2NGQuLjZlMjQ1NTcwZDdhYzljZjBmN2U1OWFiMGE5MzNiZDA4MTc1ZGQz
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNTUsMTAgKzU1LDEwIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CiAKICAgICAv
LyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJik7CiAgICAgdm9pZCBkaWRGYWlsVG9EZXRlcm1p
bmVQb3NpdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJh
c2VQcm94eS5jcHAKaW5kZXggMjE3ZjFlODBhYjFmOWE2ZWM4YmUzNjVmNDQyYzM0YTNmZjc1MWFh
MS4uYTA0NzkzZWI0Y2QyNTQ0YWZmY2U4MmJiZTFmYjJmMmU2Nzk1YjUyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYklj
b25EYXRhYmFzZVByb3h5LmNwcApAQCAtMTQzLDkgKzE0Myw5IEBAIHZvaWQgV2ViSWNvbkRhdGFi
YXNlUHJveHk6OnVybEltcG9ydEZpbmlzaGVkKCkKIHsKIH0KIAotdm9pZCBXZWJJY29uRGF0YWJh
c2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNl
aXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNv
bkRhdGFiYXNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNl
L1dlYkljb25EYXRhYmFzZVByb3h5LmgKaW5kZXggMjA5NmFiYTRjZDMxMWY5MjVmNzRlZDJmMTA4
ZTkzMmE2NTk1NTY5MS4uY2Q5ZjcxNzZlNWM2MzI3ZmMwODVkNTcyMmRjOTI0NmVhNGE0Y2VjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNv
bkRhdGFiYXNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCkBAIC0zNiw4ICszNiw4IEBACiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29k
ZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBNZXNz
YWdlSUQ7CiB9CiAKQEAgLTcwLDEwICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWNlaXZl
ZEljb25Mb2FkRGVjaXNpb24oaW50IGRlY2lzaW9uLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAg
ICB2aXJ0dWFsIHZvaWQgaWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SWNvbkRhdGFDYWxsYmFjaz4pOwogICAgICAgICAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViSWNvbkRhdGFi
YXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkljb25E
YXRhYmFzZVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAgIC8vIENhbGxiYWNrcyBm
cm9tIHRoZSBVSVByb2Nlc3MKICAgICB2b2lkIHVybEltcG9ydEZpbmlzaGVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVT
dG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDExMzdiYWUyMTAwNDk1
M2VmM2E5NzEwOWZkODgxMGY5Y2U2NDhjYTIuLjJmZGY0ZWQ1YThiYTI2NmU2MTE3NjIxM2UxYzE1
Yjg2YmRiYjlkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFs
dWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC00OSw5ICs0OSw5IEBAIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OldlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNl
aXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiBzdGF0aWMgdm9pZCBr
ZXlWYWx1ZVN0b3JhZ2VPcmlnaW5JZGVudGlmaWVycyhWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRh
PiYgaWRlbnRpZmllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tl
eVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgK
aW5kZXggZThkZTBhZGMyYWM2YzA3Y2Y5MzcyZDViZGY3OTFhYWJlZGYxZjQ4Mi4uNzJhNDRjMTI2
ZTIwODAyMzgwMjNlMDJhMjcxNjNkY2YwZTlmNzE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXIuaApAQCAtMzEsOSArMzEsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwotICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xh
c3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlVHJhY2tlckNsaWVudCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXImIHNoYXJlZCgp
OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcigpOwpAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZE1vZGlmeU9yaWdpbihjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ09yaWdpbnMoKSBPVkVSUklERTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKICAgICBWZWN0b3I8dWludDY0X3Q+IG1fb3JpZ2luc1JlcXVlc3RDYWxs
YmFja0lEczsKICAgICBib29sIG1fb3JpZ2luc0xvYWRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIu
Y3BwCmluZGV4IDRhNWQ3Zjk1ZTc1MWU4Mjk2NDYxNjhkYzI5YzA2Y2FjODcwYTY0NzguLmIwOWQ2
NDE0ZDJhMjJiNDNiMTdlMTQxYmJjNTg2NDIxNzE4M2NkZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmNwcApAQCAtNDYsOSArNDYsOSBAQCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6V2ViTWVkaWFD
YWNoZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViTWVkaWFDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hl
TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRp
ZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6Z2V0SG9zdG5hbWVz
V2l0aE1lZGlhQ2FjaGUodWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmgK
aW5kZXggOTA5YmU5N2JhMWM3YzI5YTkyODgwYzRkMjgwMGE5NGFkOTYxMzkwNC4uZmM2MmJlNGFk
MjNmMDViMzM4ZDAyOGJkMzc3MjJhNTFmNTI0MmRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyLmgK
QEAgLTMwLDkgKzMwLDkgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBjbGFzcyBD
b25uZWN0aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFz
cyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VJRDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgV2ViTWVkaWFDYWNoZU1hbmFnZXImIHNoYXJlZCgpOwogCi0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXIoKTsK
QEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JIb3N0bmFt
ZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JBbGxIb3N0bmFtZXMoKTsK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01h
bmFnZXIuY3BwCmluZGV4IDhjMTAzNzFmZDY4MDYwMmMwZjg0NWU0ODEzMzZkZDYyNDc1MGEwNTAu
LjYzMWYwMjIzNGVjMGJmOGQwODJhNDllMmEzYmJjNjU2NjE5MWY5MWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2ViTmV0d29ya0luZm9NYW5hZ2Vy
Ojp+V2ViTmV0d29ya0luZm9NYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJOZXR3b3JrSW5mb01h
bmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFu
YWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFn
ZXIuaAppbmRleCBkM2RhYjg0NGM4YmFkMjE3ODlmODMwOTU0ZmNhMzg4YTZlYmJmZDE1Li5mY2I4
ZDAyNzBjNWZjZjc2NDNhZTRkNDg1MTIyMjZhMTQ4NTNlYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmgKQEAgLTU3LDExICs1NywxMSBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGJhbmR3aWR0
aChXZWJQYWdlKikgY29uc3Q7CiAgICAgYm9vbCBtZXRlcmVkKFdlYlBhZ2UqKSBjb25zdDsKIAot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAg
dm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAKICAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2ViTmV0d29ya0luZm86OkRhdGEmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDdiNjg5MTJmZTlhYWJiNDJjMmU3OGNh
ZjQ4NjQ5ZWE1MDcwNDIzZTAuLmZiNDJiY2M0MzIzMzJlMjE2MDU3Zjg5NWEyM2UyMzU3NjZhZmY1
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTYzLDkgKzYzLDkg
QEAgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6fldlYk5vdGlmaWNhdGlvbk1hbmFnZXIoKQogewog
fQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgSGFz
aE1hcDxTdHJpbmcsIGJvb2w+JiBwZXJtaXNzaW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oCmluZGV4IDZhNzBmYzYwYzg1NWNkMzE5NjEwMDk5NmIzNWJiYTZlYzRkN2YzODMuLmEz
ZjY1OGYyNDU2MGZhZTgxN2M5OTI1MDUyZjkyOGJjNThhNGE1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVy
OwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogfQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGNhbGxi
YWNrIGNvbWVzIGZyb20gV2ViQ29yZSwgbm90IG1lc3NhZ2VkIGZyb20gdGhlIFVJIHByb2Nlc3Mu
CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbios
IFdlYlBhZ2UqKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkVXBkYXRl
Tm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxs
b3dlZCk7CiAKICAgICAvLyBMb29rcyBpbiBsb2NhbCBjYWNoZSBmb3IgcGVybWlzc2lvbi4gSWYg
bm90IGZvdW5kLCByZXR1cm5zIERlZmF1bHREZW5pZWQuCkBAIC03NCw3ICs3NCw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAgIHZv
aWQgZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9p
ZCBkaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCBmZGI3ZTVlMWYzYjBhYWMzM2NjMmZmYjI5M2U0ZTdjMmI4
YWYxODU1Li5mY2ZiMjQ5YWRlZmY0NzJmYzQ3ZDY3MjJjMTRmZmRiYzUxOTNkZDllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTg3LDI4ICs4NywyOCBAQCB2b2lkIFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Qcm94eShQbHVnaW5Qcm94eSogcGx1Z2luKQogICAg
IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbih0aGlzKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBBU1NFUlQoYXJndW1lbnRzLT5k
ZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAK
LSAgICBQbHVnaW5Qcm94eSogcGx1Z2luUHJveHkgPSBtX3BsdWdpbnMuZ2V0KGFyZ3VtZW50cy0+
ZGVzdGluYXRpb25JRCgpKTsKKyAgICBQbHVnaW5Qcm94eSogcGx1Z2luUHJveHkgPSBtX3BsdWdp
bnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAgICBpZiAoIXBsdWdpblByb3h5KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBwbHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgcGx1Z2luUHJv
eHktPmRpZFJlY2VpdmVQbHVnaW5Qcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25Q
dHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc05QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyPigpKSB7Ci0gICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgICAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IGFyZ3VtZW50cy0+
ZGVzdGluYXRpb25JRCgpOworICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKTsKIAogICAgIGlmICghZGVzdGluYXRpb25JRCkgewotICAgICAgICBkaWRS
ZWNlaXZlU3luY1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJl
cGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNiw3ICsxMTYsNyBA
QCB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdAogICAgIGlmICghcGx1Z2luUHJveHkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBsdWdp
blByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uaAppbmRleCBiOWJmODFjNzE2NmQ2NzA5YWMwODhjZjg0YzdkYjk5YTUyNTAwOWQ1Li4yZGMy
Y2NhNTlmZmQ3ZDAzMDYzYjEwNmI5ZGE5Y2NjMzVkZWFjZTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtNjQsMTMgKzY0LDEzIEBAIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24oUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiwgY29uc3QgU3RyaW5nJiBwbHVn
aW5QYXRoLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlm
aWVyLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pOwogCiAgICAgLy8g
Q29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAgICAgdm9pZCBzZXRFeGNlcHRpb24oY29uc3QgU3RyaW5nJik7CiAKICAgICBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIqIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAppbmRl
eCAwMmZhMWFiNTc3MTliOTg4N2QyN2E2YmQyMzU0YjU0MWVlNzg0MTFlLi44MTA0YWYyMDQzZGRm
ZDk4MzA4NTc3MWZhYTg0NzE1OGQ5ZjlmMDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtNjAsOCArNjAsOCBAQCBwdWJsaWM6CiAg
ICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luSW5z
dGFuY2VJRDsgfQogICAgIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQoKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiYpOwogCiAgICAgYm9vbCBpc0JlaW5nQXN5bmNocm9ub3VzbHlJbml0aWFsaXplZCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2FpdGluZ09uQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb247IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3Vy
Y2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKaW5kZXggZTg4Njk2MzcxMjg1OTVl
ZDhiOTEyYTI1N2MzZDI0YTBhY2RhNGIzZC4uNjgxMGYwYWJkYjlkYmViYTk5ZmEzZTFlOWIwZjA2
Y2U0NWFlMDQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJj
ZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCkBAIC01
Niw5ICs1Niw5IEBAIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjp+V2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIoKQogewogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5o
CmluZGV4IDAxNzIzODk0Y2Y1M2ZhY2VkOTYyNWZjYjRlY2UyNmNhNDZmYzQ4YzAuLjgzYTFjYzMw
NDUzY2YyNmUzZWU4OTBhNzg1YWE4ZThkYTBmMTM0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlci5oCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNs
YXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsK
IH0KIApAQCAtNDcsMTQgKzQ3LDE0IEBAIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXImIHNoYXJlZCgpOwog
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXIoKTsKICAgICB2aXJ0dWFsIH5XZWJSZXNvdXJjZUNhY2hlTWFuYWdlcigpOwogCiAg
ICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZ2V0Q2FjaGVPcmlnaW5z
KHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJDYWNoZUZvck9yaWdp
bihTZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQzMl90IGNhY2hlc1RvQ2xlYXIpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3MuY3BwCmluZGV4IDVlMTUyZWU5OGFhZDA2MGNkN2E3MGMxZTNlN2IwYzE0ODQ1ZmFhODAuLmUz
OWJhMzlkMjBlNjY2NTQyZTg3N2RlZTZjNDMzOGUzY2E2NWRmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKQEAg
LTQ5LDM0ICs0OSwzMyBAQCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OldlYkNvbm5lY3Rpb25U
b1VJUHJvY2VzcyhXZWJQcm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOgogCiAvLyBXZWJDb25uZWN0
aW9uCiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGFyZ3VtZW50RW5jb2RlciwgQVBJT2JqZWN0KiBtZXNz
YWdlQm9keSkKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9k
eShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIEFQSU9iamVjdCogbWVzc2FnZUJv
ZHkpCiB7Ci0gICAgYXJndW1lbnRFbmNvZGVyLT5lbmNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwogfQogCi1ib29sIFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudERlY29kZXIsIFJlZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKK2Jv
b2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkK
IHsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKEluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogLy8gQ29yZUlQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50Ci0KLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkNvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYkNv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAg
ICAgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBtX3By
b2Nlc3MtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiB9CiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
IHsKLSAgICBtX3Byb2Nlc3MtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
IAogdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAppbmRleCBjZGZmNGFjMjdmMGI5MzQ5YzU5YWRkYmYy
OWIwMjg5NDBlMDM0MTg2Li5hZjU5MTExNWI5MTc4ZGU1MDg0ZWNjNzY0ZTM4NjI1OTI3ZWY4ZjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzLmgKQEAgLTQxLDE0ICs0MSwxNCBAQCBwcml2YXRlOgogICAgIFdlYkNvbm5lY3Rp
b25Ub1VJUHJvY2VzcyhXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgV2ViQ29yZTo6UnVuTG9vcCopOwogCiAgICAgLy8gV2ViQ29ubmVjdGlvbgotICAgIHZpcnR1
YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqLCBBUElP
YmplY3QqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlTWVzc2FnZUJvZHkoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUmVmUHRyPEFQSU9iamVjdD4mKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiwgQVBJT2JqZWN0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGRlY29kZU1lc3NhZ2VC
b2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUElPYmplY3Q+JikgT1ZFUlJJ
REU7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCkgIE9WRVJSSURFOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIFZlY3RvcjxIV05EPiB3aW5kb3dzVG9SZWNlaXZlU2Vu
dE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA1M2QzODk1Y2RmNDdiZGI5NzZjNDIwOWFhNTA3M2M0ZDAy
M2IzNTM5Li4wNWI3NWExY2JmNzczZGUyMjc4OGY2N2NkZWNmNGI5ZTg3YTk4ODIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC02Miw5ICs2Miw5IEBAIFdlYkRhdGFiYXNlTWFu
YWdlcjo6fldlYkRhdGFiYXNlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViRGF0YWJhc2VNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2Vi
RGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmdldERhdGFi
YXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1h
bmFnZXIuaAppbmRleCA2MGZmYjEwY2RhYzY3MDExOGQyOWNlYzRiMTcxODVkMzk3NGQyZWNhLi5h
ZGI0ZDRiODNhOGQzYTljMWM4OTM2YjE5NTJjZjJmNTFkZTJiODVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJh
c2VNYW5hZ2VyLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xh
c3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgTWVzc2FnZUlEOwog
fQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkRhdGFiYXNlTWFuYWdl
ciYgc2hhcmVkKCk7CiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRh
dGFiYXNlRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgc2V0
UXVvdGFGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgcXVvdGEpIGNvbnN0OwogCiBwdWJsaWM6CkBAIC01OCw3ICs1OCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VNYW5hZ2VyKCk7CiAKICAgICAvLyBJbXBsZW1l
bnRlZCBpbiBnZW5lcmF0ZWQgV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
OwogCiAgICAgdm9pZCBnZXREYXRhYmFzZXNCeU9yaWdpbih1aW50NjRfdCBjYWxsYmFja0lEKSBj
b25zdDsKICAgICB2b2lkIGdldERhdGFiYXNlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5oCmluZGV4IGRiZWJkMzg2YTVlNTdjODlmMjlmMjEzY2Q5Y2EwNWU5M2E2NjNmMjkuLjc3NmE4
ZDk3ZTEzMTczZmM1ZWZmYjk1MDAzNWFjOWIwYzcwZjg4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtNzksNyArNzksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwogICAgIHZpcnR1
YWwgYm9vbCBsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgZmxv
YXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyU3Rh
dGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGNhNDc2MTc5ZTFkYTc5NzRh
ZGQ1MDFiNmQyOTFiYjg0MTM0ZmU1ZDMuLmM4ZTk2YzNjMGUzMzEyZGY3OWI0Y2FmYjQ3NTRjZWJm
ZGJlOGI1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKICAgICBj
bGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1lc3NhZ2VEZWNvZGVyOwogICAgIGNsYXNzIE1l
c3NhZ2VJRDsKIH0KIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NP
d25QdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhKCk7CiAgICAgCi0gICAgdm9p
ZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZURyYXdpbmdBcmVhTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSA9IDA7CkBAIC05NCw3ICs5NCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNw
cAppbmRleCBkNmNlZjE0MmY3YjZkZmYwZGU1MTg1NzYzMzM1ZDhiMzUyNzAzMzllLi44NTZlZThl
OWMxNjU0NjYwMjIwZGFhNmE5ODMyYTEwZjk0MzQxOTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcApAQCAtNzI3LDEw
ICs3MjcsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXkoVXBkYXRlSW5mbyYgdXBk
YXRlSW5mbykKIH0KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLXZvaWQgRHJhd2lu
Z0FyZWFJbXBsOjpkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBEcmF3aW5nQXJlYUltcGw6
OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCi0gICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlk
UmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCA4YmFiZTAxMDg3ODI0OTg2N2IxNjUz
YzNiNDVmYzRlNTNlNDg3MWY2Li5iYTkzOTU0ZjliN2Q5YjBkYWU1MzNlNjMyZDU3NDQ5Mzk0NTI5
N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5oCkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVy
VHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAK
ICAgICAvLyBDb3JlSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IGE1MzIyMDYx
MGM3Y2ZkN2RjM2I1Y2NiMmQwYTBmNWI2YjMzNzE4NDMuLjJhN2U3ZjQ5MzBlYzkxYWZkZDNjZGRj
MWYwOGIzYTRjMDM4OWRiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC03MiwxMCArNzIsMTAgQEAgdm9pZCBF
dmVudERpc3BhdGNoZXI6OnJlbW92ZVNjcm9sbGluZ1RyZWVGb3JQYWdlKFdlYlBhZ2UqIHdlYlBh
Z2UpCiB9CiAjZW5kaWYKIAotdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpZFJlY2VpdmVNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBFdmVudERpc3BhdGNoZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRXZlbnREaXNwYXRjaGVyPigpKSB7Ci0g
ICAgICAgIGRpZFJlY2VpdmVFdmVudERpc3BhdGNoZXJNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1
ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBkaWRIYW5kbGVNZXNzYWdlKTsK
KyAgICAgICAgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCBkaWRIYW5kbGVNZXNzYWdlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCBhYTcwYTkzZTU1Y2Y3NmUxYjMy
MjYxYmZhMzQ2NzI4ODA1YWQxMzQwLi5hNGY5Yjk5Y2UyMTNhODVhZDAwZjk0MmI1M2Q5YWU1MDEy
ZjMwMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCkBAIC02MCwxMCArNjAsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIGJvb2wm
IGRpZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRpZEhhbmRsZU1l
c3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIEV2ZW50
RGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVFdmVudERp
c3BhdGNoZXJNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVFdmVudERpc3Bh
dGNoZXJNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFu
ZGxlTWVzc2FnZSk7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCB3aGVlbEV2
ZW50KENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYldoZWVs
RXZlbnQmLCBib29sIGNhbkdvQmFjaywgYm9vbCBjYW5Hb0ZvcndhcmQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggOTVkYzhl
OWNhNGI3YTZmNWRmYWIyMzRiNDFiYzhiMTBjZTRiYmY3ZS4uZDdjMzhiM2FmN2U5M2E0M2RjZDc4
Yjc0MmFhYTE3MGY4Nzk1N2QyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdEZvckxheWVyKGludCAvKiBsYXllcklE
ICovLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbmRl
ck5leHRGcmFtZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuaAppbmRleCBjMDQxNTQ2YTg2Y2IzNWRmYTU5MDQ2NmQwOWI1YmE4NzZkNTZmNjU4Li4yZjEw
NDc1ODk4NzFjNzM0ODE2ZmJhMzQwYWQ1MDFiZDUwYTE0ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC01Myw3ICs1Myw3IEBA
IHB1YmxpYzoKICAgICBXZWJQYWdlKiBpbnNwZWN0b3JQYWdlKCkgY29uc3QgeyByZXR1cm4gbV9p
bnNwZWN0b3JQYWdlOyB9CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViSW5z
cGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3Rv
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViSW5zcGVjdG9yTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkluc3BlY3RvciBtZXNzYWdl
cwogICAgIHZvaWQgc2hvdygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGU4MmU2NWMwNjY5NGUxMjE5Y2Y3Njc0MGUwMzU5MmNkNDI4YWMz
ZGUuLjEwZDAzM2Q2M2NjM2UzNWE5MGQzMzY4ZDk0OTg5MWU1OGI2MDRkM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyMTUsMTQgKzEy
MTUsMTQgQEAgdm9pZCBXZWJQYWdlOjpzZXRHYXBCZXR3ZWVuUGFnZXMoZG91YmxlIGdhcCkKICAg
ICBtX3BhZ2UtPnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
cG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK3ZvaWQgV2ViUGFnZTo6cG9z
dEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBJbmplY3RlZEJ1bmRsZSogaW5qZWN0
ZWRCdW5kbGUgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmplY3RlZEJ1bmRsZSgpOwogICAgIGlm
ICghaW5qZWN0ZWRCdW5kbGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IG1lc3NhZ2VCb2R5OwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGluamVjdGVkQnVuZGxlLT5kaWRSZWNlaXZlTWVzc2Fn
ZVRvUGFnZSh0aGlzLCBtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpAQCAtMjc2Mywx
OCArMjc2MywxOCBAQCBib29sIFdlYlBhZ2U6OndpbmRvd0FuZFdlYlBhZ2VBcmVGb2N1c2VkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNGb2N1c2VkKCkg
JiYgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYT4oKSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJl
YSkKLSAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgbV9kcmF3
aW5nQXJlYS0+ZGlkUmVjZWl2ZURyYXdpbmdBcmVhTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAobWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0xheWVyVHJlZUNvb3JkaW5hdG9yPigpKSB7
CiAgICAgICAgIGlmIChtX2RyYXdpbmdBcmVhKQotICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+
ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5
ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTI3ODIsMjQgKzI3ODIsMjQgQEAg
dm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9yPigpKSB7CiAgICAg
ICAgIGlmIChXZWJJbnNwZWN0b3IqIGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAg
ICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViSW5zcGVjdG9yTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJl
Y2VpdmVXZWJJbnNwZWN0b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyPigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVs
bFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVj
ZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7ICAgCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIGRp
ZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOwogfQogICAgIAogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Qq
IFdlYlBhZ2U6OmJhY2tGb3J3YXJkTGlzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwYTVmMmJiYjc1ZjMyYzUxZGExNGFmYzA2OTlkZGY3MTMy
MTNkZDBkLi43ZGI2NWU5OWUzNDNlMzA5NjBkZDFjNWEyMjQxYjJiZDc1OWM2NjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIzOSw4ICsyMzks
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihQ
YXNzUmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPik7CiAKICAgICAvLyAtLSBDYWxs
ZWQgZnJvbSBXZWJQcm9jZXNzLgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICAvLyAtLSBJbmplY3RlZEJ1bmRs
ZSBtZXRob2RzCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0zMjAsNyArMzIwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChkb3VibGUpOwogICAgIHZvaWQgc2V0R2Fw
QmV0d2VlblBhZ2VzKGRvdWJsZSk7CiAKLSAgICB2b2lkIHBvc3RJbmplY3RlZEJ1bmRsZU1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU5hbWUsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBib29sIGRyYXdzQmFja2dy
b3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NCYWNrZ3JvdW5kOyB9CiAgICAgYm9vbCBkcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQ7IH0KQEAgLTYxMiw4ICs2MTIsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y1dlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYpOwogCiAjaWYgIVBMQVRGT1JNKE1BQykKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJw
cmV0S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAK
aW5kZXggZjU5ZmJiYWY1ZjgzNjFmODFhMmRhZmVjN2Y2NzU5NDk3MmFjMjg3My4uMzQwYzU0MzBl
ZjRkMTBlZjhmNzc0ZWMzNzIyOWZlMzA5ZGM2YjExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuY3BwCkBAIC00Nyw5
ICs0Nyw5IEBAIFdlYlBhZ2VHcm91cFByb3h5Ojp+V2ViUGFnZUdyb3VwUHJveHkoKQogewogfQog
ICAgIAotdm9pZCBXZWJQYWdlR3JvdXBQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VHcm91cFByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAgICAgCiBXZWJQYWdl
R3JvdXBQcm94eTo6V2ViUGFnZUdyb3VwUHJveHkoY29uc3QgV2ViUGFnZUdyb3VwRGF0YSYgZGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
R3JvdXBQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VH
cm91cFByb3h5LmgKaW5kZXggY2JiMDc5NDIxM2QyZDFmYTFlOTgyZjBhYzVmODRjMDljNWMyYWVk
OC4uMDBkYTY0YjI0MjI0NzlhYWY1OWM1ZDVkOTQxNWQ3Y2M4MjE2YjU4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmgK
QEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwor
Y2xhc3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTU0LDE0ICs1
NCwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Zpc2libGVUb0luamVjdGVkQnVuZGxlKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhLnZpc2libGVUb0luamVjdGVkQnVuZGxlOyB9CiAgICAgYm9vbCBp
c1Zpc2libGVUb0hpc3RvcnlDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEudmlzaWJsZVRv
SGlzdG9yeUNsaWVudDsgfQogICAgIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRl
OgogICAgIFdlYlBhZ2VHcm91cFByb3h5KGNvbnN0IFdlYlBhZ2VHcm91cERhdGEmKTsKIAogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogICAgIAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAg
ICAKICAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlVzZXJTdHlsZVNo
ZWV0Jik7CiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KGNvbnN0IFdlYkNvcmU6OlVzZXJTY3JpcHQm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDQzZWQxNmIx
YTM5Yzk4ZDc1ZWJmZTU0MTk2MGJlYTRlYmVmOTlmNGQuLjNmZDIzNGVhODFmZTQ0MzA2MDJkYzhk
MzljYzZiODk3MjM3YmNhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTg3LDE3ICsxODcsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplKENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVySWRlbnRpZmllciwgUnUKICAgICBz
dGFydFJhbmRvbUNyYXNoVGhyZWFkSWZSZXF1ZXN0ZWQoKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
Ojppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgQVNTRVJUKG1fcGFnZU1hcC5pc0VtcHR5KCkpOwogCi0gICAgcGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzLCBhcmd1bWVudHMpOworICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycywgZGVjb2Rlcik7CiAKICAgICBtZW1vcnlQcmVz
c3VyZUhhbmRsZXIoKS5pbnN0YWxsKCk7CiAKICAgICBSZWZQdHI8QVBJT2JqZWN0PiBpbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGE7CiAgICAgSW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIoaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVz
ZXJEYXRhKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmluamVjdGVkQnVuZGxlUGF0aC5pc0VtcHR5KCkpIHsKQEAg
LTYwNiw5ICs2MDYsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnRlcm1pbmF0ZSgpCiAgICAgbV9ydW5M
b29wLT5zdG9wKCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRy
PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeyAgIAotICAgIHVpbnQ2
NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAgIHVpbnQ2NF90IHBh
Z2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlmICghcGFnZUlEKQogICAgICAg
ICByZXR1cm47CiAgICAgCkBAIC02MTYsODMgKzYxNiw4MyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIHBhZ2UtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgIHBhZ2UtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViUHJvY2Vzcz4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBkaWRSZWNlaXZl
V2ViUHJvY2Vzc01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI+KCkpIHsKLSAgICAgICAgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1hbmFnZXI+KCkpIHsKLSAgICAgICAgV2ViQ29v
a2llTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlcj4oKSkgewotICAg
ICAgICBXZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2Vy
OjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQkFUVEVS
WV9TVEFUVVMpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJC
YXR0ZXJ5TWFuYWdlcj4oKSkgewotICAgICAgICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9iYXR0
ZXJ5TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUV09S
S19JTkZPKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViTmV0
d29ya0luZm9NYW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAg
bV9uZXR3b3JrSW5mb01hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJhc2VQcm94eT4o
KSkgewotICAgICAgICBtX2ljb25EYXRhYmFzZVByb3h5LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9pY29uRGF0YWJhc2VQcm94
eS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
cjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViTWVkaWFDYWNoZU1hbmFnZXI+KCkpIHsKLSAgICAgICAgV2Vi
TWVkaWFDYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViTWVkaWFDYWNoZU1hbmFnZXI6OnNo
YXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKSkgewotICAgICAgICBtX25v
dGlmaWNhdGlvbk1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgICAgICBtX25vdGlmaWNhdGlvbk1hbmFnZXIuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICNlbmRpZgogICAgIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI+KCkpIHsKLSAgICAgICAgV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OnNoYXJl
ZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBVU0UoU09VUCkKICAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlNvdXBSZXF1ZXN0TWFuYWdlcj4oKSkgewotICAg
ICAgICBtX3NvdXBSZXF1ZXN0TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKICAgICAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYlBhZ2VHcm91cFByb3h5PigpKSB7Ci0gICAgICAgIHVpbnQ2NF90IHBh
Z2VHcm91cElEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgICAgIHVpbnQ2NF90
IHBhZ2VHcm91cElEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgICAgIGlmICghcGFn
ZUdyb3VwSUQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIApAQCAtNzAwLDEwICs3MDAs
MTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgaWYgKCFwYWdlR3JvdXBQcm94
eSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0gICAgICAgIHBhZ2VHcm91cFByb3h5
LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgIHBhZ2VHcm91cFByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50
cy0+ZGVzdGluYXRpb25JRCgpOworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpOwogICAgIGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC03
MTEsNyArNzExLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYWdlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgcGFnZS0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpk
aWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKQEAgLTc0MywxMCArNzQzLDEwIEBAIHZvaWQg
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlCiAgICAgLy8gd2UnbGwgbGV0IGl0IHNsaWRlLgogfQogCi12b2lk
IFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBib29sJiBkaWRIYW5kbGVNZXNz
YWdlKQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFu
ZGxlTWVzc2FnZSkKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYlByb2Nlc3M+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlT25D
b25uZWN0aW9uV29ya1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBkaWRI
YW5kbGVNZXNzYWdlKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlT25Db25u
ZWN0aW9uV29ya1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxl
TWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IGVjY2JiOGQ2MGU3YTQ1ZDk0Y2I0YmYyYTZlNTA4MjA3MmUz
ZTQ5NjkuLmI0MmEwZWMxNmQ3ZGRmMjI1MWE1NzhhODQ1ZDE5YjYxZGUyM2QxOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xOTEsOCArMTkxLDggQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemVXZWJQ
cm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgcGxhdGZvcm1UZXJtaW5h
dGUoKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcm
KSBjb25zdDsKQEAgLTI2MSw4ICsyNjEsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29yZUlQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2VzczsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQpOwogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTI3MCwxMSArMjcwLDExIEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViUHJvY2Vzc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYg
ZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9uQ29ubmVj
dGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOwogCiAgICAg
dm9pZCBkaWRHZXRQbHVnaW5zKENvcmVJUEM6OkNvbm5lY3Rpb24qLCB1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQppbmRleCBmY2M0MmU5NjQ0Mzky
OGU3Zjk4ZmI1YTQwZDY0MDA4ZTNmNTg1MzRlLi4xMDc2NmQyY2MzZGMzODg4ZWE1MTNjYTg1MGRh
ODllYTg0NDRlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlBy
b2Nlc3NNYWMubW0KQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgaWQgTlNBcHBsaWNhdGlvbkFj
Y2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KE5TQXBwbGljYXRpb24qLCBTRUwpCiAgICAgcmV0
dXJuIFtwYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgYWNjZXNzaWJpbGl0eUZvY3Vz
ZWRVSUVsZW1lbnRdOwogfQogICAgIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZVJlc291
cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRl
eCBjZmQyYzFhMmQ2MTc2NjI3YTZkM2EzYzdiMTAwYjVhYjhmOTQ3NTgwLi45MmNhZWJlMjk2YWFm
NzRjN2M5Y2Q1YWJiZWRmMTc3ZDI3ZmVhZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgc3RhdGljIHZvaWQg
cGFyZW50UHJvY2Vzc0RpZWRDYWxsYmFjayh2b2lkKikKIH0KICNlbmRpZgogCi12b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKQogewogICAgIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIgPSBuZXcgUXROZXR3
b3JrQWNjZXNzTWFuYWdlcih0aGlzKTsKICAgICBBU1NFUlQoIXBhcmFtZXRlcnMuY29va2llU3Rv
cmFnZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIXBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVj
dG9yeS5pc051bGwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YlByb2Nlc3NTb3VwLmNwcAppbmRleCA1MWVmM2E3YjJjMjdiMTdiODIxM2I3ZjlmNjYzZTRmOWNk
MzA0MDkwLi5iZGJhZjdkNDM0NTlmZjkwN2Q5OThjMmI1OWNmODc3MmNiYTE5MDk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKQEAg
LTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQodm9pZCopCiAgICAg
c2V0U291cFNlc3Npb25BY2NlcHRMYW5ndWFnZShXZWJDb3JlOjp1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCkpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmxhbmd1
YWdlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UocGFy
YW1ldGVycy5sYW5ndWFnZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA3NDA2ZDY4NWUxYWMyYTU3
ZWMwMmRmZDczOTM3NTUwOTAzYmVkMzU3Li5iOWIzNTg3ZjRlM2E3ODk0YTA5ZWJjMTk5YjkwNTYw
ZmU4YTIwNjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2Vi
U291cFJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3Nv
dXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtODYsOSArODYsOSBAQCBXZWJTb3VwUmVx
dWVzdE1hbmFnZXI6On5XZWJTb3VwUmVxdWVzdE1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYlNv
dXBSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlNvdXBSZXF1ZXN0TWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViU291
cFJlcXVlc3RNYW5hZ2VyOjpyZWdpc3RlclVSSVNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVz
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVz
dE1hbmFnZXIuaAppbmRleCA3NjU0NDY2NTNkNTU0YjExMWVhZWQ3ZDhjZGZjNmY3NzY5MTY1Y2Yw
Li5kMzRjYzQwN2JiN2MyMTRmYTcwNGQzM2UzMjdlY2M4MWI2MjNkOGRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5o
CkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZChHU2ltcGxlQXN5bmNS
ZXN1bHQqLCBHQ2FuY2VsbGFibGUqKTsKICAgICBHSW5wdXRTdHJlYW0qIGZpbmlzaChHU2ltcGxl
QXN5bmNSZXN1bHQqKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogCiAgICAgdm9pZCByZWdpc3RlclVSSVNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7
CiAgICAgdm9pZCBkaWRIYW5kbGVVUklSZXF1ZXN0KGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVu
Y2UmLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50
NjRfdCByZXF1ZXN0SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93
aW4vV2ViUHJvY2Vzc1dpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQ
cm9jZXNzV2luLmNwcAppbmRleCBmMGMxOTU1YTU3ZWYwYjczNzY5MzNmMGRhMDFhZGRkNjQ4NzUz
NDRlLi4yNWRiYzM2YzQ5OWJmMzk0NjkzNGI0ZTEyZTY1NjIzMGFkOWJiMTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcApAQCAtMTMzLDcg
KzEzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJl
c291cmNlQ2FjaGVzVG9DbGVhciBjYWNoZXNUb0NsZWFyCiAjZW5kaWYgLy8gVVNFKENGTkVUV09S
SykKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNv
bnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAgIHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJv
bHMocGFyYW1ldGVycy5zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169455</attachid>
            <date>2012-10-18 13:10:42 -0700</date>
            <delta_ts>2012-10-18 13:21:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018130927.patch</filename>
            <type>text/plain</type>
            <size>227995</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uMTM4ZjRjODg3
MGI5OTgwZjY1MDc3YWI4MmVmOTViMjRmNzk1YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4MzdkZjQ1NzVk
M2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYyNWNiMmYwZjkx
NzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZmU1
MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcyZGE2MjgwOWEw
ZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQogCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUyOTdkMmMxMjIy
ZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5NzcxNjQ3NWVl
M2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdlMTQ3NzVhNDYz
ODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApA
QCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0KIH0KIAotdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hv
dyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5NDU0MGFlLi5k
NTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0NDkxOTkzMDBk
ZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJkYzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3BsdWdpblByb2Nl
c3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxMzJiYjc0
YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBhODAxNDBmZDhm
ODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVh
clNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0MmRmODhjYzU5
My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9T
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVtb3ZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1ZmVkMmZhNTk3
MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBiNjI2NmUyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5j
aCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIApAQCAtNjgs
NyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7CiAKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRm
YzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIwNzM1OWQxNDky
ZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4
LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxi
YWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUwY2RjNmNkODli
Y2UuLmE2NDJjMTk4YjZkNjM4ODY0NjhkOGRjZmRmYzM4NDc4MWFlYTJhYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaApAQCAtNzMsOCArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250
ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJy
YXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjQyYjdiMDIxNzQ2NTZlYzZjZDNlMjYwN2ZkOGNkM2U3
YmY0ZjFjMC4uZTFiNzU1YTIwZWE5ODA2ZWJmY2MxODc0ZTZhNjEwNzQyOGRmNTdkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNw
cApAQCAtNTksOSArNTksOSBAQCB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxp
emVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZQogICAgIG1fcHJvdmlk
ZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7CiB9CiAKLXZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eTo6c3RhcnRVcGRhdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhdHRlcnlNYW5hZ2VyUHJveHkuaAppbmRleCA2NWM2NjE0ZGFkZTkxODJjYjgzZGRmNTM3Y2Ni
Y2Y5OGFmZGIyNDRlLi44M2UyMTI4YWM2OWQ0NzRiOTAwM2I2ZDY5ODA0MTg3ODQxMDBkNTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmgKQEAgLTU5LDEwICs1OSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0dGVyeU1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0
dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgc3RhcnRVcGRh
dGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODZiYTkx
YzA4NDJiMDljOTkyYWEzZTY3NmVhNTRjODIyOTRhZjhkNC4uZmY0M2IzNDExNjU4Y2NlMjYyNWRj
OTcwMmY0Y2FjZjdlMjJmYTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTIsMTQgKzUyLDE0IEBAIFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzLCBDCiAKIC8vIFdlYkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGFyZ3VtZW50RW5jb2RlciwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIGFyZ3Vt
ZW50RW5jb2Rlci0+ZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJv
ZHkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1l
c3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIFJl
ZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKK2Jvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFhcmd1bWVudERl
Y29kZXItPmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBt
X3Byb2Nlc3MpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2VzcykpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY3LDE5ICs2NywxOSBAQCBib29sIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndQogCiAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb25uZWN0
aW9uPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0
aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4m
IHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBtX3Byb2Nlc3MtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggMTYwODEzMjQ3ZDBmMGY5YTczN2Q4YTUyYzQ3Njc3YWZhMzkyOGZhNy4uMGIx
ZmMwOWY4OTcxMjJjMzlkMDI5NTA5OTYzNzY5MTU5ZmY2YmIzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00Miwx
MiArNDIsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlBy
b2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1
bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwgQVBJT2JqZWN0KikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFJlZlB0cjxBUElPYmplY3Q+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSU9iamVjdCop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwogCiAgICAgLy8g
Q29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggODFlN2JjNDc3ZDRiNmY4
MTFlYjQ0MDc0M2U1Y2VhYzMyMTQ4NzQyMS4uOGE0NGI3ODE0NGQyZjFlY2RmYWFlOTJiMGEzZGQy
MTdkM2VhZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NzgyLDI2ICs3ODIsMjYgQEAgdm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6TWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzoKICAgICBtX21lc3NhZ2VS
ZWNlaXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZUNsYXNzLCBtZXNzYWdlUmVjZWl2
ZXIpOwogfQogCi1ib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK2Jvb2wgV2ViQ29udGV4dDo6ZGlz
cGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNl
aXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYgcmVwbHkpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICByZXR1cm4gbV9tZXNzYWdlUmVj
ZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHkpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7
Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5Pigp
KSB7Ci0gICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9h
ZHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAgICAgICAgIGRv
d25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9h
ZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKS5nZXQoKSkK
KyAgICAgICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICAKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwog
ICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVmUHRyPEFQSU9i
amVjdD4gbWVzc2FnZUJvZHk7CiAgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25u
ZWN0aW9uKGNvbm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNv
ZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OwpAQCAtODI0LDE2ICs4MjQsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc0Rvd25sb2FkUHJveHk+KCkpIHsKLSAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRv
d25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkp
LmdldCgpKQotICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9h
ZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwor
ICAgICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdl
dChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBkb3dubG9hZFBy
b3h5LT5kaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODQ0LDEyICs4NDQsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzoKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3Nh
Z2VCb2R5OwogICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25u
ZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91
dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0
dXJuRGF0YTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpLCByZXR1cm5EYXRhKTsK
LSAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpKSkpOworICAgICAgICAgICAgcmVwbHlFbmNvZGVy
LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5E
YXRhLmdldCgpKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggOWU4ZDgwNTRhYzczZTYxOTYyMTA1ZWRkMzMzYTBhNTEw
NzVjYTg1OS4uNTFjOTcwMGQ0MTBjYjIyODA3NzdhMmU2YTlhMTUyNmFjNDllNTNlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxsQ29udGV4dHMoKTsKIAog
ICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcywgQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyKik7Ci0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1
bmRsZUNsaWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogICAgIHZv
aWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNs
aWVudCopOwpAQCAtMTUxLDggKzE1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFZpc2l0ZWRM
aW5rSGFzaChXZWJDb3JlOjpMaW5rSGFzaCk7CiAKICAgICAvLyBNZXNzYWdlUmVjZWl2ZXIuCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwp
OwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQpAQCAtMjgzLDggKzI4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRHZXRXZWJDb3Jl
U3RhdGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgICAgICAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQ29udGV4dE1lc3Nh
Z2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0
KTsKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCBhYTMzY2U2MmZkMzY0ZDRk
ZDk0MmIyYjk5Yzg1MWRjZWNlOWU1OGZjLi44Y2IxNDM3YzRjY2IxOGM2NDAwNDQzMGMwNGNlNGRm
MGQ5YmJmOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcApAQCAtNjQsOSArNjQsOSBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnQqIGNsaWVu
dAogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxi
YWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaAppbmRleCA2OTgxYzBkMDYyZmM1ZjU2MWIwYmVhMWFlNjUyOTIyMTYx
Y2UwZGUyLi5kYWJhNDY2Y2Q4YWEzYmE3YWJiNzAzYzliODIzNTVhYTQ5OGJlYWM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC04
OCw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7CiAgICAg
CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBhM2ZkYTY1NTZjMTQyZTQ3MzM3NWVjZTU2MDhl
OGY2NTg4NDI2NjIwLi5iNTBhNGExNDQxYjYyNzNiMTEyZGUyMjMzYzI3OTEwNjQ4MTQ0ODk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTIzMiw5ICsyMzIsOSBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpkaWRNb2RpZnlEYXRhYmFzZShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsCiAgICAg
bV9jbGllbnQuZGlkTW9kaWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBkYXRhYmFzZUlk
ZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCmluZGV4IGI3
MjRhODQ3ZGNjY2Q4ZmZiN2IxNzA5N2QwZjU5ZTUwZWViNDRlYjkuLjdjNjk1ZmNiYmEwZDYwNGI1
ZDQ0MjEwZGRlYzhmZmU2NDA4OGQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCkBAIC04MSw4ICs4MSw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAg
ICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZl
Y3RvcjxPcmlnaW5BbmREYXRhYmFzZXM+JiBvcmlnaW5BbmREYXRhYmFzZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGZlNzFlY2FhNGEwZTc2ZjgxNGQ4NzJjMWQyZmZm
YTcxYWE4Zjk3YmYuLmU0OWFkODZlZmNlNzA3OGNjYTA2YTFiYjM2MDY5Y2IwNTYyN2RlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3KQogICAgIG1fd2ViVmll
dyA9IHdlYlZpZXc7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkp
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRpZFJlY2VpdmVTeW5jV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
IAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5oCmluZGV4IGI4M2FmNTQ3NjdjNmYxMDU5N2MyZjcxZWQ0MjY1ZWU1NjEzYjFlMDguLjA0
YWVkOWEzZjM0NWZkOTQ1NzE1OGI2YWIxODRkMGJmMmQ3OWIwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNzks
OCArNzksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGxTY3JlZW4oKTsKICAgICB2b2lkIGNs
b3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgd2lsbEVudGVy
RnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsU2NyZWVuKCk7CkBAIC0xMDEsOCAr
MTAxLDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBQbGF0Zm9y
bVdlYlZpZXcqIG1fd2ViVmlldzsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZTIwZDFlZWJkNzJjZTU3MTM3M2JmYWI0YjQzZmM5
ODY0MmYwODliOC4uM2NmZTg2YmMzMjY2YWM4NTU1MGNjM2NiNzg2ZGUzM2U0MjBiN2I1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwCkBAIC03Myw5ICs3Myw5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3QgU3RyaW5nCiAg
ICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oZXJyb3JNZXNzYWdlKSk7CiB9CiAK
LXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFy
dFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggOGY0MTAyYjYxZjI5YmU5ZWEyNjdiZWZkZGM0Mjk4
Y2QzOWFkN2YwOS4uODFmYzE5ZThlMjUxNTJiZDgxNDVlZGEyNTdmYTUyODFkZTVkMTAwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2Fn
ZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAog
ICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4IDhiNzFlODll
MDQwMjAyMDhhOWUwODA4YjQ1ZGRmZWYxOGNkNTQ5MzEuLjQwMmQyZDM5ZjhkMWRhM2UwNjJkMWU4
OTRkYWQ3MmIwYWYzYzE3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29u
RGF0YWJhc2UuY3BwCkBAIC0yODQsMTQgKzI4NCwxNCBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6
ZGlkRmluaXNoVVJMSW1wb3J0KCkKICAgICBtX3VybEltcG9ydENvbXBsZXRlZCA9IHRydWU7CiB9
CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIpCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAog
dm9pZCBXZWJJY29uRGF0YWJhc2U6Om5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaAppbmRleCA4NjQzYTQ4MWQxZDg2NDQ5NzJhZTNkYWViNGMxZjg2YzM5MmYwZGU2Li4wOTQ3
ZWMwMGI0OTlhMDFhMWUwYzBhYTIyZDcwNzBjZTQ1NjE1ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKIAogICAgIC8vIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJh
c2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRh
YmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4
IDY5MjJiN2Q3MzUxMWFhNjFmOTI0M2VjNjEwOWVjMzJiMTk2YzllYmQuLjg4NTc1YTNjYzQyZTQ1
ZDdhMmRjOWUzN2Q1NGVlODk3M2VjZDZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMjUsOCArMTI1LDggQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogI2Vu
ZGlmCiAKICAgICBzdGF0aWMgYm9vbCBpc0luc3BlY3RvclBhZ2UoV2ViUGFnZVByb3h5Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ1NGQwODJmNTZhMDMyMmI2ODcxMDgxZTQxZjAxMWUy
NzZhY2VlMmIuLmRlZmI4Y2NlOTFmNDUzYWU0MDYyMWIyYzI3NDhiNTNmNjkxOGJhYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCkBAIC01OCw5ICs1OCw5IEBAIGJvb2wgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
ICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHk6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBw
cnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAppbmRleCA5YzYzMTQyZjY5ZTRlM2UyMDRmOWQy
MTU4YWNmZTU3NDkxNzljOGE1Li5iYTM5MmJiMmVjZjc1MzgzNzJjYTk2ODNiMjg4ZDA2ZDE4NjYx
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJDb250ZXh0
KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJh
Y2s+ID4gbV9hcnJheUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA4MWNmOThmNTZjMTczZjQ0
NDFjM2IwMzhiODM3Y2RlOTRiNDQwNmVkLi4xNTU3MzhiMDk2Mjk5MTRmODhjMDMwOWQ2MzU4NWUx
OGFjMDljNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIGJvb2wgV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0
CiAgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwogfQogCi12b2lkIFdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhNZWRp
YUNhY2hlKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRl
eCA0OGU4OGUwZmM0OWNmZGQyZjk0ZTJkODU0OGViZmU2ZDE1ODAzZDI4Li40NTMxYTcyMTA4Nzg5
OGQ1MDQ0MzQwNjBmY2QyMjdmMjI0ZGYxOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDggKzY1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hlKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2Vi
Q29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBt
X2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFhMzk5YmMwZjhhNGUwMmY4MTZj
NjgxZmUxNjVkOTViZTMyZjM2My4uMWFkMWUyYjljOWE4NjNkZjJiY2E1NTE2ZDdhNjA2YWZjNjQy
NWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwCkBAIC02OCwxNCArNjgsMTQgQEAgdm9pZCBXZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oY29u
c3QgQXRvbWkKICAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
TmV0d29ya0luZm9NYW5hZ2VyOjpEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oZXZlbnRUeXBl
LCBuZXR3b3JrSW5mb3JtYXRpb24tPmRhdGEoKSkpOwogfQogCi12b2lkIFdlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAot
dm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5KQogewotICAgIGRp
ZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Ojpz
dGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMmM0ZWY3YzY3ZWJjNTE1OTg4ZWVmOTBiZGQz
YTYzY2VmOWM1YzM2ZS4uNDU2MDEwYzI1YjcxMGQxMTEzMWJkZjBjNDY2YWUyY2UyMzUyNjA0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmgKQEAgLTU4LDEyICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdlZjRhMjQ5
ZmU3NzRmMmY4ODU5NzIwZjc1ZjVlYjQ3MDIwMTMwMWIuLjgxODY5NWFkZWVjMDYxNWU3MjEwZGI4
MGJiZjdjZTE3NWY5ZTA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC03MjIsMTEgKzcyMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHbwogICAg
IHNob3VsZEdvVG9CYWNrRm9yd2FyZEl0ZW0gPSBpdGVtICYmIG1fbG9hZGVyQ2xpZW50LnNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRoaXMsIGl0ZW0pOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX3Byb2Nlc3Mt
PndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQpAQCAtMTgzNSwxNiArMTgzNSwxNiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdyb3VwKCktPnBy
ZWZlcmVuY2VzKCktPnN0b3JlKCkpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9w
ZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSA6IDApOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5PigpKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eT4oKSkgewotICAgICAgICBt
X2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2RyYXdpbmdBcmVh
LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAt
MTg1Miw0MCArMTg1Miw0MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJ
bnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yUHJveHkqIGluc3Bl
Y3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNl
aXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3RvclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVsbFNjcmVlbk1hbmFn
ZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVjZWl2ZVdlYlBhZ2VQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9y
UHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IgPSB0
aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMs
IHJlcGx5KTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNXZWJJbnNwZWN0
b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCkt
PmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlU3luY01lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIHdp
dGggcmVwbHkuCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJQ
YWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQpAQCAtMTk5MCwxMSArMTk5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoUHJvZ3Jlc3MoKQogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXZvaWQg
V2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVySW50ZW50
U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNlcnZpY2VJbmZv
JiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAwNSwxMyArMjAw
NSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50UwogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBjbGVhclBlbmRpbmdBUElSZXF1ZXN0VVJMKCk7CiAKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDI0LDExICsyMDI0
LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBA
IC0yMDQwLDExICsyMDQwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAgICAgbV9sb2Fk
ZXJDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMDY4LDExICsyMDY4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVh
ckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0
cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1
bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
ZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMTAsMTEgKzIxMTAsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKICAgICBtX2xvYWRlckNsaWVudC5kaWRDb21taXRM
b2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJE
YXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMjMsMTEgKzIxMjMsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTM4
LDExICsyMTM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMTU1LDExICsyMTU1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
YWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSh0aGlzLCBm
cmFtZSwgZXJyb3IsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxNzIsMTEgKzIxNzIsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRhdGEuZ2V0KCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjE4NywxMSArMjE4NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQog
ICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RM
YXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyMDAsMTEgKzIy
MDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWMKICAgICBtX2xvYWRlckNsaWVudC5kaWRG
aXJzdExheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjEzLDMxICsy
MjEzLDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlCiAgICAgbV9sb2FkZXJDbGllbnQuZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRh
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlvdXQodWludDMyX3Qg
bGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBp
ZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJD
bGllbnQuZGlkTGF5b3V0KHRoaXMsIHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9uZXM+KGxheW91
dE1pbGVzdG9uZXMpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vz
cy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KTsKQEAgLTIyNDgsMTEgKzIyNDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWUKICAgICBt
X2xvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJhbWUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjI2MSwxMSArMjI2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OgogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwg
dXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjI3
NCwxMSArMjI3NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndQogICAgIG1fbG9hZGVyQ2xp
ZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1
c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVy
KHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjg4LDExICsyMjg4LDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IElu
dGVudERhdGEmIGludGVudERhdGEsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3By
b2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1
cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CkBAIC0yMzE0LDExICsyMzE0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURp
ZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCiB9CiAKIC8vIFBv
bGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVp
bnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVp
bnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywg
aW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwg
Ym9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2
NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1f
cHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHBlbmRpbmdBUElSZXF1ZXN0VVJMKCkp
CkBAIC0yMzUyLDExICsyMzUyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wCiAgICAgfQog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBv
cGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9kaWZpZXJzLCBp
bnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMzcyLDExICsyMzcyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMy
X3Qgb3BhCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBib29s
JiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3Qm
IGRvd25sb2FkSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50
NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAgICBSZWZQdHI8
QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1l
c3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1l
bnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yNDA0LDExICsyNDA0LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkp
OwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAgICAgCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjQxOSwxMSArMjQxOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAvLyBGb3Jt
Q2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0
RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3Im
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjU2MiwxMSArMjU2MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3Rh
dHVzVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV91aUNsaWVudC5zZXRTdGF0dXNUZXh0
KHRoaXMsIHRleHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVp
bnQzMl90IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG9wYXF1ZU1v
ZGlmaWVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRy
PEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBt
ZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3Vt
ZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
c3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihvcGFxdWVNb2Rp
ZmllcnMpOwpAQCAtMzAxMiwxOSArMzAxMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGlkZVBv
cHVwTWVudSgpCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3Qg
V2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRJdGVtcywgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51KGNv
bnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEm
IGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4m
IHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJlc3VsdERhdGEs
IHByb3Bvc2VkSXRlbXMsIGFyZ3VtZW50cyk7CisgICAgaW50ZXJuYWxTaG93Q29udGV4dE1lbnUo
bWVudUxvY2F0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgcHJvcG9zZWRJdGVtcywgZGVjb2Rlcik7
CiAgICAgCiAgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2YgaW50ZXJuYWxTaG93Q29udGV4
dE1lbnUsIGFsd2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBpcyBoaWRk
ZW4gc28gaXQgc3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCksIG1fcGFnZUlE
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0
IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhp
dFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHBy
b3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRh
LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRlbXMsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRUZXN0UmVz
dWx0RGF0YSA9IGhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IGVlZGU2Yjk2ZjgyOTUyNGRlZGMwMjI4ZGIxODA1MmI4NzE1ZmY5MTcu
Ljk1NTI4YWI3ZjlhYjI0MWFhMjdiZTBmMjdiMmQ1OGU4YjE5NWViYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbSk7Ci0gICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWlu
dDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAg
dm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNvbnN0OwogICAg
IFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpAQCAtNTkxLDggKzU5MSw4IEBAIHB1Ymxp
YzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBwcm9jZXNzRGlkQmVj
b21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVkV2hpbGVQcm9j
ZXNzVW5yZXNwb25zaXZlKCk7CkBAIC03NTIsNDkgKzc1Miw0OSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKTsKICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhcmVudEZyYW1lSUQpOwogICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdlQ2FjaGUodWlu
dDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNhY2hlKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAgdm9pZCBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
UmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25zdCBTdHJp
bmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTGF5b3V0KHVpbnQz
Ml90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAg
IHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21S
ZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3QgbGF5b3V0
TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJh
bWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNz
KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmlu
aXNoUHJvZ3Jlc3MoKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2b2lkIGRpZFJl
Y2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlSW50ZW50Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotICAgIHZv
aWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
SW50ZW50U2VydmljZUluZm8mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IElu
dGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRpZgogICAg
IAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90
IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNlaXZlZFBvbGlj
eUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91
c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25U
eXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwg
dWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1
aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAgdm9pZCB1
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAotICAgIHZvaWQgd2ls
bFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgY29u
c3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJW
ZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKIAogICAgIC8vIFJlc291cmNlIGxvYWQgY2xpZW50CiAgICAgdm9pZCBk
aWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCByZXNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgcGFn
ZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpOwpAQCAtODEzLDcgKzgxMyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lkIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJI
aXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJz
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1
aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCB1
bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3BhcXVlUGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJMKTsKICAgICB2b2lkIHNldFRvb2xiYXJzQXJl
VmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7CiAgICAgdm9pZCBnZXRUb29sYmFyc0Fy
ZVZpc2libGUoYm9vbCYgdG9vbGJhcnNBcmVWaXNpYmxlKTsKQEAgLTkxMiw4ICs5MTIsOCBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29udGV4dCBNZW51
LgotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2
b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGludGVy
bmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24s
IGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1l
bnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAKICAgICAv
LyBTZWFyY2ggcG9wdXAgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBiODgzMjM4MzBhZGQyOTQxODc4YTdjYWFiODIwNzBkOTMxOTc4
NTFlLi4wZDZiNjIyZWY5ZmNlY2IzZmVhMGM3NWIyNjFjNDAxNDkxZDY1ZTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk1LDE3ICszOTUs
MTcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFNoYXJlZFdvcmtlclByb2Nlc3NDb25uZWN0
aW9uKGNvbnN0IFN0cmluZyYgLyogdXJsICovLAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cykpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAg
IHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlmICghcGFn
ZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTQxMywyMCArNDEzLDIwIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0
Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklE
KCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAg
aWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTQzNCwxMyArNDM0LDEzIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBhZ2VQcm94eS0+ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlT25Db25u
ZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKQotICAgICAgICBk
aWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAg
IGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxlTWVzc2FnZSk7CiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA3NTI0ZGYyZmY0NjAw
ZjhlYjVmNjg2YzBkMWU4NDk3ZDI1MTBlMGZhLi4wYTg1ODE2OWU5NDk4YTZmMDczOWEyMGY5NjQ1
ZTU1Mjc2YmQyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCkBAIC0xNjIsOCArMTYyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRpZEhhbmRs
ZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50
CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopIE9W
RVJSSURFOwpAQCAtMTkwLDkgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRVcGRhdGVI
aXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBT
dHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBn
ZW5lcmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2VP
bkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsK
IAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVyOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjMjk4MDc5N2E3ZTA4M2FiMzBmMzMyYjAyZGMxYjQ4NDg0
NWFlMDEuLjQxYjhmYmJkYjM1Y2I2MDRiMjVmMWZhMzExMzFjY2FlMzc3MmQ1M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5OjpjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIKICAg
ICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZvckFsbE9y
aWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDllNTliNjQxZjRjM2ZiZTgw
ZGE5YWRiMjYzNjgyNzBlZjNmYjkxMmUuLjFjNjIwNzA3Yjg0NDI2ZmRmZTg3Zjc0NTJmNjk0NmJj
MDRmNDc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0
aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmNwcAppbmRleCAwNTkwZjMwY2M1NzhjZjA1MjMxMTkyMmIxZmM5ZTljMTkwNGZiOTEzLi5iYjFm
OTZmNTI3MTE4MWFhYjg2ZjY2NTU5MzEzZDc0NDliYjBjMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgdm9p
ZCBXZWJWaWJyYXRpb25Qcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLVmlicmF0aW9u
UHJvdmlkZXIqIHByb3ZpZGVyKQogICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7
CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJWaWJyYXRpb25Qcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYlZp
YnJhdGlvblByb3h5Ojp2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRpbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IDY3NmQzYTQ5NzY3NDBj
N2M1MzdlZmIwZmYwZDg5MmU5OTczODUzMzQuLjVjNmRlMTdkNzIxMDRmYWQwNDQ2MGMxMGJlMzQx
ZWY5NTIxZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJy
YXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Q
cm94eS5oCkBAIC01NSwxMCArNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJyYXRpb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Q
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlicmF0aW9u
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHZpYnJhdGUodWludDY0X3Qgdmli
cmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAppbmRleCBlMmJmMzQyM2Q5ZDI1ODgyNDI0ZjNlNDIxNjZlZWIxOTUyYTgwZDc4Li44
MDQ5OGE1ZWE4YzYwODFhNDY4NTZiYzM4NjhiZTI3ZDhkNjZiOTI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllCiAgICAg
bV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQogCi12b2lkIFdlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9p
ZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3Ry
aW5nJiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3Nv
dXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2YTNkNmU4MjZjNTMwMmM5OGQw
ZWUwOTc1ZjY5NmJkMzY2MjcwOTc1Li5lNGI4Y2NlMzc1NDJhZGZhMTc1MTVkOWYxMWE4ZjI5NjM4
NzUyMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTU3LDggKzU3LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBX
ZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50
IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHAKaW5kZXggOWMxYWQ4Nzk4NWQyZjdjYmQ3OTczMjJlNzYyYTBhMDljMTI0ZjdjOC4uMGJkZmIw
MTMyZTg4MDUyN2I1NGIzMTZlZTAzNGNkODRkNzM5ODk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpCiB7CiB9CiAK
LXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpnZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAppbmRleCAzOGQ0OGUxMTllZjI2MzhiMTBl
Njc3M2VhZTczMDUzN2Q5ZTIyZmJjLi4zMjU4NDY5YmE4NDhjNDA4MDFmN2NkZmEwNzRlNDUwMjQy
NzE1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaApA
QCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNsYXNzIENv
bm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgewog
cHVibGljOgogICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hhcmVkKCk7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygp
OwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CkBAIC01NSw3ICs1
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50
NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBh
Njg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1Li45Mzg3NDFkNjJkNzc5MjA4
NDZlNjQ2Y2Q3NTlkMGRlMjU4YjE2NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuY3BwCkBAIC01OCw5ICs1OCw5IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGlj
YXRpb25NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmFk
ZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRoZW50aWNhdGlvbk1hbmFn
ZXIsIHRoaXMpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuaAppbmRleCA5M2FmZTQ0NmJiMDQwOTZjMDgxMTYzZWVhZDkzZGI4MmQwM2FkOWI1
Li4xNjcwOGNlNmJkNDU0YzQxMWFmNjYzOTBiNmVkM2RlY2VmMjJiNjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0ZToKICAgICBBdXRo
ZW50aWNhdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFs
bGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXggMDRkZWM4NjQw
MDc1NTAxNTQyNWNhZmRjZDJjOWIxOTAzNWQxYjY4ZC4uMDg5MmYyMTc4YjkyZmJiM2U3OTkzOTFl
NzEzMGEyZWQ5NDZhYzAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9C
YXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBAIFdlYkJh
dHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYkJhdHRl
cnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6cmVnaXN0
ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCmluZGV4IDUwOTcxOGQ0MjFjN2RlMTEz
M2ZmZWMyY2ZlZTg1ODYxOThiZTQxYTEuLmJiZTRmNThhMjcxMGNlZjE4NDUxNzM3MjViMmVhZjY1
MTcwMjg2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9X
ZWJCYXR0ZXJ5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVy
eS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAgICAgdm9pZCB1cGRhdGVCYXR0
ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmKTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJQcm9jZXNzKiBt
X3Byb2Nlc3M7CiAgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmlu
ZGV4IDZmM2FmMWQxMDFlMTIxMDUxZTNlY2JlODBmMjIyY2M5ZTZjZTAwODUuLmU1MDAwZDRhYzQy
YjQ5ODcxNzQ5ZTEwODI2YTY1MmE4ZTA1YmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTQ2LDkgKzQ2
LDkgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0
SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IGNm
NzhhMTE0ZTBlNTJlZWQ4YjVkODkyNTYwNjIzNzFiNjhkMGNkYzEuLmFhYzA0MTkyYmY3OTZmMTAy
MWEzODExODgxZmYzNThhNmY4NjljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAg
ICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlRGVjb2RlcjsKICAgICBjbGFz
cyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViQ29va2llTWFuYWdl
ciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJlZCgpOwogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaENvb2tpZXNEaWRD
aGFuZ2UoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29va2ll
UGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3Rv
cmFnZVR5cGUpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAppbmRleCAxYzdhNzhkYjAyYzczNzBjNGI1MWY4NjIyOTdmNGZhNDcx
MzQ5NTE4Li4wMzIzNjk4Y2ViNTBmYzQyODViY2FjODg1ZjgzZTAwZmNjZGJlYWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc4LDkgKzc4LDkgQEAgV2ViQ29yZTo6RWxlbWVudCog
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBtX2VsZW1lbnQuZ2V0
KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAogYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wg
d2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCAzOTZhNGFkYjE5MmVmMDY2
M2NiMTUwN2I4NGZiNDJhNzc3ZWJkNGU4Li44YzA0OTIyNWI4YzEzNTZiYmVmNjBhMGQ1OTQxNjA3
ZDA2N2FhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzIsOCArMzIsOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1l
bnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKICAgICB2
aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCk7CiAgICAg
dm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKQEAgLTcz
LDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVsbFNjcmVlbihi
b29sKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1f
ZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyYWVjNWE3Mjdk
NTA5MTE0YWYyOThkZWNlZTI4N2QwNWZlNzJkYjBkLi4wMWRiMzE1YWFkNjYxNDk1YmY1Mzc4NWU1
N2M3MTg4Y2Y1MTYwMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC00OSw5
ICs0OSw5IEBAIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigp
CiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShXZWJQ
YWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggOGExNDA1ZDE0ODMzZTg3
Yzk2NThlZDIzNzNmOTU3OGE0ZTA0NTY0ZC4uNmUyNDU1NzBkN2FjOWNmMGY3ZTU5YWIwYTkzM2Jk
MDgxNzVkZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC01NSwxMCArNTUsMTAg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsK
IAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxU
b0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYklj
b25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAyMTdmMWU4MGFiMWY5YTZlYzhiZTM2NWY0NDJjMzRh
M2ZmNzUxYWExLi5hMDQ3OTNlYjRjZDI1NDRhZmZjZTgyYmJlMWZiMmYyZTY3OTViNTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0
YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJh
c2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xNDMsOSArMTQzLDkgQEAgdm9pZCBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6dXJsSW1wb3J0RmluaXNoZWQoKQogewogfQogCi12b2lkIFdlYklj
b25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFz
ZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29u
RGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCAyMDk2YWJhNGNkMzExZjkyNWY3
NGVkMmYxMDhlOTMyYTY1OTU1NjkxLi5jZDlmNzE3NmU1YzYzMjdmYzA4NWQ1NzIyZGM5MjQ2ZWE0
YTRjZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFz
ZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTM2LDggKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNs
YXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNzAsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNpb24sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5nJiwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPik7CiAgICAgICAgIAotICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJ
Y29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgLy8gQ2Fs
bGJhY2tzIGZyb20gdGhlIFVJUHJvY2VzcwogICAgIHZvaWQgdXJsSW1wb3J0RmluaXNoZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9L
ZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTEzN2Jh
ZTIxMDA0OTUzZWYzYTk3MTA5ZmQ4ODEwZjljZTY0OGNhMi4uMmZkZjRlZDVhOGJhMjY2ZTYxMTc2
MjEzZTFjMTViODZiZGJiOWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHN0YXRp
YyB2b2lkIGtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJzKFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiBpZGVudGlmaWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXIuaAppbmRleCBlOGRlMGFkYzJhYzZjMDdjZjkzNzJkNWJkZjc5MWFhYmVkZjFmNDgyLi43
MmE0NGMxMjZlMjA4MDIzODAyM2UwMmEyNzE2M2RjZjBlOWY3MTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2Uv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCkBAIC0zMSw5ICszMSw5IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBB
cmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNzYWdl
SUQ7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CitjbGFzcyBNZXNz
YWdlSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VUcmFja2Vy
Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlciYg
c2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT3JpZ2lucygpIE9WRVJSSURF
OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9vcmlnaW5zUmVx
dWVzdENhbGxiYWNrSURzOwogICAgIGJvb2wgbV9vcmlnaW5zTG9hZGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5jcHAKaW5kZXggNGE1ZDdmOTVlNzUxZTgyOTY0NjE2OGRjMjljMDZjYWM4NzBhNjQ3
OC4uYjA5ZDY0MTRkMmEyMmI0M2IxN2UxNDFiYmM1ODY0MjE3MTgzY2RkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFD
YWNoZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpX
ZWJNZWRpYUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpnZXRI
b3N0bmFtZXNXaXRoTWVkaWFDYWNoZSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1h
bmFnZXIuaAppbmRleCA5MDliZTk3YmExYzdjMjlhOTI4ODBjNGQyODAwYTk0YWQ5NjEzOTA0Li5m
YzYyYmU0YWQyM2YwNWIzMzhkMDI4YmQzNzcyMmE1MWY1MjQyZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1h
bmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAg
IGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNZWRpYUNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJNZWRpYUNhY2hlTWFu
YWdlcigpOwpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDYWNoZUZv
ckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFsbEhvc3Ru
YW1lcygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5jcHAKaW5kZXggOGMxMDM3MWZkNjgwNjAyYzBmODQ1ZTQ4MTMzNmRkNjI0
NzUwYTA1MC4uNjMxZjAyMjM0ZWMwYmY4ZDA4MmE0OWUyYTNiYmM2NTY2MTkxZjkxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5m
b01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8v
V2ViTmV0d29ya0luZm9NYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJOZXR3b3JrSW5m
b01hbmFnZXI6On5XZWJOZXR3b3JrSW5mb01hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk5ldHdv
cmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAg
ZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTmV0d29y
a0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5oCmluZGV4IGQzZGFiODQ0YzhiYWQyMTc4OWY4MzA5NTRmY2EzODhhNmViYmZk
MTUuLmZjYjhkMDI3MGM1ZmNmNzY0M2FlNGQ0ODUxMjIyNmExNDg1M2VhNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3
b3JrSW5mb01hbmFnZXIuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
YmFuZHdpZHRoKFdlYlBhZ2UqKSBjb25zdDsKICAgICBib29sIG1ldGVyZWQoV2ViUGFnZSopIGNv
bnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJOZXR3b3JrSW5mbzo6RGF0YSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2I2ODkxMmZlOWFhYmI0
MmMyZTc4Y2FmNDg2NDllYTUwNzA0MjNlMC4uZmI0MmJjYzQzMjMzMmUyMTYwNTdmODk1YTIzZTIz
NTc2NmFmZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtNjMs
OSArNjMsOSBAQCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFuYWdl
cigpCiB7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKaW5kZXggNmE3MGZjNjBjODU1Y2QzMTk2MTAwOTk2YjM1YmJhNmVjNGQ3
ZjM4My4uYTNmNjU4ZjI0NTYwZmFlODE3Yzk5MjUwNTJmOTI4YmM1OGE0YTUyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVu
dERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIFRo
aXMgY2FsbGJhY2sgY29tZXMgZnJvbSBXZWJDb3JlLCBub3QgbWVzc2FnZWQgZnJvbSB0aGUgVUkg
cHJvY2Vzcy4KICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKiwgV2ViUGFnZSopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywg
Ym9vbCBhbGxvd2VkKTsKIAogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZvciBwZXJtaXNz
aW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KQEAgLTc0LDcgKzc0LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
CiAgICAgdm9pZCBkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ICAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkYjdlNWUxZjNiMGFhYzMzY2MyZmZiMjkz
ZTRlN2MyYjhhZjE4NTUuLmZjZmIyNDlhZGVmZjQ3MmZjNDdkNjcyMmMxNGZmZGJjNTE5M2RkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODcsMjggKzg3LDI4IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpblByb3h5KFBsdWdpblByb3h5KiBwbHVn
aW4pCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXItPnJlbW92ZVBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEFTU0VSVChhcmd1
bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUKGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIAotICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9IG1fcGx1Z2lucy5nZXQoYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9
IG1fcGx1Z2lucy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogICAgIGlmICghcGx1Z2lu
UHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlUGx1
Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBw
bHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVj
dE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcg
KzExNiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0CiAgICAgaWYgKCFwbHVnaW5Qcm94eSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2lu
UHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cisg
ICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IGI5YmY4MWM3MTY2ZDY3MDlhYzA4OGNmODRjN2RiOTlhNTI1MDA5
ZDUuLjJkYzJjY2E1OWZmZDdkMDMwNjNiMTA2YjlkYTljY2MzNWRlYWNlNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0ZToKICAgICBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBjb25zdCBTdHJp
bmcmIHBsdWdpblBhdGgsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbik7CiAK
ICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYp
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKICAgICB2b2lkIHNldEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmKTsKIAogICAgIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oCmluZGV4IDAyZmExYWI1NzcxOWI5ODg3ZDI3YTZiZDIzNTRiNTQxZWU3ODQxMWUuLjgxMDRh
ZjIwNDNkZGZkOTgzMDg1NzcxZmFhODQ3MTU4ZDlmOWYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC02MCw4ICs2MCw4IEBAIHB1
YmxpYzoKICAgICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
bHVnaW5JbnN0YW5jZUlEOyB9CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAKICAgICBib29sIGlzQmVpbmdBc3luY2hyb25vdXNseUluaXRpYWxp
emVkKCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nT25Bc3luY2hyb25vdXNJbml0aWFsaXphdGlv
bjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAppbmRleCBlODg2OTYz
NzEyODU5NWVkOGI5MTJhMjU3YzNkMjRhMGFjZGE0YjNkLi42ODEwZjBhYmRiOWRiZWJhOTlmYTNl
MWU5YjBmMDZjZTQ1YWUwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAKQEAgLTU2LDkgKzU2LDkgQEAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6On5XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLmgKaW5kZXggMDE3MjM4OTRjZjUzZmFjZWQ5NjI1ZmNiNGVjZTI2Y2E0NmZjNDhjMC4u
ODNhMWNjMzA0NTNjZjI2ZTNlZTg5MGE3ODVhYThlOGRhMGYxMzRkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVz
c2FnZUlEOwogfQogCkBAIC00NywxNCArNDcsMTQgQEAgY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
KCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBnZXRDYWNo
ZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNhY2hl
Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9DbGVhcikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAKaW5kZXggNWUxNTJlZTk4YWFkMDYwY2Q3YTcwYzFlM2U3YjBjMTQ4NDVm
YWE4MC4uZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1ZGZhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
LmNwcApAQCAtNDksMzQgKzQ5LDMzIEBAIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6V2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6CiAKIC8vIFdl
YkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1lc3Nh
Z2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogYXJndW1lbnRFbmNvZGVyLCBBUElPYmpl
Y3QqIG1lc3NhZ2VCb2R5KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1l
c3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0KiBt
ZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworICAgIGVuY29kZXIuZW5jb2RlKElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VC
b2R5KQorYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiAvLyBDb3JlSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKLQotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNl
aXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vz
cy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQogewotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IGNkZmY0YWMyN2YwYjkzNDlj
NTlhZGRiZjI5YjAyODk0MGUwMzQxODYuLmFmNTkxMTE1YjkxNzhkZTUwODRlY2M3NjRlMzg2MjU5
MjdlZjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDEsMTQgKzQxLDE0IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCi0g
ICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9iamVjdD4m
KSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSAgT1ZFUlJJREU7
CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NUb1Jl
Y2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
YmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDUzZDM4OTVjZGY0N2JkYjk3NmM0MjA5YWE1
MDczYzRkMDIzYjM1MzkuLjA1Yjc1YTFjYmY3NzNkZTIyNzg4ZjY3Y2RlY2Y0YjllODdhOTg4MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgV2ViRGF0
YWJhc2VNYW5hZ2VyOjp+V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJEYXRh
YmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6
Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oCmluZGV4IDYwZmZiMTBjZGFjNjcwMTE4ZDI5Y2VjNGIxNzE4NWQzOTc0
ZDJlY2EuLmFkYjRkNGI4M2E4ZDNhOWMxYzg5MzZiMTk1MmNmMmY1MWRlMmI4NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEYXRhYmFzZU1hbmFnZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29k
ZXI7CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNz
YWdlSUQ7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0YWJh
c2VNYW5hZ2VyJiBzaGFyZWQoKTsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dm9pZCBzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVu
c2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3Q7CiAKIHB1YmxpYzoKQEAgLTU4LDcgKzU4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZU1hbmFnZXIoKTsKIAogICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICB2b2lkIGdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwogICAgIHZvaWQgZ2V0RGF0YWJhc2VPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKaW5kZXggZGJlYmQzODZhNWU1N2M4OWYyOWYyMTNjZDljYTA1ZTkzYTY2M2Yy
OS4uNzc2YThkOTdlMTMxNzNmYzVlZmZiOTUwMDM1YWM5YjBjNzBmODhjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC03OSw3ICs3
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAg
ICAgdmlydHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSog
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzeW5j
TGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggY2E0NzYxNzll
MWRhNzk3NGFkZDUwMWI2ZDI5MWJiODQxMzRmZTVkMy4uYzhlOTZjM2MwZTMzMTJkZjc5YjRjYWZi
NDc1NGNlYmZkYmU4YjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVy
OwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAg
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxEcmF3aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWEoKTsKICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKQEAgLTk0LDcgKzk0
LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRp
bmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuY3BwCmluZGV4IGQ2Y2VmMTQyZjdiNmRmZjBkZTUxODU3NjMzMzVkOGIzNTI3MDMzOWUu
Ljg1NmVlOGU5YzE2NTQ2NjAyMjBkYWE2YTk4MzJhMTBmOTQzNDE5OTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBA
IC03MjcsMTAgKzcyNywxMCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotdm9p
ZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIERyYXdpbmdB
cmVhSW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKLSAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IDhiYWJlMDEwODc4MjQ5
ODY3YjE2NTNjM2I0NWZjNGU1M2U0ODcxZjYuLmJhOTM5NTRmOWI3ZDliMGRhZTUzM2U2MzJkNTc0
NDkzOTQ1Mjk3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAj
ZW5kaWYKIAogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXgg
YTUzMjIwNjEwYzdjZmQ3ZGMzYjVjY2IyZDBhMGY1YjZiMzM3MTg0My4uMmE3ZTdmNDkzMGVjOTFh
ZmRkM2NkZGMxZjA4YjNhNGMwMzg5ZGJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTcyLDEwICs3MiwxMCBA
QCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJlZUZvclBhZ2UoV2ViUGFn
ZSogd2ViUGFnZSkKIH0KICNlbmRpZgogCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlkUmVjZWl2
ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCiB7CiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NFdmVudERpc3BhdGNoZXI+
KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rp
b25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIGRpZEhhbmRsZU1l
c3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVj
dGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRpZEhhbmRsZU1l
c3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IGFhNzBhOTNlNTVj
Zjc2ZTFiMzIyNjFiZmEzNDY3Mjg4MDVhZDEzNDAuLmE0ZjliOTljZTIxM2E4NWFkMDBmOTQyYjUz
ZDlhZTUwMTJmMzAyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTYwLDEwICs2MCwxMCBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVldWVDbGllbnQKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlk
SGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0
ZWQgRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2
ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZUV2
ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29s
JiBkaWRIYW5kbGVNZXNzYWdlKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lk
IHdoZWVsRXZlbnQoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViV2hlZWxFdmVudCYsIGJvb2wgY2FuR29CYWNrLCBib29sIGNhbkdvRm9yd2FyZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAppbmRl
eCA5NWRjOGU5Y2E0YjdhNmY1ZGZhYjIzNGI0MWJjOGIxMGNlNGJiZjdlLi5kN2MzOGIzYWY3ZTkz
YTQzZGNkNzhiNzQyYWFhMTcwZjg3OTU3ZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0Rm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcmVuZGVyTmV4dEZyYW1lKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0
b3JlcygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0
b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxh
eWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5oCmluZGV4IGMwNDE1NDZhODZjYjM1ZGZhNTkwNDY2ZDA5YjViYTg3NmQ1NmY2
NTguLjJmMTA0NzU4OTg3MWM3MzQ4MTZmYmEzNDBhZDUwMWJkNTBhMTQ4MzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTUzLDcg
KzUzLDcgQEAgcHVibGljOgogICAgIFdlYlBhZ2UqIGluc3BlY3RvclBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2luc3BlY3RvclBhZ2U7IH0KIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRl
ZCBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
SW5zcGVjdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNw
ZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9y
IG1lc3NhZ2VzCiAgICAgdm9pZCBzaG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTgyZTY1YzA2Njk0ZTEyMTljZjc2NzQwZTAzNTky
Y2Q0MjhhYzNkZS4uMTBkMDMzZDYzY2MzZTM1YTkwZDMzNjhkOTQ5ODkxZTU4YjYwNGQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTIx
NSwxNCArMTIxNSwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldEdhcEJldHdlZW5QYWdlcyhkb3VibGUg
Z2FwKQogICAgIG1fcGFnZS0+c2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQordm9pZCBXZWJQ
YWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIEluamVjdGVkQnVuZGxl
KiBpbmplY3RlZEJ1bmRsZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCk7
CiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRy
PEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRlY29k
ZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2Fn
ZUJvZHkpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUtPmRpZFJlY2Vp
dmVNZXNzYWdlVG9QYWdlKHRoaXMsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7CkBA
IC0yNzYzLDE4ICsyNzYzLDE4IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFyZUZv
Y3VzZWQoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0Zv
Y3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhPigpKSB7CiAgICAgICAgIGlmIChtX2Ry
YXdpbmdBcmVhKQotICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2ZURyYXdpbmdB
cmVhTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgICAg
ICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0
b3I+KCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCi0gICAgICAgICAgICBtX2RyYXdp
bmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjc4MiwyNCArMjc4
MiwyNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3I+KCkp
IHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gdGhpcy0+aW5zcGVjdG9y
KCkpCi0gICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJJbnNwZWN0b3JNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rv
ci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViRnVsbFNjcmVlbk1hbmFnZXI+KCkpIHsKLSAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXIoKS0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
ICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKLSAg
ICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAgICBkaWRSZWNlaXZlU3lu
Y1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAgICAgCiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdCogV2ViUGFnZTo6YmFja0ZvcndhcmRMaXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBhNWYyYmJiNzVmMzJjNTFkYTE0YWZjMDY5
OWRkZjcxMzIxM2RkMGQuLjdkYjY1ZTk5ZTM0M2UzMDk2MGRkMWM1YTIyNDFiMmJkNzU5YzY2OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjM5
LDggKzIzOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+KTsKIAogICAgIC8v
IC0tIENhbGxlZCBmcm9tIFdlYlByb2Nlc3MuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIC8vIC0tIEluamVj
dGVkQnVuZGxlIG1ldGhvZHMKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTMyMCw3ICsz
MjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlTGVuZ3RoKGRvdWJsZSk7CiAgICAgdm9p
ZCBzZXRHYXBCZXR3ZWVuUGFnZXMoZG91YmxlKTsKIAotICAgIHZvaWQgcG9zdEluamVjdGVkQnVu
ZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIHBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlTmFtZSwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIGJvb2wgZHJh
d3NCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KICAgICBi
b29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZDsgfQpAQCAtNjEyLDggKzYxMiw4IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFn
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAg
dm9pZCBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+Jik7CiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFBy
b3h5LmNwcAppbmRleCBmNTlmYmJhZjVmODM2MWY4MWEyZGFmZWM3ZjY3NTk0OTcyYWMyODczLi4z
NDBjNTQzMGVmNGQxMGVmOGY3NzRlYzM3MjI5ZmUzMDlkYzZiMTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAK
QEAgLTQ3LDkgKzQ3LDkgQEAgV2ViUGFnZUdyb3VwUHJveHk6On5XZWJQYWdlR3JvdXBQcm94eSgp
CiB7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VHcm91cFByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZUdy
b3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJQYWdlR3Jv
dXBQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KICAgICAK
IFdlYlBhZ2VHcm91cFByb3h5OjpXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQYWdlR3JvdXBE
YXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2VHcm91cFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZUdyb3VwUHJveHkuaAppbmRleCBjYmIwNzk0MjEzZDJkMWZhMWU5ODJmMGFjNWY4NGMw
OWM1YzJhZWQ4Li4wMGRhNjRiMjQyMjQ3OWFhZjU5YzVkNWQ5NDE1ZDdjYzgyMTZiNThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3Vw
UHJveHkuaApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5l
Y3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAt
NTQsMTQgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmlzaWJsZVRvSW5qZWN0ZWRCdW5k
bGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGU7IH0KICAg
ICBib29sIGlzVmlzaWJsZVRvSGlzdG9yeUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS52
aXNpYmxlVG9IaXN0b3J5Q2xpZW50OyB9CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
IHByaXZhdGU6CiAgICAgV2ViUGFnZUdyb3VwUHJveHkoY29uc3QgV2ViUGFnZUdyb3VwRGF0YSYp
OwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAg
ICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOwogICAgIAogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViQ29yZTo6VXNl
clN0eWxlU2hlZXQmKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2ViQ29yZTo6VXNl
clNjcmlwdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
NDNlZDE2YjFhMzljOThkNzVlYmZlNTQxOTYwYmVhNGViZWY5OWY0ZC4uM2ZkMjM0ZWE4MWZlNDQz
MDYwMmRjOGQzOWNjNmI4OTcyMzdiY2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC0xODcsMTcgKzE4NywxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRp
YWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVudGlmaWVyLCBS
dQogICAgIHN0YXJ0UmFuZG9tQ3Jhc2hUaHJlYWRJZlJlcXVlc3RlZCgpOwogfQogCi12b2lkIFdl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGFyZ3VtZW50cyk7CisgICAgcGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzLCBkZWNvZGVyKTsKIAogICAgIG1l
bW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsKIAogICAgIFJlZlB0cjxBUElPYmplY3Q+
IGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YTsKICAgICBJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihpbmplY3RlZEJ1bmRsZUluaXRpYWxp
emF0aW9uVXNlckRhdGEpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQYXRoLmlzRW1wdHko
KSkgewpAQCAtNjA2LDkgKzYwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6dGVybWluYXRlKCkKICAg
ICBtX3J1bkxvb3AtPnN0b3AoKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlk
UmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7ICAgCi0g
ICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWlu
dDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdlSUQp
CiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTYxNiw4MyArNjE2LDgzIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAg
cGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzLCByZXBseSk7CisgICAgcGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9j
ZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRp
ZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcj4oKSkgewotICAgICAgICBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlcj4oKSkgewotICAgICAg
ICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJl
ZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyPigp
KSB7Ci0gICAgICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJEYXRhYmFz
ZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkJhdHRlcnlNYW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fYmF0dGVyeU1hbmFnZXIuZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJOZXR3b3JrSW5mb01hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9uZXR3b3JrSW5mb01hbmFn
ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAK
ICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRhYmFz
ZVByb3h5PigpKSB7Ci0gICAgICAgIG1faWNvbkRhdGFiYXNlUHJveHkuZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2ljb25EYXRh
YmFzZVByb3h5LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI+KCkpIHsKLSAgICAgICAg
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJNZWRpYUNhY2hlTWFuYWdlcj4oKSkgewotICAg
ICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJNZWRpYUNhY2hlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpKSB7Ci0gICAg
ICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlci5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkgewotICAgICAgICBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
cjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShTT1VQKQogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVlc3RNYW5hZ2VyPigp
KSB7Ci0gICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9zb3VwUmVxdWVzdE1hbmFn
ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogICAgIAogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUGFnZUdyb3VwUHJveHk+KCkpIHsKLSAgICAgICAgdWlu
dDY0X3QgcGFnZUdyb3VwSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICAgICAg
dWludDY0X3QgcGFnZUdyb3VwSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICAgICAg
aWYgKCFwYWdlR3JvdXBJRCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCkBAIC03MDAs
MTAgKzcwMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICBpZiAoIXBhZ2VH
cm91cFByb3h5KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgcGFnZUdy
b3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICAgICAgcGFnZUdyb3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0g
YXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAg
ICAKQEAgLTcxMSw3ICs3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIGlmICgh
cGFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlLT5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYlBy
b2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpAQCAtNzQzLDEwICs3NDMsMTAg
QEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2UKICAgICAvLyB3ZSdsbCBsZXQgaXQgc2xpZGUuCiB9
CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhh
bmRsZU1lc3NhZ2UpCit2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0
aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBib29s
JiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViUHJvY2Vzcz4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc01l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3Nh
Z2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCBk
aWRIYW5kbGVNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZWNjYmI4ZDYwZTdhNDVkOTRjYjRiZjJhNmU1
MDgyMDcyZTNlNDk2OS4uYjQyYTBlYzE2ZDdkZGYyMjUxYTU3OGE4NDVkMTliNjFkZTIzZDE5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5MSw4ICsxOTEsOCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIAotICAgIHZvaWQgaW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwbGF0Zm9y
bVRlcm1pbmF0ZSgpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQo
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0
IFN0cmluZyYpIGNvbnN0OwpAQCAtMjYxLDggKzI2MSw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBD
b3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlv
blRvVUlQcm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMjcwLDExICsyNzAs
MTEgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVl
dWVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25X
b3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAgICAvLyBJbXBs
ZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2
b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNz
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7
CiAKICAgICB2b2lkIGRpZEdldFBsdWdpbnMoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCmluZGV4IGZjYzQy
ZTk2NDQzOTI4ZTdmOThmYjVhNDBkNjQwMDhlM2Y1ODUzNGUuLjEwNzY2ZDJjYzNkYzM4ODhlYTUx
M2NhODUwZGE4OWVhODQ0NGU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBpZCBOU0FwcGxp
Y2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoTlNBcHBsaWNhdGlvbiosIFNFTCkK
ICAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudF07CiB9CiAgICAgCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMudWlQcm9jZXNzQnVu
ZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
b25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQ
cm9jZXNzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQu
Y3BwCmluZGV4IGNmZDJjMWEyZDYxNzY2MjdhNmQzYTNjN2IxMDBiNWFiOGY5NDc1ODAuLjkyY2Fl
YmUyOTZhYWY3NGM3YzljZDVhYmJlZGYxNzdkMjdmZWFkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0
aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogfQogI2VuZGlmCiAKLXZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlciA9IG5l
dyBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOwogICAgIEFTU0VSVCghcGFyYW1ldGVycy5j
b29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5LmlzTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCmluZGV4IDUxZWYzYTdiMmMyN2IxN2I4MjEzYjdmOWY2
NjNlNGY5Y2QzMDQwOTAuLmJkYmFmN2Q0MzQ1OWZmOTA3ZDk5OGMyYjU5Y2Y4NzcyY2JhMTkwOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3Vw
LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lk
KikKICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFdlYkNvcmU6OnVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBpZiAoIXBhcmFtZXRl
cnMubGFuZ3VhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0U291cFNlc3Npb25BY2NlcHRMYW5n
dWFnZShwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDc0MDZkNjg1
ZTFhYzJhNTdlYzAyZGZkNzM5Mzc1NTA5MDNiZWQzNTcuLmI5YjM1ODdmNGUzYTc4OTRhMDllYmMx
OTliOTA1NjBmZThhMjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Niw5ICs4Niw5IEBAIFdl
YlNvdXBSZXF1ZXN0TWFuYWdlcjo6fldlYlNvdXBSZXF1ZXN0TWFuYWdlcigpCiB7CiB9CiAKLXZv
aWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2Vy
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0
TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9p
ZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OnJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0IFN0cmluZyYg
c2NoZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNv
dXBSZXF1ZXN0TWFuYWdlci5oCmluZGV4IDc2NTQ0NjY1M2Q1NTRiMTExZWFlZDdkOGNkZmM2Zjc3
NjkxNjVjZjAuLmQzNGNjNDA3YmI3YzIxNGZhNzA0ZDMzZTMyN2VjYzgxYjYyM2Q4ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyLmgKQEAgLTUwLDEwICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kKEdTaW1w
bGVBc3luY1Jlc3VsdCosIEdDYW5jZWxsYWJsZSopOwogICAgIEdJbnB1dFN0cmVhbSogZmluaXNo
KEdTaW1wbGVBc3luY1Jlc3VsdCopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0IFN0cmluZyYg
c2NoZW1lKTsKICAgICB2b2lkIGRpZEhhbmRsZVVSSVJlcXVlc3QoY29uc3QgQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZSYsIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
d2luL1dlYlByb2Nlc3NXaW4uY3BwCmluZGV4IGYwYzE5NTVhNTdlZjBiNzM3NjkzM2YwZGEwMWFk
ZGQ2NDg3NTM0NGUuLjI1ZGJjMzZjNDk5YmYzOTQ2OTM0YjRlMTJlNjU2MjMwYWQ5YmIxOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCkBA
IC0xMzMsNyArMTMzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3VyY2VD
YWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIKICNlbmRpZiAvLyBVU0Uo
Q0ZORVRXT1JLKQogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgc2V0U2hvdWxkUGFpbnROYXRp
dmVDb250cm9scyhwYXJhbWV0ZXJzLnNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169457</attachid>
            <date>2012-10-18 13:21:10 -0700</date>
            <delta_ts>2012-10-18 13:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018131956.patch</filename>
            <type>text/plain</type>
            <size>228162</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uMTM4ZjRjODg3
MGI5OTgwZjY1MDc3YWI4MmVmOTViMjRmNzk1YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4MzdkZjQ1NzVk
M2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYyNWNiMmYwZjkx
NzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZmU1
MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcyZGE2MjgwOWEw
ZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQogCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUyOTdkMmMxMjIy
ZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5NzcxNjQ3NWVl
M2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdlMTQ3NzVhNDYz
ODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApA
QCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0KIH0KIAotdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hv
dyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5NDU0MGFlLi5k
NTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0NDkxOTkzMDBk
ZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJkYzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3BsdWdpblByb2Nl
c3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxMzJiYjc0
YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBhODAxNDBmZDhm
ODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVh
clNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0MmRmODhjYzU5
My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9T
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVtb3ZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1ZmVkMmZhNTk3
MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBiNjI2NmUyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5j
aCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIApAQCAtNjgs
NyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7CiAKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRm
YzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIwNzM1OWQxNDky
ZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4
LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxi
YWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUwY2RjNmNkODli
Y2UuLmE2NDJjMTk4YjZkNjM4ODY0NjhkOGRjZmRmYzM4NDc4MWFlYTJhYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaApAQCAtNzMsOCArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250
ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJy
YXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjQyYjdiMDIxNzQ2NTZlYzZjZDNlMjYwN2ZkOGNkM2U3
YmY0ZjFjMC4uZTFiNzU1YTIwZWE5ODA2ZWJmY2MxODc0ZTZhNjEwNzQyOGRmNTdkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNw
cApAQCAtNTksOSArNTksOSBAQCB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxp
emVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZQogICAgIG1fcHJvdmlk
ZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7CiB9CiAKLXZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eTo6c3RhcnRVcGRhdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhdHRlcnlNYW5hZ2VyUHJveHkuaAppbmRleCA2NWM2NjE0ZGFkZTkxODJjYjgzZGRmNTM3Y2Ni
Y2Y5OGFmZGIyNDRlLi44M2UyMTI4YWM2OWQ0NzRiOTAwM2I2ZDY5ODA0MTg3ODQxMDBkNTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmgKQEAgLTU5LDEwICs1OSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0dGVyeU1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0
dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgc3RhcnRVcGRh
dGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODZiYTkx
YzA4NDJiMDljOTkyYWEzZTY3NmVhNTRjODIyOTRhZjhkNC4uZmY0M2IzNDExNjU4Y2NlMjYyNWRj
OTcwMmY0Y2FjZjdlMjJmYTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTIsMTQgKzUyLDE0IEBAIFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzLCBDCiAKIC8vIFdlYkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGFyZ3VtZW50RW5jb2RlciwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIGFyZ3Vt
ZW50RW5jb2Rlci0+ZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJv
ZHkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1l
c3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIFJl
ZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKK2Jvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFhcmd1bWVudERl
Y29kZXItPmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBt
X3Byb2Nlc3MpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2VzcykpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY3LDE5ICs2NywxOSBAQCBib29sIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndQogCiAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb25uZWN0
aW9uPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0
aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4m
IHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBtX3Byb2Nlc3MtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggMTYwODEzMjQ3ZDBmMGY5YTczN2Q4YTUyYzQ3Njc3YWZhMzkyOGZhNy4uMGIx
ZmMwOWY4OTcxMjJjMzlkMDI5NTA5OTYzNzY5MTU5ZmY2YmIzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00Miwx
MiArNDIsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlBy
b2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1
bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwgQVBJT2JqZWN0KikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFJlZlB0cjxBUElPYmplY3Q+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSU9iamVjdCop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwogCiAgICAgLy8g
Q29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggODFlN2JjNDc3ZDRiNmY4
MTFlYjQ0MDc0M2U1Y2VhYzMyMTQ4NzQyMS4uOGE0NGI3ODE0NGQyZjFlY2RmYWFlOTJiMGEzZGQy
MTdkM2VhZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NzgyLDI2ICs3ODIsMjYgQEAgdm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6TWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzoKICAgICBtX21lc3NhZ2VS
ZWNlaXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZUNsYXNzLCBtZXNzYWdlUmVjZWl2
ZXIpOwogfQogCi1ib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK2Jvb2wgV2ViQ29udGV4dDo6ZGlz
cGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNl
aXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYgcmVwbHkpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICByZXR1cm4gbV9tZXNzYWdlUmVj
ZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHkpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7
Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5Pigp
KSB7Ci0gICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9h
ZHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAgICAgICAgIGRv
d25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9h
ZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKS5nZXQoKSkK
KyAgICAgICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICAKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwog
ICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVmUHRyPEFQSU9i
amVjdD4gbWVzc2FnZUJvZHk7CiAgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25u
ZWN0aW9uKGNvbm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNv
ZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OwpAQCAtODI0LDE2ICs4MjQsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc0Rvd25sb2FkUHJveHk+KCkpIHsKLSAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRv
d25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkp
LmdldCgpKQotICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9h
ZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwor
ICAgICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdl
dChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBkb3dubG9hZFBy
b3h5LT5kaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODQ0LDEyICs4NDQsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzoKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3Nh
Z2VCb2R5OwogICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25u
ZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91
dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0
dXJuRGF0YTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpLCByZXR1cm5EYXRhKTsK
LSAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpKSkpOworICAgICAgICAgICAgcmVwbHlFbmNvZGVy
LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5E
YXRhLmdldCgpKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggOWU4ZDgwNTRhYzczZTYxOTYyMTA1ZWRkMzMzYTBhNTEw
NzVjYTg1OS4uNTFjOTcwMGQ0MTBjYjIyODA3NzdhMmU2YTlhMTUyNmFjNDllNTNlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxsQ29udGV4dHMoKTsKIAog
ICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcywgQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyKik7Ci0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1
bmRsZUNsaWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogICAgIHZv
aWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNs
aWVudCopOwpAQCAtMTUxLDggKzE1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFZpc2l0ZWRM
aW5rSGFzaChXZWJDb3JlOjpMaW5rSGFzaCk7CiAKICAgICAvLyBNZXNzYWdlUmVjZWl2ZXIuCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwp
OwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQpAQCAtMjgzLDggKzI4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRHZXRXZWJDb3Jl
U3RhdGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgICAgICAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQ29udGV4dE1lc3Nh
Z2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0
KTsKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCBhYTMzY2U2MmZkMzY0ZDRk
ZDk0MmIyYjk5Yzg1MWRjZWNlOWU1OGZjLi44Y2IxNDM3YzRjY2IxOGM2NDAwNDQzMGMwNGNlNGRm
MGQ5YmJmOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcApAQCAtNjQsOSArNjQsOSBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnQqIGNsaWVu
dAogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxi
YWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaAppbmRleCA2OTgxYzBkMDYyZmM1ZjU2MWIwYmVhMWFlNjUyOTIyMTYx
Y2UwZGUyLi5kYWJhNDY2Y2Q4YWEzYmE3YWJiNzAzYzliODIzNTVhYTQ5OGJlYWM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC04
OCw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7CiAgICAg
CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBhM2ZkYTY1NTZjMTQyZTQ3MzM3NWVjZTU2MDhl
OGY2NTg4NDI2NjIwLi5iNTBhNGExNDQxYjYyNzNiMTEyZGUyMjMzYzI3OTEwNjQ4MTQ0ODk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTIzMiw5ICsyMzIsOSBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpkaWRNb2RpZnlEYXRhYmFzZShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsCiAgICAg
bV9jbGllbnQuZGlkTW9kaWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBkYXRhYmFzZUlk
ZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCmluZGV4IGI3
MjRhODQ3ZGNjY2Q4ZmZiN2IxNzA5N2QwZjU5ZTUwZWViNDRlYjkuLjdjNjk1ZmNiYmEwZDYwNGI1
ZDQ0MjEwZGRlYzhmZmU2NDA4OGQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCkBAIC04MSw4ICs4MSw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAg
ICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZl
Y3RvcjxPcmlnaW5BbmREYXRhYmFzZXM+JiBvcmlnaW5BbmREYXRhYmFzZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGZlNzFlY2FhNGEwZTc2ZjgxNGQ4NzJjMWQyZmZm
YTcxYWE4Zjk3YmYuLmU0OWFkODZlZmNlNzA3OGNjYTA2YTFiYjM2MDY5Y2IwNTYyN2RlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3KQogICAgIG1fd2ViVmll
dyA9IHdlYlZpZXc7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkp
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRpZFJlY2VpdmVTeW5jV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
IAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5oCmluZGV4IGI4M2FmNTQ3NjdjNmYxMDU5N2MyZjcxZWQ0MjY1ZWU1NjEzYjFlMDguLjA0
YWVkOWEzZjM0NWZkOTQ1NzE1OGI2YWIxODRkMGJmMmQ3OWIwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNzks
OCArNzksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGxTY3JlZW4oKTsKICAgICB2b2lkIGNs
b3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgd2lsbEVudGVy
RnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsU2NyZWVuKCk7CkBAIC0xMDEsOCAr
MTAxLDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBQbGF0Zm9y
bVdlYlZpZXcqIG1fd2ViVmlldzsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZTIwZDFlZWJkNzJjZTU3MTM3M2JmYWI0YjQzZmM5
ODY0MmYwODliOC4uM2NmZTg2YmMzMjY2YWM4NTU1MGNjM2NiNzg2ZGUzM2U0MjBiN2I1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwCkBAIC03Myw5ICs3Myw5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3QgU3RyaW5nCiAg
ICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oZXJyb3JNZXNzYWdlKSk7CiB9CiAK
LXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFy
dFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggOGY0MTAyYjYxZjI5YmU5ZWEyNjdiZWZkZGM0Mjk4
Y2QzOWFkN2YwOS4uODFmYzE5ZThlMjUxNTJiZDgxNDVlZGEyNTdmYTUyODFkZTVkMTAwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2Fn
ZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAog
ICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4IDhiNzFlODll
MDQwMjAyMDhhOWUwODA4YjQ1ZGRmZWYxOGNkNTQ5MzEuLjQwMmQyZDM5ZjhkMWRhM2UwNjJkMWU4
OTRkYWQ3MmIwYWYzYzE3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29u
RGF0YWJhc2UuY3BwCkBAIC0yODQsMTQgKzI4NCwxNCBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6
ZGlkRmluaXNoVVJMSW1wb3J0KCkKICAgICBtX3VybEltcG9ydENvbXBsZXRlZCA9IHRydWU7CiB9
CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIpCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAog
dm9pZCBXZWJJY29uRGF0YWJhc2U6Om5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaAppbmRleCA4NjQzYTQ4MWQxZDg2NDQ5NzJhZTNkYWViNGMxZjg2YzM5MmYwZGU2Li4wOTQ3
ZWMwMGI0OTlhMDFhMWUwYzBhYTIyZDcwNzBjZTQ1NjE1ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKIAogICAgIC8vIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJh
c2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRh
YmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4
IDY5MjJiN2Q3MzUxMWFhNjFmOTI0M2VjNjEwOWVjMzJiMTk2YzllYmQuLjg4NTc1YTNjYzQyZTQ1
ZDdhMmRjOWUzN2Q1NGVlODk3M2VjZDZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMjUsOCArMTI1LDggQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogI2Vu
ZGlmCiAKICAgICBzdGF0aWMgYm9vbCBpc0luc3BlY3RvclBhZ2UoV2ViUGFnZVByb3h5Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ1NGQwODJmNTZhMDMyMmI2ODcxMDgxZTQxZjAxMWUy
NzZhY2VlMmIuLmRlZmI4Y2NlOTFmNDUzYWU0MDYyMWIyYzI3NDhiNTNmNjkxOGJhYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCkBAIC01OCw5ICs1OCw5IEBAIGJvb2wgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
ICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHk6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBw
cnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAppbmRleCA5YzYzMTQyZjY5ZTRlM2UyMDRmOWQy
MTU4YWNmZTU3NDkxNzljOGE1Li5iYTM5MmJiMmVjZjc1MzgzNzJjYTk2ODNiMjg4ZDA2ZDE4NjYx
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJDb250ZXh0
KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJh
Y2s+ID4gbV9hcnJheUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA4MWNmOThmNTZjMTczZjQ0
NDFjM2IwMzhiODM3Y2RlOTRiNDQwNmVkLi4xNTU3MzhiMDk2Mjk5MTRmODhjMDMwOWQ2MzU4NWUx
OGFjMDljNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIGJvb2wgV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0
CiAgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwogfQogCi12b2lkIFdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhNZWRp
YUNhY2hlKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRl
eCA0OGU4OGUwZmM0OWNmZGQyZjk0ZTJkODU0OGViZmU2ZDE1ODAzZDI4Li40NTMxYTcyMTA4Nzg5
OGQ1MDQ0MzQwNjBmY2QyMjdmMjI0ZGYxOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDggKzY1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hlKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2Vi
Q29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBt
X2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFhMzk5YmMwZjhhNGUwMmY4MTZj
NjgxZmUxNjVkOTViZTMyZjM2My4uMWFkMWUyYjljOWE4NjNkZjJiY2E1NTE2ZDdhNjA2YWZjNjQy
NWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwCkBAIC02OCwxNCArNjgsMTQgQEAgdm9pZCBXZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oY29u
c3QgQXRvbWkKICAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
TmV0d29ya0luZm9NYW5hZ2VyOjpEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oZXZlbnRUeXBl
LCBuZXR3b3JrSW5mb3JtYXRpb24tPmRhdGEoKSkpOwogfQogCi12b2lkIFdlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAot
dm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5KQogewotICAgIGRp
ZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJOZXR3
b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Ojpz
dGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJO
ZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5l
dHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMmM0ZWY3YzY3ZWJjNTE1OTg4ZWVmOTBiZGQz
YTYzY2VmOWM1YzM2ZS4uNDU2MDEwYzI1YjcxMGQxMTEzMWJkZjBjNDY2YWUyY2UyMzUyNjA0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmgKQEAgLTU4LDEyICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdlZjRhMjQ5
ZmU3NzRmMmY4ODU5NzIwZjc1ZjVlYjQ3MDIwMTMwMWIuLjgxODY5NWFkZWVjMDYxNWU3MjEwZGI4
MGJiZjdjZTE3NWY5ZTA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC03MjIsMTEgKzcyMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHbwogICAg
IHNob3VsZEdvVG9CYWNrRm9yd2FyZEl0ZW0gPSBpdGVtICYmIG1fbG9hZGVyQ2xpZW50LnNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRoaXMsIGl0ZW0pOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX3Byb2Nlc3Mt
PndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQpAQCAtMTgzNSwxNiArMTgzNSwxNiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdyb3VwKCktPnBy
ZWZlcmVuY2VzKCktPnN0b3JlKCkpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01QcmludE9w
ZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSA6IDApOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5PigpKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eT4oKSkgewotICAgICAgICBt
X2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2RyYXdpbmdBcmVh
LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAt
MTg1Miw0MCArMTg1Miw0MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJ
bnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yUHJveHkqIGluc3Bl
Y3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNl
aXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3RvclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVsbFNjcmVlbk1hbmFn
ZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVjZWl2ZVdlYlBhZ2VQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5zcGVjdG9y
UHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0b3IgPSB0
aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMs
IHJlcGx5KTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNXZWJJbnNwZWN0
b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCkt
PmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
cmVwbHkpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlU3luY01lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRG8gc29tZXRoaW5nIHdp
dGggcmVwbHkuCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJQ
YWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQpAQCAtMTk5MCwxMSArMTk5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoUHJvZ3Jlc3MoKQogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXZvaWQg
V2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVySW50ZW50
U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNlcnZpY2VJbmZv
JiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAwNSwxMyArMjAw
NSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50UwogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBjbGVhclBlbmRpbmdBUElSZXF1ZXN0VVJMKCk7CiAKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDI0LDExICsyMDI0
LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBA
IC0yMDQwLDExICsyMDQwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAgICAgbV9sb2Fk
ZXJDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMDY4LDExICsyMDY4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVh
ckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0
cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIg
bWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1
bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSht
ZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMTAsMTEgKzIxMTAsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKICAgICBtX2xvYWRlckNsaWVudC5kaWRDb21taXRM
b2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJE
YXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNl
ckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNz
YWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMjMsMTEgKzIxMjMsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTM4
LDExICsyMTM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMTU1LDExICsyMTU1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
YWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSh0aGlzLCBm
cmFtZSwgZXJyb3IsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1cmwsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxNzIsMTEgKzIxNzIsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRhdGEuZ2V0KCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjE4NywxMSArMjE4NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQog
ICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRpdGxlLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RM
YXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyMDAsMTEgKzIy
MDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWMKICAgICBtX2xvYWRlckNsaWVudC5kaWRG
aXJzdExheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjEzLDMxICsy
MjEzLDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlCiAgICAgbV9sb2FkZXJDbGllbnQuZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRh
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlvdXQodWludDMyX3Qg
bGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdl
RGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBp
ZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJD
bGllbnQuZGlkTGF5b3V0KHRoaXMsIHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9uZXM+KGxheW91
dE1pbGVzdG9uZXMpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vz
cy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KTsKQEAgLTIyNDgsMTEgKzIyNDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWUKICAgICBt
X2xvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJhbWUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjI2MSwxMSArMjI2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OgogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwg
dXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjI3
NCwxMSArMjI3NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndQogICAgIG1fbG9hZGVyQ2xp
ZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1
c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVy
KHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjg4LDExICsyMjg4LDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IElu
dGVudERhdGEmIGludGVudERhdGEsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBX
ZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3By
b2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1
cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CkBAIC0yMzE0LDExICsyMzE0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURp
ZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCiB9CiAKIC8vIFBv
bGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVp
bnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVp
bnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywg
aW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwg
Ym9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2
NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1f
cHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHBlbmRpbmdBUElSZXF1ZXN0VVJMKCkp
CkBAIC0yMzUyLDExICsyMzUyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wCiAgICAgfQog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBv
cGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9kaWZpZXJzLCBp
bnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMzcyLDExICsyMzcyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMy
X3Qgb3BhCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBib29s
JiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3Qm
IGRvd25sb2FkSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50
NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAgICBSZWZQdHI8
QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1l
c3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1l
bnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVz
c2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yNDA0LDExICsyNDA0LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkp
OwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAgICAgCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjQxOSwxMSArMjQxOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAvLyBGb3Jt
Q2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0
RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3Im
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAg
V2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9w
cm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtMjU2MiwxMSArMjU2MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U3Rh
dHVzVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV91aUNsaWVudC5zZXRTdGF0dXNUZXh0
KHRoaXMsIHRleHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVp
bnQzMl90IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
SGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG9wYXF1ZU1v
ZGlmaWVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRy
PEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBt
ZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3Vt
ZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
c3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihvcGFxdWVNb2Rp
ZmllcnMpOwpAQCAtMzAxMiwxOSArMzAxMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGlkZVBv
cHVwTWVudSgpCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLXZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlvbiwgY29uc3Qg
V2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRJdGVtcywgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51KGNv
bnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEm
IGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4m
IHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJlc3VsdERhdGEs
IHByb3Bvc2VkSXRlbXMsIGFyZ3VtZW50cyk7CisgICAgaW50ZXJuYWxTaG93Q29udGV4dE1lbnUo
bWVudUxvY2F0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgcHJvcG9zZWRJdGVtcywgZGVjb2Rlcik7
CiAgICAgCiAgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2YgaW50ZXJuYWxTaG93Q29udGV4
dE1lbnUsIGFsd2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBpcyBoaWRk
ZW4gc28gaXQgc3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCksIG1fcGFnZUlE
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0
IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhp
dFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHBy
b3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRh
LCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRlbXMsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRUZXN0UmVz
dWx0RGF0YSA9IGhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IGVlZGU2Yjk2ZjgyOTUyNGRlZGMwMjI4ZGIxODA1MmI4NzE1ZmY5MTcu
Ljk1NTI4YWI3ZjlhYjI0MWFhMjdiZTBmMjdiMmQ1OGU4YjE5NWViYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbSk7Ci0gICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWlu
dDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAg
dm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNvbnN0OwogICAg
IFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpAQCAtNTkxLDggKzU5MSw4IEBAIHB1Ymxp
YzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBwcm9jZXNzRGlkQmVj
b21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVkV2hpbGVQcm9j
ZXNzVW5yZXNwb25zaXZlKCk7CkBAIC03NTIsNDkgKzc1Miw0OSBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKTsKICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhcmVudEZyYW1lSUQpOwogICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdlQ2FjaGUodWlu
dDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNhY2hlKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAgdm9pZCBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
UmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25zdCBTdHJp
bmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTGF5b3V0KHVpbnQz
Ml90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAg
IHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21S
ZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3QgbGF5b3V0
TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJh
bWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNz
KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmlu
aXNoUHJvZ3Jlc3MoKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2b2lkIGRpZFJl
Y2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlSW50ZW50Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotICAgIHZv
aWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
SW50ZW50U2VydmljZUluZm8mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IElu
dGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRpZgogICAg
IAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90
IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNlaXZlZFBvbGlj
eUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91
c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25U
eXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwg
dWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1
aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAgdm9pZCB1
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAotICAgIHZvaWQgd2ls
bFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgY29u
c3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJW
ZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKIAogICAgIC8vIFJlc291cmNlIGxvYWQgY2xpZW50CiAgICAgdm9pZCBk
aWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCByZXNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgcGFn
ZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpOwpAQCAtODEzLDcgKzgxMyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lkIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJI
aXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJz
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1
aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCB1
bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3BhcXVlUGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJMKTsKICAgICB2b2lkIHNldFRvb2xiYXJzQXJl
VmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7CiAgICAgdm9pZCBnZXRUb29sYmFyc0Fy
ZVZpc2libGUoYm9vbCYgdG9vbGJhcnNBcmVWaXNpYmxlKTsKQEAgLTkxMiw4ICs5MTIsOCBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29udGV4dCBNZW51
LgotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2
b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51
TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2Vi
Q29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxvY2F0aW9u
LCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGludGVy
bmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9jYXRpb24s
IGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1l
bnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAKICAgICAv
LyBTZWFyY2ggcG9wdXAgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBiODgzMjM4MzBhZGQyOTQxODc4YTdjYWFiODIwNzBkOTMxOTc4
NTFlLi4wZDZiNjIyZWY5ZmNlY2IzZmVhMGM3NWIyNjFjNDAxNDkxZDY1ZTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk1LDE3ICszOTUs
MTcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFNoYXJlZFdvcmtlclByb2Nlc3NDb25uZWN0
aW9uKGNvbnN0IFN0cmluZyYgLyogdXJsICovLAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cykpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAg
IHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlmICghcGFn
ZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTQxMywyMCArNDEzLDIwIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2Rl
cikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0
Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklE
KCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAg
aWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTQzNCwxMyArNDM0LDEzIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBhZ2VQcm94eS0+ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlT25Db25u
ZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKQotICAgICAgICBk
aWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAg
IGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxlTWVzc2FnZSk7CiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA3NTI0ZGYyZmY0NjAw
ZjhlYjVmNjg2YzBkMWU4NDk3ZDI1MTBlMGZhLi4wYTg1ODE2OWU5NDk4YTZmMDczOWEyMGY5NjQ1
ZTU1Mjc2YmQyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCkBAIC0xNjIsOCArMTYyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJUEM6OkNvbm5l
Y3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTcxLDcgKzE3MSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRpZEhhbmRs
ZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50
CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopIE9W
RVJSSURFOwpAQCAtMTkwLDkgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRVcGRhdGVI
aXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBT
dHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBn
ZW5lcmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2VP
bkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsK
IAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVyOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjMjk4MDc5N2E3ZTA4M2FiMzBmMzMyYjAyZGMxYjQ4NDg0
NWFlMDEuLjQxYjhmYmJkYjM1Y2I2MDRiMjVmMWZhMzExMzFjY2FlMzc3MmQ1M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5OjpjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIKICAg
ICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNz
YXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZvckFsbE9y
aWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDllNTliNjQxZjRjM2ZiZTgw
ZGE5YWRiMjYzNjgyNzBlZjNmYjkxMmUuLjFjNjIwNzA3Yjg0NDI2ZmRmZTg3Zjc0NTJmNjk0NmJj
MDRmNDc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0
aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmNwcAppbmRleCAwNTkwZjMwY2M1NzhjZjA1MjMxMTkyMmIxZmM5ZTljMTkwNGZiOTEzLi5iYjFm
OTZmNTI3MTE4MWFhYjg2ZjY2NTU5MzEzZDc0NDliYjBjMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgdm9p
ZCBXZWJWaWJyYXRpb25Qcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLVmlicmF0aW9u
UHJvdmlkZXIqIHByb3ZpZGVyKQogICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7
CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJWaWJyYXRpb25Qcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29k
ZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYlZp
YnJhdGlvblByb3h5Ojp2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRpbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IDY3NmQzYTQ5NzY3NDBj
N2M1MzdlZmIwZmYwZDg5MmU5OTczODUzMzQuLjVjNmRlMTdkNzIxMDRmYWQwNDQ2MGMxMGJlMzQx
ZWY5NTIxZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJy
YXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Q
cm94eS5oCkBAIC01NSwxMCArNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VS
ZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJyYXRpb25Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Q
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmlicmF0aW9u
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHZpYnJhdGUodWludDY0X3Qgdmli
cmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcAppbmRleCBlMmJmMzQyM2Q5ZDI1ODgyNDI0ZjNlNDIxNjZlZWIxOTUyYTgwZDc4Li44
MDQ5OGE1ZWE4YzYwODFhNDY4NTZiYzM4NjhiZTI3ZDhkNjZiOTI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllCiAgICAg
bV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQogCi12b2lkIFdlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9p
ZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3Ry
aW5nJiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3Nv
dXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2YTNkNmU4MjZjNTMwMmM5OGQw
ZWUwOTc1ZjY5NmJkMzY2MjcwOTc1Li5lNGI4Y2NlMzc1NDJhZGZhMTc1MTVkOWYxMWE4ZjI5NjM4
NzUyMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTU3LDggKzU3LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBX
ZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViU291cFJlcXVlc3RNYW5hZ2VyQ2xpZW50
IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHAKaW5kZXggOWMxYWQ4Nzk4NWQyZjdjYmQ3OTczMjJlNzYyYTBhMDljMTI0ZjdjOC4uMGJkZmIw
MTMyZTg4MDUyN2I1NGIzMTZlZTAzNGNkODRkNzM5ODk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpCiB7CiB9CiAK
LXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpnZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAppbmRleCAzOGQ0OGUxMTllZjI2MzhiMTBl
Njc3M2VhZTczMDUzN2Q5ZTIyZmJjLi4zMjU4NDY5YmE4NDhjNDA4MDFmN2NkZmEwNzRlNDUwMjQy
NzE1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaApA
QCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNsYXNzIENv
bm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgewog
cHVibGljOgogICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hhcmVkKCk7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygp
OwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CkBAIC01NSw3ICs1
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50
NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBh
Njg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1Li45Mzg3NDFkNjJkNzc5MjA4
NDZlNjQ2Y2Q3NTlkMGRlMjU4YjE2NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuY3BwCkBAIC01OCw5ICs1OCw5IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGlj
YXRpb25NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPmFk
ZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRoZW50aWNhdGlvbk1hbmFn
ZXIsIHRoaXMpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuaAppbmRleCA5M2FmZTQ0NmJiMDQwOTZjMDgxMTYzZWVhZDkzZGI4MmQwM2FkOWI1
Li4xNjcwOGNlNmJkNDU0YzQxMWFmNjYzOTBiNmVkM2RlY2VmMjJiNjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0ZToKICAgICBBdXRo
ZW50aWNhdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9Gb3JDaGFs
bGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBQbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXggMDRkZWM4NjQw
MDc1NTAxNTQyNWNhZmRjZDJjOWIxOTAzNWQxYjY4ZC4uMDg5MmYyMTc4YjkyZmJiM2U3OTkzOTFl
NzEzMGEyZWQ5NDZhYzAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9C
YXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBAIFdlYkJh
dHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYkJhdHRl
cnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6cmVnaXN0
ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCmluZGV4IDUwOTcxOGQ0MjFjN2RlMTEz
M2ZmZWMyY2ZlZTg1ODYxOThiZTQxYTEuLmJiZTRmNThhMjcxMGNlZjE4NDUxNzM3MjViMmVhZjY1
MTcwMjg2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9X
ZWJCYXR0ZXJ5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVy
eS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHVibGljOgogICAgIHZv
aWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAgICAgdm9pZCB1cGRhdGVCYXR0
ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmKTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJQcm9jZXNzKiBt
X3Byb2Nlc3M7CiAgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCmlu
ZGV4IDZmM2FmMWQxMDFlMTIxMDUxZTNlY2JlODBmMjIyY2M5ZTZjZTAwODUuLmU1MDAwZDRhYzQy
YjQ5ODcxNzQ5ZTEwODI2YTY1MmE4ZTA1YmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTQ2LDkgKzQ2
LDkgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQg
V2ViQ29va2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6Z2V0
SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4IGNm
NzhhMTE0ZTBlNTJlZWQ4YjVkODkyNTYwNjIzNzFiNjhkMGNkYzEuLmFhYzA0MTkyYmY3OTZmMTAy
MWEzODExODgxZmYzNThhNmY4NjljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CiAg
ICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlRGVjb2RlcjsKICAgICBjbGFz
cyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViQ29va2llTWFuYWdl
ciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJlZCgpOwogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaENvb2tpZXNEaWRD
aGFuZ2UoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29va2ll
UGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qgc3Rv
cmFnZVR5cGUpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAppbmRleCAxYzdhNzhkYjAyYzczNzBjNGI1MWY4NjIyOTdmNGZhNDcx
MzQ5NTE4Li4wMzIzNjk4Y2ViNTBmYzQyODViY2FjODg1ZjgzZTAwZmNjZGJlYWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc4LDkgKzc4LDkgQEAgV2ViQ29yZTo6RWxlbWVudCog
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBtX2VsZW1lbnQuZ2V0
KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViRnVsbFNj
cmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAogYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKGJvb2wg
d2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCAzOTZhNGFkYjE5MmVmMDY2
M2NiMTUwN2I4NGZiNDJhNzc3ZWJkNGU4Li44YzA0OTIyNWI4YzEzNTZiYmVmNjBhMGQ1OTQxNjA3
ZDA2N2FhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzIsOCArMzIsOCBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1l
bnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKICAgICB2
aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCk7CiAgICAg
dm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKQEAgLTcz
LDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVsbFNjcmVlbihi
b29sKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViQ29yZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1f
ZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyYWVjNWE3Mjdk
NTA5MTE0YWYyOThkZWNlZTI4N2QwNWZlNzJkYjBkLi4wMWRiMzE1YWFkNjYxNDk1YmY1Mzc4NWU1
N2M3MTg4Y2Y1MTYwMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC00OSw5
ICs0OSw5IEBAIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdlcigp
CiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShXZWJQ
YWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggOGExNDA1ZDE0ODMzZTg3
Yzk2NThlZDIzNzNmOTU3OGE0ZTA0NTY0ZC4uNmUyNDU1NzBkN2FjOWNmMGY3ZTU5YWIwYTkzM2Jk
MDgxNzVkZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC01NSwxMCArNTUsMTAg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsK
IAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2NhdGlv
bk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxU
b0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFz
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYklj
b25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAyMTdmMWU4MGFiMWY5YTZlYzhiZTM2NWY0NDJjMzRh
M2ZmNzUxYWExLi5hMDQ3OTNlYjRjZDI1NDRhZmZjZTgyYmJlMWZiMmYyZTY3OTViNTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0
YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJh
c2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xNDMsOSArMTQzLDkgQEAgdm9pZCBXZWJJ
Y29uRGF0YWJhc2VQcm94eTo6dXJsSW1wb3J0RmluaXNoZWQoKQogewogfQogCi12b2lkIFdlYklj
b25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFz
ZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29u
RGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCAyMDk2YWJhNGNkMzExZjkyNWY3
NGVkMmYxMDhlOTMyYTY1OTU1NjkxLi5jZDlmNzE3NmU1YzYzMjdmYzA4NWQ1NzIyZGM5MjQ2ZWE0
YTRjZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFz
ZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTM2LDggKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNs
YXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNzAsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNpb24sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5nJiwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPik7CiAgICAgICAgIAotICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJ
Y29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgLy8gQ2Fs
bGJhY2tzIGZyb20gdGhlIFVJUHJvY2VzcwogICAgIHZvaWQgdXJsSW1wb3J0RmluaXNoZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9L
ZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTEzN2Jh
ZTIxMDA0OTUzZWYzYTk3MTA5ZmQ4ODEwZjljZTY0OGNhMi4uMmZkZjRlZDVhOGJhMjY2ZTYxMTc2
MjEzZTFjMTViODZiZGJiOWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHN0YXRp
YyB2b2lkIGtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJzKFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiBpZGVudGlmaWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXIuaAppbmRleCBlOGRlMGFkYzJhYzZjMDdjZjkzNzJkNWJkZjc5MWFhYmVkZjFmNDgyLi43
MmE0NGMxMjZlMjA4MDIzODAyM2UwMmEyNzE2M2RjZjBlOWY3MTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2Uv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCkBAIC0zMSw5ICszMSw5IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBB
cmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNzYWdl
SUQ7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CitjbGFzcyBNZXNz
YWdlSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VUcmFja2Vy
Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlciYg
c2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT3JpZ2lucygpIE9WRVJSSURF
OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9vcmlnaW5zUmVx
dWVzdENhbGxiYWNrSURzOwogICAgIGJvb2wgbV9vcmlnaW5zTG9hZGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5jcHAKaW5kZXggNGE1ZDdmOTVlNzUxZTgyOTY0NjE2OGRjMjljMDZjYWM4NzBhNjQ3
OC4uYjA5ZDY0MTRkMmEyMmI0M2IxN2UxNDFiYmM1ODY0MjE3MTgzY2RkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFD
YWNoZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpX
ZWJNZWRpYUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpnZXRI
b3N0bmFtZXNXaXRoTWVkaWFDYWNoZSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1h
bmFnZXIuaAppbmRleCA5MDliZTk3YmExYzdjMjlhOTI4ODBjNGQyODAwYTk0YWQ5NjEzOTA0Li5m
YzYyYmU0YWQyM2YwNWIzMzhkMDI4YmQzNzcyMmE1MWY1MjQyZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1h
bmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAg
IGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXIg
ewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNZWRpYUNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CiAK
LSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJNZWRpYUNhY2hlTWFu
YWdlcigpOwpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDYWNoZUZv
ckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFsbEhvc3Ru
YW1lcygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5jcHAKaW5kZXggOGMxMDM3MWZkNjgwNjAyYzBmODQ1ZTQ4MTMzNmRkNjI0
NzUwYTA1MC4uNjMxZjAyMjM0ZWMwYmY4ZDA4MmE0OWUyYTNiYmM2NTY2MTkxZjkxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5m
b01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8v
V2ViTmV0d29ya0luZm9NYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJOZXR3b3JrSW5m
b01hbmFnZXI6On5XZWJOZXR3b3JrSW5mb01hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk5ldHdv
cmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAg
ZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTmV0d29y
a0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5oCmluZGV4IGQzZGFiODQ0YzhiYWQyMTc4OWY4MzA5NTRmY2EzODhhNmViYmZk
MTUuLmZjYjhkMDI3MGM1ZmNmNzY0M2FlNGQ0ODUxMjIyNmExNDg1M2VhNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3
b3JrSW5mb01hbmFnZXIuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
YmFuZHdpZHRoKFdlYlBhZ2UqKSBjb25zdDsKICAgICBib29sIG1ldGVyZWQoV2ViUGFnZSopIGNv
bnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJOZXR3b3JrSW5mbzo6RGF0YSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2I2ODkxMmZlOWFhYmI0
MmMyZTc4Y2FmNDg2NDllYTUwNzA0MjNlMC4uZmI0MmJjYzQzMjMzMmUyMTYwNTdmODk1YTIzZTIz
NTc2NmFmZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtNjMs
OSArNjMsOSBAQCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFuYWdl
cigpCiB7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKaW5kZXggNmE3MGZjNjBjODU1Y2QzMTk2MTAwOTk2YjM1YmJhNmVjNGQ3
ZjM4My4uYTNmNjU4ZjI0NTYwZmFlODE3Yzk5MjUwNTJmOTI4YmM1OGE0YTUyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVu
dERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIFRo
aXMgY2FsbGJhY2sgY29tZXMgZnJvbSBXZWJDb3JlLCBub3QgbWVzc2FnZWQgZnJvbSB0aGUgVUkg
cHJvY2Vzcy4KICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKiwgV2ViUGFnZSopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywg
Ym9vbCBhbGxvd2VkKTsKIAogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZvciBwZXJtaXNz
aW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KQEAgLTc0LDcgKzc0LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
CiAgICAgdm9pZCBkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ICAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkYjdlNWUxZjNiMGFhYzMzY2MyZmZiMjkz
ZTRlN2MyYjhhZjE4NTUuLmZjZmIyNDlhZGVmZjQ3MmZjNDdkNjcyMmMxNGZmZGJjNTE5M2RkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODcsMjggKzg3LDI4IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpblByb3h5KFBsdWdpblByb3h5KiBwbHVn
aW4pCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXItPnJlbW92ZVBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEFTU0VSVChhcmd1
bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUKGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIAotICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9IG1fcGx1Z2lucy5nZXQoYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9
IG1fcGx1Z2lucy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogICAgIGlmICghcGx1Z2lu
UHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlUGx1
Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBw
bHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVj
dE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcg
KzExNiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0CiAgICAgaWYgKCFwbHVnaW5Qcm94eSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2lu
UHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cisg
ICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IGI5YmY4MWM3MTY2ZDY3MDlhYzA4OGNmODRjN2RiOTlhNTI1MDA5
ZDUuLjJkYzJjY2E1OWZmZDdkMDMwNjNiMTA2YjlkYTljY2MzNWRlYWNlNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0ZToKICAgICBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBjb25zdCBTdHJp
bmcmIHBsdWdpblBhdGgsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbik7CiAK
ICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYp
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKICAgICB2b2lkIHNldEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmKTsKIAogICAgIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oCmluZGV4IDAyZmExYWI1NzcxOWI5ODg3ZDI3YTZiZDIzNTRiNTQxZWU3ODQxMWUuLjgxMDRh
ZjIwNDNkZGZkOTgzMDg1NzcxZmFhODQ3MTU4ZDlmOWYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC02MCw4ICs2MCw4IEBAIHB1
YmxpYzoKICAgICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
bHVnaW5JbnN0YW5jZUlEOyB9CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAKICAgICBib29sIGlzQmVpbmdBc3luY2hyb25vdXNseUluaXRpYWxp
emVkKCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nT25Bc3luY2hyb25vdXNJbml0aWFsaXphdGlv
bjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAppbmRleCBlODg2OTYz
NzEyODU5NWVkOGI5MTJhMjU3YzNkMjRhMGFjZGE0YjNkLi42ODEwZjBhYmRiOWRiZWJhOTlmYTNl
MWU5YjBmMDZjZTQ1YWUwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAKQEAgLTU2LDkgKzU2LDkgQEAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6On5XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLmgKaW5kZXggMDE3MjM4OTRjZjUzZmFjZWQ5NjI1ZmNiNGVjZTI2Y2E0NmZjNDhjMC4u
ODNhMWNjMzA0NTNjZjI2ZTNlZTg5MGE3ODVhYThlOGRhMGYxMzRkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVz
c2FnZUlEOwogfQogCkBAIC00NywxNCArNDcsMTQgQEAgY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
KCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBnZXRDYWNo
ZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNhY2hl
Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9DbGVhcikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAKaW5kZXggNWUxNTJlZTk4YWFkMDYwY2Q3YTcwYzFlM2U3YjBjMTQ4NDVm
YWE4MC4uZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1ZGZhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
LmNwcApAQCAtNDksMzQgKzQ5LDMzIEBAIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6V2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6CiAKIC8vIFdl
YkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1lc3Nh
Z2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogYXJndW1lbnRFbmNvZGVyLCBBUElPYmpl
Y3QqIG1lc3NhZ2VCb2R5KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1l
c3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0KiBt
ZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworICAgIGVuY29kZXIuZW5jb2RlKElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VC
b2R5KQorYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiAvLyBDb3JlSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKLQotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNl
aXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vz
cy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQogewotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IGNkZmY0YWMyN2YwYjkzNDlj
NTlhZGRiZjI5YjAyODk0MGUwMzQxODYuLmFmNTkxMTE1YjkxNzhkZTUwODRlY2M3NjRlMzg2MjU5
MjdlZjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDEsMTQgKzQxLDE0IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCi0g
ICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9iamVjdD4m
KSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSAgT1ZFUlJJREU7
CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NUb1Jl
Y2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
YmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDUzZDM4OTVjZGY0N2JkYjk3NmM0MjA5YWE1
MDczYzRkMDIzYjM1MzkuLjA1Yjc1YTFjYmY3NzNkZTIyNzg4ZjY3Y2RlY2Y0YjllODdhOTg4MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgV2ViRGF0
YWJhc2VNYW5hZ2VyOjp+V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJEYXRh
YmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6
Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oCmluZGV4IDYwZmZiMTBjZGFjNjcwMTE4ZDI5Y2VjNGIxNzE4NWQzOTc0
ZDJlY2EuLmFkYjRkNGI4M2E4ZDNhOWMxYzg5MzZiMTk1MmNmMmY1MWRlMmI4NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEYXRhYmFzZU1hbmFnZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29k
ZXI7CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNz
YWdlSUQ7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0YWJh
c2VNYW5hZ2VyJiBzaGFyZWQoKTsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dm9pZCBzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVu
c2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3Q7CiAKIHB1YmxpYzoKQEAgLTU4LDcgKzU4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZU1hbmFnZXIoKTsKIAogICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICB2b2lkIGdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwogICAgIHZvaWQgZ2V0RGF0YWJhc2VPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKaW5kZXggZGJlYmQzODZhNWU1N2M4OWYyOWYyMTNjZDljYTA1ZTkzYTY2M2Yy
OS4uNzc2YThkOTdlMTMxNzNmYzVlZmZiOTUwMDM1YWM5YjBjNzBmODhjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC03OSw3ICs3
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAg
ICAgdmlydHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSog
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzeW5j
TGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggY2E0NzYxNzll
MWRhNzk3NGFkZDUwMWI2ZDI5MWJiODQxMzRmZTVkMy4uYzhlOTZjM2MwZTMzMTJkZjc5YjRjYWZi
NDc1NGNlYmZkYmU4YjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVy
OwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAg
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxEcmF3aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWEoKTsKICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKQEAgLTk0LDcgKzk0
LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRp
bmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuY3BwCmluZGV4IGQ2Y2VmMTQyZjdiNmRmZjBkZTUxODU3NjMzMzVkOGIzNTI3MDMzOWUu
LjcxOTE2OTA5ZDM5MTAxZmYwZmQwMGZmZjhjOWJlNDJhZTJlY2M5ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBA
IC03MjcsMTAgKzcyNywxMCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotdm9p
ZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIERyYXdpbmdB
cmVhSW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0
KQotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRv
ck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggOGJhYmUw
MTA4NzgyNDk4NjdiMTY1M2MzYjQ1ZmM0ZTUzZTQ4NzFmNi4uYmE5Mzk1NGY5YjdkOWIwZGFlNTMz
ZTYzMmQ1NzQ0OTM5NDUyOTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cAppbmRleCBhNTMyMjA2MTBjN2NmZDdkYzNiNWNjYjJkMGEwZjViNmIzMzcxODQzLi4yYTdlN2Y0
OTMwZWM5MWFmZGQzY2RkYzFmMDhiM2E0YzAzODlkYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNzIsMTAg
KzcyLDEwIEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9yUGFn
ZShXZWJQYWdlKiB3ZWJQYWdlKQogfQogI2VuZGlmCiAKLXZvaWQgRXZlbnREaXNwYXRjaGVyOjpk
aWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKK3ZvaWQgRXZl
bnREaXNwYXRjaGVyOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0V2ZW50RGlz
cGF0Y2hlcj4oKSkgewotICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlk
SGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVFdmVudERpc3BhdGNoZXJNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlk
SGFuZGxlTWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggYWE3
MGE5M2U1NWNmNzZlMWIzMjI2MWJmYTM0NjcyODgwNWFkMTM0MC4uYTRmOWI5OWNlMjEzYTg1YWQw
MGY5NDJiNTNkOWFlNTAxMmYzMDIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBi
b29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBk
aWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRS
ZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwog
ICAgIHZvaWQgd2hlZWxFdmVudChDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgcGFnZUlE
LCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3YXJk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRy
ZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IDk1ZGM4ZTljYTRiN2E2ZjVkZmFiMjM0YjQxYmM4YjEwY2U0YmJmN2UuLjY4ZDE1
ODIzNmE2ZDViNDc2OWY3YmNmNjQ3MDE3NGZiMzdkMWYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtMzEsOCArMzEsOCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVj
b2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3RGb3JMYXllcihpbnQgLyogbGF5
ZXJJRCAqLywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBy
ZW5kZXJOZXh0RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVz
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJU
cmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmgKaW5kZXggYzA0MTU0NmE4NmNiMzVkZmE1OTA0NjZkMDliNWJhODc2ZDU2ZjY1OC4u
MmYxMDQ3NTg5ODcxYzczNDgxNmZiYTM0MGFkNTAxYmQ1MGExNDgzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtNTMsNyArNTMs
NyBAQCBwdWJsaWM6CiAgICAgV2ViUGFnZSogaW5zcGVjdG9yUGFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5zcGVjdG9yUGFnZTsgfQogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdl
Ykluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNw
ZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3Rv
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3IgbWVz
c2FnZXMKICAgICB2b2lkIHNob3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBlODJlNjVjMDY2OTRlMTIxOWNmNzY3NDBlMDM1OTJjZDQy
OGFjM2RlLi4xMGQwMzNkNjNjYzNlMzVhOTBkMzM2OGQ5NDk4OTFlNThiNjA0ZDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjE1LDE0
ICsxMjE1LDE0IEBAIHZvaWQgV2ViUGFnZTo6c2V0R2FwQmV0d2VlblBhZ2VzKGRvdWJsZSBnYXAp
CiAgICAgbV9wYWdlLT5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pOwogfQogCi12b2lkIFdlYlBh
Z2U6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCit2b2lkIFdlYlBhZ2U6
OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgSW5qZWN0ZWRCdW5kbGUqIGlu
amVjdGVkQnVuZGxlID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKTsKICAg
ICBpZiAoIWluamVjdGVkQnVuZGxlKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9k
eSkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1l
c3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI3
NjMsMTggKzI3NjMsMTggQEAgYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJlRm9jdXNl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzRm9jdXNl
ZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CiB9CiAKLXZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWE+KCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2lu
Z0FyZWEpCi0gICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIG1f
ZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NMYXllclRyZWVDb29yZGluYXRvcj4o
KSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJlYSkKLSAgICAgICAgICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2
ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0yNzgyLDI0ICsyNzgyLDI0
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkluc3BlY3Rvcj4oKSkgewog
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkK
LSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgaW5zcGVjdG9yLT5k
aWRSZWNlaXZlV2ViSW5zcGVjdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJG
dWxsU2NyZWVuTWFuYWdlcj4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
IGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIGRp
ZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeyAgIAotICAgIGRpZFJlY2VpdmVTeW5jV2Vi
UGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAg
ICBkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KICAgICAKIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRM
aXN0KiBXZWJQYWdlOjpiYWNrRm9yd2FyZExpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGE1ZjJiYmI3NWYzMmM1MWRhMTRhZmMwNjk5ZGRm
NzEzMjEzZGQwZC4uN2RiNjVlOTllMzQzZTMwOTYwZGQxYzVhMjI0MWIyYmQ3NTljNjY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzksOCAr
MjM5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pOwogCiAgICAgLy8gLS0g
Q2FsbGVkIGZyb20gV2ViUHJvY2Vzcy4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgLy8gLS0gSW5qZWN0ZWRC
dW5kbGUgbWV0aG9kcwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMzIwLDcgKzMyMCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2VMZW5ndGgoZG91YmxlKTsKICAgICB2b2lkIHNl
dEdhcEJldHdlZW5QYWdlcyhkb3VibGUpOwogCi0gICAgdm9pZCBwb3N0SW5qZWN0ZWRCdW5kbGVN
ZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgcG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgYm9vbCBkcmF3c0Jh
Y2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQmFja2dyb3VuZDsgfQogICAgIGJvb2wg
ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kOyB9CkBAIC02MTIsOCArNjEyLDggQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogI2lmICFQTEFURk9STShNQUMpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGlu
dGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHku
Y3BwCmluZGV4IGY1OWZiYmFmNWY4MzYxZjgxYTJkYWZlYzdmNjc1OTQ5NzJhYzI4NzMuLjM0MGM1
NDMwZWY0ZDEwZWY4Zjc3NGVjMzcyMjlmZTMwOWRjNmIxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcApAQCAt
NDcsOSArNDcsOSBAQCBXZWJQYWdlR3JvdXBQcm94eTo6fldlYlBhZ2VHcm91cFByb3h5KCkKIHsK
IH0KICAgICAKLXZvaWQgV2ViUGFnZUdyb3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlR3JvdXBQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogICAgIAogV2Vi
UGFnZUdyb3VwUHJveHk6OldlYlBhZ2VHcm91cFByb3h5KGNvbnN0IFdlYlBhZ2VHcm91cERhdGEm
IGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUdyb3VwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlR3JvdXBQcm94eS5oCmluZGV4IGNiYjA3OTQyMTNkMmQxZmExZTk4MmYwYWM1Zjg0YzA5YzVj
MmFlZDguLjAwZGE2NGIyNDIyNDc5YWFmNTljNWQ1ZDk0MTVkN2NjODIxNmI1OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01NCwx
NCArNTQsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXNpYmxlVG9JbmplY3RlZEJ1bmRsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YS52aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsgfQogICAgIGJv
b2wgaXNWaXNpYmxlVG9IaXN0b3J5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnZpc2li
bGVUb0hpc3RvcnlDbGllbnQ7IH0KICAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJp
dmF0ZToKICAgICBXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQYWdlR3JvdXBEYXRhJik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAgICAgCiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJDb3JlOjpVc2VyU3R5
bGVTaGVldCYpOwogICAgIHZvaWQgYWRkVXNlclNjcmlwdChjb25zdCBXZWJDb3JlOjpVc2VyU2Ny
aXB0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA0M2Vk
MTZiMWEzOWM5OGQ3NWViZmU1NDE5NjBiZWE0ZWJlZjk5ZjRkLi4zZmQyMzRlYTgxZmU0NDMwNjAy
ZGM4ZDM5Y2M2Yjg5NzIzN2JjYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTE4NywxNyArMTg3LDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIFJ1CiAg
ICAgc3RhcnRSYW5kb21DcmFzaFRocmVhZElmUmVxdWVzdGVkKCk7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAotICAgIHBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycywgYXJndW1lbnRzKTsKKyAgICBwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGRlY29kZXIpOwogCiAgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyKCkuaW5zdGFsbCgpOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gaW5q
ZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwogICAgIEluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGguaXNFbXB0eSgpKSB7
CkBAIC02MDYsOSArNjA2LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUoKQogICAgIG1f
cnVuTG9vcC0+c3RvcCgpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAgICB1
aW50NjRfdCBwYWdlSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRf
dCBwYWdlSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAg
ICAgICAgcmV0dXJuOwogICAgIApAQCAtNjE2LDgzICs2MTYsODMgQEAgdm9pZCBXZWJQcm9jZXNz
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzoKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYWdl
LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMs
IHJlcGx5KTsKKyAgICBwYWdlLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlByb2Nlc3M+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdl
YkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVkKCku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXI+KCkpIHsK
LSAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkRhdGFiYXNlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEJB
VFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9iYXR0ZXJ5TWFuYWdlci5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1f
YmF0dGVyeU1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE5F
VFdPUktfSU5GTykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
Yk5ldHdvcmtJbmZvTWFuYWdlcj4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlci5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlUHJv
eHk+KCkpIHsKLSAgICAgICAgbV9pY29uRGF0YWJhc2VQcm94eS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1faWNvbkRhdGFiYXNl
UHJveHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4oKSkgewotICAgICAgICBXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1lZGlhQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAg
IFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
OjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCkpIHsKLSAgICAgICAg
bV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjZW5kaWYKICAgICAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpz
aGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFNPVVApCiAgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXI+KCkpIHsK
LSAgICAgICAgbV9zb3VwUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX3NvdXBSZXF1ZXN0TWFuYWdlci5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJQYWdlR3JvdXBQcm94eT4oKSkgewotICAgICAgICB1aW50NjRf
dCBwYWdlR3JvdXBJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAgICAgICB1aW50
NjRfdCBwYWdlR3JvdXBJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgICAgICBpZiAo
IXBhZ2VHcm91cElEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTcwMCwxMCAr
NzAwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIGlmICghcGFnZUdyb3Vw
UHJveHkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBwYWdlR3JvdXBQ
cm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBwYWdlR3JvdXBQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICB9CiAKLSAgICB1aW50NjRfdCBwYWdlSUQgPSBhcmd1
bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRfdCBwYWdlSUQgPSBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuOwogICAgIApA
QCAtNzExLDcgKzcxMSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFnZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCkBAIC03NDMsMTAgKzc0MywxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZQogICAgIC8vIHdlJ2xsIGxldCBpdCBzbGlkZS4KIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxl
TWVzc2FnZSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25X
b3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRp
ZEhhbmRsZU1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
ZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRpZEhh
bmRsZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlY2NiYjhkNjBlN2E0NWQ5NGNiNGJmMmE2ZTUwODIw
NzJlM2U0OTY5Li5iNDJhMGVjMTZkN2RkZjIyNTFhNTc4YTg0NWQxOWI2MWRlMjNkMTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTkxLDggKzE5MSw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogCi0gICAgdm9pZCBpbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHBsYXRmb3JtVGVy
bWluYXRlKCk7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3Ry
aW5nJikgY29uc3Q7CkBAIC0yNjEsOCArMjYxLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3M7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCkBAIC0yNzAsMTEgKzI3MCwxMSBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIGJv
b2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKIAog
ICAgIHZvaWQgZGlkR2V0UGx1Z2lucyhDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggZmNjNDJlOTY0
NDM5MjhlN2Y5OGZiNWE0MGQ2NDAwOGUzZjU4NTM0ZS4uMTA3NjZkMmNjM2RjMzg4OGVhNTEzY2E4
NTBkYTg5ZWE4NDQ0ZTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFjLm1tCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGlkIE5TQXBwbGljYXRp
b25BY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudChOU0FwcGxpY2F0aW9uKiwgU0VMKQogICAg
IHJldHVybiBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxpdHlG
b2N1c2VkVUlFbGVtZW50XTsKIH0KICAgICAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVS
ZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAK
aW5kZXggY2ZkMmMxYTJkNjE3NjYyN2E2ZDNhM2M3YjEwMGI1YWI4Zjk0NzU4MC4uOTJjYWViZTI5
NmFhZjc0YzdjOWNkNWFiYmVkZjE3N2QyN2ZlYWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyB2
b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2FsbGJhY2sodm9pZCopCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyID0gbmV3IFF0
TmV0d29ya0FjY2Vzc01hbmFnZXIodGhpcyk7CiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmNvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkuaXNOdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291
cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggNTFlZjNhN2IyYzI3YjE3YjgyMTNiN2Y5ZjY2M2U0
ZjljZDMwNDA5MC4uYmRiYWY3ZDQzNDU5ZmY5MDdkOTk4YzJiNTljZjg3NzJjYmExOTA5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3Bw
CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKHZvaWQqKQog
ICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6dXNlclByZWZlcnJlZExh
bmd1YWdlcygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAgIGlmICghcGFyYW1ldGVycy5s
YW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdl
KHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNzQwNmQ2ODVlMWFj
MmE1N2VjMDJkZmQ3MzkzNzU1MDkwM2JlZDM1Ny4uYjliMzU4N2Y0ZTNhNzg5NGEwOWViYzE5OWI5
MDU2MGZlOGEyMDY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgV2ViU291
cFJlcXVlc3RNYW5hZ2VyOjp+V2ViU291cFJlcXVlc3RNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBX
ZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdl
YlNvdXBSZXF1ZXN0TWFuYWdlcjo6cmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hl
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmgKaW5kZXggNzY1NDQ2NjUzZDU1NGIxMTFlYWVkN2Q4Y2RmYzZmNzc2OTE2
NWNmMC4uZDM0Y2M0MDdiYjdjMjE0ZmE3MDRkMzNlMzI3ZWNjODFiNjIzZDhkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFn
ZXIuaApAQCAtNTAsMTAgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmQoR1NpbXBsZUFz
eW5jUmVzdWx0KiwgR0NhbmNlbGxhYmxlKik7CiAgICAgR0lucHV0U3RyZWFtKiBmaW5pc2goR1Np
bXBsZUFzeW5jUmVzdWx0Kik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0TWFuYWdlck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hl
bWUpOwogICAgIHZvaWQgZGlkSGFuZGxlVVJJUmVxdWVzdChjb25zdCBDb3JlSVBDOjpEYXRhUmVm
ZXJlbmNlJiwgdWludDY0X3QgY29udGVudExlbmd0aCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
dWludDY0X3QgcmVxdWVzdElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4v
V2ViUHJvY2Vzc1dpbi5jcHAKaW5kZXggZjBjMTk1NWE1N2VmMGI3Mzc2OTMzZjBkYTAxYWRkZDY0
ODc1MzQ0ZS4uMjVkYmMzNmM0OTliZjM5NDY5MzRiNGUxMmU2NTYyMzBhZDliYjE5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAKQEAgLTEz
Myw3ICsxMzMsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hl
cyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIgY2FjaGVzVG9DbGVhcgogI2VuZGlmIC8vIFVTRShDRk5F
VFdPUkspCiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBzZXRTaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzKHBhcmFtZXRlcnMuc2hvdWxkUGFpbnROYXRpdmVDb250cm9scyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169462</attachid>
            <date>2012-10-18 13:47:24 -0700</date>
            <delta_ts>2012-10-18 14:02:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018134610.patch</filename>
            <type>text/plain</type>
            <size>228169</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uMTM4ZjRjODg3
MGI5OTgwZjY1MDc3YWI4MmVmOTViMjRmNzk1YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4MzdkZjQ1NzVk
M2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYyNWNiMmYwZjkx
NzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZmU1
MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcyZGE2MjgwOWEw
ZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQogCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUyOTdkMmMxMjIy
ZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5NzcxNjQ3NWVl
M2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdlMTQ3NzVhNDYz
ODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApA
QCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0KIH0KIAotdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hv
dyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5NDU0MGFlLi5k
NTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0NDkxOTkzMDBk
ZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJkYzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3BsdWdpblByb2Nl
c3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxMzJiYjc0
YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBhODAxNDBmZDhm
ODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVh
clNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0MmRmODhjYzU5
My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9T
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVtb3ZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1ZmVkMmZhNTk3
MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBiNjI2NmUyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5j
aCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIApAQCAtNjgs
NyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7CiAKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRm
YzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIwNzM1OWQxNDky
ZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4
LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxi
YWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUwY2RjNmNkODli
Y2UuLmE2NDJjMTk4YjZkNjM4ODY0NjhkOGRjZmRmYzM4NDc4MWFlYTJhYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaApAQCAtNzMsOCArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250
ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJy
YXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjQyYjdiMDIxNzQ2NTZlYzZjZDNlMjYwN2ZkOGNkM2U3
YmY0ZjFjMC4uZTFiNzU1YTIwZWE5ODA2ZWJmY2MxODc0ZTZhNjEwNzQyOGRmNTdkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNw
cApAQCAtNTksOSArNTksOSBAQCB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxp
emVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZQogICAgIG1fcHJvdmlk
ZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7CiB9CiAKLXZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eTo6c3RhcnRVcGRhdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhdHRlcnlNYW5hZ2VyUHJveHkuaAppbmRleCA2NWM2NjE0ZGFkZTkxODJjYjgzZGRmNTM3Y2Ni
Y2Y5OGFmZGIyNDRlLi44M2UyMTI4YWM2OWQ0NzRiOTAwM2I2ZDY5ODA0MTg3ODQxMDBkNTZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmgKQEAgLTU5LDEwICs1OSwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0dGVyeU1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0
dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgc3RhcnRVcGRh
dGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODZiYTkx
YzA4NDJiMDljOTkyYWEzZTY3NmVhNTRjODIyOTRhZjhkNC4uZmY0M2IzNDExNjU4Y2NlMjYyNWRj
OTcwMmY0Y2FjZjdlMjJmYTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTIsMTQgKzUyLDE0IEBAIFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5KiBwcm9jZXNzLCBDCiAKIC8vIFdlYkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjplbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGFyZ3VtZW50RW5jb2RlciwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBBUElPYmplY3QqIG1lc3NhZ2VCb2R5KQogewotICAgIGFyZ3Vt
ZW50RW5jb2Rlci0+ZW5jb2RlKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJv
ZHkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VFbmNvZGVyKG1l
c3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIFJl
ZlB0cjxBUElPYmplY3Q+JiBtZXNzYWdlQm9keSkKK2Jvb2wgV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkpCiB7Ci0gICAgaWYgKCFhcmd1bWVudERl
Y29kZXItPmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBt
X3Byb2Nlc3MpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKFdlYkNvbnRleHRVc2VyTWVzc2Fn
ZURlY29kZXIobWVzc2FnZUJvZHksIG1fcHJvY2VzcykpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY3LDE5ICs2NywxOSBAQCBib29sIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndQogCiAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKIAotdm9pZCBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb25uZWN0
aW9uPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb25uZWN0
aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4m
IHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBtX3Byb2Nlc3MtPmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggMTYwODEzMjQ3ZDBmMGY5YTczN2Q4YTUyYzQ3Njc3YWZhMzkyOGZhNy4uMGIx
ZmMwOWY4OTcxMjJjMzlkMDI5NTA5OTYzNzY5MTU5ZmY2YmIzZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00Miwx
MiArNDIsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlBy
b2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1
bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwgQVBJT2JqZWN0KikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFJlZlB0cjxBUElPYmplY3Q+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSU9iamVjdCop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJSSURFOwogCiAgICAgLy8g
Q29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggODFlN2JjNDc3ZDRiNmY4
MTFlYjQ0MDc0M2U1Y2VhYzMyMTQ4NzQyMS4uOGE0NGI3ODE0NGQyZjFlY2RmYWFlOTJiMGEzZGQy
MTdkM2VhZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NzgyLDI2ICs3ODIsMjYgQEAgdm9pZCBXZWJDb250ZXh0OjphZGRNZXNzYWdlUmVjZWl2ZXIoQ29y
ZUlQQzo6TWVzc2FnZUNsYXNzIG1lc3NhZ2VDbGFzcywgQ29yZUlQQzoKICAgICBtX21lc3NhZ2VS
ZWNlaXZlck1hcC5hZGRNZXNzYWdlUmVjZWl2ZXIobWVzc2FnZUNsYXNzLCBtZXNzYWdlUmVjZWl2
ZXIpOwogfQogCi1ib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlcikKK2Jvb2wgV2ViQ29udGV4dDo6ZGlz
cGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNl
aXZlck1hcC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAotYm9vbCBXZWJDb250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYgcmVwbHkpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICByZXR1cm4gbV9tZXNzYWdlUmVj
ZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHkpOworICAgIHJldHVybiBtX21lc3NhZ2VSZWNlaXZlck1hcC5kaXNw
YXRjaFN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7
Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5Pigp
KSB7Ci0gICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9h
ZHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAgICAgICAgIGRv
d25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9h
ZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKS5nZXQoKSkK
KyAgICAgICAgICAgIGRvd25sb2FkUHJveHktPmRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICAKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwog
ICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwogICAgICAgICAgICAgUmVmUHRyPEFQSU9i
amVjdD4gbWVzc2FnZUJvZHk7CiAgICAgICAgICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBXZWJQcm9jZXNzUHJveHk6OmZyb21Db25u
ZWN0aW9uKGNvbm5lY3Rpb24pKTsKLSAgICAgICAgICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQorICAgICAgICAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNv
ZGVyKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OwpAQCAtODI0LDE2ICs4MjQsMTYgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJDb250ZXh0TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc0Rvd25sb2FkUHJveHk+KCkpIHsKLSAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRv
d25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkp
LmdldCgpKQotICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9h
ZFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwor
ICAgICAgICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdl
dChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBkb3dubG9hZFBy
b3h5LT5kaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtODQ0LDEyICs4NDQsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzoKICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlTmFtZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3Nh
Z2VCb2R5OwogICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2RlcihtZXNzYWdlQm9keSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25u
ZWN0aW9uKSk7Ci0gICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91
dChtZXNzYWdlTmFtZSwgbWVzc2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoQ29yZUlQQzo6T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gcmV0
dXJuRGF0YTsKICAgICAgICAgICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpLCByZXR1cm5EYXRhKTsK
LSAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNz
YWdlRW5jb2RlcihyZXR1cm5EYXRhLmdldCgpKSkpOworICAgICAgICAgICAgcmVwbHlFbmNvZGVy
LT5lbmNvZGUoQ29yZUlQQzo6SW4oV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihyZXR1cm5E
YXRhLmdldCgpKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgV2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggOWU4ZDgwNTRhYzczZTYxOTYyMTA1ZWRkMzMzYTBhNTEw
NzVjYTg1OS4uNTFjOTcwMGQ0MTBjYjIyODA3NzdhMmU2YTlhMTUyNmFjNDllNTNlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgYWxsQ29udGV4dHMoKTsKIAog
ICAgIHZvaWQgYWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcywgQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyKik7Ci0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29y
ZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1
bmRsZUNsaWVudChjb25zdCBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogICAgIHZv
aWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNs
aWVudCopOwpAQCAtMTUxLDggKzE1MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFZpc2l0ZWRM
aW5rSGFzaChXZWJDb3JlOjpMaW5rSGFzaCk7CiAKICAgICAvLyBNZXNzYWdlUmVjZWl2ZXIuCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwp
OwogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQpAQCAtMjgzLDggKzI4Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRHZXRXZWJDb3Jl
U3RhdGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgICAgICAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQ29udGV4dE1lc3Nh
Z2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNXZWJDb250ZXh0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0
KTsKICAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcAppbmRleCBhYTMzY2U2MmZkMzY0ZDRk
ZDk0MmIyYjk5Yzg1MWRjZWNlOWU1OGZjLi44Y2IxNDM3YzRjY2IxOGM2NDAwNDQzMGMwNGNlNGRm
MGQ5YmJmOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2ll
TWFuYWdlclByb3h5LmNwcApAQCAtNjQsOSArNjQsOSBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQ
cm94eTo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0Nvb2tpZU1hbmFnZXJDbGllbnQqIGNsaWVu
dAogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJDb29raWVN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1h
bmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoUGFzc1JlZlB0cjxBcnJheUNhbGxi
YWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaAppbmRleCA2OTgxYzBkMDYyZmM1ZjU2MWIwYmVhMWFlNjUyOTIyMTYx
Y2UwZGUyLi5kYWJhNDY2Y2Q4YWEzYmE3YWJiNzAzYzliODIzNTVhYTQ5OGJlYWM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC04
OCw4ICs4OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb29raWVzRGlkQ2hhbmdlKCk7CiAgICAg
CiAgICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZvaWQgcGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tp
ZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRh
dGFiYXNlTWFuYWdlclByb3h5LmNwcAppbmRleCBhM2ZkYTY1NTZjMTQyZTQ3MzM3NWVjZTU2MDhl
OGY2NTg4NDI2NjIwLi5iNTBhNGExNDQxYjYyNzNiMTEyZGUyMjMzYzI3OTEwNjQ4MTQ0ODk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTIzMiw5ICsyMzIsOSBAQCB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpkaWRNb2RpZnlEYXRhYmFzZShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsCiAgICAg
bV9jbGllbnQuZGlkTW9kaWZ5RGF0YWJhc2UodGhpcywgb3JpZ2luLmdldCgpLCBkYXRhYmFzZUlk
ZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCmluZGV4IGI3
MjRhODQ3ZGNjY2Q4ZmZiN2IxNzA5N2QwZjU5ZTUwZWViNDRlYjkuLjdjNjk1ZmNiYmEwZDYwNGI1
ZDQ0MjEwZGRlYzhmZmU2NDA4OGQ4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oCkBAIC04MSw4ICs4MSw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAg
ICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldERhdGFiYXNlc0J5T3JpZ2luKGNvbnN0IFZl
Y3RvcjxPcmlnaW5BbmREYXRhYmFzZXM+JiBvcmlnaW5BbmREYXRhYmFzZXMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4IGZlNzFlY2FhNGEwZTc2ZjgxNGQ4NzJjMWQyZmZm
YTcxYWE4Zjk3YmYuLmU0OWFkODZlZmNlNzA3OGNjYTA2YTFiYjM2MDY5Y2IwNTYyN2RlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFdlYlZpZXcoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3KQogICAgIG1fd2ViVmll
dyA9IHdlYlZpZXc7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkp
Cit2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRpZFJlY2VpdmVTeW5jV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
IAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5oCmluZGV4IGI4M2FmNTQ3NjdjNmYxMDU5N2MyZjcxZWQ0MjY1ZWU1NjEzYjFlMDguLjA0
YWVkOWEzZjM0NWZkOTQ1NzE1OGI2YWIxODRkMGJmMmQ3OWIwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtNzks
OCArNzksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Z1bGxTY3JlZW4oKTsKICAgICB2b2lkIGNs
b3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgd2lsbEVudGVy
RnVsbFNjcmVlbigpOwogICAgIHZvaWQgZGlkRW50ZXJGdWxsU2NyZWVuKCk7CkBAIC0xMDEsOCAr
MTAxLDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBQbGF0Zm9y
bVdlYlZpZXcqIG1fd2ViVmlldzsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZTIwZDFlZWJkNzJjZTU3MTM3M2JmYWI0YjQzZmM5
ODY0MmYwODliOC4uM2NmZTg2YmMzMjY2YWM4NTU1MGNjM2NiNzg2ZGUzM2U0MjBiN2I1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkuY3BwCkBAIC03Myw5ICs3Myw5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OnByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29uc3QgU3RyaW5nCiAg
ICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6RGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oZXJyb3JNZXNzYWdlKSk7CiB9CiAK
LXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdGFy
dFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggOGY0MTAyYjYxZjI5YmU5ZWEyNjdiZWZkZGM0Mjk4
Y2QzOWFkN2YwOS4uODFmYzE5ZThlMjUxNTJiZDgxNDVlZGEyNTdmYTUyODFkZTVkMTAwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQQzo6TWVzc2Fn
ZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAog
ICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwCmluZGV4IDhiNzFlODll
MDQwMjAyMDhhOWUwODA4YjQ1ZGRmZWYxOGNkNTQ5MzEuLjQwMmQyZDM5ZjhkMWRhM2UwNjJkMWU4
OTRkYWQ3MmIwYWYzYzE3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29u
RGF0YWJhc2UuY3BwCkBAIC0yODQsMTQgKzI4NCwxNCBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6
ZGlkRmluaXNoVVJMSW1wb3J0KCkKICAgICBtX3VybEltcG9ydENvbXBsZXRlZCA9IHRydWU7CiB9
CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIpCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJJY29uRGF0YWJhc2VNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAog
dm9pZCBXZWJJY29uRGF0YWJhc2U6Om5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaAppbmRleCA4NjQzYTQ4MWQxZDg2NDQ5NzJhZTNkYWViNGMxZjg2YzM5MmYwZGU2Li4wOTQ3
ZWMwMGI0OTlhMDFhMWUwYzBhYTIyZDcwNzBjZTQ1NjE1ZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKIAogICAgIC8vIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJh
c2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRh
YmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7
CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4
IDY5MjJiN2Q3MzUxMWFhNjFmOTI0M2VjNjEwOWVjMzJiMTk2YzllYmQuLjg4NTc1YTNjYzQyZTQ1
ZDdhMmRjOWUzN2Q1NGVlODk3M2VjZDZmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMjUsOCArMTI1LDggQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSW5zcGVjdG9yUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogI2Vu
ZGlmCiAKICAgICBzdGF0aWMgYm9vbCBpc0luc3BlY3RvclBhZ2UoV2ViUGFnZVByb3h5Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDQ1NGQwODJmNTZhMDMyMmI2ODcxMDgxZTQxZjAxMWUy
NzZhY2VlMmIuLmRlZmI4Y2NlOTFmNDUzYWU0MDYyMWIyYzI3NDhiNTNmNjkxOGJhYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuY3BwCkBAIC01OCw5ICs1OCw5IEBAIGJvb2wgV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
ICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHk6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBw
cnBDYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaAppbmRleCA5YzYzMTQyZjY5ZTRlM2UyMDRmOWQy
MTU4YWNmZTU3NDkxNzljOGE1Li5iYTM5MmJiMmVjZjc1MzgzNzJjYTk2ODNiMjg4ZDA2ZDE4NjYx
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJDb250ZXh0
KiBtX3dlYkNvbnRleHQ7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJh
Y2s+ID4gbV9hcnJheUNhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCA4MWNmOThmNTZjMTczZjQ0
NDFjM2IwMzhiODM3Y2RlOTRiNDQwNmVkLi4xNTU3MzhiMDk2Mjk5MTRmODhjMDMwOWQ2MzU4NWUx
OGFjMDljNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5IEBAIGJvb2wgV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eTo6c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0
CiAgICAgcmV0dXJuIG1fYXJyYXlDYWxsYmFja3MuaXNFbXB0eSgpOwogfQogCi12b2lkIFdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhNZWRp
YUNhY2hlKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRl
eCA0OGU4OGUwZmM0OWNmZGQyZjk0ZTJkODU0OGViZmU2ZDE1ODAzZDI4Li40NTMxYTcyMTA4Nzg5
OGQ1MDQ0MzQwNjBmY2QyMjdmMjI0ZGYxOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDggKzY1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hlKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQqIG1fd2Vi
Q29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBt
X2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFhMzk5YmMwZjhhNGUwMmY4MTZj
NjgxZmUxNjVkOTViZTMyZjM2My4uOWE3NzJlY2ZhMzBkODBlMGQ1YzBjODY5ZDcyOGM5MTJjZmRi
ZjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkuY3BwCkBAIC02OCwxNCArNjgsMTQgQEAgdm9pZCBXZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oY29u
c3QgQXRvbWkKICAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2Vi
TmV0d29ya0luZm9NYW5hZ2VyOjpEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oZXZlbnRUeXBl
LCBuZXR3b3JrSW5mb3JtYXRpb24tPmRhdGEoKSkpOwogfQogCi12b2lkIFdlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAot
dm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsK
LSAgICBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5j
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eTo6c3RhcnRVcGRhdGluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oCmluZGV4IDJjNGVmN2M2N2ViYzUxNTk4OGVl
ZjkwYmRkM2E2M2NlZjljNWMzNmUuLjQ1NjAxMGMyNWI3MTBkMTExMzFiZGYwYzQ2NmFlMmNlMjM1
MjYwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eS5oCkBAIC01OCwxMiArNTgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJ
UEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxl
bWVudGVkIGluIGdlbmVyYXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVu
Y29kZXI+Jik7CiAKICAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2b2lkIHN0b3BVcGRh
dGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3
ZWY0YTI0OWZlNzc0ZjJmODg1OTcyMGY3NWY1ZWI0NzAyMDEzMDFiLi44MTg2OTVhZGVlYzA2MTVl
NzIxMGRiODBiYmY3Y2UxNzVmOWUwNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNzIyLDExICs3MjIsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCYgc2hvdWxk
R28KICAgICBzaG91bGRHb1RvQmFja0ZvcndhcmRJdGVtID0gaXRlbSAmJiBtX2xvYWRlckNsaWVu
dC5zaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh0aGlzLCBpdGVtKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6
OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gbV9w
cm9jZXNzLT53ZWJCYWNrRm9yd2FyZEl0ZW0oaXRlbUlEKSkKQEAgLTE4MzUsMTYgKzE4MzUsMTYg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHBhZ2VHcm91
cCgpLT5wcmVmZXJlbmNlcygpLT5zdG9yZSgpKSwgbV9wYWdlSUQsIG1faXNQZXJmb3JtaW5nRE9N
UHJpbnRPcGVyYXRpb24gPyBDb3JlSVBDOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkgOiAwKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
RHJhd2luZ0FyZWFQcm94eT4oKSkgewotICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZl
RHJhd2luZ0FyZWFQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFQcm94eU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk+KCkpIHsKLSAg
ICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9kcmF3
aW5nQXJlYS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKQEAgLTE4NTIsNDAgKzE4NTIsNDAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViSW5zcGVjdG9yUHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5
KiBpbnNwZWN0b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+
ZGlkUmVjZWl2ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJJbnNwZWN0
b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eT4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGZ1bGxTY3Jl
ZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIGRpZFJlY2VpdmVX
ZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYklu
c3BlY3RvclByb3h5PigpKSB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3JQcm94eSogaW5zcGVj
dG9yID0gdGhpcy0+aW5zcGVjdG9yKCkpCi0gICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2Vp
dmVTeW5jV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzLCByZXBseSk7CisgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVTeW5jV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFu
YWdlcigpLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKKyAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAgICAgLy8gRklYTUU6IERvIHNvbWV0
aGluZyB3aXRoIHJlcGx5LgotICAgIGRpZFJlY2VpdmVTeW5jV2ViUGFnZVByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVT
eW5jV2ViUGFnZVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJl
cGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUo
dWludDY0X3QgZnJhbWVJRCkKQEAgLTE5OTAsMTEgKzE5OTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaFByb2dyZXNzKCkKIH0KIAogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcp
Ci12b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50U2VydmljZUluZm8mIHNlcnZpY2VJbmZvLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3Rl
ckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2
aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0g
ICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIwMDUs
MTMgKzIwMDUsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVySW50ZW50U2VydmljZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFMKIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCgpOwog
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAyNCwx
MSArMjAyNCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbgogICAgIG1fbG9hZGVyQ2xpZW50
LmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdl
dCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXJsLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9j
ZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMjA0MCwxMSArMjA0MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZgogICAg
IG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwpAQCAtMjA2OCwxMSArMjA2OCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Y2xlYXJMb2FkRGVwZW5kZW50Q2FsbGJhY2tzKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uLCBjb25zdCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFt
ZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlm
ICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTEwLDExICsy
MTEwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwCiAgICAgbV9sb2FkZXJDbGllbnQuZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0
PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNv
ZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTIzLDExICsyMTIzLDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb3JlSVBDOjpBcmd1CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjEzOCwxMSArMjEzOCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjbwogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0
KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRh
dGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2Vy
RGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3Nh
Z2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwpAQCAtMjE1NSwxMSArMjE1NSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcgogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUo
dGhpcywgZnJhbWUsIGVycm9yLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYg
dXJsLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0cmluZyYg
dXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMTcyLDExICsyMTcyLDExIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDMyX3QKICAgICBtX2xvYWRlckNsaWVudC5kaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yRnJhbWUodGhpcywgZnJhbWUsIHN0YXRpY19jYXN0PFNhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlPihvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSksIHVzZXJEYXRh
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKTsKQEAgLTIxODcsMTEgKzIxODcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dGl0bGUKICAgICBtX2xvYWRlckNsaWVudC5kaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh0aGlzLCB0
aXRsZSwgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjAw
LDExICsyMjAwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjIx
MywzMSArMjIxMywzMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZQogICAgIG1fbG9hZGVyQ2xp
ZW50LmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1
c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVz
ZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIo
dXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZSht
ZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dCh0aGlzLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRMYXlvdXQodWludDMyX3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTGF5b3V0KHVp
bnQzMl90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2Vy
TWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7
Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bG9hZGVyQ2xpZW50LmRpZExheW91dCh0aGlzLCBzdGF0aWNfY2FzdDxMYXlvdXRNaWxlc3RvbmVz
PihsYXlvdXRNaWxlc3RvbmVzKSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAg
ICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBt
X3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29k
ZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CkBAIC0yMjQ4LDExICsyMjQ4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRS
ZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1l
CiAgICAgbV9sb2FkZXJDbGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHRoaXMsIGZy
YW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdl
YkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJv
Y2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKQEAgLTIyNjEsMTEgKzIyNjEsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjoKICAg
ICBtX2xvYWRlckNsaWVudC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodGhpcywg
ZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5n
ZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
QEAgLTIyNzQsMTEgKzIyNzQsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3UKICAgICBtX2xv
YWRlckNsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNl
ckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9i
amVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+
ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjI4OCwxMSArMjI4OCwxMSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZAogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYgaW50ZW50RGF0YSwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjMxNCwxMSArMjMxNCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQogfQog
CiAvLyBQb2xpY3lDbGllbnQKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25U
eXBlLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24s
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0
aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBvcGFxdWVNb2Rp
ZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9u
LCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAocmVxdWVzdC51cmwoKSAhPSBwZW5kaW5nQVBJUmVxdWVz
dFVSTCgpKQpAQCAtMjM1MiwxMSArMjM1MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcAog
ICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWlu
dDMyX3Qgb3BhcXVlTW9kaWZpZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlm
aWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4g
dXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2Rl
KG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVy
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjM3MiwxMSArMjM3MiwxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG9wYQogICAgICAgICBsaXN0ZW5lci0+dXNlKCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVp
bnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlv
biwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjQwNCwxMSArMjQw
NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwbwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29u
dGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNz
LmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKQEAgLTI0MTksMTEgKzI0MTksMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAog
Ly8gRm9ybUNsaWVudAogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgY29uc3QgU3RyaW5nUGFpclZlY3Rv
ciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWly
VmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKTsKQEAgLTI1NjIsMTEgKzI1NjIsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogICAgIG1fdWlDbGllbnQuc2V0U3Rh
dHVzVGV4dCh0aGlzLCB0ZXh0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHRE
YXRhLCB1aW50MzJfdCBvcGFxdWVNb2RpZmllcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBv
cGFxdWVNb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkV2ZW50OjpN
b2RpZmllcnMgbW9kaWZpZXJzID0gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4ob3Bh
cXVlTW9kaWZpZXJzKTsKQEAgLTMwMTIsMTkgKzMwMTIsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmhpZGVQb3B1cE1lbnUoKQogfQogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi12b2lkIFdl
YlBhZ2VQcm94eTo6c2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24s
IGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb250ZXh0
TWVudShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRl
bURhdGE+JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBpbnRlcm5hbFNob3dDb250ZXh0TWVudShtZW51TG9jYXRpb24sIGhpdFRlc3RSZXN1
bHREYXRhLCBwcm9wb3NlZEl0ZW1zLCBhcmd1bWVudHMpOworICAgIGludGVybmFsU2hvd0NvbnRl
eHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJlc3VsdERhdGEsIHByb3Bvc2VkSXRlbXMsIGRl
Y29kZXIpOwogICAgIAogICAgIC8vIE5vIG1hdHRlciB0aGUgcmVzdWx0IG9mIGludGVybmFsU2hv
d0NvbnRleHRNZW51LCBhbHdheXMgbm90aWZ5IHRoZSBXZWJQcm9jZXNzIHRoYXQgdGhlIG1lbnUg
aXMgaGlkZGVuIHNvIGl0IHN0YXJ0cyBoYW5kbGluZyBtb3VzZSBldmVudHMgYWdhaW4uCiAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb250ZXh0TWVudUhpZGRlbigpLCBt
X3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVu
dShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpE
YXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURh
dGE+JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
K3ZvaWQgV2ViUGFnZVByb3h5OjppbnRlcm5hbFNob3dDb250ZXh0TWVudShjb25zdCBJbnRQb2lu
dCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVz
dWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBwcm9wb3NlZEl0
ZW1zLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3Nh
Z2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRz
LT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2FjdGl2ZUNvbnRleHRNZW51SGl0
VGVzdFJlc3VsdERhdGEgPSBoaXRUZXN0UmVzdWx0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBlZWRlNmI5NmY4Mjk1MjRkZWRjMDIyOGRiMTgwNTJiODcx
NWZmOTE3Li45NTUyOGFiN2Y5YWIyNDFhYTI3YmUwZjI3YjJkNThlOGIxOTVlYmFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMDQsNyArMzA0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgdm9pZCBkaWRD
aGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBW
ZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiogcmVtb3ZlZEl0ZW1zKTsKICAgICB2b2lkIHNob3Vs
ZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCYgc2hvdWxkR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW0pOwotICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
OworICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFN0cmluZyBhY3RpdmVVUkwoKSBjb25z
dDsKICAgICBTdHJpbmcgcHJvdmlzaW9uYWxVUkwoKSBjb25zdDsKQEAgLTU5MSw4ICs1OTEsOCBA
QCBwdWJsaWM6CiAjZW5kaWYKICNlbmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBP
d25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQgcHJvY2Vz
c0RpZEJlY29tZVVucmVzcG9uc2l2ZSgpOwogICAgIHZvaWQgaW50ZXJhY3Rpb25PY2N1cnJlZFdo
aWxlUHJvY2Vzc1VucmVzcG9uc2l2ZSgpOwpAQCAtNzUyLDQ5ICs3NTIsNDkgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBhZ2VQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViUGFnZVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0
X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBwYXJlbnRGcmFtZUlEKTsKICAgICB2b2lkIGRpZFNhdmVGcmFtZVRvUGFnZUNh
Y2hlKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUmVzdG9yZUZyYW1lRnJvbVBhZ2VD
YWNoZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYXJlbnRGcmFtZUlEKTsKIAotICAgIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbVJlcHJlc2VudGF0aW9uLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29u
c3QgU3RyaW5nJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZExheW91
dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2b2lkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAg
dm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIGNvbnN0IFN0
cmluZyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dChDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkTGF5b3V0KHVpbnQzMl90
IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBmcmFtZURpZEJl
Y29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wpOwogICAgIHZvaWQgZGlkU3RhcnRQ
cm9ncmVzcygpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lk
IGRpZEZpbmlzaFByb2dyZXNzKCk7CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgdm9p
ZCBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50
RGF0YSYsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZUlu
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudERhdGEmLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykK
LSAgICB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IEludGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cisg
ICAgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAjZW5k
aWYKICAgICAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0
X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywg
aW50MzJfdCBtb3VzZUJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgcmVjZWl2
ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9h
ZElEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBm
cmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQz
Ml90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYgcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7Ci0gICAgdm9pZCB1bmFibGVUb0ltcGxl
bWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpOworICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZp
Z2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCYg
cG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlv
blR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgbGlz
dGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiByZWNlaXZlZFBvbGljeUFj
dGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOworICAg
IHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKLSAgICB2
b2lkIHdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1l
SUQsIGNvbnN0IFN0cmluZ1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlz
dGVuZXJJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCB3aWxsU3VibWl0
Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJp
bmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBSZXNvdXJjZSBsb2FkIGNsaWVudAogICAg
IHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIHBhZ2VJc1Byb3Zpc2lvbmFsbHlMb2FkaW5nKTsKQEAgLTgxMyw3ICs4MTMsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmIHJlc3VsdCk7CiAgICAgdm9pZCBzaG91
bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KGJvb2wmIHJlc3VsdCk7CiAgICAgdm9pZCBzZXRTdGF0dXNU
ZXh0KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG1v
ZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0
RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHVpbnQzMl90IG9wYXF1ZVBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiBwbHVnaW5zUGFnZVVSTCk7CiAgICAgdm9pZCBzZXRUb29s
YmFyc0FyZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpOwogICAgIHZvaWQgZ2V0VG9v
bGJhcnNBcmVWaXNpYmxlKGJvb2wmIHRvb2xiYXJzQXJlVmlzaWJsZSk7CkBAIC05MTIsOCArOTEy
LDggQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIC8vIENvbnRl
eHQgTWVudS4KLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVj
dG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBpbnRlcm5hbFNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVj
dG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1lbnVM
b2NhdGlvbiwgY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYsIGNvbnN0IFZlY3RvcjxXZWJD
b250ZXh0TWVudUl0ZW1EYXRhPiYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9p
ZCBpbnRlcm5hbFNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxv
Y2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRpZgog
CiAgICAgLy8gU2VhcmNoIHBvcHVwIHJlc3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjg4MzIzODMwYWRkMjk0MTg3OGE3Y2FhYjgyMDcw
ZDkzMTk3ODUxZS4uMGQ2YjYyMmVmOWZjZWNiM2ZlYTBjNzViMjYxYzQwMTQ5MWQ2NWUyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM5NSwx
NyArMzk1LDE3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRTaGFyZWRXb3JrZXJQcm9jZXNz
Q29ubmVjdGlvbihjb25zdCBTdHJpbmcmIC8qIHVybCAqLywKICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpKQorICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkg
ewotICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICB1aW50NjRfdCBwYWdlSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQo
KTsKKyAgICB1aW50NjRfdCBwYWdlSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICBp
ZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC00MTMsMjAgKzQxMywyMCBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQwogICAgIGlmICghcGFnZVByb3h5KQogICAgICAgICByZXR1cm47
CiAgICAgCi0gICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cyk7CisgICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBs
eUVuY29kZXIpCiB7Ci0gICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpKQorICAgIGlmIChtX2NvbnRleHQt
PmRpc3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBs
eUVuY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkgewotICAgICAgICBkaWRSZWNlaXZl
U3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIHJlcGx5KTsKKyAgICAgICAgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGlu
YXRpb25JRCgpOworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgp
OwogICAgIGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm47CiAgICAgCkBAIC00MzQsMTMgKzQz
NCwxMyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcgogICAgIGlmICghcGFnZVByb3h5KQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgcGFnZVByb3h5LT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBwYWdlUHJveHkt
PmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJl
cGx5RW5jb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKIHsKICAgICBpZiAo
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eT4oKSkKLSAg
ICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIGRpZEhhbmRsZU1lc3NhZ2UpOwor
ICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
fQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiop
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNzUyNGRm
MmZmNDYwMGY4ZWI1ZjY4NmMwZDFlODQ5N2QyNTEwZTBmYS4uMGE4NTgxNjllOTQ5OGE2ZjA3Mzlh
MjBmOTY0NWU1NTI3NmJkMjJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMTYyLDggKzE2Miw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBDb3JlSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2VzczsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25Q
dHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQpOwogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTE3MSw3ICsxNzEsNyBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVu
dAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBk
aWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIFJlc3BvbnNpdmVuZXNzVGltZXI6
OkNsaWVudAogICAgIHZvaWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGlt
ZXIqKSBPVkVSUklERTsKQEAgLTE5MCw5ICsxOTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
VXBkYXRlSGlzdG9yeVRpdGxlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpOwogCiAgICAgLy8gSW1wbGVtZW50
ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2
b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOwotICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBD
OjpNZXNzYWdlRW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVz
c2FnZSk7CiAKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmNwcAppbmRleCAzYzI5ODA3OTdhN2UwODNhYjMwZjMzMmIwMmRj
MWI0ODQ4NDVhZTAxLi40MWI4ZmJiZGIzNWNiNjA0YjI1ZjFmYTMxMTMxY2NhZTM3NzJkNTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwCkBAIC05NSw5ICs5NSw5IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eTo6Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoUmVzb3VyY2VDYWNoZXNUb0Ns
ZWFyCiAgICAgbV93ZWJDb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXNSZWxhdW5jaGluZ1RoZW1J
Zk5lY2Vzc2FyeShNZXNzYWdlczo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OkNsZWFyQ2FjaGVG
b3JBbGxPcmlnaW5zKGNhY2hlc1RvQ2xlYXIpKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
Ci0gICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRleCA5ZTU5YjY0MWY0
YzNmYmU4MGRhOWFkYjI2MzY4MjcwZWYzZmI5MTJlLi4xYzYyMDcwN2I4NDQyNmZkZmU4N2Y3NDUy
ZjY5NDZiYzA0ZjQ3NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDggKzY1LDggQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAog
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwog
CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZEdldENhY2hlT3JpZ2lucyhj
b25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlZpYnJhdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRp
b25Qcm94eS5jcHAKaW5kZXggMDU5MGYzMGNjNTc4Y2YwNTIzMTE5MjJiMWZjOWU5YzE5MDRmYjkx
My4uYmIxZjk2ZjUyNzExODFhYWI4NmY2NjU1OTMxM2Q3NDQ5YmIwYzM2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCkBAIC01Nyw5ICs1Nyw5
IEBAIHZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS1Zp
YnJhdGlvblByb3ZpZGVyKiBwcm92aWRlcikKICAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJv
dmlkZXIpOwogfQogCi12b2lkIFdlYlZpYnJhdGlvblByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViVmlicmF0
aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJWaWJyYXRpb25Qcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJWaWJyYXRp
b25Qcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9p
ZCBXZWJWaWJyYXRpb25Qcm94eTo6dmlicmF0ZSh1aW50NjRfdCB2aWJyYXRpb25UaW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaAppbmRleCA2NzZkM2E0
OTc2NzQwYzdjNTM3ZWZiMGZmMGQ4OTJlOTk3Mzg1MzM0Li41YzZkZTE3ZDcyMTA0ZmFkMDQ0NjBj
MTBiZTM0MWVmOTUyMWUxM2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVmlicmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmli
cmF0aW9uUHJveHkuaApAQCAtNTUsMTAgKzU1LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICAvLyBDb3JlSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViVmli
cmF0aW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViVmli
cmF0aW9uUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlZp
YnJhdGlvblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCB2aWJyYXRlKHVpbnQ2
NF90IHZpYnJhdGlvblRpbWUpOwogICAgIHZvaWQgY2FuY2VsVmlicmF0aW9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggZTJiZjM0MjNkOWQyNTg4MjQyNGYzZTQyMTY2ZWViMTk1MmE4
MGQ3OC4uODA0OThhNWVhOGM2MDgxYTQ2ODU2YmMzODY4YmUyN2Q4ZDY2YjkyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtNTEsOSArNTEsOSBAQCB2b2lkIFdlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLU291cFJlcXVlc3RNYW5hZ2VyQ2xp
ZQogICAgIG1fY2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKIH0KIAotdm9pZCBXZWJTb3VwUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVl
c3RNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlZ2lzdGVyVVJJU2NoZW1lKGNv
bnN0IFN0cmluZyYgc2NoZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggNmEzZDZlODI2YzUz
MDJjOThkMGVlMDk3NWY2OTZiZDM2NjI3MDk3NS4uZTRiOGNjZTM3NTQyYWRmYTE3NTE1ZDlmMTFh
OGYyOTYzODc1MjIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAv
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC01Nyw4ICs1Nyw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9
CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwog
CiAgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OwogICAgIFdlYlNvdXBSZXF1ZXN0TWFuYWdl
ckNsaWVudCBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwCmluZGV4IDljMWFkODc5ODVkMmY3Y2JkNzk3MzIyZTc2MmEwYTA5YzEyNGY3Yzgu
LjBiZGZiMDEzMmU4ODA1MjdiNTRiMzE2ZWUwMzRjZDg0ZDczOTg5NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcApAQCAtNDksOSArNDksOSBAQCBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoKQog
ewogfQogCi12b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
cjo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKaW5kZXggMzhkNDhlMTE5ZWYy
NjM4YjEwZTY3NzNlYWU3MzA1MzdkOWUyMmZiYy4uMzI1ODQ2OWJhODQ4YzQwODAxZjdjZGZhMDc0
ZTQ1MDI0MjcxNWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmgKQEAgLTMwLDkgKzMwLDkgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLSAgICBj
bGFzcyBDb25uZWN0aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKK2NsYXNzIENvbm5lY3Rpb247
CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VJRDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXImIHNo
YXJlZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRlbGV0ZUFsbEVu
dHJpZXMoKTsKICAgICB2b2lkIHNldEFwcENhY2hlTWF4aW11bVNpemUodWludDY0X3QpOwpAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
bnModWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAK
aW5kZXggYTY4NThhYzI4ZDU5ZGNlNjI4NWQ2YzM2YTc3ZGI0N2U3NjdhMmUwNS4uOTM4NzQxZDYy
ZDc3OTIwODQ2ZTY0NmNkNzU5ZDBkZTI1OGIxNjZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcApAQCAtNTgsOSArNTgsOSBAQCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OkF1
dGhlbnRpY2F0aW9uTWFuYWdlcigpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlv
bigpLT5hZGRNZXNzYWdlUmVjZWl2ZXIoQ29yZUlQQzo6TWVzc2FnZUNsYXNzQXV0aGVudGljYXRp
b25NYW5hZ2VyLCB0aGlzKTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgKaW5kZXggOTNhZmU0NDZiYjA0MDk2YzA4MTE2M2VlYWQ5M2RiODJk
MDNhZDliNS4uMTY3MDhjZTZiZDQ1NGM0MTFhZjY2MzkwYjZlZDNkZWNlZjIyYjY2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC02Myw4ICs2Myw4IEBAIHByaXZhdGU6CiAg
ICAgQXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZF
UlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAKICAgICBib29sIHRyeVVzZVBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
Rm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29u
c3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCmluZGV4IDA0
ZGVjODY0MDA3NTUwMTU0MjVjYWZkY2QyYzliMTkwMzVkMWI2OGQuLjA4OTJmMjE3OGI5MmZiYjNl
Nzk5MzkxZTcxMzBhMmVkOTQ2YWMwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBA
QCBXZWJCYXR0ZXJ5TWFuYWdlcjo6fldlYkJhdHRlcnlNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBX
ZWJCYXR0ZXJ5TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6
OnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaAppbmRleCA1MDk3MThkNDIx
YzdkZTExMzNmZmVjMmNmZWU4NTg2MTk4YmU0MWExLi5iYmU0ZjU4YTI3MTBjZWYxODQ1MTczNzI1
YjJlYWY2NTE3MDI4NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Jh
dHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaApAQCAtNTgsMTEgKzU4LDExIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgY29uc3QgV2ViQmF0dGVyeVN0YXR1czo6RGF0YSYpOwogICAgIHZvaWQgdXBk
YXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViUHJv
Y2VzcyogbV9wcm9jZXNzOwogICAgIEhhc2hTZXQ8V2ViUGFnZSo+IG1fcGFnZVNldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
LmNwcAppbmRleCA2ZjNhZjFkMTAxZTEyMTA1MWUzZWNiZTgwZjIyMmNjOWU2Y2UwMDg1Li5lNTAw
MGQ0YWM0MmI0OTg3MTc0OWUxMDgyNmE2NTJhOGUwNWJmODhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCkBAIC00
Niw5ICs0Niw5IEBAIFdlYkNvb2tpZU1hbmFnZXI6OldlYkNvb2tpZU1hbmFnZXIoKQogewogfQog
Ci12b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJDb29raWVNYW5hZ2VyOjpkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFn
ZXI6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApp
bmRleCBjZjc4YTExNGUwZTUyZWVkOGI1ZDg5MjU2MDYyMzcxYjY4ZDBjZGMxLi5hYWMwNDE5MmJm
Nzk2ZjEwMjFhMzgxMTg4MWZmMzU4YTZmODY5Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAgLTM1LDggKzM1LDgg
QEAKICNlbmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAg
ICAgY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFdlYkNvb2tp
ZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJDb29raWVNYW5hZ2VyJiBzaGFyZWQo
KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAgIHZvaWQgZGlzcGF0Y2hDb29r
aWVzRGlkQ2hhbmdlKCk7CiAKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNl
dENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQz
Ml90IHN0b3JhZ2VUeXBlKTsKICNlbmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29va2ll
TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggMWM3YTc4ZGIwMmM3MzcwYzRiNTFmODYyMjk3
ZjRmYTQ3MTM0OTUxOC4uMDMyMzY5OGNlYjUwZmM0Mjg1YmNhYzg4NWY4M2UwMGZjY2RiZWFkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCkBAIC03OCw5ICs3OCw5IEBAIFdlYkNvcmU6OkVs
ZW1lbnQqIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbGVtZW50KCkKICAgICByZXR1cm4gbV9lbGVt
ZW50LmdldCgpOyAKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKIGJvb2wgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzRnVsbFNjcmVl
bihib29sIHdpdGhLZXlib2FyZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKaW5kZXggMzk2YTRhZGIx
OTJlZjA2NjNjYjE1MDdiODRmYjQyYTc3N2ViZDRlOC4uOGMwNDkyMjViOGMxMzU2YmJlZjYwYTBk
NTk0MTYwN2QwNjdhYWE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgKQEAgLTMyLDggKzMyLDgg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2Rl
cjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7
CiAgICAgdmlydHVhbCB+V2ViRnVsbFNjcmVlbk1hbmFnZXIoKTsKIAotICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogCiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW4oYm9vbCB3aXRoS2V5Ym9hcmQp
OwogICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7
CkBAIC03Myw3ICs3Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldEFuaW1hdGluZ0Z1bGxT
Y3JlZW4oYm9vbCk7CiAgICAgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
IAogICAgIFdlYkNvcmU6OkludFJlY3QgbV9pbml0aWFsRnJhbWU7CiAgICAgV2ViQ29yZTo6SW50
UmVjdCBtX2ZpbmFsRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMmFl
YzVhNzI3ZDUwOTExNGFmMjk4ZGVjZWUyODdkMDVmZTcyZGIwZC4uMDFkYjMxNWFhZDY2MTQ5NWJm
NTM3ODVlNTdjNzE4OGNmNTE2MDM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApA
QCAtNDksOSArNDksOSBAQCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6On5XZWJHZW9sb2NhdGlvbk1h
bmFnZXIoKQogewogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJl
Y2VpdmVXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBh
Z2UoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDhhMTQwNWQx
NDgzM2U4N2M5NjU4ZWQyMzczZjk1NzhhNGUwNDU2NGQuLjZlMjQ1NTcwZDdhYzljZjBmN2U1OWFi
MGE5MzNiZDA4MTc1ZGQzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNTUsMTAg
KzU1LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkdlb2xvY2F0
aW9uTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBkaWRDaGFuZ2VQ
b3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJik7CiAgICAgdm9pZCBk
aWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFz
ZS9XZWJJY29uRGF0YWJhc2VQcm94eS5jcHAKaW5kZXggMjE3ZjFlODBhYjFmOWE2ZWM4YmUzNjVm
NDQyYzM0YTNmZjc1MWFhMS4uYTA0NzkzZWI0Y2QyNTQ0YWZmY2U4MmJiZTFmYjJmMmU2Nzk1YjUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UvV2Vi
SWNvbkRhdGFiYXNlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNv
bkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmNwcApAQCAtMTQzLDkgKzE0Myw5IEBAIHZv
aWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OnVybEltcG9ydEZpbmlzaGVkKCkKIHsKIH0KIAotdm9p
ZCBXZWJJY29uRGF0YWJhc2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkljb25EYXRhYmFzZVByb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29u
RGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKaW5kZXggMjA5NmFiYTRjZDMx
MWY5MjVmNzRlZDJmMTA4ZTkzMmE2NTk1NTY5MS4uY2Q5ZjcxNzZlNWM2MzI3ZmMwODVkNTcyMmRj
OTI0NmVhNGE0Y2VjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29u
RGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCkBAIC0zNiw4ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFz
cyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29k
ZXI7CiBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTcwLDEwICs3MCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZWNlaXZlZEljb25Mb2FkRGVjaXNpb24oaW50IGRlY2lzaW9uLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKICAgICB2aXJ0dWFsIHZvaWQgaWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SWNvbkRhdGFDYWxsYmFjaz4pOwogICAgICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIENhbGxiYWNrcyBmcm9tIHRoZSBVSVByb2Nlc3MKICAgICB2b2lkIHVybEltcG9ydEZpbmlz
aGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3Rv
cmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4
IDExMzdiYWUyMTAwNDk1M2VmM2E5NzEwOWZkODgxMGY5Y2U2NDhjYTIuLjJmZGY0ZWQ1YThiYTI2
NmU2MTE3NjIxM2UxYzE1Yjg2YmRiYjlkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXI6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQog
CiBzdGF0aWMgdm9pZCBrZXlWYWx1ZVN0b3JhZ2VPcmlnaW5JZGVudGlmaWVycyhWZWN0b3I8U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgaWRlbnRpZmllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyLmgKaW5kZXggZThkZTBhZGMyYWM2YzA3Y2Y5MzcyZDViZGY3OTFhYWJlZGYx
ZjQ4Mi4uNzJhNDRjMTI2ZTIwODAyMzgwMjNlMDJhMjcxNjNkY2YwZTlmNzE0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVT
dG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaApAQCAtMzEsOSArMzEsOSBAQAogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAg
Y2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3Mg
TWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xh
c3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2LDcgKzQ2LDcgQEAg
Y2xhc3MgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdl
VHJhY2tlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXImIHNoYXJlZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAg
ICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpOwpAQCAtNTksNyArNTksNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZE1vZGlmeU9yaWdpbihjb25zdCBTdHJpbmcm
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ09yaWdpbnMoKSBP
VkVSUklERTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBWZWN0b3I8dWludDY0X3Q+IG1fb3Jp
Z2luc1JlcXVlc3RDYWxsYmFja0lEczsKICAgICBib29sIG1fb3JpZ2luc0xvYWRlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDRhNWQ3Zjk1ZTc1MWU4Mjk2NDYxNjhkYzI5YzA2Y2Fj
ODcwYTY0NzguLmIwOWQ2NDE0ZDJhMjJiNDNiMTdlMTQxYmJjNTg2NDIxNzE4M2NkZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dl
Yk1lZGlhQ2FjaGVNYW5hZ2VyLmNwcApAQCAtNDYsOSArNDYsOSBAQCBXZWJNZWRpYUNhY2hlTWFu
YWdlcjo6V2ViTWVkaWFDYWNoZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cykKK3ZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdl
cjo6Z2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUodWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlh
Q2FjaGVNYW5hZ2VyLmgKaW5kZXggOTA5YmU5N2JhMWM3YzI5YTkyODgwYzRkMjgwMGE5NGFkOTYx
MzkwNC4uZmM2MmJlNGFkMjNmMDViMzM4ZDAyOGJkMzc3MjJhNTFmNTI0MmRlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlh
Q2FjaGVNYW5hZ2VyLmgKQEAgLTMwLDkgKzMwLDkgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKLSAgICBjbGFzcyBDb25uZWN0aW9uOwotICAgIGNsYXNzIE1lc3NhZ2VJRDsKK2NsYXNzIENv
bm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VJRDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFdlYk1lZGlhQ2FjaGVN
YW5hZ2VyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViTWVkaWFDYWNoZU1hbmFnZXImIHNoYXJl
ZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgV2ViTWVkaWFD
YWNoZU1hbmFnZXIoKTsKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFy
Q2FjaGVGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVGb3JB
bGxIb3N0bmFtZXMoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3Jr
SW5mb01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9X
ZWJOZXR3b3JrSW5mb01hbmFnZXIuY3BwCmluZGV4IDhjMTAzNzFmZDY4MDYwMmMwZjg0NWU0ODEz
MzZkZDYyNDc1MGEwNTAuLjYzMWYwMjIzNGVjMGJmOGQwODJhNDllMmEzYmJjNjU2NjE5MWY5MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0
d29ya0luZm9NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgV2ViTmV0
d29ya0luZm9NYW5hZ2VyOjp+V2ViTmV0d29ya0luZm9NYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBX
ZWJOZXR3b3JrSW5mb01hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdl
Yk5ldHdvcmtJbmZvTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJO
ZXR3b3JrSW5mb01hbmFnZXIuaAppbmRleCBkM2RhYjg0NGM4YmFkMjE3ODlmODMwOTU0ZmNhMzg4
YTZlYmJmZDE1Li5mY2I4ZDAyNzBjNWZjZjc2NDNhZTRkNDg1MTIyMjZhMTQ4NTNlYTQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8v
V2ViTmV0d29ya0luZm9NYW5hZ2VyLmgKQEAgLTU3LDExICs1NywxMSBAQCBwdWJsaWM6CiAgICAg
ZG91YmxlIGJhbmR3aWR0aChXZWJQYWdlKikgY29uc3Q7CiAgICAgYm9vbCBtZXRlcmVkKFdlYlBh
Z2UqKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlv
bihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2ViTmV0d29ya0luZm86OkRh
dGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDdiNjg5MTJm
ZTlhYWJiNDJjMmU3OGNhZjQ4NjQ5ZWE1MDcwNDIzZTAuLmZiNDJiY2M0MzIzMzJlMjE2MDU3Zjg5
NWEyM2UyMzU3NjZhZmY1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAK
QEAgLTYzLDkgKzYzLDkgQEAgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6fldlYk5vdGlmaWNhdGlv
bk1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmluaXRp
YWxpemUoY29uc3QgSGFzaE1hcDxTdHJpbmcsIGJvb2w+JiBwZXJtaXNzaW9ucykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDZhNzBmYzYwYzg1NWNkMzE5NjEwMDk5NmIzNWJi
YTZlYzRkN2YzODMuLmEzZjY1OGYyNDU2MGZhZTgxN2M5OTI1MDUyZjkyOGJjNThhNGE1MmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3Mg
QXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVy
OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGlzIGNhbGxiYWNrIGNvbWVzIGZyb20gV2ViQ29yZSwgbm90IG1lc3NhZ2VkIGZyb20g
dGhlIFVJIHByb2Nlc3MuCiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbiosIFdlYlBhZ2UqKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAg
IHZvaWQgZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcsIGJvb2wgYWxsb3dlZCk7CiAKICAgICAvLyBMb29rcyBpbiBsb2NhbCBjYWNoZSBmb3Ig
cGVybWlzc2lvbi4gSWYgbm90IGZvdW5kLCByZXR1cm5zIERlZmF1bHREZW5pZWQuCkBAIC03NCw3
ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lk
IGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
OwogICAgIAogICAgIHZvaWQgZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CiAgICAgdm9pZCBkaWRDbGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBmZGI3ZTVlMWYzYjBhYWMzM2Nj
MmZmYjI5M2U0ZTdjMmI4YWYxODU1Li5mY2ZiMjQ5YWRlZmY0NzJmYzQ3ZDY3MjJjMTRmZmRiYzUx
OTNkZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTg3LDI4ICs4NywyOCBAQCB2
b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVQbHVnaW5Qcm94eShQbHVnaW5Qcm94
eSogcGx1Z2luKQogICAgIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLT5yZW1vdmVQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih0aGlzKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBBU1NF
UlQoYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVChkZWNvZGVyLmRlc3Rp
bmF0aW9uSUQoKSk7CiAKLSAgICBQbHVnaW5Qcm94eSogcGx1Z2luUHJveHkgPSBtX3BsdWdpbnMu
Z2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAgICBQbHVnaW5Qcm94eSogcGx1Z2lu
UHJveHkgPSBtX3BsdWdpbnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAgICBpZiAo
IXBsdWdpblByb3h5KQogICAgICAgICByZXR1cm47CiAKLSAgICBwbHVnaW5Qcm94eS0+ZGlkUmVj
ZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Qcm94eU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lk
IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyPigpKSB7Ci0gICAgICAgIG1fbnBSZW1v
dGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICBtX25wUmVtb3RlT2JqZWN0TWFwLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgZGVzdGluYXRpb25J
RCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9u
SUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKIAogICAgIGlmICghZGVzdGluYXRpb25JRCkg
ewotICAgICAgICBkaWRSZWNlaXZlU3luY1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgICAgICBkaWRSZWNl
aXZlU3luY1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTExNiw3ICsxMTYsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdAogICAgIGlmICghcGx1Z2lu
UHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlU3lu
Y1BsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVw
bHkpOworICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBiOWJmODFjNzE2NmQ2NzA5YWMwODhjZjg0YzdkYjk5
YTUyNTAwOWQ1Li4yZGMyY2NhNTlmZmQ3ZDAzMDYzYjEwNmI5ZGE5Y2NjMzVkZWFjZTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNjQsMTMgKzY0LDEzIEBAIHByaXZhdGU6CiAgICAgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiwgY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRp
b24pOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlEKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNl
aXZlU3luY1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBzZXRFeGNlcHRpb24oY29uc3QgU3RyaW5nJik7CiAK
ICAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqIG1fcGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaAppbmRleCAwMmZhMWFiNTc3MTliOTg4N2QyN2E2YmQyMzU0YjU0MWVlNzg0MTFl
Li44MTA0YWYyMDQzZGRmZDk4MzA4NTc3MWZhYTg0NzE1OGQ5ZjlmMDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtNjAsOCArNjAs
OCBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGx1Z2luSW5zdGFuY2VJRDsgfQogICAgIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQo
KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNQbHVnaW5Qcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgYm9vbCBpc0JlaW5nQXN5bmNocm9ub3VzbHlJ
bml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FpdGluZ09uQXN5bmNocm9ub3VzSW5pdGlh
bGl6YXRpb247IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKaW5kZXgg
ZTg4Njk2MzcxMjg1OTVlZDhiOTEyYTI1N2MzZDI0YTBhY2RhNGIzZC4uNjgxMGYwYWJkYjlkYmVi
YTk5ZmEzZTFlOWIwZjA2Y2U0NWFlMDQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIuY3BwCkBAIC01Niw5ICs1Niw5IEBAIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjp+V2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXIoKQogewogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2Vp
dmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oCmluZGV4IDAxNzIzODk0Y2Y1M2ZhY2VkOTYyNWZjYjRlY2UyNmNhNDZm
YzQ4YzAuLjgzYTFjYzMwNDUzY2YyNmUzZWU4OTBhNzg1YWE4ZThkYTBmMTM0ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNs
YXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNDcsMTQgKzQ3LDE0IEBAIGNsYXNzIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXImIHNoYXJlZCgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIoKTsKICAgICB2aXJ0dWFsIH5XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlcigpOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQg
Z2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0OwogICAgIHZvaWQgY2xl
YXJDYWNoZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbkRhdGEsIHVpbnQzMl90IGNhY2hlc1RvQ2xl
YXIpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IDVlMTUyZWU5OGFhZDA2MGNkN2E3MGMxZTNlN2Iw
YzE0ODQ1ZmFhODAuLmUzOWJhMzlkMjBlNjY2NTQyZTg3N2RlZTZjNDMzOGUzY2E2NWRmYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2Vzcy5jcHAKQEAgLTQ5LDM0ICs0OSwzMyBAQCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6
OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcyhXZWJQcm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOgog
CiAvLyBXZWJDb25uZWN0aW9uCiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjplbmNv
ZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGFyZ3VtZW50RW5jb2Rlciwg
QVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpl
bmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIEFQSU9i
amVjdCogbWVzc2FnZUJvZHkpCiB7Ci0gICAgYXJndW1lbnRFbmNvZGVyLT5lbmNvZGUoSW5qZWN0
ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIobWVzc2FnZUJvZHkpKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwogfQog
Ci1ib29sIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIFJlZlB0cjxBUElPYmplY3Q+JiBt
ZXNzYWdlQm9keSkKK2Jvb2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUElPYmplY3Q+
JiBtZXNzYWdlQm9keSkKIHsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKEluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogLy8gQ29y
ZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0KLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAg
ZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBt
X3Byb2Nlc3MtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICBtX3Byb2Nlc3MtPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKIHsKLSAgICBtX3Byb2Nlc3MtPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIG1fcHJvY2Vzcy0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAppbmRleCBjZGZmNGFjMjdm
MGI5MzQ5YzU5YWRkYmYyOWIwMjg5NDBlMDM0MTg2Li5hZjU5MTExNWI5MTc4ZGU1MDg0ZWNjNzY0
ZTM4NjI1OTI3ZWY4ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKQEAgLTQxLDE0ICs0MSwxNCBAQCBwcml2YXRlOgog
ICAgIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcyhXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCopOwogCiAgICAgLy8gV2ViQ29ubmVj
dGlvbgotICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqLCBBUElPYmplY3QqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUmVmUHRyPEFQSU9iamVjdD4m
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiwgQVBJT2JqZWN0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUElP
YmplY3Q+JikgT1ZFUlJJREU7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCkgIE9W
RVJSSURFOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIFZlY3RvcjxIV05EPiB3aW5k
b3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA1M2QzODk1Y2RmNDdiZGI5NzZj
NDIwOWFhNTA3M2M0ZDAyM2IzNTM5Li4wNWI3NWExY2JmNzczZGUyMjc4OGY2N2NkZWNmNGI5ZTg3
YTk4ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC02Miw5ICs2Miw5IEBA
IFdlYkRhdGFiYXNlTWFuYWdlcjo6fldlYkRhdGFiYXNlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQg
V2ViRGF0YWJhc2VNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAg
ICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJEYXRhYmFzZU1h
bmFnZXI6OmdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuaAppbmRleCA2MGZmYjEwY2RhYzY3MDExOGQyOWNlYzRiMTcx
ODVkMzk3NGQyZWNhLi5hZGI0ZDRiODNhOGQzYTljMWM4OTM2YjE5NTJjZjJmNTFkZTJiODVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1l
bnREZWNvZGVyOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOwogY2xh
c3MgTWVzc2FnZUlEOwogfQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdl
YkRhdGFiYXNlTWFuYWdlciYgc2hhcmVkKCk7CiAgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZShj
b25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
OwogICAgIHZvaWQgc2V0UXVvdGFGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpIGNvbnN0OwogCiBwdWJsaWM6CkBAIC01OCw3
ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VNYW5hZ2VyKCk7CiAK
ICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBnZXREYXRhYmFzZXNCeU9yaWdpbih1aW50NjRf
dCBjYWxsYmFja0lEKSBjb25zdDsKICAgICB2b2lkIGdldERhdGFiYXNlT3JpZ2lucyh1aW50NjRf
dCBjYWxsYmFja0lEKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5oCmluZGV4IGRiZWJkMzg2YTVlNTdjODlmMjlmMjEzY2Q5Y2EwNWU5
M2E2NjNmMjkuLjc3NmE4ZDk3ZTEzMTczZmM1ZWZmYjk1MDAzNWFjOWIwYzcwZjg4Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAt
NzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3Jl
cygpOwogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVUaWxlVXBkYXRlc0FsbG93ZWQoKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgZmxvYXQgc2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9y
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZh
Y3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc3luY0xheWVyU3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZvJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGNh
NDc2MTc5ZTFkYTc5NzRhZGQ1MDFiNmQyOTFiYjg0MTM0ZmU1ZDMuLmM4ZTk2YzNjMGUzMzEyZGY3
OWI0Y2FmYjQ3NTRjZWJmZGJlOGI1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKICAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNsYXNzIE1lc3NhZ2VEZWNvZGVy
OwogICAgIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8RHJhd2luZ0FyZWE+IGNyZWF0ZShXZWJQYWdlKiwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhKCk7
CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZURyYXdpbmdBcmVhTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSA9IDA7CkBAIC05
NCw3ICs5NCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJl
ZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWFJbXBsLmNwcAppbmRleCBkNmNlZjE0MmY3YjZkZmYwZGU1MTg1NzYzMzM1ZDhiMzUy
NzAzMzllLi43MTkxNjkwOWQzOTEwMWZmMGZkMDBmZmY4YzliZTQyYWUyZWNjOWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBs
LmNwcApAQCAtNzI3LDEwICs3MjcsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXko
VXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIH0KIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKLXZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBE
cmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1fbGF5ZXJU
cmVlSG9zdCkKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4
IDhiYWJlMDEwODc4MjQ5ODY3YjE2NTNjM2I0NWZjNGU1M2U0ODcxZjYuLmJhOTM5NTRmOWI3ZDli
MGRhZTUzM2U2MzJkNTc0NDkzOTQ1Mjk3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEMgbWVzc2FnZSBoYW5kbGVycy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKaW5kZXggYTUzMjIwNjEwYzdjZmQ3ZGMzYjVjY2IyZDBhMGY1YjZiMzM3MTg0My4u
MmE3ZTdmNDkzMGVjOTFhZmRkM2NkZGMxZjA4YjNhNGMwMzg5ZGJhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTcyLDEwICs3MiwxMCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6cmVtb3ZlU2Nyb2xsaW5nVHJl
ZUZvclBhZ2UoV2ViUGFnZSogd2ViUGFnZSkKIH0KICNlbmRpZgogCi12b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2
b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRs
ZU1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NF
dmVudERpc3BhdGNoZXI+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVy
TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmlu
ZGV4IGFhNzBhOTNlNTVjZjc2ZTFiMzIyNjFiZmEzNDY3Mjg4MDVhZDEzNDAuLmE0ZjliOTljZTIx
M2E4NWFkMDBmOTQyYjUzZDlhZTUwMTJmMzAyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTYwLDEwICs2MCwxMCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVldWVD
bGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1l
bnRlZCBpbiBnZW5lcmF0ZWQgRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAg
IHZvaWQgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZv
aWQgZGlkUmVjZWl2ZUV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFu
ZGxlcnMKICAgICB2b2lkIHdoZWVsRXZlbnQoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYsIGJvb2wgY2FuR29CYWNrLCBib29sIGNhbkdv
Rm9yd2FyZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVy
VHJlZUhvc3QuaAppbmRleCA5NWRjOGU5Y2E0YjdhNmY1ZGZhYjIzNGI0MWJjOGIxMGNlNGJiZjdl
Li42OGQxNTgyMzZhNmQ1YjQ3NjlmN2JjZjY0NzAxNzRmYjM3ZDFmMmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKQEAgLTMxLDgg
KzMxLDggQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVz
c2FnZURlY29kZXI7CiBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTk0LDcgKzk0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0Rm9yTGF5ZXIoaW50
IC8qIGxheWVySUQgKi8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2lu
Z1N0b3JlcygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRp
bmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5oCmluZGV4IGMwNDE1NDZhODZjYjM1ZGZhNTkwNDY2ZDA5YjViYTg3NmQ1
NmY2NTguLjJmMTA0NzU4OTg3MWM3MzQ4MTZmYmEzNDBhZDUwMWJkNTBhMTQ4MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHVibGljOgogICAgIFdlYlBhZ2UqIGluc3BlY3RvclBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX2luc3BlY3RvclBhZ2U7IH0KIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVy
YXRlZCBXZWJJbnNwZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZl
V2ViSW5zcGVjdG9yTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJJ
bnNwZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVj
dG9yIG1lc3NhZ2VzCiAgICAgdm9pZCBzaG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTgyZTY1YzA2Njk0ZTEyMTljZjc2NzQwZTAz
NTkyY2Q0MjhhYzNkZS4uMTBkMDMzZDYzY2MzZTM1YTkwZDMzNjhkOTQ5ODkxZTU4YjYwNGQzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTIxNSwxNCArMTIxNSwxNCBAQCB2b2lkIFdlYlBhZ2U6OnNldEdhcEJldHdlZW5QYWdlcyhkb3Vi
bGUgZ2FwKQogICAgIG1fcGFnZS0+c2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZU5hbWUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyKQordm9pZCBX
ZWJQYWdlOjpwb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIEluamVjdGVkQnVu
ZGxlKiBpbmplY3RlZEJ1bmRsZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxl
KCk7CiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVm
UHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7Ci0gICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRl
Y29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSkpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVz
c2FnZUJvZHkpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW5qZWN0ZWRCdW5kbGUtPmRpZFJl
Y2VpdmVNZXNzYWdlVG9QYWdlKHRoaXMsIG1lc3NhZ2VOYW1lLCBtZXNzYWdlQm9keS5nZXQoKSk7
CkBAIC0yNzYzLDE4ICsyNzYzLDE4IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFy
ZUZvY3VzZWQoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5p
c0ZvY3VzZWQoKSAmJiBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhPigpKSB7CiAgICAgICAgIGlmICht
X2RyYXdpbmdBcmVhKQotICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2ZURyYXdp
bmdBcmVhTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
ICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRp
bmF0b3I+KCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCi0gICAgICAgICAgICBtX2Ry
YXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRp
ZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjc4MiwyNCAr
Mjc4MiwyNCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3I+
KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvciogaW5zcGVjdG9yID0gdGhpcy0+aW5zcGVj
dG9yKCkpCi0gICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJJbnNwZWN0b3JNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGluc3Bl
Y3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViRnVsbFNjcmVlbk1hbmFnZXI+KCkpIHsKLSAgICAgICAgZnVsbFNjcmVlbk1hbmFnZXIo
KS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAK
LSAgICBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6
OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3Jl
SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAgICBkaWRSZWNlaXZl
U3luY1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBs
eSk7CisgICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAgICAgCiBJbmplY3RlZEJ1bmRsZUJhY2tG
b3J3YXJkTGlzdCogV2ViUGFnZTo6YmFja0ZvcndhcmRMaXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBhNWYyYmJiNzVmMzJjNTFkYTE0YWZj
MDY5OWRkZjcxMzIxM2RkMGQuLjdkYjY1ZTk5ZTM0M2UzMDk2MGRkMWM1YTIyNDFiMmJkNzU5YzY2
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
MjM5LDggKzIzOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFjdGl2ZU9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+KTsKIAogICAg
IC8vIC0tIENhbGxlZCBmcm9tIFdlYlByb2Nlc3MuCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIC8vIC0tIElu
amVjdGVkQnVuZGxlIG1ldGhvZHMKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTMyMCw3
ICszMjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlTGVuZ3RoKGRvdWJsZSk7CiAgICAg
dm9pZCBzZXRHYXBCZXR3ZWVuUGFnZXMoZG91YmxlKTsKIAotICAgIHZvaWQgcG9zdEluamVjdGVk
QnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIHBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlTmFtZSwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIGJvb2wg
ZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KICAg
ICBib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZDsgfQpAQCAtNjEyLDggKzYxMiw4IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
UGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAKICNpZiAhUExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3Vw
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91
cFByb3h5LmNwcAppbmRleCBmNTlmYmJhZjVmODM2MWY4MWEyZGFmZWM3ZjY3NTk0OTcyYWMyODcz
Li4zNDBjNTQzMGVmNGQxMGVmOGY3NzRlYzM3MjI5ZmUzMDlkYzZiMTE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5j
cHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViUGFnZUdyb3VwUHJveHk6On5XZWJQYWdlR3JvdXBQcm94
eSgpCiB7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VHcm91cFByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFn
ZUdyb3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJQYWdl
R3JvdXBQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KICAg
ICAKIFdlYlBhZ2VHcm91cFByb3h5OjpXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQYWdlR3Jv
dXBEYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2VHcm91cFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZUdyb3VwUHJveHkuaAppbmRleCBjYmIwNzk0MjEzZDJkMWZhMWU5ODJmMGFjNWY4
NGMwOWM1YzJhZWQ4Li4wMGRhNjRiMjQyMjQ3OWFhZjU5YzVkNWQ5NDE1ZDdjYzgyMTZiNThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3Vw
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdy
b3VwUHJveHkuaApAQCAtMzEsOCArMzEsOCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENv
bm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApA
QCAtNTQsMTQgKzU0LDE0IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmlzaWJsZVRvSW5qZWN0ZWRC
dW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEudmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGU7IH0K
ICAgICBib29sIGlzVmlzaWJsZVRvSGlzdG9yeUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YS52aXNpYmxlVG9IaXN0b3J5Q2xpZW50OyB9CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZUdyb3VwUHJveHkoY29uc3QgV2ViUGFnZUdyb3VwRGF0
YSYpOwogCiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9
CiAgICAgCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogICAgIAogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViQ29yZTo6
VXNlclN0eWxlU2hlZXQmKTsKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2ViQ29yZTo6
VXNlclNjcmlwdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggNDNlZDE2YjFhMzljOThkNzVlYmZlNTQxOTYwYmVhNGViZWY5OWY0ZC4uM2ZkMjM0ZWE4MWZl
NDQzMDYwMmRjOGQzOWNjNmI4OTcyMzdiY2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC0xODcsMTcgKzE4NywxNyBAQCB2b2lkIFdlYlByb2Nlc3M6Omlu
aXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJJZGVudGlmaWVy
LCBSdQogICAgIHN0YXJ0UmFuZG9tQ3Jhc2hUaHJlYWRJZlJlcXVlc3RlZCgpOwogfQogCi12b2lk
IFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAKLSAgICBw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGFyZ3VtZW50cyk7CisgICAg
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzLCBkZWNvZGVyKTsKIAogICAg
IG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmluc3RhbGwoKTsKIAogICAgIFJlZlB0cjxBUElPYmpl
Y3Q+IGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YTsKICAgICBJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihpbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGEpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIXBhcmFtZXRlcnMuaW5qZWN0ZWRCdW5kbGVQYXRoLmlzRW1w
dHkoKSkgewpAQCAtNjA2LDkgKzYwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6dGVybWluYXRlKCkK
ICAgICBtX3J1bkxvb3AtPnN0b3AoKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7ICAg
Ci0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdl
SUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTYxNiw4MyArNjE2LDgzIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAgICAgCi0g
ICAgcGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzLCByZXBseSk7CisgICAgcGFnZS0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQ
cm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
IGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcj4oKSkgewotICAgICAg
ICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNz
YWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlcj4oKSkgewotICAg
ICAgICBXZWJDb29raWVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkNvb2tpZU1hbmFnZXI6OnNo
YXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2Vy
PigpKSB7Ci0gICAgICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJEYXRh
YmFzZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyPigpKSB7Ci0gICAgICAgIG1fYmF0dGVyeU1hbmFnZXIu
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
ICAgICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShORVRXT1JLX0lORk8pCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJOZXR3b3JrSW5mb01hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9uZXR3b3JrSW5mb01h
bmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlm
CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRh
YmFzZVByb3h5PigpKSB7Ci0gICAgICAgIG1faWNvbkRhdGFiYXNlUHJveHkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2ljb25E
YXRhYmFzZVByb3h5LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI+KCkpIHsKLSAgICAg
ICAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJNZWRpYUNhY2hlTWFuYWdlcj4oKSkgewot
ICAgICAgICBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJNZWRpYUNhY2hl
TWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpKSB7Ci0g
ICAgICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlci5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkgewotICAgICAgICBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShTT1VQKQogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViU291cFJlcXVlc3RNYW5hZ2Vy
PigpKSB7Ci0gICAgICAgIG1fc291cFJlcXVlc3RNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9zb3VwUmVxdWVzdE1h
bmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogICAgIAogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUGFnZUdyb3VwUHJveHk+KCkpIHsKLSAgICAgICAg
dWludDY0X3QgcGFnZUdyb3VwSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICAg
ICAgdWludDY0X3QgcGFnZUdyb3VwSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICAg
ICAgaWYgKCFwYWdlR3JvdXBJRCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCkBAIC03
MDAsMTAgKzcwMCwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICBpZiAoIXBh
Z2VHcm91cFByb3h5KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAgcGFn
ZUdyb3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgcGFnZUdyb3VwUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlE
ID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVj
b2Rlci5kZXN0aW5hdGlvbklEKCk7CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKQEAgLTcxMSw3ICs3MTEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlLT5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3M6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpAQCAtNzQzLDEwICs3NDMs
MTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2UKICAgICAvLyB3ZSdsbCBsZXQgaXQgc2xpZGUu
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRp
ZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlT25Db25u
ZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBi
b29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzcz4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vz
c01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc01l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
LCBkaWRIYW5kbGVNZXNzYWdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZWNjYmI4ZDYwZTdhNDVkOTRjYjRiZjJh
NmU1MDgyMDcyZTNlNDk2OS4uYjQyYTBlYzE2ZDdkZGYyMjUxYTU3OGE4NDVkMTliNjFkZTIzZDE5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE5MSw4ICsxOTEs
OCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIAotICAgIHZvaWQgaW5p
dGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwbGF0
Zm9ybVRlcm1pbmF0ZSgpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1l
bnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwpAQCAtMjYxLDggKzI2MSw4IEBAIHByaXZhdGU6CiAKICAgICAv
LyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMjcwLDExICsy
NzAsMTEgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6
UXVldWVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rp
b25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgT1ZFUlJJREU7CiAKICAgICAvLyBJ
bXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9j
ZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNz
YWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSk7CiAKICAgICB2b2lkIGRpZEdldFBsdWdpbnMoQ29yZUlQQzo6Q29ubmVjdGlvbiosIHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tCmluZGV4IGZj
YzQyZTk2NDQzOTI4ZTdmOThmYjVhNDBkNjQwMDhlM2Y1ODUzNGUuLjEwNzY2ZDJjYzNkYzM4ODhl
YTUxM2NhODUwZGE4OWVhODQ0NGU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc01hYy5tbQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBpZCBOU0Fw
cGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoTlNBcHBsaWNhdGlvbiosIFNF
TCkKICAgICByZXR1cm4gW3BhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBhY2Nlc3Np
YmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CiB9CiAgICAgCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMudWlQcm9jZXNz
QnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9X
ZWJQcm9jZXNzUXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNz
UXQuY3BwCmluZGV4IGNmZDJjMWEyZDYxNzY2MjdhNmQzYTNjN2IxMDBiNWFiOGY5NDc1ODAuLjky
Y2FlYmUyOTZhYWY3NGM3YzljZDVhYmJlZGYxNzdkMjdmZWFkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBz
dGF0aWMgdm9pZCBwYXJlbnRQcm9jZXNzRGllZENhbGxiYWNrKHZvaWQqKQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNzTWFuYWdlciA9
IG5ldyBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKHRoaXMpOwogICAgIEFTU0VSVCghcGFyYW1ldGVy
cy5jb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSAmJiAhcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5LmlzTnVsbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwCmluZGV4IDUxZWYzYTdiMmMyN2IxN2I4MjEzYjdm
OWY2NjNlNGY5Y2QzMDQwOTAuLmJkYmFmN2Q0MzQ1OWZmOTA3ZDk5OGMyYjU5Y2Y4NzcyY2JhMTkw
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
U291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NT
b3VwLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2
b2lkKikKICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFdlYkNvcmU6OnVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBpZiAoIXBhcmFt
ZXRlcnMubGFuZ3VhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgc2V0U291cFNlc3Npb25BY2NlcHRM
YW5ndWFnZShwYXJhbWV0ZXJzLmxhbmd1YWdlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDc0MDZk
Njg1ZTFhYzJhNTdlYzAyZGZkNzM5Mzc1NTA5MDNiZWQzNTcuLmI5YjM1ODdmNGUzYTc4OTRhMDll
YmMxOTliOTA1NjBmZThhMjA2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC04Niw5ICs4Niw5IEBA
IFdlYlNvdXBSZXF1ZXN0TWFuYWdlcjo6fldlYlNvdXBSZXF1ZXN0TWFuYWdlcigpCiB7CiB9CiAK
LXZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1
ZXN0TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAog
dm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OnJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0IFN0cmlu
ZyYgc2NoZW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dl
YlNvdXBSZXF1ZXN0TWFuYWdlci5oCmluZGV4IDc2NTQ0NjY1M2Q1NTRiMTExZWFlZDdkOGNkZmM2
Zjc3NjkxNjVjZjAuLmQzNGNjNDA3YmI3YzIxNGZhNzA0ZDMzZTMyN2VjYzgxYjYyM2Q4ZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVl
c3RNYW5hZ2VyLmgKQEAgLTUwLDEwICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kKEdT
aW1wbGVBc3luY1Jlc3VsdCosIEdDYW5jZWxsYWJsZSopOwogICAgIEdJbnB1dFN0cmVhbSogZmlu
aXNoKEdTaW1wbGVBc3luY1Jlc3VsdCopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJJU2NoZW1lKGNvbnN0IFN0cmlu
ZyYgc2NoZW1lKTsKICAgICB2b2lkIGRpZEhhbmRsZVVSSVJlcXVlc3QoY29uc3QgQ29yZUlQQzo6
RGF0YVJlZmVyZW5jZSYsIHVpbnQ2NF90IGNvbnRlbnRMZW5ndGgsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCmluZGV4IGYwYzE5NTVhNTdlZjBiNzM3NjkzM2YwZGEw
MWFkZGQ2NDg3NTM0NGUuLjI1ZGJjMzZjNDk5YmYzOTQ2OTM0YjRlMTJlNjU2MjMwYWQ5YmIxOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3Bw
CkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUNsZWFyUmVzb3Vy
Y2VDYWNoZXMoUmVzb3VyY2VDYWNoZXNUb0NsZWFyIGNhY2hlc1RvQ2xlYXIKICNlbmRpZiAvLyBV
U0UoQ0ZORVRXT1JLKQogfQogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiAgICAgc2V0U2hvdWxkUGFpbnRO
YXRpdmVDb250cm9scyhwYXJhbWV0ZXJzLnNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169471</attachid>
            <date>2012-10-18 14:02:40 -0700</date>
            <delta_ts>2012-10-18 14:15:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018140125.patch</filename>
            <type>text/plain</type>
            <size>228872</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uMTM4ZjRjODg3
MGI5OTgwZjY1MDc3YWI4MmVmOTViMjRmNzk1YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4MzdkZjQ1NzVk
M2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYyNWNiMmYwZjkx
NzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZmU1
MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcyZGE2MjgwOWEw
ZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQogCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUyOTdkMmMxMjIy
ZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5NzcxNjQ3NWVl
M2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdlMTQ3NzVhNDYz
ODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApA
QCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0KIH0KIAotdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hv
dyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5NDU0MGFlLi5k
NTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0NDkxOTkzMDBk
ZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJkYzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3BsdWdpblByb2Nl
c3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxMzJiYjc0
YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBhODAxNDBmZDhm
ODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVh
clNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0MmRmODhjYzU5
My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9T
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVtb3ZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1ZmVkMmZhNTk3
MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBiNjI2NmUyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5j
aCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIApAQCAtNjgs
NyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7CiAKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRm
YzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIwNzM1OWQxNDky
ZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4
LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxi
YWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUwY2RjNmNkODli
Y2UuLjMyNTM4YjNkMzczNGNlOWFjNTU2NDc1MTZjMTJmOTU1ZWM4NzZjMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKICAgICBjbGFz
cyBDb25uZWN0aW9uOwogICAgIGNsYXNzIE1lc3NhZ2VJRDsKIH0KQEAgLTczLDggKzcyLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
IAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGI0MmI3
YjAyMTc0NjU2ZWM2Y2QzZTI2MDdmZDhjZDNlN2JmNGYxYzAuLmUxYjc1NWEyMGVhOTgwNmViZmNj
MTg3NGU2YTYxMDc0MjhkZjU3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgdm9pZCBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tCYXR0ZXJ5UHJv
dmlkZXIqIHByb3ZpZGUKICAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwogfQog
Ci12b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKaW5kZXgg
NjVjNjYxNGRhZGU5MTgyY2I4M2RkZjUzN2NjYmNmOThhZmRiMjQ0ZS4uODNlMjEyOGFjNjlkNDc0
YjkwMDNiNmQ2OTgwNDE4Nzg0MTAwZDU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCkBAIC01OSwxMCArNTksMTAgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAog
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAKICAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2b2lkIHN0b3BVcGRhdGlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDg2YmE5MWMwODQyYjA5Yzk5MmFhM2U2NzZlYTU0YzgyMjk0
YWY4ZDQuLmZmNDNiMzQxMTY1OGNjZTI2MjVkYzk3MDJmNGNhY2Y3ZTIyZmEzOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQwogCiAvLyBX
ZWJDb25uZWN0aW9uCiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVz
c2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBhcmd1bWVudEVuY29kZXIsIEFQSU9i
amVjdCogbWVzc2FnZUJvZHkpCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuY29k
ZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0
KiBtZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShXZWJDb250ZXh0
VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CisgICAgZW5jb2Rlci5lbmNvZGUoV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwogfQogCi1ib29sIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkp
Citib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VC
b2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNzKSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nl
c3MpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02Nywx
OSArNjcsMTkgQEAgYm9vbCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3UKIAogLy8gQ29yZUlQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50CiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNlaXZl
V2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7Ci0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtX3Byb2Nlc3MtPmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CiB9CiAKIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDE2MDgxMzI0N2QwZjBmOWE3
MzdkOGE1MmM0NzY3N2FmYTM5MjhmYTcuLjBiMWZjMDlmODk3MTIyYzM5ZDAyOTUwOTk2Mzc2OTE1
OWZmNmJiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDIsMTIgKzQyLDEyIEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0
aW9uCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVN
ZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9i
amVjdD4mKSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCmluZGV4IDgxZTdiYzQ3N2Q0YjZmODExZWI0NDA3NDNlNWNlYWMzMjE0ODc0MjEuLjhh
NDRiNzgxNDRkMmYxZWNkZmFhZTkyYjBhM2RkMjE3ZDNlYWVmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTc4MiwyNiArNzgyLDI2IEBAIHZvaWQgV2ViQ29u
dGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xh
c3MsIENvcmVJUEM6CiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVy
KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAotYm9vbCBXZWJDb250ZXh0Ojpk
aXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJN
YXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVy
KTsKKyAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLWJvb2wgV2ViQ29udGV4dDo6ZGlzcGF0
Y2hTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVj
b2RlciwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQorYm9vbCBXZWJD
b250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIp
CiB7Ci0gICAgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIsIHJlcGx5KTsKKyAgICByZXR1
cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2ViQ29udGV4
dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBkaWRS
ZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKSkgewotICAgICAgICBpZiAoRG93bmxvYWRQcm94
eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0aW9u
SUQoKSkuZ2V0KCkpCi0gICAgICAgICAgICBkb3dubG9hZFByb3h5LT5kaWRSZWNlaXZlRG93bmxv
YWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBkb3dubG9hZFByb3h5LT5k
aWRSZWNlaXZlRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MTEsNyArODExLDcg
QEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFt
ZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwogICAgICAgICAg
ICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9k
eSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAg
ICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVz
c2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6
T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVz
c2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTgyNCwxNiArODI0LDE2IEBAIHZvaWQg
V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQg
V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVw
bHkpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAgICBkaWRSZWNlaXZlU3luY1dlYkNvbnRleHRN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAg
IGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpKSB7Ci0g
ICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0
KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAgICAgICAgIGRvd25sb2Fk
UHJveHktPmRpZFJlY2VpdmVTeW5jRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRv
d25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpLmdl
dCgpKQorICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg0NCwxMiArODQ0LDEyIEBAIHZvaWQgV2Vi
Q29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAg
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKICAgICAgICAgICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nl
c3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOwotICAgICAgICAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVy
KSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdl
TmFtZSwgbWVzc2FnZURlY29kZXIpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGE7CiAgICAgICAgICAgICBkaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keS5nZXQoKSwgcmV0dXJuRGF0YSk7Ci0gICAgICAgICAgICByZXBseS0+ZW5jb2RlKENv
cmVJUEM6OkluKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQoKSkp
KTsKKyAgICAgICAgICAgIHJlcGx5RW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKFdlYkNvbnRl
eHRVc2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQoKSkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQ
b3N0TWVzc2FnZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDllOGQ4
MDU0YWM3M2U2MTk2MjEwNWVkZDMzM2EwYTUxMDc1Y2E4NTkuLjUxYzk3MDBkNDEwY2IyMjgwNzc3
YTJlNmE5YTE1MjZhYzQ5ZTUzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aApAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxXZWJD
b250ZXh0Kj4mIGFsbENvbnRleHRzKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihD
b3JlSVBDOjpNZXNzYWdlQ2xhc3MsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciopOwotICAgIGJv
b2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAg
IGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgYm9vbCBkaXNwYXRjaFN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAg
ICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVDbGllbnQoY29uc3QgV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50
KGNvbnN0IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQqKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2goV2ViQ29yZTo6TGlua0hhc2gpOwog
CiAgICAgLy8gTWVzc2FnZVJlY2VpdmVyLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIHZv
aWQgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKICAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWwo
KSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KQEAgLTI4Myw4ICsyODMsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0Rh
dGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICAgICAgCiAgICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICBzdGF0aWMgdm9pZCBs
YW5ndWFnZUNoYW5nZWQodm9pZCogY29udGV4dCk7CiAgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKaW5kZXggYWEzM2NlNjJmZDM2NGQ0ZGQ5NDJiMmI5OWM4NTFkY2VjZTllNThmYy4uOGNi
MTQzN2M0Y2NiMThjNjQwMDQ0MzBjMDRjZTRkZjBkOWJiZjhiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKQEAgLTY0LDkgKzY0
LDkgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3Qg
V0tDb29raWVNYW5hZ2VyQ2xpZW50KiBjbGllbnQKICAgICBtX2NsaWVudC5pbml0aWFsaXplKGNs
aWVudCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2
ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggNjk4MWMw
ZDA2MmZjNWY1NjFiMGJlYTFhZTY1MjkyMjE2MWNlMGRlMi4uYzAxNjhlMjhjNmQ3NjgzOWM0OTcw
NzBjNWE0MTUzMmExNmIxNGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKICAgICBjbGFzcyBDb25uZWN0aW9uOwogICAgIGNsYXNzIE1lc3NhZ2VJRDsKIH0KQEAgLTg4
LDggKzg3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoKTsKICAgICAK
ICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2ll
QWNjZXB0UG9saWN5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJE
YXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGEzZmRhNjU1NmMxNDJlNDczMzc1ZWNlNTYwOGU4
ZjY1ODg0MjY2MjAuLmI1MGE0YTE0NDFiNjI3M2IxMTJkZTIyMzNjMjc5MTA2NDgxNDQ4OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5LmNwcApAQCAtMjMyLDkgKzIzMiw5IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6
OmRpZE1vZGlmeURhdGFiYXNlKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwKICAgICBt
X2NsaWVudC5kaWRNb2RpZnlEYXRhYmFzZSh0aGlzLCBvcmlnaW4uZ2V0KCksIGRhdGFiYXNlSWRl
bnRpZmllcik7CiB9CiAKLXZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKaW5kZXggYjcy
NGE4NDdkY2NjZDhmZmI3YjE3MDk3ZDBmNTllNTBlZWI0NGViOS4uN2M2OTVmY2JiYTBkNjA0YjVk
NDQyMTBkZGVjOGZmZTY0MDg4ZDhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKQEAgLTgxLDggKzgxLDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVj
dG9yPE9yaWdpbkFuZERhdGFiYXNlcz4mIG9yaWdpbkFuZERhdGFiYXNlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZmU3MWVjYWE0YTBlNzZmODE0ZDg3MmMxZDJmZmZh
NzFhYThmOTdiZi4uZTQ5YWQ4NmVmY2U3MDc4Y2NhMDZhMWJiMzYwNjljYjA1NjI3ZGU4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcApAQCAtNTQsMTQgKzU0LDE0IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6c2V0V2ViVmlldyhQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcpCiAgICAgbV93ZWJWaWV3
ID0gd2ViVmlldzsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKKyAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkK
K3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVN5bmNXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5jV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQog
CiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFbnRlckZ1bGxTY3JlZW4oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggYjgzYWY1NDc2N2M2ZjEwNTk3YzJmNzFlZDQyNjVlZTU2MTNiMWUwOC4uMDRh
ZWQ5YTNmMzQ1ZmQ5NDU3MTU4YjZhYjE4NGQwYmYyZDc5YjA5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC03OSw4
ICs3OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRnVsbFNjcmVlbigpOwogICAgIHZvaWQgY2xv
c2UoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCB3aWxsRW50ZXJG
dWxsU2NyZWVuKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKQEAgLTEwMSw4ICsx
MDEsOCBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwogICAgIFBsYXRmb3Jt
V2ViVmlldyogbV93ZWJWaWV3OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25Q
dHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCBlMjBkMWVlYmQ3MmNlNTcxMzczYmZhYjRiNDNmYzk4
NjQyZjA4OWI4Li4zY2ZlODZiYzMyNjZhYzg1NTUwY2MzY2I3ODZkZTMzZTQyMGI3YjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS5jcHAKQEAgLTczLDkgKzczLDkgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eTo6cHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJpbmcKICAg
ICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25N
YW5hZ2VyOjpEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihlcnJvck1lc3NhZ2UpKTsKIH0KIAot
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnN0YXJ0
VXBkYXRpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAppbmRleCA4ZjQxMDJiNjFmMjliZTllYTI2N2JlZmRkYzQyOThj
ZDM5YWQ3ZjA5Li44MWZjMTllOGUyNTE1MmJkODE0NWVkYTI1N2ZhNTI4MWRlNWQxMDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkuaApAQCAtNTcsMTAgKzU3LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKaW5kZXggOGI3MWU4OWUw
NDAyMDIwOGE5ZTA4MDhiNDVkZGZlZjE4Y2Q1NDkzMS4uNDAyZDJkMzlmOGQxZGEzZTA2MmQxZTg5
NGRhZDcyYjBhZjNjMTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25E
YXRhYmFzZS5jcHAKQEAgLTI4NCwxNCArMjg0LDE0IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpk
aWRGaW5pc2hVUkxJbXBvcnQoKQogICAgIG1fdXJsSW1wb3J0Q29tcGxldGVkID0gdHJ1ZTsKIH0K
IAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlcikKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVTeW5jV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2
b2lkIFdlYkljb25EYXRhYmFzZTo6bm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJiBwYWdlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFz
ZS5oCmluZGV4IDg2NDNhNDgxZDFkODY0NDk3MmFlM2RhZWI0YzFmODZjMzkyZjBkZTYuLjA5NDdl
YzAwYjQ5OWEwMWExZTBjMGFhMjJkNzA3MGNlNDU2MTVmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKQEAgLTEwMywxMSArMTAzLDExIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpOwogCiAgICAgLy8gQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFz
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSWNvbkRhdGFi
YXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsK
IAogICAgIHZvaWQgbm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXgg
NjkyMmI3ZDczNTExYWE2MWY5MjQzZWM2MTA5ZWMzMmIxOTZjOWViZC4uODg1NzVhM2NjNDJlNDVk
N2EyZGM5ZTM3ZDU0ZWU4OTczZWNkNmY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTEyNSw4ICsxMjUsOCBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
Ykluc3BlY3RvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3RvclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAjZW5k
aWYKIAogICAgIHN0YXRpYyBib29sIGlzSW5zcGVjdG9yUGFnZShXZWJQYWdlUHJveHkqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNDU0ZDA4MmY1NmEwMzIyYjY4NzEwODFlNDFmMDExZTI3
NmFjZWUyYi4uZGVmYjhjY2U5MWY0NTNhZTQwNjIxYjJjMjc0OGI1M2Y2OTE4YmFhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4LDkgKzU4LDkgQEAgYm9vbCBXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHk6OnNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdAog
ICAgIHJldHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKIH0KIAotdm9pZCBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eTo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBy
cENhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCmluZGV4IDljNjMxNDJmNjllNGUzZTIwNGY5ZDIx
NThhY2ZlNTc0OTE3OWM4YTUuLmJhMzkyYmIyZWNmNzUzODM3MmNhOTY4M2IyODhkMDZkMTg2NjE0
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5LmgKQEAgLTY3LDggKzY3LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQq
IG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFj
az4gPiBtX2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDgxY2Y5OGY1NmMxNzNmNDQ0
MWMzYjAzOGI4MzdjZGU5NGI0NDA2ZWQuLjE1NTczOGIwOTYyOTkxNGY4OGMwMzA5ZDYzNTg1ZTE4
YWMwOWM0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgYm9vbCBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
ICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aE1lZGlh
Q2FjaGUoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4
IDQ4ZTg4ZTBmYzQ5Y2ZkZDJmOTRlMmQ4NTQ4ZWJmZTZkMTU4MDNkMjguLjQ1MzFhNzIxMDg3ODk4
ZDUwNDQzNDA2MGZjZDIyN2YyMjRkZjE5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJD
b250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1f
YXJyYXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAppbmRleCAyMWEzOTliYzBmOGE0ZTAyZjgxNmM2
ODFmZTE2NWQ5NWJlMzJmMzYzLi45YTc3MmVjZmEzMGQ4MGUwZDVjMGM4NjlkNzI4YzkxMmNmZGJm
MGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eS5jcHAKQEAgLTY4LDE0ICs2OCwxNCBAQCB2b2lkIFdlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25z
dCBBdG9taQogICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJO
ZXR3b3JrSW5mb01hbmFnZXI6OkRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihldmVudFR5cGUs
IG5ldHdvcmtJbmZvcm1hdGlvbi0+ZGF0YSgpKSk7CiB9CiAKLXZvaWQgV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12
b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5OjpzdGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMmM0ZWY3YzY3ZWJjNTE1OTg4ZWVm
OTBiZGQzYTYzY2VmOWM1YzM2ZS4uNDU2MDEwYzI1YjcxMGQxMTEzMWJkZjBjNDY2YWUyY2UyMzUy
NjA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5LmgKQEAgLTU4LDEyICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0
aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdl
ZjRhMjQ5ZmU3NzRmMmY4ODU5NzIwZjc1ZjVlYjQ3MDIwMTMwMWIuLjgxODY5NWFkZWVjMDYxNWU3
MjEwZGI4MGJiZjdjZTE3NWY5ZTA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC03MjIsMTEgKzcyMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRH
bwogICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZEl0ZW0gPSBpdGVtICYmIG1fbG9hZGVyQ2xpZW50
LnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRoaXMsIGl0ZW0pOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX3By
b2Nlc3MtPndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQpAQCAtMTgzNSwxNiArMTgzNSwxNiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnN0b3JlKCkpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01Q
cmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSA6IDApOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NE
cmF3aW5nQXJlYVByb3h5PigpKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eT4oKSkgewotICAg
ICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2RyYXdp
bmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRp
ZgpAQCAtMTg1Miw0MCArMTg1Miw0MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJJbnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yUHJveHkq
IGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAgICAgICAgICAgaW5zcGVjdG9yLT5k
aWRSZWNlaXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVjZWl2ZVdl
YlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5z
cGVjdG9yUHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0
b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2
ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNXZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBs
eUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5h
Z2VyKCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cywgcmVwbHkpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRG8gc29tZXRo
aW5nIHdpdGggcmVwbHkuCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5
bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQpAQCAtMTk5MCwxMSArMTk5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmluaXNoUHJvZ3Jlc3MoKQogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykK
LXZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNlcnZp
Y2VJbmZvJiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAwNSwx
MyArMjAwNSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50UwogfQogI2VuZGlmCiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBjbGVhclBlbmRpbmdBUElSZXF1ZXN0VVJMKCk7CiAK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAg
IGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDI0LDEx
ICsyMDI0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAgICAgbV9sb2FkZXJDbGllbnQu
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0
KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nl
c3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47
CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CkBAIC0yMDQwLDExICsyMDQwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAgICAg
bV9sb2FkZXJDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMDY4LDExICsyMDY4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpjbGVhckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMTAsMTEgKzIx
MTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKICAgICBtX2xvYWRlckNsaWVudC5kaWRD
b21taXRMb2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMjMsMTEgKzIxMjMsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBA
IC0yMTM4LDExICsyMTM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvCiAgICAgbV9sb2Fk
ZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQo
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMTU1LDExICsyMTU1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVyCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSh0
aGlzLCBmcmFtZSwgZXJyb3IsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMt
PmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxNzIsMTEgKzIxNzIsMTEgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRhdGEu
Z2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjE4NywxMSArMjE4NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0
aXRsZQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRp
dGxlLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Rmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0g
ICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyMDAs
MTEgKzIyMDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWMKICAgICBtX2xvYWRlckNsaWVu
dC5kaWRGaXJzdExheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjEz
LDMxICsyMjEzLDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNl
ckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1
c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1l
c3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0KHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlvdXQodWlu
dDMyX3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9s
b2FkZXJDbGllbnQuZGlkTGF5b3V0KHRoaXMsIHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9uZXM+
KGxheW91dE1pbGVzdG9uZXMpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1f
cHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKTsKQEAgLTIyNDgsMTEgKzIyNDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWUK
ICAgICBtX2xvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJh
bWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9j
ZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMjI2MSwxMSArMjI2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OgogICAg
IG1fbG9hZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjI3NCwxMSArMjI3NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndQogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2Vy
RGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjg4LDExICsyMjg4LDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEludGVudERhdGEmIGludGVudERhdGEsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsK
ICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CkBAIC0yMzE0LDExICsyMzE0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
cmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCiB9CiAK
IC8vIFBvbGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5
cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rp
b24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlm
aWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHBlbmRpbmdBUElSZXF1ZXN0
VVJMKCkpCkBAIC0yMzUyLDExICsyMzUyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wCiAg
ICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50
MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9kaWZp
ZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1
c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVy
KHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMzcyLDExICsyMzcyLDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QmIGRvd25sb2FkSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9u
LCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yNDA0LDExICsyNDA0
LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250
ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3Mu
Z2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMjQxOSwxMSArMjQxOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAv
LyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9y
JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJW
ZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjU2MiwxMSArMjU2MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV91aUNsaWVudC5zZXRTdGF0
dXNUZXh0KHRoaXMsIHRleHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERh
dGEsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG9w
YXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRXZlbnQ6Ok1v
ZGlmaWVycyBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihvcGFx
dWVNb2RpZmllcnMpOwpAQCAtMzAxMiwxOSArMzAxMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aGlkZVBvcHVwTWVudSgpCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLXZvaWQgV2Vi
UGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlvbiwg
Y29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIGNvbnN0IFZl
Y3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRJdGVtcywgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRN
ZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJlc3Vs
dERhdGEsIHByb3Bvc2VkSXRlbXMsIGFyZ3VtZW50cyk7CisgICAgaW50ZXJuYWxTaG93Q29udGV4
dE1lbnUobWVudUxvY2F0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgcHJvcG9zZWRJdGVtcywgZGVj
b2Rlcik7CiAgICAgCiAgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2YgaW50ZXJuYWxTaG93
Q29udGV4dE1lbnUsIGFsd2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBp
cyBoaWRkZW4gc28gaXQgc3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCksIG1f
cGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51
KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1
bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRl
bXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMt
PmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRU
ZXN0UmVzdWx0RGF0YSA9IGhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGVlZGU2Yjk2ZjgyOTUyNGRlZGMwMjI4ZGIxODA1MmI4NzE1
ZmY5MTcuLjk1NTI4YWI3ZjlhYjI0MWFhMjdiZTBmMjdiMmQ1OGU4YjE5NWViYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRpZENo
YW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZl
Y3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSk7Ci0gICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7
CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNvbnN0
OwogICAgIFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpAQCAtNTkxLDggKzU5MSw4IEBA
IHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBwcm9jZXNz
RGlkQmVjb21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVkV2hp
bGVQcm9jZXNzVW5yZXNwb25zaXZlKCk7CkBAIC03NTIsNDkgKzc1Miw0OSBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdlQ2Fj
aGUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNh
Y2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAg
ICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25z
dCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTGF5b3V0
KHVpbnQzMl90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwot
ICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21SZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3Qg
bGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGZyYW1lRGlkQmVj
b21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFBy
b2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQg
ZGlkRmluaXNoUHJvZ3Jlc3MoKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2b2lk
IGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRE
YXRhJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQot
ICAgIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgSW50ZW50U2VydmljZUluZm8mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEludGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRp
ZgogICAgIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBp
bnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNlaXZl
ZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2Fk
SUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMy
X3QgbW91c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xp
Y3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVt
ZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmln
YXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9u
VHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0
aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAg
dm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAotICAgIHZv
aWQgd2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJ
RCwgY29uc3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRG
b3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmlu
Z1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIFJlc291cmNlIGxvYWQgY2xpZW50CiAgICAg
dm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgcGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpOwpAQCAtODEzLDcgKzgxMyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lkIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQoYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIHNldFN0YXR1c1Rl
eHQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9k
aWZpZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHRE
YXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3BhcXVlUGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJMKTsKICAgICB2b2lkIHNldFRvb2xi
YXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7CiAgICAgdm9pZCBnZXRUb29s
YmFyc0FyZVZpc2libGUoYm9vbCYgdG9vbGJhcnNBcmVWaXNpYmxlKTsKQEAgLTkxMiw4ICs5MTIs
OCBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29udGV4
dCBNZW51LgotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0
b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0
b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxv
Y2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lk
IGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9j
YXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAK
ICAgICAvLyBTZWFyY2ggcG9wdXAgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiODgzMjM4MzBhZGQyOTQxODc4YTdjYWFiODIwNzBk
OTMxOTc4NTFlLi4wZDZiNjIyZWY5ZmNlY2IzZmVhMGM3NWIyNjFjNDAxNDkxZDY1ZTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk1LDE3
ICszOTUsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFNoYXJlZFdvcmtlclByb2Nlc3ND
b25uZWN0aW9uKGNvbnN0IFN0cmluZyYgLyogdXJsICovLAogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cykpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7
Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgp
OworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlm
ICghcGFnZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTQxMywyMCArNDEzLDIwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgaWYgKG1fY29udGV4dC0+
ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5
RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVT
eW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5h
dGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7
CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTQzNCwxMyArNDM0
LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAg
ICAgIHJldHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBhZ2VQcm94eS0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKQotICAg
ICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlkSGFuZGxlTWVzc2FnZSk7Cisg
ICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1
ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxlTWVzc2FnZSk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA3NTI0ZGYy
ZmY0NjAwZjhlYjVmNjg2YzBkMWU4NDk3ZDI1MTBlMGZhLi4wYTg1ODE2OWU5NDk4YTZmMDczOWEy
MGY5NjQ1ZTU1Mjc2YmQyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0xNjIsOCArMTYyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTcxLDcgKzE3MSw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRp
ZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
Q2xpZW50CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1l
ciopIE9WRVJSSURFOwpAQCAtMTkwLDkgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRV
cGRhdGVIaXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CiAKICAgICAvLyBJbXBsZW1lbnRl
ZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRS
ZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNz
YWdlKTsKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVyOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjMjk4MDc5N2E3ZTA4M2FiMzBmMzMyYjAyZGMx
YjQ4NDg0NWFlMDEuLjQxYjhmYmJkYjM1Y2I2MDRiMjVmMWZhMzExMzFjY2FlMzc3MmQ1M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1RvQ2xl
YXIKICAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlm
TmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZv
ckFsbE9yaWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDllNTliNjQxZjRj
M2ZiZTgwZGE5YWRiMjYzNjgyNzBlZjNmYjkxMmUuLjFjNjIwNzA3Yjg0NDI2ZmRmZTg3Zjc0NTJm
Njk0NmJjMDRmNDc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNv
bnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmNwcAppbmRleCAwNTkwZjMwY2M1NzhjZjA1MjMxMTkyMmIxZmM5ZTljMTkwNGZiOTEz
Li5iYjFmOTZmNTI3MTE4MWFhYjg2ZjY2NTU5MzEzZDc0NDliYjBjMzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkg
QEAgdm9pZCBXZWJWaWJyYXRpb25Qcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLVmli
cmF0aW9uUHJvdmlkZXIqIHByb3ZpZGVyKQogICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92
aWRlcik7CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJWaWJyYXRp
b25Qcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlv
blByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lk
IFdlYlZpYnJhdGlvblByb3h5Ojp2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRpbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IDY3NmQzYTQ5
NzY3NDBjN2M1MzdlZmIwZmYwZDg5MmU5OTczODUzMzQuLjVjNmRlMTdkNzIxMDRmYWQwNDQ2MGMx
MGJlMzQxZWY5NTIxZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWJyYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJy
YXRpb25Qcm94eS5oCkBAIC01NSwxMCArNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJy
YXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJy
YXRpb25Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmli
cmF0aW9uUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHZpYnJhdGUodWludDY0
X3QgdmlicmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAppbmRleCBlMmJmMzQyM2Q5ZDI1ODgyNDI0ZjNlNDIxNjZlZWIxOTUyYTgw
ZDc4Li44MDQ5OGE1ZWE4YzYwODFhNDY4NTZiYzM4NjhiZTI3ZDhkNjZiOTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGll
CiAgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQogCi12b2lkIFdlYlNvdXBSZXF1
ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVz
dE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0K
IAogdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVnaXN0ZXJVUklTY2hlbWUoY29u
c3QgU3RyaW5nJiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2YTNkNmU4MjZjNTMw
MmM5OGQwZWUwOTc1ZjY5NmJkMzY2MjcwOTc1Li5lNGI4Y2NlMzc1NDJhZGZhMTc1MTVkOWYxMWE4
ZjI5NjM4NzUyMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTU3LDggKzU3LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0K
IAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
ICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViU291cFJlcXVlc3RNYW5hZ2Vy
Q2xpZW50IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
cHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAKaW5kZXggOWMxYWQ4Nzk4NWQyZjdjYmQ3OTczMjJlNzYyYTBhMDljMTI0ZjdjOC4u
MGJkZmIwMTMyZTg4MDUyN2I1NGIzMTZlZTAzNGNkODRkNzM5ODk0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpCiB7
CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
OjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAppbmRleCAzOGQ0OGUxMTllZjI2
MzhiMTBlNjc3M2VhZTczMDUzN2Q5ZTIyZmJjLi4zMjU4NDY5YmE4NDhjNDA4MDFmN2NkZmEwNzRl
NDUwMjQyNzE1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNs
YXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlvbjsK
K2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGVsZXRlQWxsRW50
cmllcygpOwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CkBAIC01
NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4o
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApp
bmRleCBhNjg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1Li45Mzg3NDFkNjJk
Nzc5MjA4NDZlNjQ2Y2Q3NTlkMGRlMjU4YjE2NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwCkBAIC01OCw5ICs1OCw5IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0
aGVudGljYXRpb25NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRoZW50aWNhdGlv
bk1hbmFnZXIsIHRoaXMpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuaAppbmRleCA5M2FmZTQ0NmJiMDQwOTZjMDgxMTYzZWVhZDkzZGI4MmQw
M2FkOWI1Li4xNjcwOGNlNmJkNDU0YzQxMWFmNjYzOTBiNmVkM2RlY2VmMjJiNjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0ZToKICAg
ICBBdXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVS
UklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9G
b3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25z
dCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXggMDRk
ZWM4NjQwMDc1NTAxNTQyNWNhZmRjZDJjOWIxOTAzNWQxYjY4ZC4uMDg5MmYyMTc4YjkyZmJiM2U3
OTkzOTFlNzEzMGEyZWQ5NDZhYzAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBA
IFdlYkJhdHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIoKQogewogfQogCi12b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6
cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCmluZGV4IDUwOTcxOGQ0MjFj
N2RlMTEzM2ZmZWMyY2ZlZTg1ODYxOThiZTQxYTEuLjQ1ZmFiMThjMTZhYTc5NGNmY2RhZjg5MTll
ZTJkZTY4NWY1MzBmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0
dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC0zNiw4ICszNiw4IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OCwxMSArNTgsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAgICAgdm9pZCB1cGRhdGVC
YXR0ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRl
ZCBXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJQcm9jZXNz
KiBtX3Byb2Nlc3M7CiAgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
CmluZGV4IDZmM2FmMWQxMDFlMTIxMDUxZTNlY2JlODBmMjIyY2M5ZTZjZTAwODUuLmU1MDAwZDRh
YzQyYjQ5ODcxNzQ5ZTEwODI2YTY1MmE4ZTA1YmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTQ2LDkg
KzQ2LDkgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCiB7CiB9CiAKLXZv
aWQgV2ViQ29va2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6
Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4
IGNmNzhhMTE0ZTBlNTJlZWQ4YjVkODkyNTYwNjIzNzFiNjhkMGNkYzEuLmFhYzA0MTkyYmY3OTZm
MTAyMWEzODExODgxZmYzNThhNmY4NjljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAog
I2VuZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiAgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlRGVjb2RlcjsKICAgICBj
bGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViQ29va2llTWFu
YWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJlZCgpOwog
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaENvb2tpZXNE
aWRDaGFuZ2UoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29v
a2llUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qg
c3RvcmFnZVR5cGUpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCAxYzdhNzhkYjAyYzczNzBjNGI1MWY4NjIyOTdmNGZh
NDcxMzQ5NTE4Li4wMzIzNjk4Y2ViNTBmYzQyODViY2FjODg1ZjgzZTAwZmNjZGJlYWQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc4LDkgKzc4LDkgQEAgV2ViQ29yZTo6RWxlbWVu
dCogV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBtX2VsZW1lbnQu
Z2V0KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVX
ZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAogYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKGJv
b2wgd2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCAzOTZhNGFkYjE5MmVm
MDY2M2NiMTUwN2I4NGZiNDJhNzc3ZWJkNGU4Li44YzA0OTIyNWI4YzEzNTZiYmVmNjBhMGQ1OTQx
NjA3ZDA2N2FhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxT
Y3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzIsOCArMzIsOCBAQAog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwog
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKICAg
ICB2aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCk7CiAg
ICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKQEAg
LTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVsbFNjcmVl
bihib29sKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogCi0gICAgdm9pZCBk
aWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0
IG1fZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyYWVjNWE3
MjdkNTA5MTE0YWYyOThkZWNlZTI4N2QwNWZlNzJkYjBkLi4wMWRiMzE1YWFkNjYxNDk1YmY1Mzc4
NWU1N2M3MTg4Y2Y1MTYwMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC00
OSw5ICs0OSw5IEBAIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdl
cigpCiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2
ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShX
ZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggOGExNDA1ZDE0ODMz
ZTg3Yzk2NThlZDIzNzNmOTU3OGE0ZTA0NTY0ZC4uNmUyNDU1NzBkN2FjOWNmMGY3ZTU5YWIwYTkz
M2JkMDgxNzVkZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC01NSwxMCArNTUs
MTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0
aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZh
aWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRh
YmFzZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dl
Ykljb25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAyMTdmMWU4MGFiMWY5YTZlYzhiZTM2NWY0NDJj
MzRhM2ZmNzUxYWExLi5hMDQ3OTNlYjRjZDI1NDRhZmZjZTgyYmJlMWZiMmYyZTY3OTViNTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0
YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xNDMsOSArMTQzLDkgQEAgdm9pZCBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6dXJsSW1wb3J0RmluaXNoZWQoKQogewogfQogCi12b2lkIFdl
Ykljb25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
Y29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCAyMDk2YWJhNGNkMzExZjky
NWY3NGVkMmYxMDhlOTMyYTY1OTU1NjkxLi5jZDlmNzE3NmU1YzYzMjdmYzA4NWQ1NzIyZGM5MjQ2
ZWE0YTRjZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTM2LDggKzM2LDggQEAK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsK
IGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNzAsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNpb24sIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPik7CiAgICAgICAgIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgLy8g
Q2FsbGJhY2tzIGZyb20gdGhlIFVJUHJvY2VzcwogICAgIHZvaWQgdXJsSW1wb3J0RmluaXNoZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdl
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTEz
N2JhZTIxMDA0OTUzZWYzYTk3MTA5ZmQ4ODEwZjljZTY0OGNhMi4uMmZkZjRlZDVhOGJhMjY2ZTYx
MTc2MjEzZTFjMTViODZiZGJiOWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlci5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
cjo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHN0
YXRpYyB2b2lkIGtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJzKFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdGE+JiBpZGVudGlmaWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuaAppbmRleCBlOGRlMGFkYzJhYzZjMDdjZjkzNzJkNWJkZjc5MWFhYmVkZjFmNDgy
Li43MmE0NGMxMjZlMjA4MDIzODAyM2UwMmEyNzE2M2RjZjBlOWY3MTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3Jh
Z2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCkBAIC0zMSw5ICszMSw5IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNz
YWdlSUQ7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CitjbGFzcyBN
ZXNzYWdlSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ciYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKGNvbnN0IFN0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT3JpZ2lucygpIE9WRVJS
SURFOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9vcmlnaW5z
UmVxdWVzdENhbGxiYWNrSURzOwogICAgIGJvb2wgbV9vcmlnaW5zTG9hZGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5jcHAKaW5kZXggNGE1ZDdmOTVlNzUxZTgyOTY0NjE2OGRjMjljMDZjYWM4NzBh
NjQ3OC4uYjA5ZDY0MTRkMmEyMmI0M2IxN2UxNDFiYmM1ODY0MjE3MTgzY2RkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
OjpXZWJNZWRpYUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTWVkaWFDYWNoZU1hbmFn
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdl
Yk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpn
ZXRIb3N0bmFtZXNXaXRoTWVkaWFDYWNoZSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNo
ZU1hbmFnZXIuaAppbmRleCA5MDliZTk3YmExYzdjMjlhOTI4ODBjNGQyODAwYTk0YWQ5NjEzOTA0
Li5mYzYyYmU0YWQyM2YwNWIzMzhkMDI4YmQzNzcyMmE1MWY1MjQyZGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNo
ZU1hbmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFn
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNZWRpYUNhY2hlTWFuYWdlciYgc2hhcmVkKCk7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJNZWRpYUNhY2hl
TWFuYWdlcigpOwpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDYWNo
ZUZvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFsbEhv
c3RuYW1lcygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZv
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5l
dHdvcmtJbmZvTWFuYWdlci5jcHAKaW5kZXggOGMxMDM3MWZkNjgwNjAyYzBmODQ1ZTQ4MTMzNmRk
NjI0NzUwYTA1MC4uNjMxZjAyMjM0ZWMwYmY4ZDA4MmE0OWUyYTNiYmM2NTY2MTkxZjkxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3Jr
SW5mb01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0lu
Zm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJOZXR3b3Jr
SW5mb01hbmFnZXI6On5XZWJOZXR3b3JrSW5mb01hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk5l
dHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTmV0
d29ya0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5oCmluZGV4IGQzZGFiODQ0YzhiYWQyMTc4OWY4MzA5NTRmY2EzODhhNmVi
YmZkMTUuLmZjYjhkMDI3MGM1ZmNmNzY0M2FlNGQ0ODUxMjIyNmExNDg1M2VhNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJO
ZXR3b3JrSW5mb01hbmFnZXIuaApAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICAgICBkb3Vi
bGUgYmFuZHdpZHRoKFdlYlBhZ2UqKSBjb25zdDsKICAgICBib29sIG1ldGVyZWQoV2ViUGFnZSop
IGNvbnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgLy8gSW1w
bGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJOZXR3b3JrSW5mbzo6RGF0YSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2I2ODkxMmZlOWFh
YmI0MmMyZTc4Y2FmNDg2NDllYTUwNzA0MjNlMC4uZmI0MmJjYzQzMjMzMmUyMTYwNTdmODk1YTIz
ZTIzNTc2NmFmZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAt
NjMsOSArNjMsOSBAQCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFu
YWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlk
UmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6
ZShjb25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggNmE3MGZjNjBjODU1Y2QzMTk2MTAwOTk2YjM1YmJhNmVj
NGQ3ZjM4My4uYTNmNjU4ZjI0NTYwZmFlODE3Yzk5MjUwNTJmOTI4YmM1OGE0YTUyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1
bWVudERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiB9
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8v
IFRoaXMgY2FsbGJhY2sgY29tZXMgZnJvbSBXZWJDb3JlLCBub3QgbWVzc2FnZWQgZnJvbSB0aGUg
VUkgcHJvY2Vzcy4KICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViQ29yZTo6Tm90
aWZpY2F0aW9uKiwgV2ViUGFnZSopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmlu
ZywgYm9vbCBhbGxvd2VkKTsKIAogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZvciBwZXJt
aXNzaW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KQEAgLTc0LDcgKzc0
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRl
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgCiAgICAgdm9pZCBkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKICAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkYjdlNWUxZjNiMGFhYzMzY2MyZmZi
MjkzZTRlN2MyYjhhZjE4NTUuLmZjZmIyNDlhZGVmZjQ3MmZjNDdkNjcyMmMxNGZmZGJjNTE5M2Rk
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODcsMjggKzg3LDI4IEBAIHZvaWQg
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpblByb3h5KFBsdWdpblByb3h5KiBw
bHVnaW4pCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXItPnJlbW92ZVBsdWdp
blByb2Nlc3NDb25uZWN0aW9uKHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEFTU0VSVChh
cmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUKGRlY29kZXIuZGVzdGluYXRp
b25JRCgpKTsKIAotICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9IG1fcGx1Z2lucy5nZXQo
YXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94
eSA9IG1fcGx1Z2lucy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogICAgIGlmICghcGx1
Z2luUHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZl
UGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAg
ICBwbHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9i
amVjdE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0g
YXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0g
ICAgICAgIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVT
eW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2
LDcgKzExNiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0CiAgICAgaWYgKCFwbHVnaW5Qcm94
eSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1
Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5oCmluZGV4IGI5YmY4MWM3MTY2ZDY3MDlhYzA4OGNmODRjN2RiOTlhNTI1
MDA5ZDUuLjJkYzJjY2E1OWZmZDdkMDMwNjNiMTA2YjlkYTljY2MzNWRlYWNlNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5oCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0ZToKICAgICBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBjb25zdCBT
dHJpbmcmIHBsdWdpblBhdGgsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbik7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVT
eW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKTsKICAgICB2b2lkIHNldEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmKTsKIAogICAg
IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5oCmluZGV4IDAyZmExYWI1NzcxOWI5ODg3ZDI3YTZiZDIzNTRiNTQxZWU3ODQxMWUuLjgx
MDRhZjIwNDNkZGZkOTgzMDg1NzcxZmFhODQ3MTU4ZDlmOWYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC02MCw4ICs2MCw4IEBA
IHB1YmxpYzoKICAgICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnaW5JbnN0YW5jZUlEOyB9CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwog
Ci0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICBib29sIGlzQmVpbmdBc3luY2hyb25vdXNseUluaXRp
YWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nT25Bc3luY2hyb25vdXNJbml0aWFsaXph
dGlvbjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAppbmRleCBlODg2
OTYzNzEyODU5NWVkOGI5MTJhMjU3YzNkMjRhMGFjZGE0YjNkLi42ODEwZjBhYmRiOWRiZWJhOTlm
YTNlMWU5YjBmMDZjZTQ1YWUwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
ci5jcHAKQEAgLTU2LDkgKzU2LDkgQEAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6On5XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyLmgKaW5kZXggMDE3MjM4OTRjZjUzZmFjZWQ5NjI1ZmNiNGVjZTI2Y2E0NmZjNDhj
MC4uODNhMWNjMzA0NTNjZjI2ZTNlZTg5MGE3ODVhYThlOGRhMGYxMzRkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3Mg
TWVzc2FnZUlEOwogfQogCkBAIC00NywxNCArNDcsMTQgQEAgY2xhc3MgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYg
c2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyKCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBnZXRD
YWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNh
Y2hlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9DbGVhcikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggNWUxNTJlZTk4YWFkMDYwY2Q3YTcwYzFlM2U3YjBjMTQ4
NDVmYWE4MC4uZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1ZGZhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmNwcApAQCAtNDksMzQgKzQ5LDMzIEBAIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6V2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6CiAKIC8v
IFdlYkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1l
c3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogYXJndW1lbnRFbmNvZGVyLCBBUElP
YmplY3QqIG1lc3NhZ2VCb2R5KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29k
ZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0
KiBtZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworICAgIGVuY29kZXIuZW5jb2Rl
KEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9CiAKLWJv
b2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQorYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1l
c3NhZ2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiAvLyBDb3JlSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKLQotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRS
ZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJv
Y2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJDb25uZWN0
aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVw
bHlFbmNvZGVyKQogewotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgbV9wcm9jZXNzLT5kaWRS
ZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVu
Y29kZXIpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IGNkZmY0YWMyN2YwYjkz
NDljNTlhZGRiZjI5YjAyODk0MGUwMzQxODYuLmFmNTkxMTE1YjkxNzhkZTUwODRlY2M3NjRlMzg2
MjU5MjdlZjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDEsMTQgKzQxLDE0IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9u
Ci0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNz
YWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVj
b2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9iamVj
dD4mKSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSAgT1ZFUlJJ
REU7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NU
b1JlY2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
YXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDUzZDM4OTVjZGY0N2JkYjk3NmM0MjA5
YWE1MDczYzRkMDIzYjM1MzkuLjA1Yjc1YTFjYmY3NzNkZTIyNzg4ZjY3Y2RlY2Y0YjllODdhOTg4
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgV2Vi
RGF0YWJhc2VNYW5hZ2VyOjp+V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJE
YXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdl
cjo6Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJh
c2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRhdGFiYXNlTWFuYWdlci5oCmluZGV4IDYwZmZiMTBjZGFjNjcwMTE4ZDI5Y2VjNGIxNzE4NWQz
OTc0ZDJlY2EuLmFkYjRkNGI4M2E4ZDNhOWMxYzg5MzZiMTk1MmNmMmY1MWRlMmI4NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJh
c2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERl
Y29kZXI7CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBN
ZXNzYWdlSUQ7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0
YWJhc2VNYW5hZ2VyJiBzaGFyZWQoKTsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAg
ICAgdm9pZCBzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3Q7CiAKIHB1YmxpYzoKQEAgLTU4LDcgKzU4
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZU1hbmFnZXIoKTsKIAogICAg
IC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNh
bGxiYWNrSUQpIGNvbnN0OwogICAgIHZvaWQgZ2V0RGF0YWJhc2VPcmlnaW5zKHVpbnQ2NF90IGNh
bGxiYWNrSUQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmgKaW5kZXggZGJlYmQzODZhNWU1N2M4OWYyOWYyMTNjZDljYTA1ZTkzYTY2
M2YyOS4uNzc2YThkOTdlMTMxNzNmYzVlZmZiOTUwMDM1YWM5YjBjNzBmODhjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC03OSw3
ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCk7
CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBz
eW5jTGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggY2E0NzYx
NzllMWRhNzk3NGFkZDUwMWI2ZDI5MWJiODQxMzRmZTVkMy4uYzhlOTZjM2MwZTMzMTJkZjc5YjRj
YWZiNDc1NGNlYmZkYmU4YjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAg
ICAgY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc093blB0cjxEcmF3aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWEoKTsKICAg
ICAKLSAgICB2b2lkIGRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxS
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKQEAgLTk0LDcg
Kzk0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShX
SU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuY3BwCmluZGV4IGQ2Y2VmMTQyZjdiNmRmZjBkZTUxODU3NjMzMzVkOGIzNTI3MDMz
OWUuLjcxOTE2OTA5ZDM5MTAxZmYwZmQwMGZmZjhjOWJlNDJhZTJlY2M5ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3Bw
CkBAIC03MjcsMTAgKzcyNywxMCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRh
dGVJbmZvJiB1cGRhdGVJbmZvKQogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQot
dm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIERyYXdp
bmdBcmVhSW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobV9sYXllclRyZWVI
b3N0KQotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGlu
YXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggOGJh
YmUwMTA4NzgyNDk4NjdiMTY1M2MzYjQ1ZmM0ZTUzZTQ4NzFmNi4uYmE5Mzk1NGY5YjdkOWIwZGFl
NTMzZTYzMmQ1NzQ0OTM5NDUyOTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcAppbmRleCBhNTMyMjA2MTBjN2NmZDdkYzNiNWNjYjJkMGEwZjViNmIzMzcxODQzLi4yYTdl
N2Y0OTMwZWM5MWFmZGQzY2RkYzFmMDhiM2E0YzAzODlkYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNzIs
MTAgKzcyLDEwIEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9y
UGFnZShXZWJQYWdlKiB3ZWJQYWdlKQogfQogI2VuZGlmCiAKLXZvaWQgRXZlbnREaXNwYXRjaGVy
OjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKK3ZvaWQg
RXZlbnREaXNwYXRjaGVyOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVz
c2FnZSkKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0V2ZW50
RGlzcGF0Y2hlcj4oKSkgewotICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
ZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVFdmVudERpc3BhdGNoZXJNZXNz
YWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlciwg
ZGlkSGFuZGxlTWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXgg
YWE3MGE5M2U1NWNmNzZlMWIzMjI2MWJmYTM0NjcyODgwNWFkMTM0MC4uYTRmOWI5OWNlMjEzYTg1
YWQwMGY5NDJiNTNkOWFlNTAxMmYzMDIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVu
dAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVk
IGluIGdlbmVyYXRlZCBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9p
ZCBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBk
aWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cwogICAgIHZvaWQgd2hlZWxFdmVudChDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3
YXJkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXll
clRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVl
SG9zdC5oCmluZGV4IDk1ZGM4ZTljYTRiN2E2ZjVkZmFiMjM0YjQxYmM4YjEwY2U0YmJmN2UuLjY4
ZDE1ODIzNmE2ZDViNDc2OWY3YmNmNjQ3MDE3NGZiMzdkMWYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtMzEsOCArMzEs
OCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsK
LWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdl
RGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3RGb3JMYXllcihpbnQgLyog
bGF5ZXJJRCAqLywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZW5kZXJOZXh0RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3Rv
cmVzKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRv
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5
ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLmgKaW5kZXggYzA0MTU0NmE4NmNiMzVkZmE1OTA0NjZkMDliNWJhODc2ZDU2ZjY1
OC4uMmYxMDQ3NTg5ODcxYzczNDgxNmZiYTM0MGFkNTAxYmQ1MGExNDgzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgV2ViUGFnZSogaW5zcGVjdG9yUGFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW5zcGVjdG9yUGFnZTsgfQogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYkluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJ
bnNwZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3Bl
Y3Rvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3Ig
bWVzc2FnZXMKICAgICB2b2lkIHNob3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlODJlNjVjMDY2OTRlMTIxOWNmNzY3NDBlMDM1OTJj
ZDQyOGFjM2RlLi4xMGQwMzNkNjNjYzNlMzVhOTBkMzM2OGQ5NDk4OTFlNThiNjA0ZDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjE1
LDE0ICsxMjE1LDE0IEBAIHZvaWQgV2ViUGFnZTo6c2V0R2FwQmV0d2VlblBhZ2VzKGRvdWJsZSBn
YXApCiAgICAgbV9wYWdlLT5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pOwogfQogCi12b2lkIFdl
YlBhZ2U6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFt
ZSwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCit2b2lkIFdlYlBh
Z2U6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgSW5qZWN0ZWRCdW5kbGUq
IGluamVjdGVkQnVuZGxlID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKTsK
ICAgICBpZiAoIWluamVjdGVkQnVuZGxlKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8
QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2Rl
KEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdl
Qm9keSkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlkUmVjZWl2
ZU1lc3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAg
LTI3NjMsMTggKzI3NjMsMTggQEAgYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJlRm9j
dXNlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzRm9j
dXNlZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWE+KCkpIHsKICAgICAgICAgaWYgKG1fZHJh
d2luZ0FyZWEpCi0gICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0Fy
ZWFNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAg
IG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NMYXllclRyZWVDb29yZGluYXRv
cj4oKSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJlYSkKLSAgICAgICAgICAgIG1fZHJhd2lu
Z0FyZWEtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVj
ZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0yNzgyLDI0ICsyNzgy
LDI0IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkluc3BlY3Rvcj4oKSkg
ewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB0aGlzLT5pbnNwZWN0b3Io
KSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgaW5zcGVjdG9y
LT5kaWRSZWNlaXZlV2ViSW5zcGVjdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJGdWxsU2NyZWVuTWFuYWdlcj4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAg
IGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeyAgIAotICAgIGRpZFJlY2VpdmVTeW5j
V2ViUGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsK
KyAgICBkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KICAgICAKIEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0KiBXZWJQYWdlOjpiYWNrRm9yd2FyZExpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGE1ZjJiYmI3NWYzMmM1MWRhMTRhZmMwNjk5
ZGRmNzEzMjEzZGQwZC4uN2RiNjVlOTllMzQzZTMwOTYwZGQxYzVhMjI0MWIyYmQ3NTljNjY5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzks
OCArMjM5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pOwogCiAgICAgLy8g
LS0gQ2FsbGVkIGZyb20gV2ViUHJvY2Vzcy4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgLy8gLS0gSW5qZWN0
ZWRCdW5kbGUgbWV0aG9kcwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMzIwLDcgKzMy
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2VMZW5ndGgoZG91YmxlKTsKICAgICB2b2lk
IHNldEdhcEJldHdlZW5QYWdlcyhkb3VibGUpOwogCi0gICAgdm9pZCBwb3N0SW5qZWN0ZWRCdW5k
bGVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIHZvaWQgcG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2VOYW1lLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgYm9vbCBkcmF3
c0JhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQmFja2dyb3VuZDsgfQogICAgIGJv
b2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzVHJh
bnNwYXJlbnRCYWNrZ3JvdW5kOyB9CkBAIC02MTIsOCArNjEyLDggQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogI2lmICFQTEFURk9STShNQUMpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJv
eHkuY3BwCmluZGV4IGY1OWZiYmFmNWY4MzYxZjgxYTJkYWZlYzdmNjc1OTQ5NzJhYzI4NzMuLjM0
MGM1NDMwZWY0ZDEwZWY4Zjc3NGVjMzcyMjlmZTMwOWRjNmIxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcApA
QCAtNDcsOSArNDcsOSBAQCBXZWJQYWdlR3JvdXBQcm94eTo6fldlYlBhZ2VHcm91cFByb3h5KCkK
IHsKIH0KICAgICAKLXZvaWQgV2ViUGFnZUdyb3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlR3Jv
dXBQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91
cFByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogICAgIAog
V2ViUGFnZUdyb3VwUHJveHk6OldlYlBhZ2VHcm91cFByb3h5KGNvbnN0IFdlYlBhZ2VHcm91cERh
dGEmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZUdyb3VwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlR3JvdXBQcm94eS5oCmluZGV4IGNiYjA3OTQyMTNkMmQxZmExZTk4MmYwYWM1Zjg0YzA5
YzVjMmFlZDguLjAwZGE2NGIyNDIyNDc5YWFmNTljNWQ1ZDk0MTVkN2NjODIxNmI1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQ
cm94eS5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAog
bmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01
NCwxNCArNTQsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXNpYmxlVG9JbmplY3RlZEJ1bmRs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS52aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsgfQogICAg
IGJvb2wgaXNWaXNpYmxlVG9IaXN0b3J5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnZp
c2libGVUb0hpc3RvcnlDbGllbnQ7IH0KICAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAog
cHJpdmF0ZToKICAgICBXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQYWdlR3JvdXBEYXRhJik7
CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KICAg
ICAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
Kik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAgICAgCiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldCYpOwogICAgIHZvaWQgYWRkVXNlclNjcmlwdChjb25zdCBXZWJDb3JlOjpVc2Vy
U2NyaXB0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA0
M2VkMTZiMWEzOWM5OGQ3NWViZmU1NDE5NjBiZWE0ZWJlZjk5ZjRkLi4zZmQyMzRlYTgxZmU0NDMw
NjAyZGM4ZDM5Y2M2Yjg5NzIzN2JjYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTE4NywxNyArMTg3LDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIFJ1
CiAgICAgc3RhcnRSYW5kb21DcmFzaFRocmVhZElmUmVxdWVzdGVkKCk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMp
Cit2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAotICAgIHBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycywgYXJndW1lbnRzKTsKKyAgICBwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGRlY29kZXIpOwogCiAgICAgbWVt
b3J5UHJlc3N1cmVIYW5kbGVyKCkuaW5zdGFsbCgpOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4g
aW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwogICAgIEluamVjdGVkQnVuZGxl
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKGluamVjdGVkQnVuZGxlSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGguaXNFbXB0eSgp
KSB7CkBAIC02MDYsOSArNjA2LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUoKQogICAg
IG1fcnVuTG9vcC0+c3RvcCgpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIs
IE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAg
ICB1aW50NjRfdCBwYWdlSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50
NjRfdCBwYWdlSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkK
ICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtNjE2LDgzICs2MTYsODMgQEAgdm9pZCBXZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzoKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBw
YWdlLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMsIHJlcGx5KTsKKyAgICBwYWdlLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYlByb2Nlc3M+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nl
c3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyPigpKSB7Ci0gICAgICAg
IFdlYkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVk
KCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXI+KCkp
IHsKLSAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkRhdGFiYXNl
TWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KEJBVFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9iYXR0ZXJ5TWFuYWdlci5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
IG1fYmF0dGVyeU1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFz
c1dlYk5ldHdvcmtJbmZvTWFuYWdlcj4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdl
ci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNl
UHJveHk+KCkpIHsKLSAgICAgICAgbV9pY29uRGF0YWJhc2VQcm94eS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1faWNvbkRhdGFi
YXNlUHJveHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4oKSkgewotICAgICAgICBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1lZGlhQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAg
ICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCkpIHsKLSAgICAg
ICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAjZW5kaWYKICAgICAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
OjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFNPVVApCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXI+KCkp
IHsKLSAgICAgICAgbV9zb3VwUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX3NvdXBSZXF1ZXN0TWFuYWdl
ci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJQYWdlR3JvdXBQcm94eT4oKSkgewotICAgICAgICB1aW50
NjRfdCBwYWdlR3JvdXBJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAgICAgICB1
aW50NjRfdCBwYWdlR3JvdXBJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgICAgICBp
ZiAoIXBhZ2VHcm91cElEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTcwMCwx
MCArNzAwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIGlmICghcGFnZUdy
b3VwUHJveHkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBwYWdlR3Jv
dXBQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVu
dHMpOworICAgICAgICBwYWdlR3JvdXBQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICB9CiAKLSAgICB1aW50NjRfdCBwYWdlSUQgPSBh
cmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRfdCBwYWdlSUQgPSBkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuOwogICAg
IApAQCAtNzExLDcgKzcxMSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgaWYgKCFw
YWdlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFnZS0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIHBhZ2UtPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViUHJv
Y2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCkBAIC03NDMsMTAgKzc0MywxMCBA
QCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZQogICAgIC8vIHdlJ2xsIGxldCBpdCBzbGlkZS4KIH0K
IAotdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFu
ZGxlTWVzc2FnZSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rp
b25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wm
IGRpZEhhbmRsZU1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVz
c2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRp
ZEhhbmRsZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlY2NiYjhkNjBlN2E0NWQ5NGNiNGJmMmE2ZTUw
ODIwNzJlM2U0OTY5Li5iNDJhMGVjMTZkN2RkZjIyNTFhNTc4YTg0NWQxOWI2MWRlMjNkMTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTkxLDggKzE5MSw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogCi0gICAgdm9pZCBpbml0aWFs
aXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHBsYXRmb3Jt
VGVybWluYXRlKCk7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CkBAIC0yNjEsOCArMjYxLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENv
cmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCkBAIC0yNzAsMTEgKzI3MCwx
MSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1
ZUNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxl
bWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2VP
bkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsK
IAogICAgIHZvaWQgZGlkR2V0UGx1Z2lucyhDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggZmNjNDJl
OTY0NDM5MjhlN2Y5OGZiNWE0MGQ2NDAwOGUzZjU4NTM0ZS4uMTA3NjZkMmNjM2RjMzg4OGVhNTEz
Y2E4NTBkYTg5ZWE4NDQ0ZTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21h
Yy9XZWJQcm9jZXNzTWFjLm1tCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGlkIE5TQXBwbGlj
YXRpb25BY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudChOU0FwcGxpY2F0aW9uKiwgU0VMKQog
ICAgIHJldHVybiBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxp
dHlGb2N1c2VkVUlFbGVtZW50XTsKIH0KICAgICAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy51aVByb2Nlc3NCdW5k
bGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNv
bnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlBy
b2Nlc3NRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5j
cHAKaW5kZXggY2ZkMmMxYTJkNjE3NjYyN2E2ZDNhM2M3YjEwMGI1YWI4Zjk0NzU4MC4uOTJjYWVi
ZTI5NmFhZjc0YzdjOWNkNWFiYmVkZjE3N2QyN2ZlYWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRp
YyB2b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2FsbGJhY2sodm9pZCopCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyID0gbmV3
IFF0TmV0d29ya0FjY2Vzc01hbmFnZXIodGhpcyk7CiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmNv
b2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnkuaXNOdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
c291cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggNTFlZjNhN2IyYzI3YjE3YjgyMTNiN2Y5ZjY2
M2U0ZjljZDMwNDA5MC4uYmRiYWY3ZDQzNDU5ZmY5MDdkOTk4YzJiNTljZjg3NzJjYmExOTA5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAu
Y3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKHZvaWQq
KQogICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6dXNlclByZWZlcnJl
ZExhbmd1YWdlcygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAgIGlmICghcGFyYW1ldGVy
cy5sYW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1
YWdlKHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNzQwNmQ2ODVl
MWFjMmE1N2VjMDJkZmQ3MzkzNzU1MDkwM2JlZDM1Ny4uYjliMzU4N2Y0ZTNhNzg5NGEwOWViYzE5
OWI5MDU2MGZlOGEyMDY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9z
b3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgV2Vi
U291cFJlcXVlc3RNYW5hZ2VyOjp+V2ViU291cFJlcXVlc3RNYW5hZ2VyKCkKIHsKIH0KIAotdm9p
ZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RN
YW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lk
IFdlYlNvdXBSZXF1ZXN0TWFuYWdlcjo6cmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291
cFJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291
cFJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggNzY1NDQ2NjUzZDU1NGIxMTFlYWVkN2Q4Y2RmYzZmNzc2
OTE2NWNmMC4uY2FlNjUyZWNmNjY5MTI2MzIzN2RhNzg3YjY4MDVmODhlMDZiN2UwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1h
bmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQCB0eXBlZGVmIHN0cnVjdCBfR0lucHV0U3RyZWFtIEdJ
bnB1dFN0cmVhbTsKIHR5cGVkZWYgc3RydWN0IF9HU2ltcGxlQXN5bmNSZXN1bHQgR1NpbXBsZUFz
eW5jUmVzdWx0OwogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7
CiBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIE1lc3NhZ2VE
ZWNvZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgc2VuZChHU2ltcGxlQXN5bmNSZXN1bHQqLCBHQ2FuY2VsbGFibGUqKTsKICAg
ICBHSW5wdXRTdHJlYW0qIGZpbmlzaChHU2ltcGxlQXN5bmNSZXN1bHQqKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1
ZXN0TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU291
cFJlcXVlc3RNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCByZWdpc3RlclVS
SVNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgdm9pZCBkaWRIYW5kbGVVUklSZXF1
ZXN0KGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRfdCBjb250ZW50TGVuZ3Ro
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50NjRfdCByZXF1ZXN0SUQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAppbmRleCBmMGMxOTU1
YTU3ZWYwYjczNzY5MzNmMGRhMDFhZGRkNjQ4NzUzNDRlLi4yNWRiYzM2YzQ5OWJmMzk0NjkzNGI0
ZTEyZTY1NjIzMGFkOWJiMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3dpbi9XZWJQcm9jZXNzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dp
bi9XZWJQcm9jZXNzV2luLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
cGxhdGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhciBjYWNoZXNU
b0NsZWFyCiAjZW5kaWYgLy8gVVNFKENGTkVUV09SSykKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
ICAgIHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMocGFyYW1ldGVycy5zaG91bGRQYWludE5h
dGl2ZUNvbnRyb2xzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169474</attachid>
            <date>2012-10-18 14:15:33 -0700</date>
            <delta_ts>2012-10-18 14:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99746-20121018141418.patch</filename>
            <type>text/plain</type>
            <size>229040</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjk1ZDhmMzlmMGFlMjc2
MzU3OGM3M2RjNjU2ZTdjOGE4NTg4ZTgzMy4uNjg0NjM5YWYzZmE2ZGQxNThlODY3MzA3N2I2M2Qy
MWJhOGVlZGUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTEwLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIEFyZ3VtZW50RW5jb2Rlci9Bcmd1bWVudERlY29kZXIgd2l0aCBNZXNzYWdlRW5jb2Rlci9N
ZXNzYWdlRGVjb2RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgYWxsIG9jY3VycmVuY2VzIG9mIEFyZ3VtZW50RGVjb2RlciogdG8gTWVzc2Fn
ZURlY29kZXImIGFuZCBhbGwgb2NjdXJyZW5jZXMgb2YgQXJndW1lbnRFbmNvZGVyKgorICAgICAg
ICB0byBBcmd1bWVudEVuY29kZXImIGluIGFsbCB0aGUgbWVzc2FnZSByZWNlaXZlcnMuIFRoaXMg
aXMgdGhlIHNlY29uZCBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgTWVzc2FnZUlELgorCisy
MDEyLTEwLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgQnVpbGQgZml4LgogCiAgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IGIyMjg5YjA3YjQ4ZmIzOGZjYzQ2NTBiYTVlNTgwNjJmOWU5OWQ3ZmYuLmM3MzgyNDUxNzVi
OWM0YTZkNzM0ZjFjYmEwZjVlOTA2NDlkNzNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgYm9vbCBO
ZXR3b3JrUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENsb3Nl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjcyYThmOWFiYzdkODY2Zjg3YjE4YzI1NWRiMTQzNmYy
NDVlNzczOS4uNTkzNDdkYTRmMTMzYTg0ZjgxM2Q2YjQ0ZjRhMDI3NjA5ZGI5YTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01Niwx
MyArNTYsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7
CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6
OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKICAg
ICAvLyBNZXNzYWdlIEhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICAvLyBUaGUgY29ubmVj
dGlvbiB0byB0aGUgVUkgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk4ZjM1NTkzNGEzZjA4MjUzMjhjMjc4MTQ4OWEyNDMx
MjdhODIzMGMuLmI5ZjhmY2ZkYzVmOTRjNmI0NGVmMjJlNmEwYjVmOTEwNDRmZWIzODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtNTM2
LDcgKzUzNiw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShNZXNz
YWdlSUQgbWVzc2FnZUlELCBQYXNzT3duUHRyPE1lc3NhZ2VECiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
Ym9vbCBkaWRIYW5kbGVNZXNzYWdlID0gZmFsc2U7CiAKLSAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWVDbGllbnRzW2ldLT5kaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSh0aGlz
LCBpbmNvbWluZ01lc3NhZ2UubWVzc2FnZUlEKCksIGluY29taW5nTWVzc2FnZS5hcmd1bWVudHMo
KSwgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIE1lc3NhZ2VEZWNvZGVyKiBkZWNvZGVyID0g
aW5jb21pbmdNZXNzYWdlLmFyZ3VtZW50cygpOworICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZUNs
aWVudHNbaV0tPmRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKHRoaXMsIGlu
Y29taW5nTWVzc2FnZS5tZXNzYWdlSUQoKSwgKmRlY29kZXIsIGRpZEhhbmRsZU1lc3NhZ2UpOwog
ICAgICAgICBpZiAoZGlkSGFuZGxlTWVzc2FnZSkgewogICAgICAgICAgICAgLy8gQSBjb25uZWN0
aW9uIHF1ZXVlIGNsaWVudCBoYW5kbGVkIHRoZSBtZXNzYWdlLCBvdXIgd29yayBoZXJlIGlzIGRv
bmUuCiAgICAgICAgICAgICBpbmNvbWluZ01lc3NhZ2UucmVsZWFzZUFyZ3VtZW50cygpOwpAQCAt
NjE0LDI1ICs2MTUsMjQgQEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygp
CiAgICAgfQogfQogCi12b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246
OmRpc3BhdGNoU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgQVNTRVJUKG1lc3NhZ2VJRC5pc1N5bmMoKSk7CiAKICAgICB1aW50
NjRfdCBzeW5jUmVxdWVzdElEID0gMDsKLSAgICBpZiAoIWRlY29kZXItPmRlY29kZVVJbnQ2NChz
eW5jUmVxdWVzdElEKSB8fCAhc3luY1JlcXVlc3RJRCkgeworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50NjQoc3luY1JlcXVlc3RJRCkgfHwgIXN5bmNSZXF1ZXN0SUQpIHsKICAgICAgICAgLy8g
V2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBzeW5jIG1lc3NhZ2UuCi0gICAgICAgIGRlY29kZXItPm1h
cmtJbnZhbGlkKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBcmd1bWVudEVuY29kZXIgc2hvdWxkIGJlIE1l
c3NhZ2VFbmNvZGVyIGhlcmUuCi0gICAgT3duUHRyPEFyZ3VtZW50RW5jb2Rlcj4gcmVwbHlFbmNv
ZGVyID0gTWVzc2FnZUVuY29kZXI6OmNyZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOworICAg
IE93blB0cjxNZXNzYWdlRW5jb2Rlcj4gcmVwbHlFbmNvZGVyID0gTWVzc2FnZUVuY29kZXI6OmNy
ZWF0ZSgiIiwgIiIsIHN5bmNSZXF1ZXN0SUQpOwogCiAgICAgLy8gSGFuZCBvZmYgYm90aCB0aGUg
ZGVjb2RlciBhbmQgZW5jb2RlciB0byB0aGUgY2xpZW50LgogICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
CiAgICAgLy8gRklYTUU6IElmIHRoZSBtZXNzYWdlIHdhcyBpbnZhbGlkLCB3ZSBzaG91bGQgc2Vu
ZCBiYWNrIGEgU3luY01lc3NhZ2VFcnJvci4KLSAgICBBU1NFUlQoIWRlY29kZXItPmlzSW52YWxp
ZCgpKTsKKyAgICBBU1NFUlQoIWRlY29kZXIuaXNJbnZhbGlkKCkpOwogCiAgICAgaWYgKHJlcGx5
RW5jb2RlcikKICAgICAgICAgc2VuZFN5bmNSZXBseShhZG9wdFB0cihzdGF0aWNfY2FzdDxNZXNz
YWdlRW5jb2Rlcio+KHJlcGx5RW5jb2Rlci5sZWFrUHRyKCkpKSk7CkBAIC02NTQsNyArNjU0LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKEluY29taW5nTWVzc2Fn
ZSYgaW5jb21pbmdNZXNzYWdlKQogICAgIG1fY2xpZW50UnVuTG9vcC0+ZGlzcGF0Y2goV1RGOjpi
aW5kKCZDb25uZWN0aW9uOjpkaXNwYXRjaE9uZU1lc3NhZ2UsIHRoaXMpKTsKIH0KIAotdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgTWVzc2FnZURl
Y29kZXIqIGRlY29kZXIpCit2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShNZXNzYWdl
SUQgbWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICAvLyBUcnkgdGhl
IG1lc3NhZ2UgcmVjZWl2ZXIgbWFwIGZpcnN0LgogICAgIGlmIChtX21lc3NhZ2VSZWNlaXZlck1h
cC5kaXNwYXRjaE1lc3NhZ2UodGhpcywgbWVzc2FnZUlELCBkZWNvZGVyKSkKQEAgLTY4MSw5ICs2
ODEsOSBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2Um
IG1lc3NhZ2UpCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IGlmIChtZXNzYWdlLm1lc3NhZ2VJRCgpLmlzU3luYygpKQotICAgICAgICBkaXNwYXRjaFN5bmNN
ZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCksIGFyZ3VtZW50cy5nZXQoKSk7CisgICAgICAgIGRp
c3BhdGNoU3luY01lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgKmFyZ3VtZW50cyk7CiAgICAg
ZWxzZQotICAgICAgICBkaXNwYXRjaE1lc3NhZ2UobWVzc2FnZS5tZXNzYWdlSUQoKSwgYXJndW1l
bnRzLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hNZXNzYWdlKG1lc3NhZ2UubWVzc2FnZUlEKCks
ICphcmd1bWVudHMpOwogCiAgICAgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgfD0gYXJndW1l
bnRzLT5pc0ludmFsaWQoKTsKICAgICBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQtLTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggMjUxYzU0YWMz
ZDhmYTgzODhmYjY4YTRiZmMzMzMxMzVhMTg0NDRlYS4uZDdiMDY5NGI2NmYwMzBkZmQ5MDMyZWVl
NDhjYTlkNDZjZDg5NjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9D
b25uZWN0aW9uLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAKICAgICBjbGFzcyBRdWV1
ZUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1l
bnREZWNvZGVyKiwgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29ubmVjdGlvbios
IE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSA9IDA7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgflF1ZXVlQ2xpZW50KCkgeyB9CkBA
IC0yNzYsOCArMjc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQ29ubmVjdGlvbkRp
ZENsb3NlKCk7CiAgICAgdm9pZCBkaXNwYXRjaE9uZU1lc3NhZ2UoKTsKICAgICB2b2lkIGRpc3Bh
dGNoTWVzc2FnZShJbmNvbWluZ01lc3NhZ2UmKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyKik7Ci0gICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXIqKTsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZShN
ZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaXNwYXRjaFN5bmNNZXNzYWdl
KE1lc3NhZ2VJRCwgTWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGRpZEZhaWxUb1NlbmRTeW5j
TWVzc2FnZSgpOwogCiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBvbiBhbnkgdGhyZWFkLgpAQCAtNDQw
LDcgKzQ0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgQ29ubmVjdGlvbjo6d2FpdEZv
ckFuZERpc3BhdGNoSW1tZWRpYXRlbHkodWludDY0X3QgZGVzCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEFTU0VSVChkZWNvZGVyLT5kZXN0aW5hdGlvbklEKCkgPT0gZGVzdGluYXRpb25J
RCk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKHRoaXMsIE1lc3NhZ2VJRChUOjpt
ZXNzYWdlSUQpLCBkZWNvZGVyLmdldCgpKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UodGhpcywgTWVzc2FnZUlEKFQ6Om1lc3NhZ2VJRCksICpkZWNvZGVyKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9I
YW5kbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1l
c3NhZ2UuaAppbmRleCA5MDljNjI4NmI2NGMyMjk1NjdjNDI5OTE5YWNiODRhMWZhNzc2N2I3Li43
OTJlNDRiNDU4MzQ3YzRlZTc4YjA2N2U1NmI4Y2ZhYzJhNGVmNGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMiw2ICsyLDggQEAK
ICNkZWZpbmUgSGFuZGxlTWVzc2FnZV9oCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCiAKIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMjMwLDEzMiArMjMyLDEzMSBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBBcmd1bWVudHM0PFAxLCBQ
MiwgUDMsIFA0PgogLy8gVmFyaWFkaWMgZGlzcGF0Y2ggZnVuY3Rpb25zLgogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czAmLCBBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0
aW9uKShkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFy
Z3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewot
ICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3VtZW50RGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgZGVjb2Rlcik7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFy
Z3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsK
LSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Miwg
YXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQx
LCBhcmdzLmFyZ3VtZW50MiwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzPgotdm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMzPFAxLCBQMiwgUDM+JiBhcmdz
LCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAg
ICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJn
cy5hcmd1bWVudDMsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBkZWNvZGVyKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBl
bmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rp
b24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIEFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3VtZW50RGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVu
YW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQ
NCwgdHlwZW5hbWUgUDU+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1
PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNv
ZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3Mu
YXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVu
dDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgZGVjb2Rlcik7CiB9CiAgICAgCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1
LCBQNj4mIGFyZ3MsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIpOworICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50Niwg
ZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwg
UDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlv
bikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3Vt
ZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJn
cy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3LCBhcmd1bWVudERlY29kZXIpOworICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJn
cy5hcmd1bWVudDcsIGRlY29kZXIpOwogfQogCiAvLyBWYXJpYWRpYyBkaXNwYXRjaCBmdW5jdGlv
bnMgd2l0aCBub24tdmFyaWFkaWMgcmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJn
cywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBS
Mz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1
bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Vt
ZW50RGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVw
bHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgZGVjb2Rl
ciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFy
Z3VtZW50Myk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBs
eUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwg
YXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1
bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVu
dDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5h
cmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQs
IGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIs
IHR5cGVuYW1lIFIzPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czY8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBBcmd1bWVu
dHMzPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0g
ICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFy
Z3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1l
bnQ2LCBhcmd1bWVudERlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJn
cy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVu
dDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CiB9CiAK
IC8vIE1haW4gZGlzcGF0Y2ggZnVuY3Rpb25zCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlKEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNz
YWdlKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewog
ICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYg
KCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogICAgIGNhbGxNZW1iZXJGdW5jdGlv
bihhcmd1bWVudHMsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZvaWQgaGFuZGxlTWVzc2FnZShBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50RGVjb2RlciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXIm
IGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCiB7CiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50
czsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKGFyZ3VtZW50cykpCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKICAgICB0eXBl
bmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwogICAgIGNhbGxNZW1iZXJG
dW5jdGlvbihhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKLSAg
ICByZXBseUVuY29kZXItPmVuY29kZShyZXBseUFyZ3VtZW50cyk7CisgICAgcmVwbHlFbmNvZGVy
LmVuY29kZShyZXBseUFyZ3VtZW50cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GPgotdm9pZCBoYW5kbGVNZXNzYWdlT25Db25uZWN0aW9uUXVldWUo
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGhhbmRsZU1lc3NhZ2VPbkNvbm5lY3Rpb25R
dWV1ZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAgICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1
ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1l
bnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVy
bjsKICAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgYXJndW1lbnRzLCBvYmplY3Qs
IGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgTUY+Ci12b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50RGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgaGFuZGxlTWVzc2FnZVZh
cmlhZGljKE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQog
ewogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAg
aWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxNZW1iZXJGdW5j
dGlvbihhcmd1bWVudHMsIGFyZ3VtZW50RGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7CisgICAg
Y2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3VtZW50cywgZGVjb2Rlciwgb2JqZWN0LCBmdW5jdGlvbik7
CiB9CiAKLQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12
b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2Rl
ciwgQXJndW1lbnRFbmNvZGVyKiByZXBseUVuY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24p
Cit2b2lkIGhhbmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVz
c2FnZUVuY29kZXImIHJlcGx5RW5jb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKICAg
ICB0eXBlbmFtZSBUOjpEZWNvZGVUeXBlOjpWYWx1ZVR5cGUgYXJndW1lbnRzOwotICAgIGlmICgh
YXJndW1lbnREZWNvZGVyLT5kZWNvZGUoYXJndW1lbnRzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHR5cGVuYW1lIFQ6OlJlcGx5
OjpWYWx1ZVR5cGUgcmVwbHlBcmd1bWVudHM7Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGFyZ3Vt
ZW50cywgYXJndW1lbnREZWNvZGVyLCByZXBseUFyZ3VtZW50cywgb2JqZWN0LCBmdW5jdGlvbik7
Ci0gICAgcmVwbHlFbmNvZGVyLT5lbmNvZGUocmVwbHlBcmd1bWVudHMpOworICAgIGNhbGxNZW1i
ZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKKyAgICByZXBseUVuY29kZXIuZW5jb2RlKHJlcGx5QXJndW1lbnRzKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+Ci12b2lkIGhhbmRs
ZU1lc3NhZ2VEZWxheWVkKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnREZWNvZGVyLCBPd25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBoYW5kbGVNZXNzYWdlRGVsYXllZChDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VF
bmNvZGVyPiYgcmVwbHlFbmNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIHR5
cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZhbHVlVHlwZSBhcmd1bWVudHM7Ci0gICAgaWYgKCFhcmd1
bWVudERlY29kZXItPmRlY29kZShhcmd1bWVudHMpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
YXJndW1lbnRzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPHR5cGVuYW1lIFQ6OkRl
bGF5ZWRSZXBseT4gZGVsYXllZFJlcGx5ID0gYWRvcHRSZWYobmV3IHR5cGVuYW1lIFQ6OkRlbGF5
ZWRSZXBseShjb25uZWN0aW9uLCByZXBseUVuY29kZXIucmVsZWFzZSgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXIuaAppbmRleCBmN2I2
MWNjZGMzMDZlZWVjYjZiZjY3ZjFhMTQ4ZTUwYTU0YmQ1NDg3Li45NTYwZTY2ZWViMmQ4YzYwYTBm
ODJjOTVjOWIwOGY5ZjQ0ZmQ5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyLmgKQEAgLTMyLDE2ICszMiwxNiBAQAogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKLWNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKLWNsYXNzIEFyZ3VtZW50RW5j
b2RlcjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFz
cyBDb25uZWN0aW9uOwogCiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgfk1lc3NhZ2VSZWNlaXZlcigpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvbm5lY3Rpb24qLCBNZXNz
YWdlSUQsIEFyZ3VtZW50RGVjb2RlciosIE93blB0cjxBcmd1bWVudEVuY29kZXI+JikKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgTWVz
c2FnZURlY29kZXImKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKQogICAgIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuY3BwCmluZGV4IGU0YzY2NmU2YjdiYTg5MzVhMzE4OGNiOThhZjdjOWFjMjYxOTFhMjUu
LmQ1MTQ5OTZmYzliMWI2YmM2MmRiM2IzNGU0ZDY3NjYxODQ0NTAxNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAK
QEAgLTU0LDIwICs1NCwyMCBAQCBib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6a25vd3NIb3dUb0hh
bmRsZU1lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCkgY29uc3QKICAgICByZXR1cm4gbV9nbG9i
YWxNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VJRC5tZXNzYWdlQ2xhc3MoKSk7CiB9
CiAKLWJvb2wgTWVzc2FnZVJlY2VpdmVyTWFwOjpkaXNwYXRjaE1lc3NhZ2UoQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgTWVzc2FnZUlEIG1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dERlY29kZXIpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6ZGlzcGF0Y2hNZXNzYWdlKENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VJRCBtZXNzYWdlSUQsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZlciA9IG1f
Z2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygpKSkgewot
ICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnREZWNvZGVyKTsKKyAgICAgICAgbWVzc2FnZVJlY2VpdmVyLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTWVzc2Fn
ZVJlY2VpdmVyTWFwOjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24s
IE1lc3NhZ2VJRCBtZXNzYWdlSUQsIEFyZ3VtZW50RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBP
d25QdHI8QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpCitib29sIE1lc3NhZ2VSZWNlaXZlck1hcDo6
ZGlzcGF0Y2hTeW5jTWVzc2FnZShDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBNZXNzYWdlSUQgbWVz
c2FnZUlELCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPE1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChNZXNzYWdlUmVjZWl2ZXIqIG1lc3NhZ2VSZWNlaXZl
ciA9IG1fZ2xvYmFsTWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZUlELm1lc3NhZ2VDbGFzcygp
KSkgewotICAgICAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50RGVjb2RlciwgcmVwbHkpOworICAgICAgICBtZXNz
YWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2
ZXJNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZVJlY2VpdmVy
TWFwLmgKaW5kZXggYjNmYjJlZTJkOGZkOTIyYjg3NjBkNDdkYTA0MDg0MzlkNzJlM2RhMi4uOGNm
YjFmNTlkODgyODNhOTQ4NzRlMjc4MTZlMTkyZDk4NTJlOGYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5oCkBAIC0zMiw5
ICszMiw5IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotY2xhc3MgQXJndW1lbnRFbmNvZGVy
OwotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3Nh
Z2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUVuY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7
CiAKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlck1hcCB7CkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKICAgICBib29sIGtub3dzSG93VG9IYW5kbGVNZXNzYWdl
KE1lc3NhZ2VJRCkgY29uc3Q7CiAKLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9u
KiwgTWVzc2FnZUlELCBBcmd1bWVudERlY29kZXIqKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01l
c3NhZ2UoQ29ubmVjdGlvbiosIE1lc3NhZ2VJRCwgQXJndW1lbnREZWNvZGVyKiwgT3duUHRyPEFy
Z3VtZW50RW5jb2Rlcj4mKTsKKyAgICBib29sIGRpc3BhdGNoTWVzc2FnZShDb25uZWN0aW9uKiwg
TWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYpOworICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2Fn
ZShDb25uZWN0aW9uKiwgTWVzc2FnZUlELCBNZXNzYWdlRGVjb2RlciYsIE93blB0cjxNZXNzYWdl
RW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIHJlY2VpdmVycyB0aGF0IGRv
bid0IHJlcXVpcmUgYSBkZXN0aW5hdGlvbiBJRC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDgzZGQzZmI3NDM1NzE2
ODExYjNlZjQ4MmQ4ZjkxNDNkOTk5YjVkZjQuLjNjNGY5MmE3ZGZlZWZiOGViYzliNjQ3ZTE3OTUz
ZDA1ZGY0YzVmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtNjEsOCArNjEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbml0aWFsaXplKGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
ZGVzdHJveSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
PiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IGJvb2wgd2FudHNXaGVlbEV2ZW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCA3MTI1ZDdkODY1M2JlMGIyYmMzOWFi
OTg3YTZhMDczZTZmYzQzY2UzLi4wM2M2ZjAwYjk5YjZjNzc1ZjUxNmQ4MTEzZjYxMzhmM2UwMGZh
NGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAKQEAgLTEzNCw5ICsxMzQsOSBAQCBib29sIFBsdWdpblByb2Nlc3M6OnNob3VsZFRlcm1pbmF0
ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFBsdWdpblByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNzTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQg
UGx1Z2luUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IDY0NTE1M2NlZTFlMmYy
ZmVmMGM0NjdhNjY4M2ZkZDY1M2Q0N2QxOGYuLjBkODU1NDI5ZGVmMzI5M2RmNGMxNWJmYjZlNjRk
ZmRmMzMyNzE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJv
Y2Vzcy5oCkBAIC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9u
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSBPVkVSUklERTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKICAgICB2b2lkIGluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGNyZWF0ZVdlYlByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBnZXRTaXRlc1dpdGhEYXRhKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcAppbmRleCAwNTA3ZDYxM2I3YmVkYjBiNWZjNjdiYjkxNjIzYzQ2NzY1
NWE1NDM0Li4xZDBmNzkwNzcyM2ZjYTY0ZWQ2M2YyNzY2YzllMDVkM2E5YTdlZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMTU4LDUwICsxNTgsNTAgQEAgdm9pZCBXZWJQcm9jZXNzQ29ubmVjdGlvbjo6c2V0
R2xvYmFsRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uU3RyaW5nKQogICAgIGNvbm5l
Y3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6U2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvblN0cmluZyksIE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bjo6U2V0RXhjZXB0aW9uOjpSZXBseSgpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBDb25uZWN0aW9u
U3RhY2s6OkN1cnJlbnRDb25uZWN0aW9uUHVzaGVyIGN1cnJlbnRDb25uZWN0aW9uKGNvbm5lY3Rp
b25TdGFjaygpLCBjb25uZWN0aW9uKTsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2
ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmICghYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpIHsKKyAgICBpZiAoIWRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250
cm9sbGVyUHJveHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0
aW9uSUQoKSk7CisgICAgUGx1Z2luQ29udHJvbGxlclByb3h5KiBwbHVnaW5Db250cm9sbGVyUHJv
eHkgPSBtX3BsdWdpbkNvbnRyb2xsZXJzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAg
ICAgaWYgKCFwbHVnaW5Db250cm9sbGVyUHJveHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
dWdpbkNvbnRyb2xsZXI6OlBsdWdpbkRlc3RydWN0aW9uUHJvdGVjdG9yIHByb3RlY3RvcihwbHVn
aW5Db250cm9sbGVyUHJveHktPmFzUGx1Z2luQ29udHJvbGxlcigpKTsKLSAgICBwbHVnaW5Db250
cm9sbGVyUHJveHktPmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBwbHVnaW5Db250cm9sbGVyUHJveHkt
PmRpZFJlY2VpdmVQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywg
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7CiAgICAgQ29ubmVjdGlvblN0YWNrOjpDdXJyZW50Q29ubmVjdGlvblB1c2hlciBj
dXJyZW50Q29ubmVjdGlvbihjb25uZWN0aW9uU3RhY2soKSwgY29ubmVjdGlvbik7CiAKLSAgICB1
aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAg
aWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7
CisgICAgICAgIGRpZFJlY2VpdmVTeW5jV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVjdE1hcC0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCBy
ZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRy
b2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBQbHVnaW5Db250cm9sbGVyUHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94
eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKICAg
ICBpZiAoIXBsdWdpbkNvbnRyb2xsZXJQcm94eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGx1
Z2luQ29udHJvbGxlcjo6UGx1Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0b3IgcHJvdGVjdG9yKHBsdWdp
bkNvbnRyb2xsZXJQcm94eS0+YXNQbHVnaW5Db250cm9sbGVyKCkpOwotICAgIHBsdWdpbkNvbnRy
b2xsZXJQcm94eS0+ZGlkUmVjZWl2ZVN5bmNQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgcGx1Z2luQ29udHJv
bGxlclByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4Mjk2YjU0NzBkMzBiNzkzNTdhZmQ5MGE0ZjUxYTQzODA2NDI2YjY3Li44YTE1YzljMmJk
MTBmNmU1ZTBhZDhhY2RmODYwZTFjZTE0YWIyZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MiwxNCArNjIsMTQg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2lu
Q29udHJvbGxlclByb3h5Kik7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgdm9pZCBjcmVhdGVQbHVnaW4oY29u
c3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzJiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OkNyZWF0ZVBsdWdpbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgdm9pZCBj
cmVhdGVQbHVnaW5Bc3luY2hyb25vdXNseShjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMm
KTsKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW4odWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCwgYm9v
bCBhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDkyNjg0ZmJhZWRiNTljNzc3YzFjMDVjZDRjYzk3
MjQxMDA3MjUxMzAuLjQ1ODRhODUzMWM3NGFkZjZlMDQzNmEwZDBjMDRiODk2MGM4OWIwMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTEzNiwxNCAr
MTM2LDE0IEBAIGRlZiBtZXNzYWdlX3RvX3N0cnVjdF9kZWNsYXJhdGlvbihtZXNzYWdlKToKICAg
ICAgICAgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRlKERFTEFZRURfQVRUUklCVVRFKToKICAgICAg
ICAgICAgIHNlbmRfcGFyYW1ldGVycyA9IFsoZnVuY3Rpb25fcGFyYW1ldGVyX3R5cGUoeC50eXBl
KSwgeC5uYW1lKSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3BhcmFtZXRlcnNdCiAgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCcgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBw
ZW5kKCcgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+
LCBQYXNzT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4pO1xuJykKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6
Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIH5EZWxheWVkUmVwbHkoKTtcbicpCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5k
KCcgICAgICAgIGJvb2wgc2VuZCglcyk7XG4nICUgJywgJy5qb2luKFsnICcuam9pbih4KSBmb3Ig
eCBpbiBzZW5kX3BhcmFtZXRlcnNdKSkKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykK
ICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBwcml2YXRlOlxuJykKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAgICAgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjtcbicpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgICAgIE93blB0cjxD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzO1xuJykKKyAgICAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyAgICAgICAgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIH07XG5cbicpCiAKICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHR5cGVkZWYgJXMgUmVwbHk7XG4nICUgcmVwbHlfdHlw
ZShtZXNzYWdlKSkKQEAgLTMxNyw3ICszMTcsNyBAQCBkZWYgaGFuZGxlcl9mdW5jdGlvbihyZWNl
aXZlciwgbWVzc2FnZSk6CiAKIAogZGVmIGFzeW5jX2Nhc2Vfc3RhdGVtZW50KHJlY2VpdmVyLCBt
ZXNzYWdlKToKLSAgICBkaXNwYXRjaF9mdW5jdGlvbl9hcmdzID0gWydhcmd1bWVudHMnLCAndGhp
cycsICcmJXMnICUgaGFuZGxlcl9mdW5jdGlvbihyZWNlaXZlciwgbWVzc2FnZSldCisgICAgZGlz
cGF0Y2hfZnVuY3Rpb25fYXJncyA9IFsnZGVjb2RlcicsICd0aGlzJywgJyYlcycgJSBoYW5kbGVy
X2Z1bmN0aW9uKHJlY2VpdmVyLCBtZXNzYWdlKV0KICAgICBkaXNwYXRjaF9mdW5jdGlvbiA9ICdo
YW5kbGVNZXNzYWdlJwogICAgIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShWQVJJQURJQ19BVFRS
SUJVVEUpOgogICAgICAgICBkaXNwYXRjaF9mdW5jdGlvbiArPSAnVmFyaWFkaWMnCkBAIC0zNDQs
NyArMzQ0LDcgQEAgZGVmIHN5bmNfY2FzZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgog
CiAgICAgcmVzdWx0ID0gW10KICAgICByZXN1bHQuYXBwZW5kKCcgICAgY2FzZSBNZXNzYWdlczo6
JXM6OiVzOlxuJyAlIChyZWNlaXZlci5uYW1lLCBtZXNzYWdlLmlkKCkpKQotICAgIHJlc3VsdC5h
cHBlbmQoJyAgICAgICAgQ29yZUlQQzo6JXM8TWVzc2FnZXM6OiVzOjolcz4oJXNhcmd1bWVudHMs
IHJlcGx5JXMsIHRoaXMsICYlcyk7XG4nICUgKGRpc3BhdGNoX2Z1bmN0aW9uLCByZWNlaXZlci5u
YW1lLCBtZXNzYWdlLm5hbWUsICdjb25uZWN0aW9uLCAnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0
ZShERUxBWUVEX0FUVFJJQlVURSkgZWxzZSAnJywgJycgaWYgbWVzc2FnZS5oYXNfYXR0cmlidXRl
KERFTEFZRURfQVRUUklCVVRFKSBlbHNlICcuZ2V0KCknLCBoYW5kbGVyX2Z1bmN0aW9uKHJlY2Vp
dmVyLCBtZXNzYWdlKSkpCisgICAgcmVzdWx0LmFwcGVuZCgnICAgICAgICBDb3JlSVBDOjolczxN
ZXNzYWdlczo6JXM6OiVzPiglc2RlY29kZXIsICVzcmVwbHlFbmNvZGVyLCB0aGlzLCAmJXMpO1xu
JyAlIChkaXNwYXRjaF9mdW5jdGlvbiwgcmVjZWl2ZXIubmFtZSwgbWVzc2FnZS5uYW1lLCAnY29u
bmVjdGlvbiwgJyBpZiBtZXNzYWdlLmhhc19hdHRyaWJ1dGUoREVMQVlFRF9BVFRSSUJVVEUpIGVs
c2UgJycsICcnIGlmIG1lc3NhZ2UuaGFzX2F0dHJpYnV0ZShERUxBWUVEX0FUVFJJQlVURSkgZWxz
ZSAnKicsIGhhbmRsZXJfZnVuY3Rpb24ocmVjZWl2ZXIsIG1lc3NhZ2UpKSkKICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAKICAgICByZXR1cm4gc3Vycm91bmRfaW5fY29u
ZGl0aW9uKCcnLmpvaW4ocmVzdWx0KSwgbWVzc2FnZS5jb25kaXRpb24pCkBAIC00MjAsNyArNDIw
LDcgQEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKICAgICBoZWFkZXJzID0g
ewogICAgICAgICAnIiVzIicgJSBtZXNzYWdlc19oZWFkZXJfZmlsZW5hbWUocmVjZWl2ZXIpOiBb
Tm9uZV0sCiAgICAgICAgICciSGFuZGxlTWVzc2FnZS5oIic6IFtOb25lXSwKLSAgICAgICAgJyJB
cmd1bWVudERlY29kZXIuaCInOiBbTm9uZV0sCisgICAgICAgICciTWVzc2FnZURlY29kZXIuaCIn
OiBbTm9uZV0sCiAgICAgfQogCiAgICAgdHlwZV9jb25kaXRpb25zID0ge30KQEAgLTQ5OSw5ICs0
OTksOSBAQCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAg
aWYgbWVzc2FnZS5jb25kaXRpb246CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnI2lm
ICVzXG5cbicgJSBtZXNzYWdlLmNvbmRpdGlvbikKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnJXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+IGFyZ3VtZW50cylcbicgJSBtZXNzYWdlLm5hbWUpCisgICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKCclczo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxD
b3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPiBlbmNvZGVyKVxuJyAlIG1lc3NhZ2UubmFtZSkKICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKVxuJykKLSAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cylcbicpCisgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCcgICAgLCBtX2VuY29kZXIoZW5jb2RlcilcbicpCiAgICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfVxu
JykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKQEAgLTUxMiw5ICs1MTIsOSBAQCBk
ZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnXG4nKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnYm9vbCAlczo6RGVsYXllZFJl
cGx5OjpzZW5kKCVzKVxuJyAlIChtZXNzYWdlLm5hbWUsICcsICcuam9pbihbJyAnLmpvaW4oeCkg
Zm9yIHggaW4gc2VuZF9wYXJhbWV0ZXJzXSkpKQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
e1xuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NFUlQobV9hcmd1bWVudHMp
O1xuJykKLSAgICAgICAgICAgIHJlc3VsdCArPSBbJyAgICBtX2FyZ3VtZW50cy0+ZW5jb2RlKCVz
KTtcbicgJSB4Lm5hbWUgZm9yIHggaW4gbWVzc2FnZS5yZXBseV9wYXJhbWV0ZXJzXQotICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGJvb2wgcmVzdWx0ID0gbV9jb25uZWN0aW9uLT5zZW5k
U3luY1JlcGx5KHN0YXRpY19wb2ludGVyX2Nhc3Q8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+KG1f
YXJndW1lbnRzLnJlbGVhc2UoKSkpO1xuJykKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAg
ICBBU1NFUlQobV9lbmNvZGVyKTtcbicpCisgICAgICAgICAgICByZXN1bHQgKz0gWycgICAgbV9l
bmNvZGVyLT5lbmNvZGUoJXMpO1xuJyAlIHgubmFtZSBmb3IgeCBpbiBtZXNzYWdlLnJlcGx5X3Bh
cmFtZXRlcnNdCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgYm9vbCByZXN1bHQgPSBt
X2Nvbm5lY3Rpb24tPnNlbmRTeW5jUmVwbHkobV9lbmNvZGVyLnJlbGVhc2UoKSk7XG4nKQogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7XG4nKQog
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIHJldHVybiByZXN1bHQ7XG4nKQogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnfVxuJykKQEAgLTU0NCw3ICs1NDQsNyBAQCBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgIGFzeW5jX21lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlKQogCiAgICAgaWYgYXN5bmNfZGlzcGF0Y2hfb25fY29ubmVjdGlvbl9x
dWV1ZV9tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2
ZSVzTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSlcbicgJSAocmVjZWl2ZXIu
bmFtZSwgcmVjZWl2ZXIubmFtZSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6OmRp
ZFJlY2VpdmUlc01lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCcjaWYgQ09NUElMRVIoTVNWQylcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJyNwcmFnbWEgd2FybmluZyhwdXNoKVxuJykKQEAgLTU2MSw3ICs1NjEsNyBA
QCBkZWYgZ2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICByZXN1bHQuYXBw
ZW5kKCd9XG5cbicpCiAKICAgICBpZiBhc3luY19tZXNzYWdlczoKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgndm9pZCAlczo6ZGlkUmVjZWl2ZSVzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpXG4nICUgKHJlY2VpdmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUpKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKCd2b2lkICVzOjpkaWRSZWNlaXZlJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcilcbicgJSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSkpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ3tcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBzd2l0
Y2ggKG1lc3NhZ2VJRC5nZXQ8TWVzc2FnZXM6OiVzOjpLaW5kPigpKSB7XG4nICUgcmVjZWl2ZXIu
bmFtZSkKICAgICAgICAgcmVzdWx0ICs9IFthc3luY19jYXNlX3N0YXRlbWVudChyZWNlaXZlciwg
bWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gYXN5bmNfbWVzc2FnZXNdCkBAIC01NzMsNyArNTczLDcg
QEAgZGVmIGdlbmVyYXRlX21lc3NhZ2VfaGFuZGxlcihmaWxlKToKIAogICAgIGlmIHN5bmNfbWVz
c2FnZXM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xuJykKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgndm9pZCAlczo6ZGlkUmVjZWl2ZVN5bmMlc01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiol
cywgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSlcbicg
JSAocmVjZWl2ZXIubmFtZSwgcmVjZWl2ZXIubmFtZSwgJyBjb25uZWN0aW9uJyBpZiBzeW5jX2Rl
bGF5ZWRfbWVzc2FnZXMgZWxzZSAnJykpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3ZvaWQgJXM6
OmRpZFJlY2VpdmVTeW5jJXNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qJXMsIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpXG4nICUgKHJlY2Vp
dmVyLm5hbWUsIHJlY2VpdmVyLm5hbWUsICcgY29ubmVjdGlvbicgaWYgc3luY19kZWxheWVkX21l
c3NhZ2VzIGVsc2UgJycpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCd7XG4nKQogICAgICAgICBy
ZXN1bHQuYXBwZW5kKCcgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjolczo6S2lu
ZD4oKSkge1xuJyAlIHJlY2VpdmVyLm5hbWUpCiAgICAgICAgIHJlc3VsdCArPSBbc3luY19jYXNl
X3N0YXRlbWVudChyZWNlaXZlciwgbWVzc2FnZSkgZm9yIG1lc3NhZ2UgaW4gc3luY19tZXNzYWdl
c10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191
bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0
dGVzdC5weQppbmRleCBjYWYyNzhjNTkwMjg4ZTQ5ZWVkODA4ZmRjM2Q5NzM3MDQ3OWI1ODFlLi5l
OGQxOTBkNDVjMzU5NTQzY2Q3MTIwNjdjNDRjNWRiYjE4N2JjMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5pdHRlc3QucHkKKysrIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC01MDQs
MTQgKzUwNCwxNCBAQCBzdHJ1Y3QgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBD
OjpBcmd1bWVudHMxPGNvbnN0IFdURjo6U3RyaW5nJj4gewogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBuYW1lKCkgeyByZXR1cm4gIkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uIjsgfQogCiAgICAg
c3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVk
UmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVj
dGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPik7CisgICAgICAgIERl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+LCBQYXNzT3duUHRyPENv
cmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsKIAogICAg
ICAgICBib29sIHNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0
aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxDb3JlSVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29k
ZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PENvcmVJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5OwpAQCAtNTI4LDE0ICs1MjgsMTQg
QEAgc3RydWN0IFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXMgOiBDb3JlSVBDOjpBcmd1bWVudHMwIHsK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogbmFtZSgpIHsgcmV0dXJuICJUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzIjsgfQogCiAgICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4sIFBhc3NPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rp
b24+LCBQYXNzT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgICAgIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+IG1fYXJndW1lbnRzOworICAgICAgICBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAgICAgdHlw
ZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMwIFJlcGx5OwpAQCAtNjcwLDcgKzY3MCw2IEBAIF9leHBl
Y3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9ICIiIi8qCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaWYgRU5BQkxFKERFUFJFQ0FURURfRkVB
VFVSRSkgfHwgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogI2luY2x1ZGUgIkR1bW15VHlw
ZS5oIgpAQCAtNjc5LDYgKzY3OCw3IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlv
biA9ICIiIi8qCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKKyNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC02OTcsOSArNjk3LDkgQEAgbmFtZXNwYWNlIE1lc3NhZ2VzIHsKIAogbmFtZXNwYWNlIFdl
YlBhZ2UgewogCi1HZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBQYXNz
T3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4gYXJndW1lbnRzKQorR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29y
ZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdl
RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwg
bV9hcmd1bWVudHMoYXJndW1lbnRzKQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAK
QEAgLTcxMCwxNiArNzEwLDE2IEBAIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBj
b25uZWN0aW9uSGFuZGxlKQogewotICAgIEFTU0VSVChtX2FyZ3VtZW50cyk7Ci0gICAgbV9hcmd1
bWVudHMtPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29u
bmVjdGlvbi0+c2VuZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPihtX2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVy
KTsKKyAgICBtX2VuY29kZXItPmVuY29kZShjb25uZWN0aW9uSGFuZGxlKTsKKyAgICBib29sIHJl
c3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgpKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+IGFyZ3VtZW50cykKK1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgUGFzc093blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKICAg
ICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQotICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRz
KQorICAgICwgbV9lbmNvZGVyKGVuY29kZXIpCiB7CiB9CiAKQEAgLTczMCw4ICs3MzAsOCBAQCBU
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6On5EZWxheWVkUmVwbHkoKQogCiBi
b29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiB7Ci0gICAg
QVNTRVJUKG1fYXJndW1lbnRzKTsKLSAgICBib29sIHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2Vu
ZFN5bmNSZXBseShzdGF0aWNfcG9pbnRlcl9jYXN0PENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiht
X2FyZ3VtZW50cy5yZWxlYXNlKCkpKTsKKyAgICBBU1NFUlQobV9lbmNvZGVyKTsKKyAgICBib29s
IHJlc3VsdCA9IG1fY29ubmVjdGlvbi0+c2VuZFN5bmNSZXBseShtX2VuY29kZXIucmVsZWFzZSgp
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC03NDIsNyArNzQyLDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpCit2b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICNpZiBDT01QSUxFUihNU1ZDKQogI3ByYWdtYSB3YXJuaW5nKHB1c2gpCkBAIC03NTAs
NyArNzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2VPbkNvbm5l
Y3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbioKICNlbmRpZgogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RDb25uZWN0aW9uUXVldWVJRDoKLSAgICAgICAgQ29yZUlQQzo6
aGFuZGxlTWVzc2FnZU9uQ29ubmVjdGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29u
bmVjdGlvblF1ZXVlPihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0
Q29ubmVjdGlvblF1ZXVlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZU9uQ29ubmVj
dGlvblF1ZXVlPE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0Q29ubmVjdGlvblF1ZXVlPihjb25uZWN0
aW9uLCBkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdENvbm5lY3Rpb25RdWV1ZSk7CiAgICAg
ICAgIGRpZEhhbmRsZU1lc3NhZ2UgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgZGVmYXVs
dDoKQEAgLTc2MSw0OCArNzYxLDQ4IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VN
ZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxNZXNzYWdlczo6V2ViUGFnZTo6S2luZD4oKSkgewogICAgIGNhc2UgTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkxJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdl
czo6V2ViUGFnZTo6TG9hZFVSTD4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6bG9hZFVSTCk7
CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRV
Ukw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKICAgICAgICAgcmV0dXJuOwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6VG91
Y2hFdmVudElEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpUb3VjaEV2ZW50Pihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjp0b3VjaEV2ZW50KTsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hF
dmVudD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRvdWNoRXZlbnQpOwogICAgICAgICByZXR1
cm47CiAjZW5kaWYKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdl
OjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24+KGRlY29kZXIs
IHRoaXMsICZXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOwogICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2VJRDoKLSAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2U+KGFyZ3VtZW50cywgdGhp
cywgJldlYlBhZ2U6OmNsb3NlKTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNz
YWdlczo6V2ViUGFnZTo6Q2xvc2U+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpjbG9zZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0Rp
ZENoYW5nZUlEOgotICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oYXJndW1lbnRzLCB0aGlzLCAmV2ViUGFnZTo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZT4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVz
c2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdElEOgotICAgICAgICBDb3JlSVBDOjpo
YW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kRG91YmxlQW5kRmxvYXQ+KGFyZ3Vt
ZW50cywgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CisgICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlNlbmREb3VibGVBbmRGbG9hdD4o
ZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnNlbmREb3VibGVBbmRGbG9hdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50c0lEOgotICAgICAgICBD
b3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oYXJndW1l
bnRzLCB0aGlzLCAmV2ViUGFnZTo6c2VuZEludHMpOworICAgICAgICBDb3JlSVBDOjpoYW5kbGVN
ZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpTZW5kSW50cz4oZGVjb2RlciwgdGhpcywgJldlYlBh
Z2U6OnNlbmRJbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTWVzc2FnZXM6OldlYlBh
Z2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihhcmd1bWVu
dHMsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVyQXR0cmlidXRlcyk7CisgICAgICAgIENv
cmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRy
aWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMp
OwogICAgICAgICByZXR1cm47CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAgICAgIENvcmVJ
UEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3ND
b25uZWN0aW9uPihhcmd1bWVudHMsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNz
Q29ubmVjdGlvbik7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uPihkZWNvZGVyLCB0aGlzLCAmV2Vi
UGFnZTo6ZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOwogICAgICAgICByZXR1cm47CiAj
ZW5kaWYKICNpZiBFTkFCTEUoREVQUkVDQVRFRF9GRUFUVVJFKQogICAgIGNhc2UgTWVzc2FnZXM6
OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb25JRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6RGVwcmVjYXRlZE9wZXJhdGlvbj4oYXJndW1lbnRz
LCB0aGlzLCAmV2ViUGFnZTo6ZGVwcmVjYXRlZE9wZXJhdGlvbik7CisgICAgICAgIENvcmVJUEM6
OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkRlcHJlY2F0ZWRPcGVyYXRpb24+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpkZXByZWNhdGVkT3BlcmF0aW9uKTsKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCiAjaWYgRU5BQkxFKEVYUEVSSU1FTlRBTF9GRUFUVVJFKQogICAgIGNhc2Ug
TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1lbnRhbE9wZXJhdGlvbklEOgotICAgICAgICBDb3Jl
SVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpFeHBlcmltZW50YWxPcGVyYXRp
b24+KGFyZ3VtZW50cywgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJhdGlvbik7Cisg
ICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkV4cGVyaW1l
bnRhbE9wZXJhdGlvbj4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OmV4cGVyaW1lbnRhbE9wZXJh
dGlvbik7CiAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgIGRlZmF1bHQ6CkBAIC04MTIsMjEg
KzgxMiwyMSBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlECiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3luY1dlYlBh
Z2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8
Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAgc3dpdGNoICht
ZXNzYWdlSUQuZ2V0PE1lc3NhZ2VzOjpXZWJQYWdlOjpLaW5kPigpKSB7CiAgICAgY2FzZSBNZXNz
YWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1Z2luSUQ6Ci0gICAgICAgIENvcmVJUEM6OmhhbmRsZU1l
c3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oYXJndW1lbnRzLCByZXBseS5n
ZXQoKSwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CisgICAgICAgIENvcmVJUEM6Omhh
bmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJl
cGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE1lc3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0QWxlcnRJRDoKLSAg
ICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6UnVuSmF2YVNj
cmlwdEFsZXJ0Pihhcmd1bWVudHMsIHJlcGx5LmdldCgpLCB0aGlzLCAmV2ViUGFnZTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KTsKKyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEFsZXJ0PihkZWNvZGVyLCAqcmVwbHlFbmNvZGVyLCB0aGlz
LCAmV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgTWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uSUQ6Ci0gICAg
ICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkPE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4oY29ubmVjdGlvbiwgYXJndW1lbnRzLCByZXBseSwgdGhp
cywgJldlYlBhZ2U6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKTsKKyAgICAgICAgQ29yZUlQ
Qzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQ8TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPihjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIsIHRoaXMsICZX
ZWJQYWdlOjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik7CiAgICAgICAgIHJldHVybjsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgY2FzZSBNZXNzYWdlczo6V2ViUGFnZTo6SW50ZXJwcmV0S2V5
RXZlbnRJRDoKLSAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFn
ZTo6SW50ZXJwcmV0S2V5RXZlbnQ+KGFyZ3VtZW50cywgcmVwbHkuZ2V0KCksIHRoaXMsICZXZWJQ
YWdlOjppbnRlcnByZXRLZXlFdmVudCk7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8
TWVzc2FnZXM6OldlYlBhZ2U6OkludGVycHJldEtleUV2ZW50PihkZWNvZGVyLCAqcmVwbHlFbmNv
ZGVyLCB0aGlzLCAmV2ViUGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQpOwogICAgICAgICByZXR1cm47
CiAjZW5kaWYKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKaW5kZXggZTBhZjk4YmJhYWFjYjNk
ZDA1YjFiNzMyN2I4M2YyNGM3ZGFhYjYxNy4uOTJkMGE0NWQyNjQ2MDY2MDMxMDk1NGM1ODY4NDk5
OGRlMDlhM2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBP
YmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3JlYXRlKE5QUmVt
b3RlT2JqZWN0TWFwKiwgUGx1Z2luKiwgdWludDY0X3QgbnBPYmplY3RJRCwgTlBPYmplY3QqKTsK
ICAgICB+TlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVN5
bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpOwogCiAgICAgUGx1Z2luKiBwbHVnaW4oKSBjb25zdCB7IHJldHVybiBtX3BsdWdp
bjsgfQogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2Jq
ZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0
TWFwLmNwcAppbmRleCBiNWVjMmQ5ZGEzOWYyNmRjYjQzMjBkOTVlMDNmMmZjYWU0ZTdkN2RmLi5h
NTAxODZjYzRmNDYwODUzN2I5MTJmMmVmMDM4NzhlZDkyNTUwODQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwCkBAIC0yMjcs
MTMgKzIyNywxMyBAQCB2b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpwbHVnaW5EZXN0cm95ZWQoUGx1
Z2luKiBwbHVnaW4pCiAgICAgfQogfQogCi12b2lkIE5QUmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMs
IE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgTlBSZW1vdGVP
YmplY3RNYXA6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQogewotICAgIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBt
X3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAg
ICBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciogbWVzc2FnZVJlY2VpdmVyID0gbV9yZWdpc3RlcmVk
TlBPYmplY3RzLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiAgICAgaWYgKCFtZXNzYWdl
UmVjZWl2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1lc3NhZ2VSZWNlaXZlci0+ZGlkUmVj
ZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtZXNzYWdlUmVjZWl2ZXItPmRpZFJlY2VpdmVT
eW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaAppbmRl
eCAwYmZhZWZkZjViZWE3NDVkYjY4YjNlYTM2NTUxNTE3ZDczZWQ0ZGU0Li42OGQzMmFiYmFjY2M2
MTJhYTJmY2JjMGY1OWI5ZDZjMDg0MDY4NGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoUGx1Z2luKik7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6OkFy
Z3VtZW50RW5jb2Rlcj4mIHJlcGx5KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBOUFJlbW90ZU9iamVjdE1hcChDb3JlSVBDOjpDb25uZWN0aW9uKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKaW5kZXggOTc0M2E3OGM3NzA4NDQ0
OTM3YjZmOWFlMWYxNjhlN2UyNmZiZTE2ZC4uOTJlNjNjNGZjM2RiOGRjOWRjMDMyMGMzNjNjZGQ5
Y2UwOGE3YTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIFdlYkNvbm5lY3Rpb246OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZU5hbWUsIEFQSU9iamVjdCogbWVzc2FnZUJvZAogCiAgICAgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4gbWVzc2FnZURhdGEgPSBDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI6OmNyZWF0ZSgpOwogICAgIG1lc3NhZ2VEYXRhLT5lbmNvZGUobWVzc2FnZU5hbWUpOwotICAg
IGVuY29kZU1lc3NhZ2VCb2R5KG1lc3NhZ2VEYXRhLmdldCgpLCBtZXNzYWdlQm9keSk7CisgICAg
ZW5jb2RlTWVzc2FnZUJvZHkoKm1lc3NhZ2VEYXRhLCBtZXNzYWdlQm9keSk7CiAKICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbm5lY3Rpb246OkhhbmRsZU1lc3NhZ2UoQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZShtZXNzYWdlRGF0YS0+YnVmZmVyKCksIG1lc3NhZ2VEYXRhLT5i
dWZmZXJTaXplKCkpKSwgMCk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgV2ViQ29ubmVjdGlv
bjo6aGFuZGxlTWVzc2FnZShjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gbWVzc2FnZUJvZHk7
Ci0gICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keShkZWNvZGVyLmdldCgpLCBtZXNzYWdlQm9keSkp
CisgICAgaWYgKCFkZWNvZGVNZXNzYWdlQm9keSgqZGVjb2RlciwgbWVzc2FnZUJvZHkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0aGlzLCBtZXNz
YWdlTmFtZSwgbWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0
aW9uLmgKaW5kZXggYjE0ZDFmMzQ3YzUwMGU5ODgyOTQ5OTllOTViOGU3ZDM1ZDBkNzgyNC4uMDZh
MDEzNGRjOTY4YjIyMDMzMzBjNTkxMDg5MGEzZTAxODc0NTZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC01OCwxMSArNTgsMTEgQEAgcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IFdlYkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiwg
QVBJT2JqZWN0KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJ
T2JqZWN0KikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJT2JqZWN0PiYpID0gMDsKIAogICAgIC8vIElt
cGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9p
ZCBoYW5kbGVNZXNzYWdlKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2VEYXRh
KTsKIAogICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJQcm9jZXNzLmNwcAppbmRleCA1YzRiMjA2YTA4YTVlMWY3NTY0NDk2NTFkN2ZkYjUxMDYwZmVl
YThhLi5lMjQzNDJhZmQ2NmExODhiYjk2NjkwNjRmMjA2NmRkYzYxNDBiOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2Vy
UHJvY2Vzcy5jcHAKQEAgLTEwMSw5ICsxMDEsOSBAQCBib29sIFNoYXJlZFdvcmtlclByb2Nlc3M6
OnNob3VsZFRlcm1pbmF0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3M6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCmluZGV4IGQ4
NjQxNTU3ZWQzYWM4YTQ4MzEzZDY2OGFkMDNlZDIxYTMwZmRjZDEuLjM5ZWM2YmI5OGNiMWVhMTUw
YjNkNjdiZGYxZDAxYzc0ZmRlMTE4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5oCkBAIC01NSwxMiArNTUs
MTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCk7CiAKICAg
ICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoY29u
c3QgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQgY3Jl
YXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDFhMmFiYmRmMTkyMDNjNWI4ZDIzMjQ5ZWQyNmVlMzNk
ODVkYjNhNWEuLjM3MzhlYTRjMzAyOGIzODU2ZWU4ZDllY2I3YWQ5ZGE2NjcwZGRhMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVyKFdl
YkxheWVySUQpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViTGF5ZXJJRCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBwdXJnZUdMUmVzb3VyY2VzKCk7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAg
dm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYsIGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlVGlsZUZvckxheWVyKGlu
dCBsYXllcklELCBpbnQgdGlsZUlEKTsKICAgICB2b2lkIGNyZWF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEltYWdlKGludDY0X3QsIGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsK
ICAgICB2b2lkIGRlc3Ryb3lEaXJlY3RseUNvbXBvc2l0ZWRJbWFnZShpbnQ2NF90KTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5l
eHRGcmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggYzFlZGExZmQxOTA3Yzk5N2RiYTgzZmUz
MGM0N2I1NjYyZTZmMzliOS4uNzEwOGUyNzJkMzk4ZmI3Y2U5NDczNzllZTg2ZGU0MGM0YzZiNGU3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5LmgKQEAgLTYxLDggKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogICAgIHZvaWQgcHJvY2Vzc0RpZENsb3NlKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVEb3du
bG9hZFByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jRG93
bmxvYWRQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5j
b2Rlcj4mKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIHZvaWQgc3RhcnRUcmFuc2Zlcihjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAppbmRleCAyZDI2ZjQ4
MTgwYjBlZDMyMzNiMDMyZDUxN2JlYzAyZWU4ODM5MjBlLi45MDBkNmE1ODgyZmYyNDk4MjdiNjA0
MmZmNTNiMDZlNzUzZTY3ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdp
bmdBcmVhUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIFdlYkNvcmU6OkludFJlY3QgRHJhd2lu
Z0FyZWFQcm94eTo6Y29udGVudHNSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdChJbnRQ
b2ludDo6emVybygpLCBtX3dlYlBhZ2VQcm94eS0+dmlld1NpemUoKSk7CiB9CiAKLXZvaWQgRHJh
d2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciopCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZFJlY2VpdmVMYXllclRyZWVD
b29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGEzODkxYmFkY2RlNDEw
Mzc0YzI5MGM1NDA2YzM3MjM0OGVkNWQ2YWEuLjQ1MDgxNmEzNGI1YmRmOWYzYmIyMGVhMzVhNmU0
OWExYmEyZGVhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNDQsOCArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm8gY2Fpcm9fdDsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwog
ICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAgY2xh
c3MgTWVzc2FnZUlEOwogfQogCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKIAogICAgIERyYXdp
bmdBcmVhVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdmlydHVh
bCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgPSAwOwogCkBAIC0xMDAsNyArMTAw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlRm9yTGF5ZXIoaW50IC8q
IGxheWVySUQgKi8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQg
Ki8sIGludCAvKiB0aWxlSUQgKi8sIGNvbnN0IFdlYktpdDo6VXBkYXRlSW5mbyYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlRm9yTGF5ZXIoaW50IC8qIGxheWVySUQgKi8sIGludCAv
KiB0aWxlSUQgKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAg
V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV93ZWJQYWdlUHJveHk7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAK
aW5kZXggOTY2YWM2YjNjOTYwYjA3NWY1MTdmOWUxZTI1NGFiY2Y2ZTBmYjg4OS4uMTM4ZjRjODg3
MGI5OTgwZjY1MDc3YWI4MmVmOTViMjRmNzk1YzFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCkBAIC0zNjYsMTAgKzM2NiwxMCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKGNvbnN0IExheWVyVHJlZUNvbnRleAogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1l
bnRzKQordm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChtX2xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpCi0gICAgICAgIG1fbGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS0+ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9s
YXllclRyZWVDb29yZGluYXRvclByb3h5LT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBE
cmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCA3NjJlMzVjNjk4MzdkZjQ1NzVk
M2VhNmFkNTU1MmM0NWUxZTI0MWY3Li5mZTA1MTBlZjg2MWQ0Zjk2ZjEwMGJlZmYyNWNiMmYwZjkx
NzRlMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGZsb2F0
IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5KTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwogI2VuZGlmCiAjZWxzZQogICAgIGJvb2wgaXNJbkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggZmU1
MjgzNTFhZDk2NjNlZDQ1NTA1NDY0YTA5NTdkYTYwN2NiNTQwMC4uZDA4YTg5MTcyZGE2MjgwOWEw
ZTRiM2UyYzg5YmUxZDUxY2QxODE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkoKQogCiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggNTdlMzdlNjUzMGEzZmYzMzI1NDkzMTk0NjUyOTdkMmMxMjIy
ZjdmZC4uMWRiNWQ5OWZlNWMzZTI1M2E1NWRlNTU3NmNkZGY2OWI5ZGZiNzc5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCmluZGV4IDA3ZTFmODQ5NzcxNjQ3NWVl
M2JmMTk2YmM1NDlkNzlkMDFhN2VjYjcuLjFlMTFjNTdkZjU4NjJhYzE0MjliMzdlMTQ3NzVhNDYz
ODQ3NWRmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcApA
QCAtNzIsOSArNzIsOSBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6cG9wdWxh
dGVDb3B5T2ZOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhIYXNoTWFwPAogICAgIH0KIH0KIAotdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6c2hv
dyhXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBjb25zdCBTdHJpbmcmIGRpciwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAppbmRleCA2MjA5MTVkMTRiNjE4YWExMTYxNjFiM2MyMjljYWZlOWE5NDU0MGFlLi5k
NTQzMzg3Njk5NTYwOTUyZDJmZjFlMGQ5OTczNTYxYWNlYjM3Yzk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaApAQCAtNjgsOCArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8g
Q29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGNhbmNlbCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxMGY1OGI5YmIzMjUyNDNmMzg2MDk0NDkxOTkzMDBk
ZmE2ZWRmNjE2Li5lNTFlZWQ3ZGZhZjRhNjZkMWJiMzc2NWI0NGFjM2Q5Mjg5NTJkYzEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKQEAgLTE1Niw5ICsxNTYsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGx1Z2luUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3BsdWdpblByb2Nl
c3NNYW5hZ2VyLT5yZW1vdmVQbHVnaW5Qcm9jZXNzUHJveHkodGhpcyk7CiB9CiAKLXZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBk
aWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxMzJiYjc0
YmZkNWRjYTFiOWY0NzdmOTY1ODVlNjM1NzNmZGEzZGI4Li5iZGFkZTI3ZTUyMDBhODAxNDBmZDhm
ODViZjM4YTUyZDI5MDc0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTgsMTUgKzk4LDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAog
ICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQpIE9WRVJSSURFOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVy
OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gTWVzc2Fn
ZSBoYW5kbGVycwotICAgIHZvaWQgZGlkUmVjZWl2ZVBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgQ29yZUlQQzo6QXR0YWNobWVudCYsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7CiAgICAgdm9pZCBkaWRHZXRTaXRlc1dpdGhEYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRDbGVh
clNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAKaW5kZXggNWE3OTY3NTcyOGVjMjMyZTJhMDY4NzhhZmRhN2Y0MmRmODhjYzU5
My4uOGUyZjhlNTExZDgxYTU5M2Q5ODk1MWEyOTIzMzQwMzA3MjI3ZmQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9T
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBTaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRU
b0xhdW5jaCgpCiAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci0+cmVtb3ZlU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5KHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVj
ZWl2ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDc3NDgyZjllNWQxMjc1Y2U1ZmVkMmZhNTk3
MjAxNzkxYWM1ODBjMi4uZTNiNmEyYWNjNjE5ZjI0YWNmN2Q0MDQzNjE3NjdiNDBiNjI2NmUyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJl
ZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNoYXJlZFdvcmtlclByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5j
aCgpOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3Jl
SVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKIApAQCAtNjgs
NyArNjgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCBkaWRSZWNlaXZlU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVX
ZWJQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBDb3JlSVBDOjpBdHRhY2htZW50Jik7CiAKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVNoYXJlZFdvcmtlclByb2Nlc3MoU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDRm
YzQxYmEyMTJmYjE1Y2E1ZWFiY2I4MWU1YzFkMmMxMzU0ZWRmMmEuLjIwNTUwZDIwNzM1OWQxNDky
ZWE3MjAwZjI3NTRlYmQ2NjA0YjZmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4
LDkgKzU4LDkgQEAgYm9vbCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpzaG91bGRU
ZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QKICAgICByZXR1cm4gbV9hcnJheUNhbGxi
YWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCmluZGV4IDQ2NDYyMTg1NmI2OWM1ZWJhZTk4YmI5YWU3NTUwY2RjNmNkODli
Y2UuLjMyNTM4YjNkMzczNGNlOWFjNTU2NDc1MTZjMTJmOTU1ZWM4NzZjMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKICAgICBjbGFz
cyBDb25uZWN0aW9uOwogICAgIGNsYXNzIE1lc3NhZ2VJRDsKIH0KQEAgLTczLDggKzcyLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
IAogICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGI0MmI3
YjAyMTc0NjU2ZWM2Y2QzZTI2MDdmZDhjZDNlN2JmNGYxYzAuLmUxYjc1NWEyMGVhOTgwNmViZmNj
MTg3NGU2YTYxMDc0MjhkZjU3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKQEAgLTU5LDkgKzU5LDkgQEAgdm9pZCBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tCYXR0ZXJ5UHJv
dmlkZXIqIHByb3ZpZGUKICAgICBtX3Byb3ZpZGVyLmluaXRpYWxpemUocHJvdmlkZXIpOwogfQog
Ci12b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKaW5kZXgg
NjVjNjYxNGRhZGU5MTgyY2I4M2RkZjUzN2NjYmNmOThhZmRiMjQ0ZS4uODNlMjEyOGFjNjlkNDc0
YjkwMDNiNmQ2OTgwNDE4Nzg0MTAwZDU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCkBAIC01OSwxMCArNTksMTAgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAog
ICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJik7CiAKICAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKICAgICB2b2lkIHN0b3BVcGRhdGlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IDg2YmE5MWMwODQyYjA5Yzk5MmFhM2U2NzZlYTU0YzgyMjk0
YWY4ZDQuLmZmNDNiMzQxMTY1OGNjZTI2MjVkYzk3MDJmNGNhY2Y3ZTIyZmEzOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQwogCiAvLyBX
ZWJDb25uZWN0aW9uCiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5jb2RlTWVz
c2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBhcmd1bWVudEVuY29kZXIsIEFQSU9i
amVjdCogbWVzc2FnZUJvZHkpCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuY29k
ZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0
KiBtZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShXZWJDb250ZXh0
VXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CisgICAgZW5jb2Rlci5lbmNvZGUoV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOwogfQogCi1ib29sIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnREZWNvZGVyLCBSZWZQdHI8QVBJT2JqZWN0PiYgbWVzc2FnZUJvZHkp
Citib29sIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VC
b2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9keSwgbV9wcm9jZXNzKSkpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5LCBtX3Byb2Nl
c3MpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02Nywx
OSArNjcsMTkgQEAgYm9vbCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3UKIAogLy8gQ29yZUlQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50CiAKLXZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lk
IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNlaXZl
V2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vzcy0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVu
Y29kZXIpCiB7Ci0gICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICBtX3Byb2Nlc3MtPmRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rl
cik7CiB9CiAKIHZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDE2MDgxMzI0N2QwZjBmOWE3
MzdkOGE1MmM0NzY3N2FmYTM5MjhmYTcuLjBiMWZjMDlmODk3MTIyYzM5ZDAyOTUwOTk2Mzc2OTE1
OWZmNmJiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDIsMTIgKzQyLDEyIEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0
aW9uCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVN
ZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZGVjb2RlTWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9i
amVjdD4mKSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCmluZGV4IDgxZTdiYzQ3N2Q0YjZmODExZWI0NDA3NDNlNWNlYWMzMjE0ODc0MjEuLjhh
NDRiNzgxNDRkMmYxZWNkZmFhZTkyYjBhM2RkMjE3ZDNlYWVmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTc4MiwyNiArNzgyLDI2IEBAIHZvaWQgV2ViQ29u
dGV4dDo6YWRkTWVzc2FnZVJlY2VpdmVyKENvcmVJUEM6Ok1lc3NhZ2VDbGFzcyBtZXNzYWdlQ2xh
c3MsIENvcmVJUEM6CiAgICAgbV9tZXNzYWdlUmVjZWl2ZXJNYXAuYWRkTWVzc2FnZVJlY2VpdmVy
KG1lc3NhZ2VDbGFzcywgbWVzc2FnZVJlY2VpdmVyKTsKIH0KIAotYm9vbCBXZWJDb250ZXh0Ojpk
aXNwYXRjaE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERl
Y29kZXIpCitib29sIFdlYkNvbnRleHQ6OmRpc3BhdGNoTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJN
YXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnREZWNvZGVy
KTsKKyAgICByZXR1cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLWJvb2wgV2ViQ29udGV4dDo6ZGlzcGF0
Y2hTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50RGVj
b2RlciwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQorYm9vbCBXZWJD
b250ZXh0OjpkaXNwYXRjaFN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIp
CiB7Ci0gICAgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudERlY29kZXIsIHJlcGx5KTsKKyAgICByZXR1
cm4gbV9tZXNzYWdlUmVjZWl2ZXJNYXAuZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAgICBkaWRSZWNlaXZlV2ViQ29udGV4
dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBkaWRS
ZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKSkgewotICAgICAgICBpZiAoRG93bmxvYWRQcm94
eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChhcmd1bWVudHMtPmRlc3RpbmF0aW9u
SUQoKSkuZ2V0KCkpCi0gICAgICAgICAgICBkb3dubG9hZFByb3h5LT5kaWRSZWNlaXZlRG93bmxv
YWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICBpZiAoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSA9IG1fZG93bmxvYWRzLmdldChkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSkuZ2V0KCkpCisgICAgICAgICAgICBkb3dubG9hZFByb3h5LT5k
aWRSZWNlaXZlRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MTEsNyArODExLDcg
QEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFt
ZTsKICAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG1lc3NhZ2VCb2R5OwogICAgICAgICAg
ICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9k
eSwgV2ViUHJvY2Vzc1Byb3h5Ojpmcm9tQ29ubmVjdGlvbihjb25uZWN0aW9uKSk7Ci0gICAgICAg
ICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdlTmFtZSwgbWVz
c2FnZURlY29kZXIpKSkKKyAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoQ29yZUlQQzo6
T3V0KG1lc3NhZ2VOYW1lLCBtZXNzYWdlRGVjb2RlcikpKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVz
c2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTgyNCwxNiArODI0LDE2IEBAIHZvaWQg
V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQg
V2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVw
bHkpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKSkgewotICAgICAgICBkaWRSZWNlaXZlU3luY1dlYkNvbnRleHRN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAg
IGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpKSB7Ci0g
ICAgICAgIGlmIChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5ID0gbV9kb3dubG9hZHMuZ2V0
KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKS5nZXQoKSkKLSAgICAgICAgICAgIGRvd25sb2Fk
UHJveHktPmRpZFJlY2VpdmVTeW5jRG93bmxvYWRQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAgICAgICAgaWYgKERvd25sb2FkUHJveHkqIGRv
d25sb2FkUHJveHkgPSBtX2Rvd25sb2Fkcy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpLmdl
dCgpKQorICAgICAgICAgICAgZG93bmxvYWRQcm94eS0+ZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg0NCwxMiArODQ0LDEyIEBAIHZvaWQgV2Vi
Q29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7CiAgICAgICAg
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiBtZXNzYWdlQm9keTsKICAgICAgICAgICAgIFdlYkNvbnRl
eHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHksIFdlYlByb2Nl
c3NQcm94eTo6ZnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbikpOwotICAgICAgICAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQobWVzc2FnZU5hbWUsIG1lc3NhZ2VEZWNvZGVy
KSkpCisgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKENvcmVJUEM6Ok91dChtZXNzYWdl
TmFtZSwgbWVzc2FnZURlY29kZXIpKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IHJldHVybkRhdGE7CiAgICAgICAgICAgICBkaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keS5nZXQoKSwgcmV0dXJuRGF0YSk7Ci0gICAgICAgICAgICByZXBseS0+ZW5jb2RlKENv
cmVJUEM6OkluKFdlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQoKSkp
KTsKKyAgICAgICAgICAgIHJlcGx5RW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKFdlYkNvbnRl
eHRVc2VyTWVzc2FnZUVuY29kZXIocmV0dXJuRGF0YS5nZXQoKSkpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBjYXNlIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQ
b3N0TWVzc2FnZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDllOGQ4
MDU0YWM3M2U2MTk2MjEwNWVkZDMzM2EwYTUxMDc1Y2E4NTkuLjUxYzk3MDBkNDEwY2IyMjgwNzc3
YTJlNmE5YTE1MjZhYzQ5ZTUzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aApAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3RvcjxXZWJD
b250ZXh0Kj4mIGFsbENvbnRleHRzKCk7CiAKICAgICB2b2lkIGFkZE1lc3NhZ2VSZWNlaXZlcihD
b3JlSVBDOjpNZXNzYWdlQ2xhc3MsIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlciopOwotICAgIGJv
b2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAg
IGJvb2wgZGlzcGF0Y2hNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgYm9vbCBkaXNwYXRjaFN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAg
ICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVDbGllbnQoY29uc3QgV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50
KGNvbnN0IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQqKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2goV2ViQ29yZTo6TGlua0hhc2gpOwog
CiAgICAgLy8gTWVzc2FnZVJlY2VpdmVyLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKIAogICAgIHZv
aWQgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKICAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWwo
KSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KQEAgLTI4Myw4ICsyODMsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0Rh
dGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICAgICAgCiAgICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U3luY1dlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICBzdGF0aWMgdm9pZCBs
YW5ndWFnZUNoYW5nZWQodm9pZCogY29udGV4dCk7CiAgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5jcHAKaW5kZXggYWEzM2NlNjJmZDM2NGQ0ZGQ5NDJiMmI5OWM4NTFkY2VjZTllNThmYy4uOGNi
MTQzN2M0Y2NiMThjNjQwMDQ0MzBjMDRjZTRkZjBkOWJiZjhiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5jcHAKQEAgLTY0LDkgKzY0
LDkgQEAgdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3Qg
V0tDb29raWVNYW5hZ2VyQ2xpZW50KiBjbGllbnQKICAgICBtX2NsaWVudC5pbml0aWFsaXplKGNs
aWVudCk7CiB9CiAKLXZvaWQgV2ViQ29va2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2
ZVdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OmdldEhvc3RuYW1lc1dpdGhD
b29raWVzKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKaW5kZXggNjk4MWMw
ZDA2MmZjNWY1NjFiMGJlYTFhZTY1MjkyMjE2MWNlMGRlMi4uYzAxNjhlMjhjNmQ3NjgzOWM0OTcw
NzBjNWE0MTUzMmExNmIxNGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb29raWVNYW5hZ2VyUHJveHkuaApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotICAgIGNsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKICAgICBjbGFzcyBDb25uZWN0aW9uOwogICAgIGNsYXNzIE1lc3NhZ2VJRDsKIH0KQEAgLTg4
LDggKzg3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvb2tpZXNEaWRDaGFuZ2UoKTsKICAgICAK
ICAgICAvLyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKikgT1ZFUlJJREU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
Q29va2llTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgdm9pZCBwZXJzaXN0SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2ll
QWNjZXB0UG9saWN5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJE
YXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGEzZmRhNjU1NmMxNDJlNDczMzc1ZWNlNTYwOGU4
ZjY1ODg0MjY2MjAuLmI1MGE0YTE0NDFiNjI3M2IxMTJkZTIyMzNjMjc5MTA2NDgxNDQ4OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5LmNwcApAQCAtMjMyLDkgKzIzMiw5IEBAIHZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6
OmRpZE1vZGlmeURhdGFiYXNlKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwKICAgICBt
X2NsaWVudC5kaWRNb2RpZnlEYXRhYmFzZSh0aGlzLCBvcmlnaW4uZ2V0KCksIGRhdGFiYXNlSWRl
bnRpZmllcik7CiB9CiAKLXZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKaW5kZXggYjcy
NGE4NDdkY2NjZDhmZmI3YjE3MDk3ZDBmNTllNTBlZWI0NGViOS4uN2M2OTVmY2JiYTBkNjA0YjVk
NDQyMTBkZGVjOGZmZTY0MDg4ZDhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgKQEAgLTgxLDggKzgxLDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAg
IC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VzQnlPcmlnaW4oY29uc3QgVmVj
dG9yPE9yaWdpbkFuZERhdGFiYXNlcz4mIG9yaWdpbkFuZERhdGFiYXNlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggZmU3MWVjYWE0YTBlNzZmODE0ZDg3MmMxZDJmZmZh
NzFhYThmOTdiZi4uZTQ5YWQ4NmVmY2U3MDc4Y2NhMDZhMWJiMzYwNjljYjA1NjI3ZGU4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcApAQCAtNTQsMTQgKzU0LDE0IEBAIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6c2V0V2ViVmlldyhQbGF0Zm9ybVdlYlZpZXcqIHdlYlZpZXcpCiAgICAgbV93ZWJWaWV3
ID0gd2ViVmlldzsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKKyAgICBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkK
K3ZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVN5bmNXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOworICAgIGRpZFJlY2VpdmVTeW5jV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQog
CiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFbnRlckZ1bGxTY3JlZW4oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5LmgKaW5kZXggYjgzYWY1NDc2N2M2ZjEwNTk3YzJmNzFlZDQyNjVlZTU2MTNiMWUwOC4uMDRh
ZWQ5YTNmMzQ1ZmQ5NDU3MTU4YjZhYjE4NGQwYmYyZDc5YjA5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC03OSw4
ICs3OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRnVsbFNjcmVlbigpOwogICAgIHZvaWQgY2xv
c2UoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCB3aWxsRW50ZXJG
dWxsU2NyZWVuKCk7CiAgICAgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKQEAgLTEwMSw4ICsx
MDEsOCBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwogICAgIFBsYXRmb3Jt
V2ViVmlldyogbV93ZWJWaWV3OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25Q
dHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYgcmVwbHkpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlU3luY1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCBlMjBkMWVlYmQ3MmNlNTcxMzczYmZhYjRiNDNmYzk4
NjQyZjA4OWI4Li4zY2ZlODZiYzMyNjZhYzg1NTUwY2MzY2I3ODZkZTMzZTQyMGI3YjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS5jcHAKQEAgLTczLDkgKzczLDkgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eTo6cHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihjb25zdCBTdHJpbmcKICAg
ICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25N
YW5hZ2VyOjpEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihlcnJvck1lc3NhZ2UpKTsKIH0KIAot
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OnN0YXJ0
VXBkYXRpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAppbmRleCA4ZjQxMDJiNjFmMjliZTllYTI2N2JlZmRkYzQyOThj
ZDM5YWQ3ZjA5Li44MWZjMTllOGUyNTE1MmJkODE0NWVkYTI1N2ZhNTI4MWRlNWQxMDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkuaApAQCAtNTcsMTAgKzU3LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICAvLyBDb3JlSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAKaW5kZXggOGI3MWU4OWUw
NDAyMDIwOGE5ZTA4MDhiNDVkZGZlZjE4Y2Q1NDkzMS4uNDAyZDJkMzlmOGQxZGEzZTA2MmQxZTg5
NGRhZDcyYjBhZjNjMTdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25E
YXRhYmFzZS5jcHAKQEAgLTI4NCwxNCArMjg0LDE0IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpk
aWRGaW5pc2hVUkxJbXBvcnQoKQogICAgIG1fdXJsSW1wb3J0Q29tcGxldGVkID0gdHJ1ZTsKIH0K
IAotdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlcikKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAg
ICBkaWRSZWNlaXZlV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgT3duUHRyPENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJl
Y2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVTeW5jV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIsIHJlcGx5KTsKKyAgICBkaWRSZWNlaXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2
b2lkIFdlYkljb25EYXRhYmFzZTo6bm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3Qg
U3RyaW5nJiBwYWdlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFz
ZS5oCmluZGV4IDg2NDNhNDgxZDFkODY0NDk3MmFlM2RhZWI0YzFmODZjMzkyZjBkZTYuLjA5NDdl
YzAwYjQ5OWEwMWExZTBjMGFhMjJkNzA3MGNlNDU2MTVmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKQEAgLTEwMywxMSArMTAzLDExIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpOwogCiAgICAgLy8gQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTeW5jV2ViSWNvbkRhdGFiYXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkljb25EYXRhYmFz
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViSWNvbkRhdGFi
YXNlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsK
IAogICAgIHZvaWQgbm90aWZ5SWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXgg
NjkyMmI3ZDczNTExYWE2MWY5MjQzZWM2MTA5ZWMzMmIxOTZjOWViZC4uODg1NzVhM2NjNDJlNDVk
N2EyZGM5ZTM3ZDU0ZWU4OTczZWNkNmY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTEyNSw4ICsxMjUsOCBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dl
Ykluc3BlY3RvclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3RvclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAjZW5k
aWYKIAogICAgIHN0YXRpYyBib29sIGlzSW5zcGVjdG9yUGFnZShXZWJQYWdlUHJveHkqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggNDU0ZDA4MmY1NmEwMzIyYjY4NzEwODFlNDFmMDExZTI3
NmFjZWUyYi4uZGVmYjhjY2U5MWY0NTNhZTQwNjIxYjJjMjc0OGI1M2Y2OTE4YmFhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU4LDkgKzU4LDkgQEAgYm9vbCBXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHk6OnNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdAog
ICAgIHJldHVybiBtX2FycmF5Q2FsbGJhY2tzLmlzRW1wdHkoKTsKIH0KIAotdm9pZCBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNl
aXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94
eTo6Z2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBy
cENhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oCmluZGV4IDljNjMxNDJmNjllNGUzZTIwNGY5ZDIx
NThhY2ZlNTc0OTE3OWM4YTUuLmJhMzkyYmIyZWNmNzUzODM3MmNhOTY4M2IyODhkMDZkMTg2NjE0
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5LmgKQEAgLTY3LDggKzY3LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZEdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
KSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFdlYkNvbnRleHQq
IG1fd2ViQ29udGV4dDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFj
az4gPiBtX2FycmF5Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDgxY2Y5OGY1NmMxNzNmNDQ0
MWMzYjAzOGI4MzdjZGU5NGI0NDA2ZWQuLjE1NTczOGIwOTYyOTkxNGY4OGMwMzA5ZDYzNTg1ZTE4
YWMwOWM0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkgQEAgYm9vbCBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3QK
ICAgICByZXR1cm4gbV9hcnJheUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgV2ViTWVk
aWFDYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9
CiAKIHZvaWQgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTo6Z2V0SG9zdG5hbWVzV2l0aE1lZGlh
Q2FjaGUoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4
IDQ4ZTg4ZTBmYzQ5Y2ZkZDJmOTRlMmQ4NTQ4ZWJmZTZkMTU4MDNkMjguLjQ1MzFhNzIxMDg3ODk4
ZDUwNDQzNDA2MGZjZDIyN2YyMjRkZjE5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkR2V0SG9zdG5hbWVzV2l0aE1lZGlhQ2FjaGUoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJNZWRpYUNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgV2ViQ29udGV4dCogbV93ZWJD
b250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1f
YXJyYXlDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAppbmRleCAyMWEzOTliYzBmOGE0ZTAyZjgxNmM2
ODFmZTE2NWQ5NWJlMzJmMzYzLi45YTc3MmVjZmEzMGQ4MGUwZDVjMGM4NjlkNzI4YzkxMmNmZGJm
MGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3Jr
SW5mb01hbmFnZXJQcm94eS5jcHAKQEAgLTY4LDE0ICs2OCwxNCBAQCB2b2lkIFdlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25z
dCBBdG9taQogICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJO
ZXR3b3JrSW5mb01hbmFnZXI6OkRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihldmVudFR5cGUs
IG5ldHdvcmtJbmZvcm1hdGlvbi0+ZGF0YSgpKSk7CiB9CiAKLXZvaWQgV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCi12
b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5bmNX
ZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCiB2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5OjpzdGFydFVwZGF0aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMmM0ZWY3YzY3ZWJjNTE1OTg4ZWVm
OTBiZGQzYTYzY2VmOWM1YzM2ZS4uNDU2MDEwYzI1YjcxMGQxMTEzMWJkZjBjNDY2YWUyY2UyMzUy
NjA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5LmgKQEAgLTU4LDEyICs1OCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAgLy8gQ29yZUlQ
Qzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3du
UHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOwogCiAgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5TWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViTmV0d29ya0luZm9N
YW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0
aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdl
ZjRhMjQ5ZmU3NzRmMmY4ODU5NzIwZjc1ZjVlYjQ3MDIwMTMwMWIuLjgxODY5NWFkZWVjMDYxNWU3
MjEwZGI4MGJiZjdjZTE3NWY5ZTA2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC03MjIsMTEgKzcyMiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
dWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRH
bwogICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZEl0ZW0gPSBpdGVtICYmIG1fbG9hZGVyQ2xpZW50
LnNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHRoaXMsIGl0ZW0pOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSBtX3By
b2Nlc3MtPndlYkJhY2tGb3J3YXJkSXRlbShpdGVtSUQpKQpAQCAtMTgzNSwxNiArMTgzNSwxNiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCktPnN0b3JlKCkpLCBtX3BhZ2VJRCwgbV9pc1BlcmZvcm1pbmdET01Q
cmludE9wZXJhdGlvbiA/IENvcmVJUEM6OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSA6IDApOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NE
cmF3aW5nQXJlYVByb3h5PigpKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eT4oKSkgewotICAg
ICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2RyYXdp
bmdBcmVhLT5kaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRp
ZgpAQCAtMTg1Miw0MCArMTg1Miw0MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TQogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJJbnNwZWN0b3JQcm94eT4oKSkgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yUHJveHkq
IGluc3BlY3RvciA9IHRoaXMtPmluc3BlY3RvcigpKQotICAgICAgICAgICAgaW5zcGVjdG9yLT5k
aWRSZWNlaXZlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCi0gICAgZGlkUmVjZWl2ZVdl
YlBhZ2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93blB0cjxD
b3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSW5z
cGVjdG9yUHJveHk+KCkpIHsKICAgICAgICAgaWYgKFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0
b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkKLSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2
ZVN5bmNXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMsIHJlcGx5KTsKKyAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVN5bmNXZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBs
eUVuY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIGZ1bGxTY3JlZW5NYW5h
Z2VyKCktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cywgcmVwbHkpOworICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogRG8gc29tZXRo
aW5nIHdpdGggcmVwbHkuCi0gICAgZGlkUmVjZWl2ZVN5bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgZGlkUmVjZWl2ZVN5
bmNXZWJQYWdlUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQpAQCAtMTk5MCwxMSArMTk5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmluaXNoUHJvZ3Jlc3MoKQogfQogCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykK
LXZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZUluZm8sIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OnJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEludGVudFNlcnZp
Y2VJbmZvJiBzZXJ2aWNlSW5mbywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7
CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNz
YWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtMjAwNSwx
MyArMjAwNSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50UwogfQogI2VuZGlmCiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBjbGVhclBlbmRpbmdBUElSZXF1ZXN0VVJMKCk7CiAK
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAg
IGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMDI0LDEx
ICsyMDI0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluCiAgICAgbV9sb2FkZXJDbGllbnQu
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0
KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJD
b250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nl
c3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47
CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CkBAIC0yMDQwLDExICsyMDQwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAgICAg
bV9sb2FkZXJDbGllbnQuZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMDY4LDExICsyMDY4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpjbGVhckxvYWREZXBlbmRlbnRDYWxsYmFja3MoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8sIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURl
Y29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMTAsMTEgKzIx
MTAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXAKICAgICBtX2xvYWRlckNsaWVudC5kaWRD
b21taXRMb2FkRm9yRnJhbWUodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+
IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29k
ZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29k
ZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxMjMsMTEgKzIxMjMsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENvcmVJUEM6OkFyZ3UKICAgICBtX2xvYWRlckNsaWVudC5kaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0
VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0
KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBA
IC0yMTM4LDExICsyMTM4LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvCiAgICAgbV9sb2Fk
ZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQo
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0
YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJE
YXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2Fn
ZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CkBAIC0yMTU1LDExICsyMTU1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVyCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSh0
aGlzLCBmcmFtZSwgZXJyb3IsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiB1
cmwsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMt
PmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIxNzIsMTEgKzIxNzIsMTEgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdAogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZSh0aGlzLCBmcmFtZSwgc3RhdGljX2Nhc3Q8U2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGU+KG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSwgdXNlckRhdGEu
Z2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjE4NywxMSArMjE4NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0
aXRsZQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHRoaXMsIHRp
dGxlLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Rmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0g
ICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTIyMDAs
MTEgKzIyMDAsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWMKICAgICBtX2xvYWRlckNsaWVu
dC5kaWRGaXJzdExheW91dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1l
c3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwot
ICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjEz
LDMxICsyMjEzLDMxIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlCiAgICAgbV9sb2FkZXJDbGll
bnQuZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodGhpcywgZnJhbWUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dChDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWROZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNl
ckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1
c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1l
c3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0KHRoaXMsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZExheW91dCh1aW50MzJfdCBsYXlvdXRNaWxlc3RvbmVzLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRMYXlvdXQodWlu
dDMyX3QgbGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJN
ZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsK
LSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9s
b2FkZXJDbGllbnQuZGlkTGF5b3V0KHRoaXMsIHN0YXRpY19jYXN0PExheW91dE1pbGVzdG9uZXM+
KGxheW91dE1pbGVzdG9uZXMpLCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwogICAg
IFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIG1f
cHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rl
cikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKTsKQEAgLTIyNDgsMTEgKzIyNDgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
bW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWUK
ICAgICBtX2xvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJh
bWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2Vi
Q29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9j
ZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMjI2MSwxMSArMjI2MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OgogICAg
IG1fbG9hZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4
dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdl
dCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpA
QCAtMjI3NCwxMSArMjI3NCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndQogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2Vy
RGF0YS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2Jq
ZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VE
ZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5k
ZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMjg4LDExICsyMjg4LDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kCiB9CiAKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEludGVudERhdGEmIGludGVudERhdGEsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnREYXRhJiBpbnRlbnREYXRhLCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsK
ICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRh
LCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURl
Y29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CkBAIC0yMzE0LDExICsyMzE0LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpm
cmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCiB9CiAK
IC8vIFBvbGljeUNsaWVudAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5
cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rp
b24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlm
aWVycywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlciwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90JiBkb3dubG9hZElEKQogewogICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRh
OwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRh
dGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChyZXF1ZXN0LnVybCgpICE9IHBlbmRpbmdBUElSZXF1ZXN0
VVJMKCkpCkBAIC0yMzUyLDExICsyMzUyLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wCiAg
ICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9wYXF1ZU5hdmlnYXRpb25UeXBlLCB1aW50
MzJfdCBvcGFxdWVNb2RpZmllcnMsIGludDMyX3Qgb3BhcXVlTW91c2VCdXR0b24sIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMyX3Qgb3BhcXVlTW9kaWZp
ZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1
c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVy
KHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUo
bWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIp
KQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yMzcyLDExICsyMzcyLDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3BhCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QmIGRvd25sb2FkSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0aW9u
LCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCkKIHsKICAgICBS
ZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VEZWNv
ZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3MuZ2V0KCkpOwotICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC0yNDA0LDExICsyNDA0
LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlc3BvCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYg
ZGVjb2RlcikKIHsKICAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKICAgICBXZWJDb250
ZXh0VXNlck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBtX3Byb2Nlc3Mu
Z2V0KCkpOwotICAgIGlmICghYXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWVzc2FnZURlY29kZXIpKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOwpAQCAtMjQxOSwxMSArMjQxOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAv
LyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBTdHJpbmdQYWlyVmVjdG9y
JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmluZ1BhaXJW
ZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7
CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0
YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwpAQCAtMjU2MiwxMSArMjU2MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgbV91aUNsaWVudC5zZXRTdGF0
dXNUZXh0KHRoaXMsIHRleHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERh
dGEsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBh
cmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG9w
YXF1ZU1vZGlmaWVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAg
UmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVj
b2RlciBtZXNzYWdlRGVjb2Rlcih1c2VyRGF0YSwgbV9wcm9jZXNzLmdldCgpKTsKLSAgICBpZiAo
IWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VEZWNvZGVyKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1lc3NhZ2VEZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViRXZlbnQ6Ok1v
ZGlmaWVycyBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihvcGFx
dWVNb2RpZmllcnMpOwpAQCAtMzAxMiwxOSArMzAxMiwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aGlkZVBvcHVwTWVudSgpCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLXZvaWQgV2Vi
UGFnZVByb3h5OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9pbnQmIG1lbnVMb2NhdGlvbiwg
Y29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERhdGEsIGNvbnN0IFZl
Y3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgcHJvcG9zZWRJdGVtcywgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0NvbnRleHRN
ZW51KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVt
RGF0YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGludGVybmFsU2hvd0NvbnRleHRNZW51KG1lbnVMb2NhdGlvbiwgaGl0VGVzdFJlc3Vs
dERhdGEsIHByb3Bvc2VkSXRlbXMsIGFyZ3VtZW50cyk7CisgICAgaW50ZXJuYWxTaG93Q29udGV4
dE1lbnUobWVudUxvY2F0aW9uLCBoaXRUZXN0UmVzdWx0RGF0YSwgcHJvcG9zZWRJdGVtcywgZGVj
b2Rlcik7CiAgICAgCiAgICAgLy8gTm8gbWF0dGVyIHRoZSByZXN1bHQgb2YgaW50ZXJuYWxTaG93
Q29udGV4dE1lbnUsIGFsd2F5cyBub3RpZnkgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgbWVudSBp
cyBoaWRkZW4gc28gaXQgc3RhcnRzIGhhbmRsaW5nIG1vdXNlIGV2ZW50cyBhZ2Fpbi4KICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRleHRNZW51SGlkZGVuKCksIG1f
cGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51
KGNvbnN0IEludFBvaW50JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEmIGhpdFRlc3RSZXN1bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mIHByb3Bvc2VkSXRlbXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJQYWdlUHJveHk6OmludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1
bHREYXRhLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIHByb3Bvc2VkSXRl
bXMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFJlZlB0cjxBUElP
YmplY3Q+IHVzZXJEYXRhOwogICAgIFdlYkNvbnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2Fn
ZURlY29kZXIodXNlckRhdGEsIG1fcHJvY2Vzcy5nZXQoKSk7Ci0gICAgaWYgKCFhcmd1bWVudHMt
PmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdl
RGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRU
ZXN0UmVzdWx0RGF0YSA9IGhpdFRlc3RSZXN1bHREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGVlZGU2Yjk2ZjgyOTUyNGRlZGMwMjI4ZGIxODA1MmI4NzE1
ZmY5MTcuLjk1NTI4YWI3ZjlhYjI0MWFhMjdiZTBmMjdiMmQ1OGU4YjE5NWViYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRpZENo
YW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZl
Y3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hvdWxk
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSk7Ci0gICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0odWludDY0X3QgaXRlbUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7
CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIGFjdGl2ZVVSTCgpIGNvbnN0
OwogICAgIFN0cmluZyBwcm92aXNpb25hbFVSTCgpIGNvbnN0OwpAQCAtNTkxLDggKzU5MSw4IEBA
IHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93
blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgdm9pZCBwcm9jZXNz
RGlkQmVjb21lVW5yZXNwb25zaXZlKCk7CiAgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVkV2hp
bGVQcm9jZXNzVW5yZXNwb25zaXZlKCk7CkBAIC03NTIsNDkgKzc1Miw0OSBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlBhZ2VQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQYWdlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY1dlYlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6
TWVzc2FnZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogICAgIHZvaWQgZGlkU2F2ZUZyYW1lVG9QYWdlQ2Fj
aGUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNh
Y2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHVucmVhY2hhYmxlVVJMLCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tUmVwcmVzZW50YXRpb24sIGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAg
ICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBjb25z
dCBTdHJpbmcmLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkTGF5b3V0
KHVpbnQzMl90IGxheW91dE1pbGVzdG9uZXMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwot
ICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHVpbnQ2NF90IGZyYW1lSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
b3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21SZXByZXNlbnRhdGlvbiwgY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2
b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgY29uc3QgU3Ry
aW5nJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRMYXlvdXQodWludDMyX3Qg
bGF5b3V0TWlsZXN0b25lcywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBk
aWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIGZyYW1lRGlkQmVj
b21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFBy
b2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQg
ZGlkRmluaXNoUHJvZ3Jlc3MoKTsKIAogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2b2lk
IGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBJbnRlbnRE
YXRhJiwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgSW50ZW50RGF0YSYsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQot
ICAgIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgSW50ZW50U2VydmljZUluZm8mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAg
ICB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IEludGVudFNlcnZpY2VJbmZvJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICNlbmRp
ZgogICAgIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRf
dCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBp
bnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNlaXZl
ZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2Fk
SUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMy
X3QgbW91c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xp
Y3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVt
ZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cyk7CisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmln
YXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgYm9vbCYgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKTsKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9u
VHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lkIGRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIHJlY2VpdmVkUG9saWN5QWN0
aW9uLCB1aW50NjRfdCYgcG9saWN5QWN0aW9uLCB1aW50NjRfdCYgZG93bmxvYWRJRCk7CisgICAg
dm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAotICAgIHZv
aWQgd2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJ
RCwgY29uc3QgU3RyaW5nUGFpclZlY3RvciYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRG
b3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFN0cmlu
Z1BhaXJWZWN0b3ImIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIFJlc291cmNlIGxvYWQgY2xpZW50CiAgICAg
dm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCByZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJv
b2wgcGFnZUlzUHJvdmlzaW9uYWxseUxvYWRpbmcpOwpAQCAtODEzLDcgKzgxMyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYgcmVzdWx0KTsKICAgICB2b2lkIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQoYm9vbCYgcmVzdWx0KTsKICAgICB2b2lkIHNldFN0YXR1c1Rl
eHQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMyX3QgbW9k
aWZpZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHRE
YXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQodWludDMyX3Qgb3BhcXVlUGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlVVJMKTsKICAgICB2b2lkIHNldFRvb2xi
YXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSk7CiAgICAgdm9pZCBnZXRUb29s
YmFyc0FyZVZpc2libGUoYm9vbCYgdG9vbGJhcnNBcmVWaXNpYmxlKTsKQEAgLTkxMiw4ICs5MTIs
OCBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgLy8gQ29udGV4
dCBNZW51LgotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0
b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2b2lkIGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBtZW51TG9jYXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0
b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
KyAgICB2b2lkIHNob3dDb250ZXh0TWVudShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbWVudUxv
Y2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJiwgY29uc3QgVmVjdG9yPFdlYkNv
bnRleHRNZW51SXRlbURhdGE+JiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2b2lk
IGludGVybmFsU2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtZW51TG9j
YXRpb24sIGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmLCBjb25zdCBWZWN0b3I8V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YT4mLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAK
ICAgICAvLyBTZWFyY2ggcG9wdXAgcmVzdWx0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiODgzMjM4MzBhZGQyOTQxODc4YTdjYWFiODIwNzBk
OTMxOTc4NTFlLi4wZDZiNjIyZWY5ZmNlY2IzZmVhMGM3NWIyNjFjNDAxNDkxZDY1ZTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk1LDE3
ICszOTUsMTcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFNoYXJlZFdvcmtlclByb2Nlc3ND
b25uZWN0aW9uKGNvbnN0IFN0cmluZyYgLyogdXJsICovLAogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJ
UEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVy
KQogewotICAgIGlmIChtX2NvbnRleHQtPmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cykpCisgICAgaWYgKG1fY29udGV4dC0+ZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7
Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgp
OworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgIGlm
ICghcGFnZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTQxMywyMCArNDEzLDIwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29y
ZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1
bWVudHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImIGRlY29kZXIsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5
RW5jb2RlcikKIHsKLSAgICBpZiAobV9jb250ZXh0LT5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSkpCisgICAgaWYgKG1fY29udGV4dC0+
ZGlzcGF0Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5
RW5jb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVT
eW5jV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cywgcmVwbHkpOworICAgICAgICBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgcGFnZUlEID0gYXJndW1lbnRzLT5kZXN0aW5h
dGlvbklEKCk7CisgICAgdWludDY0X3QgcGFnZUlEID0gZGVjb2Rlci5kZXN0aW5hdGlvbklEKCk7
CiAgICAgaWYgKCFwYWdlSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTQzNCwxMyArNDM0
LDEzIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yCiAgICAgaWYgKCFwYWdlUHJveHkpCiAgICAg
ICAgIHJldHVybjsKICAgICAKLSAgICBwYWdlUHJveHktPmRpZFJlY2VpdmVTeW5jTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworICAgIHBhZ2VQcm94eS0+
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVw
bHlFbmNvZGVyKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKQogewogICAgIGlmICht
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUHJvY2Vzc1Byb3h5PigpKQotICAg
ICAgICBkaWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlkSGFuZGxlTWVzc2FnZSk7Cisg
ICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzUHJveHlNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1
ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlkSGFuZGxlTWVzc2FnZSk7CiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA3NTI0ZGYy
ZmY0NjAwZjhlYjVmNjg2YzBkMWU4NDk3ZDI1MTBlMGZhLi4wYTg1ODE2OWU5NDk4YTZmMDczOWEy
MGY5NjQ1ZTU1Mjc2YmQyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0xNjIsOCArMTYyLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25u
ZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCk7CiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTcxLDcgKzE3MSw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciosIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIGJvb2wmIGRp
ZEhhbmRsZU1lc3NhZ2UpIE9WRVJSSURFOwogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
Q2xpZW50CiAgICAgdm9pZCBkaWRCZWNvbWVVbnJlc3BvbnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1l
ciopIE9WRVJSSURFOwpAQCAtMTkwLDkgKzE5MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRV
cGRhdGVIaXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CiAKICAgICAvLyBJbXBsZW1lbnRl
ZCBpbiBnZW5lcmF0ZWQgV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU3luY1dlYlByb2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSk7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRS
ZWNlaXZlV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNXZWJQcm9jZXNzUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NQcm94eU1l
c3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNz
YWdlKTsKIAogICAgIFJlc3BvbnNpdmVuZXNzVGltZXIgbV9yZXNwb25zaXZlbmVzc1RpbWVyOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDNjMjk4MDc5N2E3ZTA4M2FiMzBmMzMyYjAyZGMx
YjQ4NDg0NWFlMDEuLjQxYjhmYmJkYjM1Y2I2MDRiMjVmMWZhMzExMzFjY2FlMzc3MmQ1M2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5jcHAKQEAgLTk1LDkgKzk1LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpjbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhSZXNvdXJjZUNhY2hlc1RvQ2xl
YXIKICAgICBtX3dlYkNvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlm
TmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZv
ckFsbE9yaWdpbnMoY2FjaGVzVG9DbGVhcikpOwogfQogCi12b2lkIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpN
ZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCmluZGV4IDllNTliNjQxZjRj
M2ZiZTgwZGE5YWRiMjYzNjgyNzBlZjNmYjkxMmUuLjFjNjIwNzA3Yjg0NDI2ZmRmZTg3Zjc0NTJm
Njk0NmJjMDRmNDc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAg
ICAgLy8gQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZvaWQgZGlk
UmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNv
bnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0
X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlicmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmNwcAppbmRleCAwNTkwZjMwY2M1NzhjZjA1MjMxMTkyMmIxZmM5ZTljMTkwNGZiOTEz
Li5iYjFmOTZmNTI3MTE4MWFhYjg2ZjY2NTU5MzEzZDc0NDliYjBjMzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5jcHAKQEAgLTU3LDkgKzU3LDkg
QEAgdm9pZCBXZWJWaWJyYXRpb25Qcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKGNvbnN0IFdLVmli
cmF0aW9uUHJvdmlkZXIqIHByb3ZpZGVyKQogICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92
aWRlcik7CiB9CiAKLXZvaWQgV2ViVmlicmF0aW9uUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJWaWJyYXRp
b25Qcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlvblByb3h5TWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlZpYnJhdGlv
blByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lk
IFdlYlZpYnJhdGlvblByb3h5Ojp2aWJyYXRlKHVpbnQ2NF90IHZpYnJhdGlvblRpbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oCmluZGV4IDY3NmQzYTQ5
NzY3NDBjN2M1MzdlZmIwZmYwZDg5MmU5OTczODUzMzQuLjVjNmRlMTdkNzIxMDRmYWQwNDQ2MGMx
MGJlMzQxZWY5NTIxZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJWaWJyYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJy
YXRpb25Qcm94eS5oCkBAIC01NSwxMCArNTUsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIC8vIENvcmVJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJWaWJy
YXRpb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJWaWJy
YXRpb25Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViVmli
cmF0aW9uUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIHZpYnJhdGUodWludDY0
X3QgdmlicmF0aW9uVGltZSk7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAppbmRleCBlMmJmMzQyM2Q5ZDI1ODgyNDI0ZjNlNDIxNjZlZWIxOTUyYTgw
ZDc4Li44MDQ5OGE1ZWE4YzYwODFhNDY4NTZiYzM4NjhiZTI3ZDhkNjZiOTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC01MSw5ICs1MSw5IEBAIHZvaWQgV2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHk6OmluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGll
CiAgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOwogfQogCi12b2lkIFdlYlNvdXBSZXF1
ZXN0TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHk6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVz
dE1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0K
IAogdm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVnaXN0ZXJVUklTY2hlbWUoY29u
c3QgU3RyaW5nJiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
c291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA2YTNkNmU4MjZjNTMw
MmM5OGQwZWUwOTc1ZjY5NmJkMzY2MjcwOTc1Li5lNGI4Y2NlMzc1NDJhZGZhMTc1MTVkOWYxMWE4
ZjI5NjM4NzUyMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9X
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTU3LDggKzU3LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0K
IAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdm9pZCBk
aWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAK
ICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViU291cFJlcXVlc3RNYW5hZ2Vy
Q2xpZW50IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
cHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAKaW5kZXggOWMxYWQ4Nzk4NWQyZjdjYmQ3OTczMjJlNzYyYTBhMDljMTI0ZjdjOC4u
MGJkZmIwMTMyZTg4MDUyN2I1NGIzMTZlZTAzNGNkODRkNzM5ODk0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpCiB7
CiB9CiAKLXZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
OjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAppbmRleCAzOGQ0OGUxMTllZjI2
MzhiMTBlNjc3M2VhZTczMDUzN2Q5ZTIyZmJjLi4zMjU4NDY5YmE4NDhjNDA4MDFmN2NkZmEwNzRl
NDUwMjQyNzE1ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAgIGNs
YXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVjdGlvbjsK
K2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIHZvaWQgZGVsZXRlQWxsRW50
cmllcygpOwogICAgIHZvaWQgc2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1aW50NjRfdCk7CkBAIC01
NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4o
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApp
bmRleCBhNjg1OGFjMjhkNTlkY2U2Mjg1ZDZjMzZhNzdkYjQ3ZTc2N2EyZTA1Li45Mzg3NDFkNjJk
Nzc5MjA4NDZlNjQ2Y2Q3NTlkMGRlMjU4YjE2NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwCkBAIC01OCw5ICs1OCw5IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0
aGVudGljYXRpb25NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9u
KCktPmFkZE1lc3NhZ2VSZWNlaXZlcihDb3JlSVBDOjpNZXNzYWdlQ2xhc3NBdXRoZW50aWNhdGlv
bk1hbmFnZXIsIHRoaXMpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuaAppbmRleCA5M2FmZTQ0NmJiMDQwOTZjMDgxMTYzZWVhZDkzZGI4MmQw
M2FkOWI1Li4xNjcwOGNlNmJkNDU0YzQxMWFmNjYzOTBiNmVkM2RlY2VmMjJiNjY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTYzLDggKzYzLDggQEAgcHJpdmF0ZToKICAg
ICBBdXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKIAogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVS
UklERTsKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVz
c2FnZURlY29kZXImKTsKIAogICAgIGJvb2wgdHJ5VXNlUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm9G
b3JDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25z
dCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKaW5kZXggMDRk
ZWM4NjQwMDc1NTAxNTQyNWNhZmRjZDJjOWIxOTAzNWQxYjY4ZC4uMDg5MmYyMTc4YjkyZmJiM2U3
OTkzOTFlNzEzMGEyZWQ5NDZhYzAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC00OCw5ICs0OCw5IEBA
IFdlYkJhdHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIoKQogewogfQogCi12b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJ
RCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRp
ZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogdm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6
cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCmluZGV4IDUwOTcxOGQ0MjFj
N2RlMTEzM2ZmZWMyY2ZlZTg1ODYxOThiZTQxYTEuLjQ1ZmFiMThjMTZhYTc5NGNmY2RhZjg5MTll
ZTJkZTY4NWY1MzBmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0
dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC0zNiw4ICszNiw4IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OCwxMSArNTgsMTEgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CiAgICAgdm9pZCB1cGRhdGVC
YXR0ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmKTsKIAotICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRl
ZCBXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICBXZWJQcm9jZXNz
KiBtX3Byb2Nlc3M7CiAgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3Bw
CmluZGV4IDZmM2FmMWQxMDFlMTIxMDUxZTNlY2JlODBmMjIyY2M5ZTZjZTAwODUuLmU1MDAwZDRh
YzQyYjQ5ODcxNzQ5ZTEwODI2YTY1MmE4ZTA1YmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKQEAgLTQ2LDkg
KzQ2LDkgQEAgV2ViQ29va2llTWFuYWdlcjo6V2ViQ29va2llTWFuYWdlcigpCiB7CiB9CiAKLXZv
aWQgV2ViQ29va2llTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYkNvb2tpZU1hbmFnZXI6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAg
IGRpZFJlY2VpdmVXZWJDb29raWVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6
Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCmluZGV4
IGNmNzhhMTE0ZTBlNTJlZWQ4YjVkODkyNTYwNjIzNzFiNjhkMGNkYzEuLmFhYzA0MTkyYmY3OTZm
MTAyMWEzODExODgxZmYzNThhNmY4NjljZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaApAQCAtMzUsOCArMzUsOCBAQAog
I2VuZGlmCiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiAgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlRGVjb2RlcjsKICAgICBj
bGFzcyBNZXNzYWdlSUQ7CiB9CiAKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgV2ViQ29va2llTWFu
YWdlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvb2tpZU1hbmFnZXImIHNoYXJlZCgpOwog
Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgdm9pZCBkaXNwYXRjaENvb2tpZXNE
aWRDaGFuZ2UoKTsKIApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29v
a2llUGVyc2lzdGVudFN0b3JhZ2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlUGF0aCwgdWludDMyX3Qg
c3RvcmFnZVR5cGUpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDb29raWVNYW5h
Z2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1
bGxTY3JlZW5NYW5hZ2VyLmNwcAppbmRleCAxYzdhNzhkYjAyYzczNzBjNGI1MWY4NjIyOTdmNGZh
NDcxMzQ5NTE4Li4wMzIzNjk4Y2ViNTBmYzQyODViY2FjODg1ZjgzZTAwZmNjZGJlYWQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVl
bk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTc4LDkgKzc4LDkgQEAgV2ViQ29yZTo6RWxlbWVu
dCogV2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVsZW1lbnQoKQogICAgIHJldHVybiBtX2VsZW1lbnQu
Z2V0KCk7IAogfQogCi12b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViRnVs
bFNjcmVlbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNv
bm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVX
ZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVy
KTsKIH0KIAogYm9vbCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsU2NyZWVuKGJv
b2wgd2l0aEtleWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAppbmRleCAzOTZhNGFkYjE5MmVm
MDY2M2NiMTUwN2I4NGZiNDJhNzc3ZWJkNGU4Li44YzA0OTIyNWI4YzEzNTZiYmVmNjBhMGQ1OTQx
NjA3ZDA2N2FhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxT
Y3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuaApAQCAtMzIsOCArMzIsOCBAQAog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJn
dW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwog
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlcj4gY3JlYXRlKFdlYlBhZ2UqKTsKICAg
ICB2aXJ0dWFsIH5XZWJGdWxsU2NyZWVuTWFuYWdlcigpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CiAKICAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbihib29sIHdpdGhLZXlib2FyZCk7CiAg
ICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKQEAg
LTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QW5pbWF0aW5nRnVsbFNjcmVl
bihib29sKTsKICAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpOwogCi0gICAgdm9pZCBk
aWRSZWNlaXZlV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX2luaXRpYWxGcmFtZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0
IG1fZmluYWxGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyYWVjNWE3
MjdkNTA5MTE0YWYyOThkZWNlZTI4N2QwNWZlNzJkYjBkLi4wMWRiMzE1YWFkNjYxNDk1YmY1Mzc4
NWU1N2M3MTg4Y2Y1MTYwMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC00
OSw5ICs0OSw5IEBAIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6fldlYkdlb2xvY2F0aW9uTWFuYWdl
cigpCiB7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2
ZVdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNv
ZGVyKTsKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShX
ZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggOGExNDA1ZDE0ODMz
ZTg3Yzk2NThlZDIzNzNmOTU3OGE0ZTA0NTY0ZC4uNmUyNDU1NzBkN2FjOWNmMGY3ZTU5YWIwYTkz
M2JkMDgxNzVkZDM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC01NSwxMCArNTUs
MTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENvcmVJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2b2lkIGRpZENoYW5nZVBvc2l0
aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEmKTsKICAgICB2b2lkIGRpZEZh
aWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRh
YmFzZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRhdGFiYXNlL1dl
Ykljb25EYXRhYmFzZVByb3h5LmNwcAppbmRleCAyMTdmMWU4MGFiMWY5YTZlYzhiZTM2NWY0NDJj
MzRhM2ZmNzUxYWExLi5hMDQ3OTNlYjRjZDI1NDRhZmZjZTgyYmJlMWZiMmYyZTY3OTViNTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29u
RGF0YWJhc2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JY29uRGF0
YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xNDMsOSArMTQzLDkgQEAgdm9pZCBX
ZWJJY29uRGF0YWJhc2VQcm94eTo6dXJsSW1wb3J0RmluaXNoZWQoKQogewogfQogCi12b2lkIFdl
Ykljb25EYXRhYmFzZVByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJJY29uRGF0YWJhc2VQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
Y29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaAppbmRleCAyMDk2YWJhNGNkMzExZjky
NWY3NGVkMmYxMDhlOTMyYTY1OTU1NjkxLi5jZDlmNzE3NmU1YzYzMjdmYzA4NWQ1NzIyZGM5MjQ2
ZWE0YTRjZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ljb25EYXRh
YmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKQEAgLTM2LDggKzM2LDggQEAK
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsK
IGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtNzAsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihpbnQgZGVjaXNpb24sIHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogICAgIHZpcnR1YWwgdm9pZCBpY29uRGF0YUZvckljb25VUkwoY29uc3QgU3RyaW5n
JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJY29uRGF0YUNhbGxiYWNrPik7CiAgICAgICAgIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCiAgICAgLy8g
Q2FsbGJhY2tzIGZyb20gdGhlIFVJUHJvY2VzcwogICAgIHZvaWQgdXJsSW1wb3J0RmluaXNoZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdl
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTEz
N2JhZTIxMDA0OTUzZWYzYTk3MTA5ZmQ4ODEwZjljZTY0OGNhMi4uMmZkZjRlZDVhOGJhMjY2ZTYx
MTc2MjEzZTFjMTViODZiZGJiOWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3JhZ2UvV2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlci5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
cjo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewot
ICAgIGRpZFJlY2VpdmVXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHN0
YXRpYyB2b2lkIGtleVZhbHVlU3RvcmFnZU9yaWdpbklkZW50aWZpZXJzKFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdGE+JiBpZGVudGlmaWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvS2V5VmFsdWVTdG9yYWdlL1dlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuaAppbmRleCBlOGRlMGFkYzJhYzZjMDdjZjkzNzJkNWJkZjc5MWFhYmVkZjFmNDgy
Li43MmE0NGMxMjZlMjA4MDIzODAyM2UwMmEyNzE2M2RjZjBlOWY3MTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0tleVZhbHVlU3RvcmFnZS9XZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9LZXlWYWx1ZVN0b3Jh
Z2UvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oCkBAIC0zMSw5ICszMSw5IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLSAgICBjbGFzcyBNZXNz
YWdlSUQ7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CitjbGFzcyBN
ZXNzYWdlSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VUcmFj
a2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ciYgc2hhcmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKGNvbnN0IFN0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT3JpZ2lucygpIE9WRVJS
SURFOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlck1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIFZlY3Rvcjx1aW50NjRfdD4gbV9vcmlnaW5z
UmVxdWVzdENhbGxiYWNrSURzOwogICAgIGJvb2wgbV9vcmlnaW5zTG9hZGVkOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5jcHAKaW5kZXggNGE1ZDdmOTVlNzUxZTgyOTY0NjE2OGRjMjljMDZjYWM4NzBh
NjQ3OC4uYjA5ZDY0MTRkMmEyMmI0M2IxN2UxNDFiYmM1ODY0MjE3MTgzY2RkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVk
aWFDYWNoZU1hbmFnZXIuY3BwCkBAIC00Niw5ICs0Niw5IEBAIFdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
OjpXZWJNZWRpYUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViTWVkaWFDYWNoZU1hbmFn
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQordm9pZCBXZWJNZWRpYUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdl
Yk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpn
ZXRIb3N0bmFtZXNXaXRoTWVkaWFDYWNoZSh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZWRpYUNhY2hlL1dlYk1lZGlhQ2FjaGVNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNo
ZU1hbmFnZXIuaAppbmRleCA5MDliZTk3YmExYzdjMjlhOTI4ODBjNGQyODAwYTk0YWQ5NjEzOTA0
Li5mYzYyYmU0YWQyM2YwNWIzMzhkMDI4YmQzNzcyMmE1MWY1MjQyZGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNo
ZU1hbmFnZXIuaApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwot
ICAgIGNsYXNzIENvbm5lY3Rpb247Ci0gICAgY2xhc3MgTWVzc2FnZUlEOworY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZUlEOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFn
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJNZWRpYUNhY2hlTWFuYWdlciYgc2hhcmVkKCk7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJNZWRpYUNhY2hl
TWFuYWdlcigpOwpAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDYWNo
ZUZvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckFsbEhv
c3RuYW1lcygpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViTWVkaWFDYWNoZU1hbmFnZXJNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZv
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5l
dHdvcmtJbmZvTWFuYWdlci5jcHAKaW5kZXggOGMxMDM3MWZkNjgwNjAyYzBmODQ1ZTQ4MTMzNmRk
NjI0NzUwYTA1MC4uNjMxZjAyMjM0ZWMwYmY4ZDA4MmE0OWUyYTNiYmM2NTY2MTkxZjkxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3Jr
SW5mb01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0lu
Zm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmNwcApAQCAtNDgsOSArNDgsOSBAQCBXZWJOZXR3b3Jr
SW5mb01hbmFnZXI6On5XZWJOZXR3b3JrSW5mb01hbmFnZXIoKQogewogfQogCi12b2lkIFdlYk5l
dHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
c2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTmV0
d29ya0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdv
cmtJbmZvTWFuYWdlci5oCmluZGV4IGQzZGFiODQ0YzhiYWQyMTc4OWY4MzA5NTRmY2EzODhhNmVi
YmZkMTUuLmRmZTlhZmE5NTBmZTE4NzA4OTIyMWI2MmQzZDhhOGM3NmFjZGNjMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJO
ZXR3b3JrSW5mb01hbmFnZXIuaApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERl
Y29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsMTEgKzU3LDExIEBAIHB1YmxpYzoKICAgICBkb3VibGUg
YmFuZHdpZHRoKFdlYlBhZ2UqKSBjb25zdDsKICAgICBib29sIG1ldGVyZWQoV2ViUGFnZSopIGNv
bnN0OwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVt
ZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJOZXR3b3JrSW5mb01hbmFnZXJNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5ldHdvcmtJbmZvTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2Fn
ZURlY29kZXImKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJOZXR3b3JrSW5mbzo6RGF0YSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggN2I2ODkxMmZlOWFhYmI0
MmMyZTc4Y2FmNDg2NDllYTUwNzA0MjNlMC4uZmI0MmJjYzQzMjMzMmUyMTYwNTdmODk1YTIzZTIz
NTc2NmFmZjViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtNjMs
OSArNjMsOSBAQCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjp+V2ViTm90aWZpY2F0aW9uTWFuYWdl
cigpCiB7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJlY2VpdmVXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBIYXNoTWFwPFN0cmluZywgYm9vbD4mIHBlcm1pc3Npb25zKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKaW5kZXggNmE3MGZjNjBjODU1Y2QzMTk2MTAwOTk2YjM1YmJhNmVjNGQ3
ZjM4My4uYTNmNjU4ZjI0NTYwZmFlODE3Yzk5MjUwNTJmOTI4YmM1OGE0YTUyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw4ICszNSw4IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVu
dERlY29kZXI7CiBjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29kZXI7CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIC8vIFRo
aXMgY2FsbGJhY2sgY29tZXMgZnJvbSBXZWJDb3JlLCBub3QgbWVzc2FnZWQgZnJvbSB0aGUgVUkg
cHJvY2Vzcy4KICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKiwgV2ViUGFnZSopOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBk
aWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywg
Ym9vbCBhbGxvd2VkKTsKIAogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZvciBwZXJtaXNz
aW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KQEAgLTc0LDcgKzc0LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
CiAgICAgdm9pZCBkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ICAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGZkYjdlNWUxZjNiMGFhYzMzY2MyZmZiMjkz
ZTRlN2MyYjhhZjE4NTUuLmZjZmIyNDlhZGVmZjQ3MmZjNDdkNjcyMmMxNGZmZGJjNTE5M2RkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODcsMjggKzg3LDI4IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVBsdWdpblByb3h5KFBsdWdpblByb3h5KiBwbHVn
aW4pCiAgICAgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXItPnJlbW92ZVBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uKHRoaXMpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3ZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdl
SUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIEFTU0VSVChhcmd1
bWVudHMtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUKGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIAotICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9IG1fcGx1Z2lucy5nZXQoYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCkpOworICAgIFBsdWdpblByb3h5KiBwbHVnaW5Qcm94eSA9
IG1fcGx1Z2lucy5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogICAgIGlmICghcGx1Z2lu
UHJveHkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlUGx1
Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBw
bHVnaW5Qcm94eS0+ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGRlY29kZXIpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMsIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+JiByZXBseSkKK3ZvaWQgUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYg
cmVwbHlFbmNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpIHsKLSAgICAgICAgbV9ucFJlbW90ZU9iamVj
dE1hcC0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzLCByZXBseSk7CisgICAgICAgIG1fbnBSZW1vdGVPYmplY3RNYXAtPmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJn
dW1lbnRzLT5kZXN0aW5hdGlvbklEKCk7CisgICAgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IGRl
Y29kZXIuZGVzdGluYXRpb25JRCgpOwogCiAgICAgaWYgKCFkZXN0aW5hdGlvbklEKSB7Ci0gICAg
ICAgIGRpZFJlY2VpdmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgICAgIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcg
KzExNiw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0CiAgICAgaWYgKCFwbHVnaW5Qcm94eSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2lu
UHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cisg
ICAgcGx1Z2luUHJveHktPmRpZFJlY2VpdmVTeW5jUGx1Z2luUHJveHlNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAogdm9pZCBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCmluZGV4IGI5YmY4MWM3MTY2ZDY3MDlhYzA4OGNmODRjN2RiOTlhNTI1MDA5
ZDUuLjJkYzJjY2E1OWZmZDdkMDMwNjNiMTA2YjlkYTljY2MzNWRlYWNlNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC02NCwxMyArNjQsMTMgQEAgcHJpdmF0ZToKICAgICBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBjb25zdCBTdHJp
bmcmIHBsdWdpblBhdGgsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbik7CiAK
ICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYp
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25Q
dHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKICAgICB2b2lkIHNldEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmKTsKIAogICAgIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oCmluZGV4IDAyZmExYWI1NzcxOWI5ODg3ZDI3YTZiZDIzNTRiNTQxZWU3ODQxMWUuLjgxMDRh
ZjIwNDNkZGZkOTgzMDg1NzcxZmFhODQ3MTU4ZDlmOWYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC02MCw4ICs2MCw4IEBAIHB1
YmxpYzoKICAgICB1aW50NjRfdCBwbHVnaW5JbnN0YW5jZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
bHVnaW5JbnN0YW5jZUlEOyB9CiAgICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGFyZ3VtZW50cyk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZVBsdWdpblByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNQbHVnaW5Qcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAKICAgICBib29sIGlzQmVpbmdBc3luY2hyb25vdXNseUluaXRpYWxp
emVkKCkgY29uc3QgeyByZXR1cm4gbV93YWl0aW5nT25Bc3luY2hyb25vdXNJbml0aWFsaXphdGlv
bjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAppbmRleCBlODg2OTYz
NzEyODU5NWVkOGI5MTJhMjU3YzNkMjRhMGFjZGE0YjNkLi42ODEwZjBhYmRiOWRiZWJhOTlmYTNl
MWU5YjBmMDZjZTQ1YWUwNDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAKQEAgLTU2LDkgKzU2LDkgQEAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6On5XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcigpCiB7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLmgKaW5kZXggMDE3MjM4OTRjZjUzZmFjZWQ5NjI1ZmNiNGVjZTI2Y2E0NmZjNDhjMC4u
ODNhMWNjMzA0NTNjZjI2ZTNlZTg5MGE3ODVhYThlOGRhMGYxMzRkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNv
ZGVyOwogY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVz
c2FnZUlEOwogfQogCkBAIC00NywxNCArNDcsMTQgQEAgY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24q
LCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
KCk7CiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCBnZXRDYWNo
ZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNhY2hl
Rm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luRGF0YSwgdWludDMyX3QgY2FjaGVzVG9DbGVhcikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAKaW5kZXggNWUxNTJlZTk4YWFkMDYwY2Q3YTcwYzFlM2U3YjBjMTQ4NDVm
YWE4MC4uZTM5YmEzOWQyMGU2NjY1NDJlODc3ZGVlNmM0MzM4ZTNjYTY1ZGZhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
LmNwcApAQCAtNDksMzQgKzQ5LDMzIEBAIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6V2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6CiAKIC8vIFdl
YkNvbm5lY3Rpb24KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1lc3Nh
Z2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogYXJndW1lbnRFbmNvZGVyLCBBUElPYmpl
Y3QqIG1lc3NhZ2VCb2R5KQordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmVuY29kZU1l
c3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgQVBJT2JqZWN0KiBt
ZXNzYWdlQm9keSkKIHsKLSAgICBhcmd1bWVudEVuY29kZXItPmVuY29kZShJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdlQm9keSkpOworICAgIGVuY29kZXIuZW5jb2RlKElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKG1lc3NhZ2VCb2R5KSk7CiB9CiAKLWJvb2wg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkZWNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50RGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3NhZ2VC
b2R5KQorYm9vbCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRlY29kZU1lc3NhZ2VCb2R5KENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSU9iamVjdD4mIG1lc3Nh
Z2VCb2R5KQogewotICAgIGlmICghYXJndW1lbnREZWNvZGVyLT5kZWNvZGUoSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZURlY29kZXIobWVzc2FnZUJvZHkpKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCiAvLyBDb3JlSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKLQotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1l
c3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQor
dm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNl
aXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBkaWRSZWNlaXZlV2ViQ29ubmVjdGlvbk1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcHJvY2Vz
cy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwor
ICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKIH0KIAotdm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVT
eW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQogewotICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNl
aXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29k
ZXIpOwogfQogCiB2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6ZGlkQ2xvc2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IGNkZmY0YWMyN2YwYjkzNDlj
NTlhZGRiZjI5YjAyODk0MGUwMzQxODYuLmFmNTkxMTE1YjkxNzhkZTUwODRlY2M3NjRlMzg2MjU5
MjdlZjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDEsMTQgKzQxLDE0IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCi0g
ICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciosIEFQSU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkZWNvZGVNZXNzYWdl
Qm9keShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBSZWZQdHI8QVBJT2JqZWN0PiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9keShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImLCBBUElPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGVjb2Rl
TWVzc2FnZUJvZHkoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRyPEFQSU9iamVjdD4m
KSBPVkVSUklERTsKIAogICAgIC8vIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXI+Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENv
cmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKSAgT1ZFUlJJREU7
CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NUb1Jl
Y2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
YmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDUzZDM4OTVjZGY0N2JkYjk3NmM0MjA5YWE1
MDczYzRkMDIzYjM1MzkuLjA1Yjc1YTFjYmY3NzNkZTIyNzg4ZjY3Y2RlY2Y0YjllODdhOTg4MjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgV2ViRGF0
YWJhc2VNYW5hZ2VyOjp+V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBXZWJEYXRh
YmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogYXJndW1lbnRzKQordm9pZCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIGRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6
Z2V0RGF0YWJhc2VzQnlPcmlnaW4odWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRh
dGFiYXNlTWFuYWdlci5oCmluZGV4IDYwZmZiMTBjZGFjNjcwMTE4ZDI5Y2VjNGIxNzE4NWQzOTc0
ZDJlY2EuLmFkYjRkNGI4M2E4ZDNhOWMxYzg5MzZiMTk1MmNmMmY1MWRlMmI4NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEYXRhYmFzZU1hbmFnZXIuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29k
ZXI7CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNz
YWdlSUQ7CiB9CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0YWJh
c2VNYW5hZ2VyJiBzaGFyZWQoKTsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAg
dm9pZCBzZXRRdW90YUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVu
c2lnbmVkIGxvbmcgbG9uZyBxdW90YSkgY29uc3Q7CiAKIHB1YmxpYzoKQEAgLTU4LDcgKzU4LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZU1hbmFnZXIoKTsKIAogICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCi0gICAgdm9pZCBkaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAKICAgICB2b2lkIGdldERhdGFiYXNlc0J5T3JpZ2luKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwogICAgIHZvaWQgZ2V0RGF0YWJhc2VPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKaW5kZXggZGJlYmQzODZhNWU1N2M4OWYyOWYyMTNjZDljYTA1ZTkzYTY2M2Yy
OS4uNzc2YThkOTdlMTMxNzNmYzVlZmZiOTUwMDM1YWM5YjBjNzBmODhjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC03OSw3ICs3
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAg
ICAgdmlydHVhbCBib29sIGxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSog
Z3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzeW5j
TGF5ZXJTdGF0ZShXZWJMYXllcklELCBjb25zdCBXZWJMYXllckluZm8mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggY2E0NzYxNzll
MWRhNzk3NGFkZDUwMWI2ZDI5MWJiODQxMzRmZTVkMy4uYzhlOTZjM2MwZTMzMTJkZjc5YjRjYWZi
NDc1NGNlYmZkYmU4YjU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKQEAgLTM0LDggKzM0LDggQEAKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVy
OwogICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZURlY29kZXI7CiAgICAg
Y2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxEcmF3aW5nQXJlYT4gY3JlYXRlKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+RHJhd2luZ0FyZWEoKTsKICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dm9pZCBkaWRSZWNlaXZlRHJhd2luZ0FyZWFNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBD
b3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpID0gMDsKQEAgLTk0LDcgKzk0
LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRp
bmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YUltcGwuY3BwCmluZGV4IGQ2Y2VmMTQyZjdiNmRmZjBkZTUxODU3NjMzMzVkOGIzNTI3MDMzOWUu
LjcxOTE2OTA5ZDM5MTAxZmYwZmQwMGZmZjhjOWJlNDJhZTJlY2M5ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBA
IC03MjcsMTAgKzcyNywxMCBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQogfQogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotdm9p
ZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2b2lkIERyYXdpbmdB
cmVhSW1wbDo6ZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0
KQotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRv
ck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggOGJhYmUw
MTA4NzgyNDk4NjdiMTY1M2MzYjQ1ZmM0ZTUzZTQ4NzFmNi4uYmE5Mzk1NGY5YjdkOWIwZGFlNTMz
ZTYzMmQ1NzQ0OTM5NDUyOTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCi0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cAppbmRleCBhNTMyMjA2MTBjN2NmZDdkYzNiNWNjYjJkMGEwZjViNmIzMzcxODQzLi4yYTdlN2Y0
OTMwZWM5MWFmZGQzY2RkYzFmMDhiM2E0YzAzODlkYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNzIsMTAg
KzcyLDEwIEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpyZW1vdmVTY3JvbGxpbmdUcmVlRm9yUGFn
ZShXZWJQYWdlKiB3ZWJQYWdlKQogfQogI2VuZGlmCiAKLXZvaWQgRXZlbnREaXNwYXRjaGVyOjpk
aWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSkKK3ZvaWQgRXZl
bnREaXNwYXRjaGVyOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgYm9vbCYgZGlkSGFuZGxlTWVzc2Fn
ZSkKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0V2ZW50RGlz
cGF0Y2hlcj4oKSkgewotICAgICAgICBkaWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgZGlk
SGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVFdmVudERpc3BhdGNoZXJNZXNzYWdl
T25Db25uZWN0aW9uV29ya1F1ZXVlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2RlciwgZGlk
SGFuZGxlTWVzc2FnZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggYWE3
MGE5M2U1NWNmNzZlMWIzMjI2MWJmYTM0NjcyODgwNWFkMTM0MC4uYTRmOWI5OWNlMjEzYTg1YWQw
MGY5NDJiNTNkOWFlNTAxMmYzMDIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtNjAsMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBi
b29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdm9pZCBk
aWRSZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgdm9pZCBkaWRS
ZWNlaXZlRXZlbnREaXNwYXRjaGVyTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIGJvb2wmIGRpZEhhbmRsZU1lc3NhZ2UpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwog
ICAgIHZvaWQgd2hlZWxFdmVudChDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgcGFnZUlE
LCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3YXJk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRy
ZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IDk1ZGM4ZTljYTRiN2E2ZjVkZmFiMjM0YjQxYmM4YjEwY2U0YmJmN2UuLjY4ZDE1
ODIzNmE2ZDViNDc2OWY3YmNmNjQ3MDE3NGZiMzdkMWYyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtMzEsOCArMzEsOCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKLWNs
YXNzIEFyZ3VtZW50RGVjb2RlcjsKIGNsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlRGVj
b2RlcjsKIGNsYXNzIE1lc3NhZ2VJRDsKIH0KIApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3RGb3JMYXllcihpbnQgLyogbGF5
ZXJJRCAqLywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBy
ZW5kZXJOZXh0RnJhbWUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVz
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTGF5ZXJU
cmVlQ29vcmRpbmF0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmgKaW5kZXggYzA0MTU0NmE4NmNiMzVkZmE1OTA0NjZkMDliNWJhODc2ZDU2ZjY1OC4u
MmYxMDQ3NTg5ODcxYzczNDgxNmZiYTM0MGFkNTAxYmQ1MGExNDgzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtNTMsNyArNTMs
NyBAQCBwdWJsaWM6CiAgICAgV2ViUGFnZSogaW5zcGVjdG9yUGFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5zcGVjdG9yUGFnZTsgfQogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdl
Ykluc3BlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJJbnNw
ZWN0b3JNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkluc3BlY3Rv
ck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3IgbWVz
c2FnZXMKICAgICB2b2lkIHNob3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBlODJlNjVjMDY2OTRlMTIxOWNmNzY3NDBlMDM1OTJjZDQy
OGFjM2RlLi4xMGQwMzNkNjNjYzNlMzVhOTBkMzM2OGQ5NDk4OTFlNThiNjA0ZDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMjE1LDE0
ICsxMjE1LDE0IEBAIHZvaWQgV2ViUGFnZTo6c2V0R2FwQmV0d2VlblBhZ2VzKGRvdWJsZSBnYXAp
CiAgICAgbV9wYWdlLT5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pOwogfQogCi12b2lkIFdlYlBh
Z2U6OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudERlY29kZXIpCit2b2lkIFdlYlBhZ2U6
OnBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7CiAgICAgSW5qZWN0ZWRCdW5kbGUqIGlu
amVjdGVkQnVuZGxlID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKTsKICAg
ICBpZiAoIWluamVjdGVkQnVuZGxlKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8QVBJ
T2JqZWN0PiBtZXNzYWdlQm9keTsKLSAgICBpZiAoIWFyZ3VtZW50RGVjb2Rlci0+ZGVjb2RlKElu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VEZWNvZGVyKG1lc3NhZ2VCb2R5KSkpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2RlcihtZXNzYWdlQm9k
eSkpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbmplY3RlZEJ1bmRsZS0+ZGlkUmVjZWl2ZU1l
c3NhZ2VUb1BhZ2UodGhpcywgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI3
NjMsMTggKzI3NjMsMTggQEAgYm9vbCBXZWJQYWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJlRm9jdXNl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzRm9jdXNl
ZCgpICYmIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCk7CiB9CiAKLXZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBhcmd1bWVudHMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzRHJhd2luZ0FyZWE+KCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2lu
Z0FyZWEpCi0gICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlRHJhd2luZ0FyZWFN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIG1f
ZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVEcmF3aW5nQXJlYU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKSAmJiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NMYXllclRyZWVDb29yZGluYXRvcj4o
KSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJlYSkKLSAgICAgICAgICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpZFJlY2VpdmVMYXllclRyZWVDb29yZGluYXRvck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2
ZUxheWVyVHJlZUNvb3JkaW5hdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0yNzgyLDI0ICsyNzgyLDI0
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkluc3BlY3Rvcj4oKSkgewog
ICAgICAgICBpZiAoV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSB0aGlzLT5pbnNwZWN0b3IoKSkK
LSAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYkluc3BlY3Rvck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICAgICAgaW5zcGVjdG9yLT5k
aWRSZWNlaXZlV2ViSW5zcGVjdG9yTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJG
dWxsU2NyZWVuTWFuYWdlcj4oKSkgewotICAgICAgICBmdWxsU2NyZWVuTWFuYWdlcigpLT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAg
IGZ1bGxTY3JlZW5NYW5hZ2VyKCktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAotICAgIGRp
ZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2Rlcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyPiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgT3duUHRyPENvcmVJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQogeyAgIAotICAgIGRpZFJlY2VpdmVTeW5jV2Vi
UGFnZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKKyAg
ICBkaWRSZWNlaXZlU3luY1dlYlBhZ2VNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVj
b2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KICAgICAKIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRM
aXN0KiBXZWJQYWdlOjpiYWNrRm9yd2FyZExpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGE1ZjJiYmI3NWYzMmM1MWRhMTRhZmMwNjk5ZGRm
NzEzMjEzZGQwZC4uN2RiNjVlOTllMzQzZTMwOTYwZGQxYzVhMjI0MWIyYmQ3NTljNjY5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMzksOCAr
MjM5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pOwogCiAgICAgLy8gLS0g
Q2FsbGVkIGZyb20gV2ViUHJvY2Vzcy4KLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0
cjxDb3JlSVBDOjpBcmd1bWVudEVuY29kZXI+Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwg
T3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogCiAgICAgLy8gLS0gSW5qZWN0ZWRC
dW5kbGUgbWV0aG9kcwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMzIwLDcgKzMyMCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBhZ2VMZW5ndGgoZG91YmxlKTsKICAgICB2b2lkIHNl
dEdhcEJldHdlZW5QYWdlcyhkb3VibGUpOwogCi0gICAgdm9pZCBwb3N0SW5qZWN0ZWRCdW5kbGVN
ZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworICAgIHZvaWQgcG9zdEluamVjdGVkQnVuZGxlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgYm9vbCBkcmF3c0Jh
Y2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQmFja2dyb3VuZDsgfQogICAgIGJvb2wg
ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kOyB9CkBAIC02MTIsOCArNjEyLDggQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNXZWJQYWdlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKTsKIAogI2lmICFQTEFURk9STShNQUMpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGlu
dGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHku
Y3BwCmluZGV4IGY1OWZiYmFmNWY4MzYxZjgxYTJkYWZlYzdmNjc1OTQ5NzJhYzI4NzMuLjM0MGM1
NDMwZWY0ZDEwZWY4Zjc3NGVjMzcyMjlmZTMwOWRjNmIxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcApAQCAt
NDcsOSArNDcsOSBAQCBXZWJQYWdlR3JvdXBQcm94eTo6fldlYlBhZ2VHcm91cFByb3h5KCkKIHsK
IH0KICAgICAKLXZvaWQgV2ViUGFnZUdyb3VwUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJQYWdlR3JvdXBQ
cm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRl
Y29kZXIpCiB7Ci0gICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgZGlkUmVjZWl2ZVdlYlBhZ2VHcm91cFBy
b3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogICAgIAogV2Vi
UGFnZUdyb3VwUHJveHk6OldlYlBhZ2VHcm91cFByb3h5KGNvbnN0IFdlYlBhZ2VHcm91cERhdGEm
IGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZUdyb3VwUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlR3JvdXBQcm94eS5oCmluZGV4IGNiYjA3OTQyMTNkMmQxZmExZTk4MmYwYWM1Zjg0YzA5YzVj
MmFlZDguLjAwZGE2NGIyNDIyNDc5YWFmNTljNWQ1ZDk0MTVkN2NjODIxNmI1OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5oCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIENvcmVJUEMgewotY2xhc3MgQXJndW1lbnREZWNvZGVyOwogY2xhc3MgQ29ubmVjdGlv
bjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01NCwx
NCArNTQsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXNpYmxlVG9JbmplY3RlZEJ1bmRsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YS52aXNpYmxlVG9JbmplY3RlZEJ1bmRsZTsgfQogICAgIGJv
b2wgaXNWaXNpYmxlVG9IaXN0b3J5Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnZpc2li
bGVUb0hpc3RvcnlDbGllbnQ7IH0KICAgICAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJp
dmF0ZToKICAgICBXZWJQYWdlR3JvdXBQcm94eShjb25zdCBXZWJQYWdlR3JvdXBEYXRhJik7CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KICAgICAK
LSAgICB2b2lkIGRpZFJlY2VpdmVXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CiAgICAgCiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJDb3JlOjpVc2VyU3R5
bGVTaGVldCYpOwogICAgIHZvaWQgYWRkVXNlclNjcmlwdChjb25zdCBXZWJDb3JlOjpVc2VyU2Ny
aXB0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA0M2Vk
MTZiMWEzOWM5OGQ3NWViZmU1NDE5NjBiZWE0ZWJlZjk5ZjRkLi4zZmQyMzRlYTgxZmU0NDMwNjAy
ZGM4ZDM5Y2M2Yjg5NzIzN2JjYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTE4NywxNyArMTg3LDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6
ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50aWZpZXIsIFJ1CiAg
ICAgc3RhcnRSYW5kb21DcmFzaFRocmVhZElmUmVxdWVzdGVkKCk7CiB9CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit2
b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQogewogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAotICAgIHBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycywgYXJndW1lbnRzKTsKKyAgICBwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMsIGRlY29kZXIpOwogCiAgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyKCkuaW5zdGFsbCgpOwogCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gaW5q
ZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwogICAgIEluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSk7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2Rlcikp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXNzYWdlRGVjb2RlcikpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghcGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGguaXNFbXB0eSgpKSB7
CkBAIC02MDYsOSArNjA2LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUoKQogICAgIG1f
cnVuTG9vcC0+c3RvcCgpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQg
bWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENv
cmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6
TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE93
blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsgICAKLSAgICB1
aW50NjRfdCBwYWdlSUQgPSBhcmd1bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRf
dCBwYWdlSUQgPSBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAg
ICAgICAgcmV0dXJuOwogICAgIApAQCAtNjE2LDgzICs2MTYsODMgQEAgdm9pZCBXZWJQcm9jZXNz
OjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
Q29yZUlQQzoKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBwYWdl
LT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMs
IHJlcGx5KTsKKyAgICBwYWdlLT5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQordm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlByb2Nlc3M+KCkpIHsKLSAgICAgICAgZGlkUmVjZWl2ZVdlYlByb2Nlc3NN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQs
IGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdl
YkNvb2tpZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgV2ViQ29va2llTWFuYWdlcjo6c2hhcmVkKCku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXI+KCkpIHsK
LSAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYkRhdGFiYXNlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEJB
VFRFUllfU1RBVFVTKQogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNz
V2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKLSAgICAgICAgbV9iYXR0ZXJ5TWFuYWdlci5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1f
YmF0dGVyeU1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE5F
VFdPUktfSU5GTykKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dl
Yk5ldHdvcmtJbmZvTWFuYWdlcj4oKSkgewotICAgICAgICBtX25ldHdvcmtJbmZvTWFuYWdlci5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAg
ICAgIG1fbmV0d29ya0luZm9NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKIAogICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlUHJv
eHk+KCkpIHsKLSAgICAgICAgbV9pY29uRGF0YWJhc2VQcm94eS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIG1faWNvbkRhdGFiYXNl
UHJveHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBkZWNvZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4oKSkgewotICAgICAgICBXZWJL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
ZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk1lZGlhQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAg
IFdlYk1lZGlhQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
OjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCkpIHsKLSAgICAgICAg
bV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyLmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjZW5kaWYKICAgICAKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpz
aGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAjaWYgVVNFKFNPVVApCiAgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJTb3VwUmVxdWVzdE1hbmFnZXI+KCkpIHsK
LSAgICAgICAgbV9zb3VwUmVxdWVzdE1hbmFnZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICBtX3NvdXBSZXF1ZXN0TWFuYWdlci5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJQYWdlR3JvdXBQcm94eT4oKSkgewotICAgICAgICB1aW50NjRf
dCBwYWdlR3JvdXBJRCA9IGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpOworICAgICAgICB1aW50
NjRfdCBwYWdlR3JvdXBJRCA9IGRlY29kZXIuZGVzdGluYXRpb25JRCgpOwogICAgICAgICBpZiAo
IXBhZ2VHcm91cElEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTcwMCwxMCAr
NzAwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIGlmICghcGFnZUdyb3Vw
UHJveHkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBwYWdlR3JvdXBQ
cm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMp
OworICAgICAgICBwYWdlR3JvdXBQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBkZWNvZGVyKTsKICAgICB9CiAKLSAgICB1aW50NjRfdCBwYWdlSUQgPSBhcmd1
bWVudHMtPmRlc3RpbmF0aW9uSUQoKTsKKyAgICB1aW50NjRfdCBwYWdlSUQgPSBkZWNvZGVyLmRl
c3RpbmF0aW9uSUQoKTsKICAgICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuOwogICAgIApA
QCAtNzExLDcgKzcxMSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgcGFnZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIHBhZ2UtPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgZGVjb2Rlcik7CiB9CiAKIHZvaWQgV2ViUHJvY2Vz
czo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCkBAIC03NDMsMTAgKzc0MywxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZQogICAgIC8vIHdlJ2xsIGxldCBpdCBzbGlkZS4KIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgZGlkSGFuZGxl
TWVzc2FnZSkKK3ZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25X
b3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIGJvb2wmIGRp
ZEhhbmRsZU1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJQcm9jZXNzPigpKSB7Ci0gICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2Fn
ZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywg
ZGlkSGFuZGxlTWVzc2FnZSk7CisgICAgICAgIGRpZFJlY2VpdmVXZWJQcm9jZXNzTWVzc2FnZU9u
Q29ubmVjdGlvbldvcmtRdWV1ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIsIGRpZEhh
bmRsZU1lc3NhZ2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlY2NiYjhkNjBlN2E0NWQ5NGNiNGJmMmE2ZTUwODIw
NzJlM2U0OTY5Li5iNDJhMGVjMTZkN2RkZjIyNTFhNTc4YTg0NWQxOWI2MWRlMjNkMTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTkxLDggKzE5MSw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogCi0gICAgdm9pZCBpbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKyAgICB2b2lkIGluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIHZvaWQg
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHBsYXRmb3JtVGVy
bWluYXRlKCk7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3Ry
aW5nJikgY29uc3Q7CkBAIC0yNjEsOCArMjYxLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIENvcmVJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3M7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3du
UHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiwgT3duUHRyPENvcmVJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlEKTsKICNpZiBQTEFURk9STShXSU4pCkBAIC0yNzAsMTEgKzI3MCwxMSBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKSBPVkVSUklERTsKIAogICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAotICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZVdlYlByb2Nlc3NNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIGJv
b2wmIGRpZEhhbmRsZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBib29sJiBkaWRIYW5kbGVNZXNzYWdlKTsKIAog
ICAgIHZvaWQgZGlkR2V0UGx1Z2lucyhDb3JlSVBDOjpDb25uZWN0aW9uKiwgdWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KaW5kZXggZmNjNDJlOTY0
NDM5MjhlN2Y5OGZiNWE0MGQ2NDAwOGUzZjU4NTM0ZS4uMTA3NjZkMmNjM2RjMzg4OGVhNTEzY2E4
NTBkYTg5ZWE4NDQ0ZTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9X
ZWJQcm9jZXNzTWFjLm1tCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGlkIE5TQXBwbGljYXRp
b25BY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudChOU0FwcGxpY2F0aW9uKiwgU0VMKQogICAg
IHJldHVybiBbcGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGFjY2Vzc2liaWxpdHlG
b2N1c2VkVUlFbGVtZW50XTsKIH0KICAgICAKLXZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVS
ZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NRdC5jcHAK
aW5kZXggY2ZkMmMxYTJkNjE3NjYyN2E2ZDNhM2M3YjEwMGI1YWI4Zjk0NzU4MC4uOTJjYWViZTI5
NmFhZjc0YzdjOWNkNWFiYmVkZjE3N2QyN2ZlYWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRpYyB2
b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2FsbGJhY2sodm9pZCopCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQordm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikKIHsKICAgICBtX25ldHdvcmtBY2Nlc3NNYW5hZ2VyID0gbmV3IFF0
TmV0d29ya0FjY2Vzc01hbmFnZXIodGhpcyk7CiAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmNvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkuaXNOdWxsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291
cC9XZWJQcm9jZXNzU291cC5jcHAKaW5kZXggNTFlZjNhN2IyYzI3YjE3YjgyMTNiN2Y5ZjY2M2U0
ZjljZDMwNDA5MC4uYmRiYWY3ZDQzNDU5ZmY5MDdkOTk4YzJiNTljZjg3NzJjYmExOTA5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3Bw
CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKHZvaWQqKQog
ICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoV2ViQ29yZTo6dXNlclByZWZlcnJlZExh
bmd1YWdlcygpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAgIGlmICghcGFyYW1ldGVycy5s
YW5ndWFnZXMuaXNFbXB0eSgpKQogICAgICAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdl
KHBhcmFtZXRlcnMubGFuZ3VhZ2VzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNzQwNmQ2ODVlMWFj
MmE1N2VjMDJkZmQ3MzkzNzU1MDkwM2JlZDM1Ny4uYjliMzU4N2Y0ZTNhNzg5NGEwOWViYzE5OWI5
MDU2MGZlOGEyMDY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3Vw
L1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTg2LDkgKzg2LDkgQEAgV2ViU291
cFJlcXVlc3RNYW5hZ2VyOjp+V2ViU291cFJlcXVlc3RNYW5hZ2VyKCkKIHsKIH0KIAotdm9pZCBX
ZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzKQordm9pZCBXZWJTb3VwUmVxdWVzdE1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIGRpZFJlY2VpdmVXZWJTb3VwUmVxdWVzdE1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBkaWRSZWNlaXZlV2ViU291cFJlcXVlc3RNYW5h
Z2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOwogfQogCiB2b2lkIFdl
YlNvdXBSZXF1ZXN0TWFuYWdlcjo6cmVnaXN0ZXJVUklTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hl
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViU291cFJl
cXVlc3RNYW5hZ2VyLmgKaW5kZXggNzY1NDQ2NjUzZDU1NGIxMTFlYWVkN2Q4Y2RmYzZmNzc2OTE2
NWNmMC4uY2FlNjUyZWNmNjY5MTI2MzIzN2RhNzg3YjY4MDVmODhlMDZiN2UwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFn
ZXIuaApAQCAtMzAsOSArMzAsOSBAQCB0eXBlZGVmIHN0cnVjdCBfR0lucHV0U3RyZWFtIEdJbnB1
dFN0cmVhbTsKIHR5cGVkZWYgc3RydWN0IF9HU2ltcGxlQXN5bmNSZXN1bHQgR1NpbXBsZUFzeW5j
UmVzdWx0OwogCiBuYW1lc3BhY2UgQ29yZUlQQyB7Ci1jbGFzcyBBcmd1bWVudERlY29kZXI7CiBj
bGFzcyBDb25uZWN0aW9uOwogY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIE1lc3NhZ2VEZWNv
ZGVyOwogY2xhc3MgTWVzc2FnZUlEOwogfQogCkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgc2VuZChHU2ltcGxlQXN5bmNSZXN1bHQqLCBHQ2FuY2VsbGFibGUqKTsKICAgICBH
SW5wdXRTdHJlYW0qIGZpbmlzaChHU2ltcGxlQXN5bmNSZXN1bHQqKTsKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvdXBSZXF1ZXN0
TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU291cFJl
cXVlc3RNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogCiAgICAgdm9pZCByZWdpc3RlclVSSVNj
aGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgdm9pZCBkaWRIYW5kbGVVUklSZXF1ZXN0
KGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRfdCBjb250ZW50TGVuZ3RoLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50NjRfdCByZXF1ZXN0SUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAppbmRleCBmMGMxOTU1YTU3
ZWYwYjczNzY5MzNmMGRhMDFhZGRkNjQ4NzUzNDRlLi4yNWRiYzM2YzQ5OWJmMzk0NjkzNGI0ZTEy
ZTY1NjIzMGFkOWJiMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dp
bi9XZWJQcm9jZXNzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9X
ZWJQcm9jZXNzV2luLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1DbGVhclJlc291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhciBjYWNoZXNUb0Ns
ZWFyCiAjZW5kaWYgLy8gVVNFKENGTkVUV09SSykKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopCit2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKQogewogICAg
IHNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMocGFyYW1ldGVycy5zaG91bGRQYWludE5hdGl2
ZUNvbnRyb2xzKTsKIAo=
</data>
<flag name="review"
          id="182780"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>