<?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>132645</bug_id>
          
          <creation_ts>2014-05-07 04:00:26 -0700</creation_ts>
          <short_desc>Convert OwnPtr to std::unique_ptr in websocket</short_desc>
          <delta_ts>2014-05-07 04:01:55 -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>NEW</bug_status>
          <resolution></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="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007284</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-05-07 04:00:26 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007286</commentid>
    <comment_count>1</comment_count>
      <attachid>230986</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-05-07 04:01:55 -0700</bug_when>
    <thetext>Created attachment 230986
WIP</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230986</attachid>
            <date>2014-05-07 04:01:55 -0700</date>
            <delta_ts>2014-05-07 04:01:55 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-132645-20140507200131.patch</filename>
            <type>text/plain</type>
            <size>38329</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJhZTYzNTNiYTVkNGNk
OWU5Mzc2NDNkZmViOGFhZDM1ZjVmNGRhMS4uZjcyMjFlY2E2MWRlZTYwMGQ1YWU4MTRjYWE3YmE2
OWE2ZWRkODUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE0LTA1LTA3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKKyAgICAgICAgQ29udmVydCBP
d25QdHIgdG8gc3RkOjp1bmlxdWVfcHRyIGluIHdlYnNvY2tldCAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjY0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3Ig
Y2hhbmdlcy4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZU1l
ZGlhUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGFDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy93ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0OjpkaWRSZWNlaXZlQmluYXJ5RGF0YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmVucXVldWVUZXh0
RnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZW5x
dWV1ZVJhd0ZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5u
ZWw6OmVucXVldWVCbG9iRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpjcmVhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZW5hYmxl
RGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZs
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpjcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZs
YXRlRnJhbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZsYXRlUmVzdWx0SG9sZGVyOjpjcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5mbGF0ZVJlc3VsdEhvbGRlcjo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVm
bGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZXI6OldlYlNvY2tl
dERlZmxhdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEluZmxhdGVyOjpXZWJTb2Nr
ZXRJbmZsYXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlcjo6Y3JlYXRl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEluZmxhdGVyOjpjcmVhdGUp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRl
ci5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNw
YXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNo
ZXI6OmFkZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEV4dGVuc2lvbkRpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFr
ZTo6YWRkRXh0ZW5zaW9uUHJvY2Vzc29yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0SGFuZHNoYWtlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ondvcmtl
ckdsb2JhbFNjb3BlRGlkUmVjZWl2ZUJpbmFyeURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpt
YWluVGhyZWFkU2VuZEFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OnNlbmQpOgorICAgICAgICAqIE1vZHVsZXMv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorCisyMDE0LTA1
LTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKICAgICAgICAg
Q29udmVydCBQYXNzT3duUHRyIHRvIHVuaXF1ZV9wdHIgaW4gQ3Jvc3NUaHJlYWRUYXNrLmgKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjYwNQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZh
dGVNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1Qcml2YXRlTWVkaWFQbGF5ZXIuaAppbmRleCBhNDkyNzlmYjk5MjU0MjAyZjAzZjVlMDg4YWM1
MTYxOWY5ZWQ5Yjc5Li5mYjkwYjYwMDVhYmY1MDFlNWU5M2E2N2Q4N2Q5YWI5YjhhZjllOTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZh
dGVNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNUHJpdmF0ZU1lZGlhUGxheWVyLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgQ0RN
UHJpdmF0ZU1lZGlhUGxheWVyX2gKIAogI2luY2x1ZGUgIkNETVByaXZhdGUuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUFfVjIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IDU0Y2M3NDQ4YzM3M2VlZmZhNTBiNDc3ODVm
NjIxNmQyYjRiOWMwYTAuLmEwN2NkYTA2NWRjNDczODhjN2Y3MzE2MGM5ODQ1N2YzZDZlODljMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIu
Y3BwCkBAIC0xNjksOSArMTY5LDkgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWUKICAgICAgICAg
cHJvY2Vzc1BlbmRpbmdUYXNrcygpOwogfQogCi12b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8
Y2hhcj4+IGJpbmFyeURhdGEpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxjaGFy
Pj4gYmluYXJ5RGF0YSkKIHsKLSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihjcmVhdGVDYWxsYmFja1Rhc2soJmRp
ZFJlY2VpdmVCaW5hcnlEYXRhQ2FsbGJhY2ssIHRoaXMsIGJpbmFyeURhdGEpKSk7CisgICAgbV9w
ZW5kaW5nVGFza3MuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzaz4oY3JlYXRlQ2FsbGJhY2tUYXNrKCZkaWRSZWNlaXZlQmluYXJ5RGF0YUNhbGxiYWNr
LCB0aGlzLCBzdGQ6Om1vdmUoYmluYXJ5RGF0YSkpKSk7CiAgICAgaWYgKCFtX3N1c3BlbmRlZCkK
ICAgICAgICAgcHJvY2Vzc1BlbmRpbmdUYXNrcygpOwogfQpAQCAtMjUxLDExICsyNTEsMTEgQEAg
dm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVN
ZXNzYWdlQ2FsbGJhY2soU2NyaXB0RXgKICAgICAgICAgd3JhcHBlci0+bV9jbGllbnQtPmRpZFJl
Y2VpdmVNZXNzYWdlKG1lc3NhZ2UpOwogfQogCi12b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGFDYWxsYmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcj4gd3JhcHBlciwgUGFzc093blB0cjxWZWN0b3I8Y2hhcj4+IGJpbmFy
eURhdGEpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlk
UmVjZWl2ZUJpbmFyeURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd3Jh
cHBlciwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxjaGFyPj4gYmluYXJ5RGF0YSkKIHsKICAgICBB
U1NFUlRfVU5VU0VEKGNvbnRleHQsICFjb250ZXh0KTsKICAgICBpZiAod3JhcHBlci0+bV9jbGll
bnQpCi0gICAgICAgIHdyYXBwZXItPm1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShiaW5h
cnlEYXRhKTsKKyAgICAgICAgd3JhcHBlci0+bV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRh
KHN0ZDo6bW92ZShiaW5hcnlEYXRhKSk7CiB9CiAKIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyOjpkaWRVcGRhdGVCdWZmZXJlZEFtb3VudENhbGxiYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyPiB3cmFwcGVyLCB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1v
dW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5o
CmluZGV4IGIxZTJmY2NkNDFmMmIwZjczZWQ1MTlhZDUyMTVmZTY4YjVmN2E5ZjMuLjY3NDgyMDZm
MDBkYjk5NDllZDNmNDJmNzUxMTU5NzM4MjM0MTI3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNs
dWRlICJXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTgwLDcgKzc5LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBkaWRDb25uZWN0KCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093
blB0cjxWZWN0b3I8Y2hhcj4+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKHN0ZDo6
dW5pcXVlX3B0cjxWZWN0b3I8Y2hhcj4+KTsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1v
dW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9z
aW5nSGFuZHNoYWtlKCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxl
ZEJ1ZmZlcmVkQW1vdW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtl
Q29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pOwpAQCAtOTYsNyArOTUsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZvaWQgZGlkQ29u
bmVjdENhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4pOwogICAgIHN0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlQ2FsbGJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YUNhbGxiYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcj4sIFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+Pik7CisgICAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGFDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+LCBz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+Pik7CiAgICAgc3RhdGljIHZvaWQgZGlkVXBkYXRl
QnVmZmVyZWRBbW91bnRDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+LCB1bnNpZ25lZCBsb25n
IGJ1ZmZlcmVkQW1vdW50KTsKICAgICBzdGF0aWMgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hh
a2VDYWxsYmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+KTsKICAgICBzdGF0aWMgdm9pZCBkaWRDbG9z
ZUNhbGxiYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4sIHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21w
bGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmlu
ZGV4IDUyZmJlYTgyZWYzMmNiMDkzOGQ3MmFjZWRmMDE1YTVlZjllMTQyZmMuLmM3MmYzMGM5Nzkw
YTgxMjQzNTJhMzI0NjhkYWM2YWFhN2UwMDYwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC01Niw3ICs1Niw2IEBACiAjaW5jbHVk
ZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXJW
aWV3Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtNTEzLDcg
KzUxMiw3IEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1zZykKICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKIH0KIAotdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+PiBiaW5hcnlE
YXRhKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8Y2hhcj4+IGJpbmFyeURhdGEpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXQgJXAgZGlkUmVjZWl2ZUJpbmFyeURhdGEoKSAlbHUgYnl0ZSBiaW5hcnkgbWVzc2FnZSIsIHRo
aXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGJpbmFyeURhdGEtPnNpemUoKSkpOwogICAg
IHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmgKaW5kZXggMGE2ODkwMWIyNTVjY2VmMDYwNzNiMWVmNjc0NzI3Y2Jm
ODJkOWI0Yy4uNjkyODI4ODUyZTRhMDc5NGUwMDUwYTc1ZDY3MDZiZjg0Mzg4ZTI0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMTA1LDcg
KzEwNSw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50IGZ1bmN0aW9u
cy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3Rvcjxj
aGFyPj4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+Pikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
VXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwCmluZGV4IDZlYTQ3ZTljNmI0ZjEwNDMxNWRjZjZiYzVlZTQ0Zjc1ODQ4NDY0
MzguLjVhZDhiOWY2NjdhNmUzN2Q4NjViNTM3NzgwMjIxZWY4ZTgzY2FlZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKQEAgLTU2LDggKzU2LDYgQEAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTk4LDcgKzk2LDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQog
ICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBjb25uZWN0KCkiLCB0aGlzKTsK
ICAgICBBU1NFUlQoIW1faGFuZGxlKTsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAgICBt
X2hhbmRzaGFrZSA9IGFkb3B0UHRyKG5ldyBXZWJTb2NrZXRIYW5kc2hha2UodXJsLCBwcm90b2Nv
bCwgbV9kb2N1bWVudCkpOworICAgIG1faGFuZHNoYWtlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJT
b2NrZXRIYW5kc2hha2U+KHVybCwgcHJvdG9jb2wsIG1fZG9jdW1lbnQpKTsKICAgICBtX2hhbmRz
aGFrZS0+cmVzZXQoKTsKICAgICBpZiAobV9kZWZsYXRlRnJhbWVyLmNhbkRlZmxhdGUoKSkKICAg
ICAgICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIu
Y3JlYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwpAQCAtNTA5LDcgKzUwNyw3IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICBBU1NFUlQobV9idWZmZXIuZGF0YSgp
IDwgZnJhbWVFbmQpOwogICAgIEFTU0VSVChmcmFtZUVuZCA8PSBtX2J1ZmZlci5kYXRhKCkgKyBt
X2J1ZmZlci5zaXplKCkpOwogCi0gICAgT3duUHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IGluZmxh
dGVSZXN1bHQgPSBtX2RlZmxhdGVGcmFtZXIuaW5mbGF0ZShmcmFtZSk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IGluZmxhdGVSZXN1bHQgPSBtX2RlZmxhdGVGcmFt
ZXIuaW5mbGF0ZShmcmFtZSk7CiAgICAgaWYgKCFpbmZsYXRlUmVzdWx0LT5zdWNjZWVkZWQoKSkg
ewogICAgICAgICBmYWlsKGluZmxhdGVSZXN1bHQtPmZhaWx1cmVSZWFzb24oKSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTU2OCw3ICs1NjYsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB0aGUgbWVtYmVy
IHZhcmlhYmxlcyBhcmUgaW4gYSBjb25zaXN0ZW50IHN0YXRlIGJlZm9yZQogICAgICAgICAgICAg
Ly8gdGhlIGhhbmRsZXIgaXMgaW52b2tlZC4KICAgICAgICAgICAgIC8vIFZlY3RvcjxjaGFyPjo6
c3dhcCgpIGlzIHVzZWQgaGVyZSB0byBjbGVhciBtX2NvbnRpbnVvdXNGcmFtZURhdGEuCi0gICAg
ICAgICAgICBPd25QdHI8VmVjdG9yPGNoYXI+PiBjb250aW51b3VzRnJhbWVEYXRhID0gYWRvcHRQ
dHIobmV3IFZlY3RvcjxjaGFyPik7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PGNoYXI+PiBjb250aW51b3VzRnJhbWVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8Y2hh
cj4+KCk7CiAgICAgICAgICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuc3dhcCgqY29udGludW91
c0ZyYW1lRGF0YSk7CiAgICAgICAgICAgICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9IGZhbHNlOwog
ICAgICAgICAgICAgaWYgKG1fY29udGludW91c0ZyYW1lT3BDb2RlID09IFdlYlNvY2tldEZyYW1l
OjpPcENvZGVUZXh0KSB7CkBAIC02MDksNyArNjA3LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzRnJhbWUoKQogCiAgICAgY2FzZSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5
OgogICAgICAgICBpZiAoZnJhbWUuZmluYWwpIHsKLSAgICAgICAgICAgIE93blB0cjxWZWN0b3I8
Y2hhcj4+IGJpbmFyeURhdGEgPSBhZG9wdFB0cihuZXcgVmVjdG9yPGNoYXI+KGZyYW1lLnBheWxv
YWRMZW5ndGgpKTsKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Y2hhcj4+IGJp
bmFyeURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxjaGFyPj4oZnJhbWUucGF5bG9hZExl
bmd0aCk7CiAgICAgICAgICAgICBtZW1jcHkoYmluYXJ5RGF0YS0+ZGF0YSgpLCBmcmFtZS5wYXls
b2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKICAgICAgICAgICAgIHNraXBCdWZmZXIoZnJhbWVF
bmQgLSBtX2J1ZmZlci5kYXRhKCkpOwogICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVC
aW5hcnlEYXRhKGJpbmFyeURhdGEucmVsZWFzZSgpKTsKQEAgLTY3Niw3ICs2NzQsNyBAQCBib29s
IFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmVucXVldWVUZXh0RnJhbWUoY29uc3QgQ1N0cmluZyYgc3RyaW5nKQogewogICAgIEFTU0VSVCht
X291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVldWVPcGVuKTsKLSAg
ICBPd25QdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gYWRvcHRQdHIobmV3IFF1ZXVlZEZyYW1lKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gc3RkOjptYWtlX3VuaXF1
ZTxRdWV1ZWRGcmFtZT4oKTsKICAgICBmcmFtZS0+b3BDb2RlID0gV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZVRleHQ7CiAgICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZVN0cmluZzsK
ICAgICBmcmFtZS0+c3RyaW5nRGF0YSA9IHN0cmluZzsKQEAgLTY4Niw3ICs2ODQsNyBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmVucXVldWVUZXh0RnJhbWUoY29uc3QgQ1N0cmluZyYgc3RyaW5n
KQogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjplbnF1ZXVlUmF3RnJhbWUoV2ViU29ja2V0RnJhbWU6
Ok9wQ29kZSBvcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoKQogewog
ICAgIEFTU0VSVChtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9PSBPdXRnb2luZ0ZyYW1lUXVl
dWVPcGVuKTsKLSAgICBPd25QdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gYWRvcHRQdHIobmV3IFF1
ZXVlZEZyYW1lKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gc3Rk
OjptYWtlX3VuaXF1ZTxRdWV1ZWRGcmFtZT4oKTsKICAgICBmcmFtZS0+b3BDb2RlID0gb3BDb2Rl
OwogICAgIGZyYW1lLT5mcmFtZVR5cGUgPSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I7CiAgICAgZnJh
bWUtPnZlY3RvckRhdGEucmVzaXplKGRhdGFMZW5ndGgpOwpAQCAtNjk4LDcgKzY5Niw3IEBAIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZW5xdWV1ZVJhd0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENv
ZGUgb3BDb2RlLCBjb25zdCBjaGFyCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmVucXVldWVCbG9i
RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUsIEJsb2ImIGJsb2IpCiB7CiAgICAg
QVNTRVJUKG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3RhdHVzID09IE91dGdvaW5nRnJhbWVRdWV1ZU9w
ZW4pOwotICAgIE93blB0cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBhZG9wdFB0cihuZXcgUXVldWVk
RnJhbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWV1ZWRGcmFtZT4gZnJhbWUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFF1ZXVlZEZyYW1lPigpOwogICAgIGZyYW1lLT5vcENvZGUgPSBvcENvZGU7CiAg
ICAgZnJhbWUtPmZyYW1lVHlwZSA9IFF1ZXVlZEZyYW1lVHlwZUJsb2I7CiAgICAgZnJhbWUtPmJs
b2JEYXRhID0gJmJsb2I7CkBAIC03MTEsNyArNzA5LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2hp
bGUgKCFtX291dGdvaW5nRnJhbWVRdWV1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgT3duUHRyPFF1
ZXVlZEZyYW1lPiBmcmFtZSA9IG1fb3V0Z29pbmdGcmFtZVF1ZXVlLnRha2VGaXJzdCgpOworICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVldWVkRnJhbWU+IGZyYW1lID0gbV9vdXRnb2luZ0ZyYW1l
UXVldWUudGFrZUZpcnN0KCk7CiAgICAgICAgIHN3aXRjaCAoZnJhbWUtPmZyYW1lVHlwZSkgewog
ICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlwZVN0cmluZzogewogICAgICAgICAgICAgaWYgKCFz
ZW5kRnJhbWUoZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnN0cmluZ0RhdGEuZGF0YSgpLCBmcmFtZS0+
c3RyaW5nRGF0YS5sZW5ndGgoKSkpCkBAIC03MzAsNyArNzI4LDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgIGNhc2UgQmxv
YkxvYWRlck5vdFN0YXJ0ZWQ6CiAgICAgICAgICAgICAgICAgcmVmKCk7IC8vIFdpbGwgYmUgZGVy
ZWZlZCBhZnRlciBkaWRGaW5pc2hMb2FkaW5nKCkgb3IgZGlkRmFpbCgpLgogICAgICAgICAgICAg
ICAgIEFTU0VSVCghbV9ibG9iTG9hZGVyKTsKLSAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXIg
PSBhZG9wdFB0cihuZXcgRmlsZVJlYWRlckxvYWRlcihGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNB
cnJheUJ1ZmZlciwgdGhpcykpOworICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlciA9IHN0ZDo6
bWFrZV91bmlxdWU8RmlsZVJlYWRlckxvYWRlcj4oRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQXJy
YXlCdWZmZXIsIHRoaXMpOwogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJs
b2JMb2FkZXJTdGFydGVkOwogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlci0+c3RhcnQobV9k
b2N1bWVudCwgZnJhbWUtPmJsb2JEYXRhLmdldCgpKTsKICAgICAgICAgICAgICAgICBtX291dGdv
aW5nRnJhbWVRdWV1ZS5wcmVwZW5kKGZyYW1lLnJlbGVhc2UoKSk7CkBAIC03ODksNyArNzg3LDcg
QEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZSBvcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEKICAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENv
ZGUsIHRydWUsIGZhbHNlLCB0cnVlLCBkYXRhLCBkYXRhTGVuZ3RoKTsKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LCBtX2lkZW50
aWZpZXIsIGZyYW1lKTsKIAotICAgIE93blB0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBkZWZsYXRl
UmVzdWx0ID0gbV9kZWZsYXRlRnJhbWVyLmRlZmxhdGUoZnJhbWUpOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBkZWZsYXRlUmVzdWx0ID0gbV9kZWZsYXRlRnJhbWVy
LmRlZmxhdGUoZnJhbWUpOwogICAgIGlmICghZGVmbGF0ZVJlc3VsdC0+c3VjY2VlZGVkKCkpIHsK
ICAgICAgICAgZmFpbChkZWZsYXRlUmVzdWx0LT5mYWlsdXJlUmVhc29uKCkpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA3MjE4NTA0YmMyMzQxZmM4ZmU1OTQxMWRmNDY1YTE5
NDlhYjdmOWE1Li5hM2UzZjMxNDU1NmViY2QzYmUxOWY2ZjI4NDc0ZGIyOWIwMTBkYmZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwcml2YXRlOgogCiAgICAgRG9jdW1lbnQqIG1fZG9j
dW1lbnQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogbV9jbGllbnQ7Ci0gICAgT3duUHRy
PFdlYlNvY2tldEhhbmRzaGFrZT4gbV9oYW5kc2hha2U7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YlNvY2tldEhhbmRzaGFrZT4gbV9oYW5kc2hha2U7CiAgICAgUmVmUHRyPFNvY2tldFN0cmVhbUhh
bmRsZT4gbV9oYW5kbGU7CiAgICAgVmVjdG9yPGNoYXI+IG1fYnVmZmVyOwogCkBAIC0yMTUsMTIg
KzIxNSwxMiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHNob3J0IG1fY2xvc2VFdmVudENvZGU7
CiAgICAgU3RyaW5nIG1fY2xvc2VFdmVudFJlYXNvbjsKIAotICAgIERlcXVlPE93blB0cjxRdWV1
ZWRGcmFtZT4+IG1fb3V0Z29pbmdGcmFtZVF1ZXVlOworICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0
cjxRdWV1ZWRGcmFtZT4+IG1fb3V0Z29pbmdGcmFtZVF1ZXVlOwogICAgIE91dGdvaW5nRnJhbWVR
dWV1ZVN0YXR1cyBtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1czsKIAogI2lmIEVOQUJMRShCTE9C
KQogICAgIC8vIEZJWE1FOiBMb2FkIHR3byBvciBtb3JlIEJsb2JzIHNpbXVsdGFuZW91c2x5IGZv
ciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0gICAgT3duUHRyPEZpbGVSZWFkZXJMb2FkZXI+IG1fYmxv
YkxvYWRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9ibG9iTG9h
ZGVyOwogICAgIEJsb2JMb2FkZXJTdGF0dXMgbV9ibG9iTG9hZGVyU3RhdHVzOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbENsaWVudC5oCmluZGV4IDQ2NjQxYzA2YzIxY2YwNWI4ODBlODg1YjQ5NzBhN2E0
YzE0MDA4YTkuLmRlODI1Yjc1NGU0MmUyYTRhZDIzYzg4ZmY3ZjFiY2JlNWVjZjZjYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxDbGllbnQuaApAQCAtMzQsNyArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VU
UykKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0
LDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIH5XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50KCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCkg
eyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
KSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFBhc3NPd25Q
dHI8VmVjdG9yPGNoYXI+PikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmlu
YXJ5RGF0YShzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+PikgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIC8qIGJ1ZmZlcmVkQW1vdW50
ICovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldERlZmxhdGVGcmFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCmluZGV4IGYzYWEzZjA4MTY5NTIxNmZjNjY2NWNk
NDRhNWNiZGVhZGYxN2RhNzcuLjM1NzYxNDNmOWNhMDRhNzEwNjAxZmFjZGU0MTBhOWY5MjY5ZmQ1
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXREZWZsYXRlRnJhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKQEAgLTQzLDEwICs0Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZSA6IHB1Ymxp
YyBXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3IgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlNvY2tldEV4dGVuc2lvbkRl
ZmxhdGVGcmFtZT4gY3JlYXRlKFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIGZyYW1lcikKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZy
YW1lKGZyYW1lcikpOwotICAgIH0KKyAgICBleHBsaWNpdCBXZWJTb2NrZXRFeHRlbnNpb25EZWZs
YXRlRnJhbWUoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciopOwogICAgIHZpcnR1YWwgfldlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZSgpIHsgfQogCiAgICAgdmlydHVhbCBTdHJpbmcgaGFuZHNo
YWtlU3RyaW5nKCkgb3ZlcnJpZGU7CkBAIC01NCw4ICs1MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFN0cmluZyBmYWlsdXJlUmVhc29uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9mYWlsdXJlUmVh
c29uOyB9CiAKIHByaXZhdGU6Ci0gICAgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKFdl
YlNvY2tldERlZmxhdGVGcmFtZXIqKTsKLQogICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIG1f
ZnJhbWVyOwogICAgIGJvb2wgbV9yZXNwb25zZVByb2Nlc3NlZDsKICAgICBTdHJpbmcgbV9mYWls
dXJlUmVhc29uOwpAQCAtMTYxLDkgKzE1Niw5IEBAIFdlYlNvY2tldERlZmxhdGVGcmFtZXI6Oldl
YlNvY2tldERlZmxhdGVGcmFtZXIoKQogewogfQogCi1QYXNzT3duUHRyPFdlYlNvY2tldEV4dGVu
c2lvblByb2Nlc3Nvcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6Y3JlYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yKCkKK3N0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IFdl
YlNvY2tldERlZmxhdGVGcmFtZXI6OmNyZWF0ZUV4dGVuc2lvblByb2Nlc3NvcigpCiB7Ci0gICAg
cmV0dXJuIFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6Y3JlYXRlKHRoaXMpOworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZT4o
dGhpcyk7CiB9CiAKIGJvb2wgV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6Y2FuRGVmbGF0ZSgpIGNv
bnN0CkBAIC0xNzgsMzMgKzE3MywzMyBAQCBib29sIFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmNh
bkRlZmxhdGUoKSBjb25zdAogI2lmIFVTRShaTElCKQogdm9pZCBXZWJTb2NrZXREZWZsYXRlRnJh
bWVyOjplbmFibGVEZWZsYXRlKGludCB3aW5kb3dCaXRzLCBXZWJTb2NrZXREZWZsYXRlcjo6Q29u
dGV4dFRha2VPdmVyTW9kZSBtb2RlKQogewotICAgIG1fZGVmbGF0ZXIgPSBXZWJTb2NrZXREZWZs
YXRlcjo6Y3JlYXRlKHdpbmRvd0JpdHMsIG1vZGUpOwotICAgIG1faW5mbGF0ZXIgPSBXZWJTb2Nr
ZXRJbmZsYXRlcjo6Y3JlYXRlKCk7CisgICAgbV9kZWZsYXRlciA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViU29ja2V0RGVmbGF0ZXI+KHdpbmRvd0JpdHMsIG1vZGUpOworICAgIG1faW5mbGF0ZXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdlYlNvY2tldEluZmxhdGVyPigpOwogICAgIGlmICghbV9kZWZsYXRl
ci0+aW5pdGlhbGl6ZSgpIHx8ICFtX2luZmxhdGVyLT5pbml0aWFsaXplKCkpIHsKLSAgICAgICAg
bV9kZWZsYXRlci5jbGVhcigpOwotICAgICAgICBtX2luZmxhdGVyLmNsZWFyKCk7CisgICAgICAg
IC8vIG1fZGVmbGF0ZXIuY2xlYXIoKTsKKyAgICAgICAgLy8gbV9pbmZsYXRlci5jbGVhcigpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5hYmxlZCA9IHRydWU7CiB9CiAjZW5kaWYK
IAotUGFzc093blB0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVy
OjpkZWZsYXRlKFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxEZWZsYXRl
UmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKFdlYlNvY2tldEZy
YW1lJiBmcmFtZSkKIHsKICNpZiBVU0UoWkxJQikKLSAgICBPd25QdHI8RGVmbGF0ZVJlc3VsdEhv
bGRlcj4gcmVzdWx0ID0gRGVmbGF0ZVJlc3VsdEhvbGRlcjo6Y3JlYXRlKHRoaXMpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiByZXN1bHQgPSBzdGQ6Om1ha2VfdW5p
cXVlPERlZmxhdGVSZXN1bHRIb2xkZXI+KHRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpIHx8ICFX
ZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1l
LnBheWxvYWRMZW5ndGgpCi0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgICAg
ICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5hZGRCeXRl
cyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9kZWZsYXRlci0+Zmlu
aXNoKCkpIHsKICAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUi
KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1vdmUocmVzdWx0KTsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSB0cnVlOwogICAgIGZy
YW1lLnBheWxvYWQgPSBtX2RlZmxhdGVyLT5kYXRhKCk7CiAgICAgZnJhbWUucGF5bG9hZExlbmd0
aCA9IG1fZGVmbGF0ZXItPnNpemUoKTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAg
ICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiAjZWxzZQotICAgIHJldHVybiBEZWZsYXRlUmVz
dWx0SG9sZGVyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RGVm
bGF0ZVJlc3VsdEhvbGRlcj4odGhpcyk7CiAjZW5kaWYKIH0KIApAQCAtMjE2LDMwICsyMTEsMzAg
QEAgdm9pZCBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpyZXNldERlZmxhdGVDb250ZXh0KCkKICNl
bmRpZgogfQogCi1QYXNzT3duUHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxh
dGVGcmFtZXI6OmluZmxhdGUoV2ViU29ja2V0RnJhbWUmIGZyYW1lKQorc3RkOjp1bmlxdWVfcHRy
PEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUoV2Vi
U29ja2V0RnJhbWUmIGZyYW1lKQogewotICAgIE93blB0cjxJbmZsYXRlUmVzdWx0SG9sZGVyPiBy
ZXN1bHQgPSBJbmZsYXRlUmVzdWx0SG9sZGVyOjpjcmVhdGUodGhpcyk7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5m
bGF0ZVJlc3VsdEhvbGRlcj4odGhpcyk7CiAgICAgaWYgKCFlbmFibGVkKCkgJiYgZnJhbWUuY29t
cHJlc3MpIHsKICAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBtdXN0IGJlIDAg
aWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiIpOwotICAgICAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwog
ICAgIH0KICNpZiBVU0UoWkxJQikKICAgICBpZiAoIWZyYW1lLmNvbXByZXNzKQotICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQp
OwogICAgIGlmICghV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShmcmFtZS5vcENv
ZGUpKSB7CiAgICAgICAgIHJlc3VsdC0+ZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVz
c2VkIGZyYW1lIik7Ci0gICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgICAgICBy
ZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiAgICAgfQogICAgIGlmICghbV9pbmZsYXRlci0+YWRk
Qnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkgfHwgIW1faW5mbGF0ZXIt
PmZpbmlzaCgpKSB7CiAgICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRlY29tcHJlc3Mg
ZnJhbWUiKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVy
biBzdGQ6Om1vdmUocmVzdWx0KTsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSBmYWxzZTsK
ICAgICBmcmFtZS5wYXlsb2FkID0gbV9pbmZsYXRlci0+ZGF0YSgpOwogICAgIGZyYW1lLnBheWxv
YWRMZW5ndGggPSBtX2luZmxhdGVyLT5zaXplKCk7Ci0gICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwogI2Vsc2UKLSAgICByZXR1cm4gcmVz
dWx0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dERlZmxhdGVGcmFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXREZWZsYXRlRnJhbWVyLmgKaW5kZXggZjMyMzJhZjcwZDAwZWU0OWQ0ZmYyMWY4NTMwM2E5
ODEyN2Q4YmViMC4uZTdlYWE2NjMwNDQxNmE1OTBiYTNiY2ZjY2I4YzIxY2I1ZGQ4YWE3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxh
dGVGcmFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0RGVmbGF0ZUZyYW1lci5oCkBAIC0zOCw4ICszOCw2IEBACiAjZW5kaWYKICNpbmNsdWRlICJX
ZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3IuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRGcmFtZS5o
IgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDExICs0Niw3IEBAIGNsYXNzIFdlYlNvY2tl
dERlZmxhdGVGcmFtZXI7CiBjbGFzcyBEZWZsYXRlUmVzdWx0SG9sZGVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxEZWZsYXRl
UmVzdWx0SG9sZGVyPiBjcmVhdGUoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogZnJhbWVyKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZWZsYXRlUmVzdWx0SG9sZGVyKGZyYW1l
cikpOwotICAgIH0KLQorICAgIGV4cGxpY2l0IERlZmxhdGVSZXN1bHRIb2xkZXIoV2ViU29ja2V0
RGVmbGF0ZUZyYW1lciopOwogICAgIH5EZWZsYXRlUmVzdWx0SG9sZGVyKCk7CiAKICAgICBib29s
IHN1Y2NlZWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2VlZGVkOyB9CkBAIC02MSw4ICs1NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiBmYWlsdXJlUmVhc29uKTsK
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEZWZsYXRlUmVzdWx0SG9sZGVyKFdlYlNvY2tldERl
ZmxhdGVGcmFtZXIqKTsKLQogICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIqIG1fZnJhbWVyOwog
ICAgIGJvb2wgbV9zdWNjZWVkZWQ7CiAgICAgU3RyaW5nIG1fZmFpbHVyZVJlYXNvbjsKQEAgLTcx
LDEwICs2Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBJbmZsYXRlUmVzdWx0SG9sZGVyIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJ
bmZsYXRlUmVzdWx0SG9sZGVyPiBjcmVhdGUoV2ViU29ja2V0RGVmbGF0ZUZyYW1lciogZnJhbWVy
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbmZsYXRlUmVzdWx0SG9sZGVy
KGZyYW1lcikpOwotICAgIH0KKyAgICBleHBsaWNpdCBJbmZsYXRlUmVzdWx0SG9sZGVyKFdlYlNv
Y2tldERlZmxhdGVGcmFtZXIqKTsKIAogICAgIH5JbmZsYXRlUmVzdWx0SG9sZGVyKCk7CiAKQEAg
LTg0LDggKzczLDYgQEAgcHVibGljOgogICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIGZhaWx1
cmVSZWFzb24pOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEluZmxhdGVSZXN1bHRIb2xkZXIo
V2ViU29ja2V0RGVmbGF0ZUZyYW1lciopOwotCiAgICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciog
bV9mcmFtZXI7CiAgICAgYm9vbCBtX3N1Y2NlZWRlZDsKICAgICBTdHJpbmcgbV9mYWlsdXJlUmVh
c29uOwpAQCAtOTUsMTQgKzgyLDE0IEBAIGNsYXNzIFdlYlNvY2tldERlZmxhdGVGcmFtZXIgewog
cHVibGljOgogICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIoKTsKIAotICAgIFBhc3NPd25QdHI8
V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBjcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBjcmVhdGVF
eHRlbnNpb25Qcm9jZXNzb3IoKTsKIAogICAgIGJvb2wgY2FuRGVmbGF0ZSgpIGNvbnN0OwogICAg
IGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogCi0gICAgUGFzc093
blB0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBkZWZsYXRlKFdlYlNvY2tldEZyYW1lJik7CisgICAg
c3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IGRlZmxhdGUoV2ViU29ja2V0RnJh
bWUmKTsKICAgICB2b2lkIHJlc2V0RGVmbGF0ZUNvbnRleHQoKTsKLSAgICBQYXNzT3duUHRyPElu
ZmxhdGVSZXN1bHRIb2xkZXI+IGluZmxhdGUoV2ViU29ja2V0RnJhbWUmKTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gaW5mbGF0ZShXZWJTb2NrZXRGcmFtZSYpOwog
ICAgIHZvaWQgcmVzZXRJbmZsYXRlQ29udGV4dCgpOwogCiAgICAgdm9pZCBkaWRGYWlsKCk7CkBA
IC0xMTQsOCArMTAxLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlZDsK
ICNpZiBVU0UoWkxJQikKLSAgICBPd25QdHI8V2ViU29ja2V0RGVmbGF0ZXI+IG1fZGVmbGF0ZXI7
Ci0gICAgT3duUHRyPFdlYlNvY2tldEluZmxhdGVyPiBtX2luZmxhdGVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJTb2NrZXREZWZsYXRlcj4gbV9kZWZsYXRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViU29ja2V0SW5mbGF0ZXI+IG1faW5mbGF0ZXI7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIu
Y3BwCmluZGV4IGFlZjRiMWU5ZDMzMmIwMDdjYzU5MWExNzVmMTEzYjkwZDgzODFhYTcuLjQ5N2Iy
OTNhNjczMDIzNjE5YmE5NzY2MDA0MWUyYzE4MjdmOWZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcApAQCAt
NDcsMTggKzQ3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBpbnQgZGVm
YXVsdE1lbUxldmVsID0gMTsKIHN0YXRpYyBjb25zdCBzaXplX3QgYnVmZmVySW5jcmVtZW50VW5p
dCA9IDQwOTY7CiAKLVBhc3NPd25QdHI8V2ViU29ja2V0RGVmbGF0ZXI+IFdlYlNvY2tldERlZmxh
dGVyOjpjcmVhdGUoaW50IHdpbmRvd0JpdHMsIENvbnRleHRUYWtlT3Zlck1vZGUgY29udGV4dFRh
a2VPdmVyTW9kZSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlNvY2tldERlZmxhdGVy
KHdpbmRvd0JpdHMsIGNvbnRleHRUYWtlT3Zlck1vZGUpKTsKLX0KLQogV2ViU29ja2V0RGVmbGF0
ZXI6OldlYlNvY2tldERlZmxhdGVyKGludCB3aW5kb3dCaXRzLCBDb250ZXh0VGFrZU92ZXJNb2Rl
IGNvbnRleHRUYWtlT3Zlck1vZGUpCiAgICAgOiBtX3dpbmRvd0JpdHMod2luZG93Qml0cykKICAg
ICAsIG1fY29udGV4dFRha2VPdmVyTW9kZShjb250ZXh0VGFrZU92ZXJNb2RlKQogewogICAgIEFT
U0VSVChtX3dpbmRvd0JpdHMgPj0gOCk7CiAgICAgQVNTRVJUKG1fd2luZG93Qml0cyA8PSAxNSk7
Ci0gICAgbV9zdHJlYW0gPSBhZG9wdFB0cihuZXcgel9zdHJlYW0pOworICAgIG1fc3RyZWFtID0g
c3RkOjptYWtlX3VuaXF1ZTx6X3N0cmVhbT4oKTsKICAgICBtZW1zZXQobV9zdHJlYW0uZ2V0KCks
IDAsIHNpemVvZih6X3N0cmVhbSkpOwogfQogCkBAIC0xMjcsMTUgKzEyMiwxMCBAQCB2b2lkIFdl
YlNvY2tldERlZmxhdGVyOjpyZXNldCgpCiAgICAgICAgIGRlZmxhdGVSZXNldChtX3N0cmVhbS5n
ZXQoKSk7CiB9CiAKLVBhc3NPd25QdHI8V2ViU29ja2V0SW5mbGF0ZXI+IFdlYlNvY2tldEluZmxh
dGVyOjpjcmVhdGUoaW50IHdpbmRvd0JpdHMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
ZWJTb2NrZXRJbmZsYXRlcih3aW5kb3dCaXRzKSk7Ci19Ci0KIFdlYlNvY2tldEluZmxhdGVyOjpX
ZWJTb2NrZXRJbmZsYXRlcihpbnQgd2luZG93Qml0cykKICAgICA6IG1fd2luZG93Qml0cyh3aW5k
b3dCaXRzKQogewotICAgIG1fc3RyZWFtID0gYWRvcHRQdHIobmV3IHpfc3RyZWFtKTsKKyAgICBt
X3N0cmVhbSA9IHN0ZDo6bWFrZV91bmlxdWU8el9zdHJlYW0+KCk7CiAgICAgbWVtc2V0KG1fc3Ry
ZWFtLmdldCgpLCAwLCBzaXplb2Yoel9zdHJlYW0pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaAppbmRleCBmNzNl
YjIwZDM5NDAzY2U0YmE1YTMxZTkzZDM2YjZlM2Q4ODcwZGI0Li41MjcyOTI2OWM2MDZmNGVkNjIz
ZGNjODQ2M2Y0MmI1ZmRlOTZmOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaApAQCAtMzQsOCArMzQsNiBAQAogI2lm
IEVOQUJMRShXRUJfU09DS0VUUykKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogc3RydWN0IHpfc3RyZWFtX3M7CkBAIC01MCw3ICs0OCw3IEBA
IHB1YmxpYzoKICAgICAgICAgRG9Ob3RUYWtlT3ZlckNvbnRleHQsCiAgICAgICAgIFRha2VPdmVy
Q29udGV4dAogICAgIH07Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViU29ja2V0RGVmbGF0ZXI+
IGNyZWF0ZShpbnQgd2luZG93Qml0cywgQ29udGV4dFRha2VPdmVyTW9kZSA9IFRha2VPdmVyQ29u
dGV4dCk7CisgICAgV2ViU29ja2V0RGVmbGF0ZXIoaW50IHdpbmRvd0JpdHMsIENvbnRleHRUYWtl
T3Zlck1vZGUgPSBUYWtlT3ZlckNvbnRleHQpOwogCiAgICAgfldlYlNvY2tldERlZmxhdGVyKCk7
CiAKQEAgLTYyLDE5ICs2MCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2
YXRlOgotICAgIFdlYlNvY2tldERlZmxhdGVyKGludCB3aW5kb3dCaXRzLCBDb250ZXh0VGFrZU92
ZXJNb2RlKTsKLQogICAgIGludCBtX3dpbmRvd0JpdHM7CiAgICAgQ29udGV4dFRha2VPdmVyTW9k
ZSBtX2NvbnRleHRUYWtlT3Zlck1vZGU7CiAgICAgVmVjdG9yPGNoYXI+IG1fYnVmZmVyOwotICAg
IE93blB0cjx6X3N0cmVhbT4gbV9zdHJlYW07CisgICAgc3RkOjp1bmlxdWVfcHRyPHpfc3RyZWFt
PiBtX3N0cmVhbTsKIH07CiAKIGNsYXNzIFdlYlNvY2tldEluZmxhdGVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJTb2Nr
ZXRJbmZsYXRlcj4gY3JlYXRlKGludCB3aW5kb3dCaXRzID0gMTUpOwotCisgICAgZXhwbGljaXQg
V2ViU29ja2V0SW5mbGF0ZXIoaW50IHdpbmRvd0JpdHMgPSAxNSk7CiAgICAgfldlYlNvY2tldElu
ZmxhdGVyKCk7CiAKICAgICBib29sIGluaXRpYWxpemUoKTsKQEAgLTg1LDExICs4MCw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViU29j
a2V0SW5mbGF0ZXIoaW50IHdpbmRvd0JpdHMpOwotCiAgICAgaW50IG1fd2luZG93Qml0czsKICAg
ICBWZWN0b3I8Y2hhcj4gbV9idWZmZXI7Ci0gICAgT3duUHRyPHpfc3RyZWFtPiBtX3N0cmVhbTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8el9zdHJlYW0+IG1fc3RyZWFtOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmluZGV4IDA2YjcxOTQ2NWRjZjkwYzIwNTE5MzBk
YWVjODM4MjFiZWZiNzA0MGMuLmYyYjRiOGYzMTk0YWVhYTY4OTEwMmQxNTdhNzE0OTJhMDMyMzVj
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgdm9pZCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpyZXNldCgpCiAgICAgbV9wcm9j
ZXNzb3JzLmNsZWFyKCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6
YWRkUHJvY2Vzc29yKFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBwcm9j
ZXNzb3IpCit2b2lkIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmFkZFByb2Nlc3Nvcihz
dGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPiBwcm9jZXNzb3IpCiB7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb2Nlc3NvcnMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgaWYgKG1fcHJvY2Vzc29yc1tpXS0+ZXh0ZW5zaW9uVG9rZW4oKSA9PSBwcm9jZXNz
b3ItPmV4dGVuc2lvblRva2VuKCkpCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlcjo6YWRkUHJvY2Vzc29yKFBhc3NPd25QdHI8V2ViU29ja2V0RXh0ZW5z
aW9uUHJvCiAgICAgQVNTRVJUKHByb2Nlc3Nvci0+aGFuZHNoYWtlU3RyaW5nKCkubGVuZ3RoKCkp
OwogICAgIEFTU0VSVCghcHJvY2Vzc29yLT5oYW5kc2hha2VTdHJpbmcoKS5jb250YWlucygnXG4n
KSk7CiAgICAgQVNTRVJUKCFwcm9jZXNzb3ItPmhhbmRzaGFrZVN0cmluZygpLmNvbnRhaW5zKHN0
YXRpY19jYXN0PFVDaGFyPignXDAnKSkpOwotICAgIG1fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vz
c29yKTsKKyAgICBtX3Byb2Nlc3NvcnMuYXBwZW5kKHN0ZDo6bW92ZShwcm9jZXNzb3IpKTsKIH0K
IAogY29uc3QgU3RyaW5nIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OmNyZWF0ZUhlYWRl
clZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5oCmluZGV4IDI0MzAw
MTdkNWQzNTE5MDAzOTY3YTYyZWI3MzE0NjU1ZjU2NmZkMGYuLjFiYjk3MjdjZjkxMDdkNzZkZmE2
NmZjZDMzMmMzYmI1NTljNTU5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuaApA
QCAtMzQsOCArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIAogI2luY2x1ZGUgIldl
YlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvci5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC00Nyw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyKCkgeyB9CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBhZGRQcm9jZXNz
b3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+KTsKKyAgICB2b2lkIGFk
ZFByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9uUHJvY2Vzc29yPik7
CiAgICAgY29uc3QgU3RyaW5nIGNyZWF0ZUhlYWRlclZhbHVlKCkgY29uc3Q7CiAKICAgICBib29s
IHByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmKTsKQEAgLTU4LDcgKzU2LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFwcGVuZEFjY2VwdGVkRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0
ZW5zaW9uVG9rZW4sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRlbnNpb25QYXJhbWV0ZXJz
KTsKICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOwogCi0gICAgVmVjdG9yPE93
blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+PiBtX3Byb2Nlc3NvcnM7CisgICAgVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+PiBtX3Byb2Nl
c3NvcnM7CiAgICAgU3RyaW5nQnVpbGRlciBtX2FjY2VwdGVkRXh0ZW5zaW9uc0J1aWxkZXI7CiAg
ICAgU3RyaW5nIG1fZmFpbHVyZVJlYXNvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IGRiMmQ5
OWFmNTQ0ZjI3OGIyMjBhYjYxZWJhNDA2MTJhYWMwMjRlZGYuLjIwMDg4NjcxYTdmMGRjOWQwNTIy
ZDE0NTFiZjA5MmMzNDM3YmQ3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0zNzUsOSArMzc1LDkg
QEAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJIYW5k
c2hha2VSZXNwb25zZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VydmVySGFuZHNoYWtlUmVzcG9u
c2U7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjphZGRFeHRlbnNpb25Qcm9jZXNzb3Io
UGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+IHByb2Nlc3NvcikKK3ZvaWQg
V2ViU29ja2V0SGFuZHNoYWtlOjphZGRFeHRlbnNpb25Qcm9jZXNzb3Ioc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldEV4dGVuc2lvblByb2Nlc3Nvcj4gcHJvY2Vzc29yKQogewotICAgIG1fZXh0ZW5z
aW9uRGlzcGF0Y2hlci5hZGRQcm9jZXNzb3IocHJvY2Vzc29yKTsKKyAgICBtX2V4dGVuc2lvbkRp
c3BhdGNoZXIuYWRkUHJvY2Vzc29yKHN0ZDo6bW92ZShwcm9jZXNzb3IpKTsKIH0KIAogVVJMIFdl
YlNvY2tldEhhbmRzaGFrZTo6aHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmgKaW5kZXggY2NhYjA0NTAxNDEzNDc5Y2Q2YzZjYWE0MDdhZGI2ZmJhY2Yz
ZDZmNC4uMGQ1OTAwYjg4YTc5ODc3MmViMWExMjA5Mjk3M2ZlZGJhZDg0NTc1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuaApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNp
bmNsdWRlICJXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0RXh0ZW5zaW9uUHJvY2Vzc29yLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODYsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBzZXJ2
ZXJIYW5kc2hha2VSZXNwb25zZSgpIGNvbnN0OwogCi0gICAgdm9pZCBhZGRFeHRlbnNpb25Qcm9j
ZXNzb3IoUGFzc093blB0cjxXZWJTb2NrZXRFeHRlbnNpb25Qcm9jZXNzb3I+KTsKKyAgICB2b2lk
IGFkZEV4dGVuc2lvblByb2Nlc3NvcihzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0RXh0ZW5zaW9u
UHJvY2Vzc29yPik7CiAKICAgICBzdGF0aWMgU3RyaW5nIGdldEV4cGVjdGVkV2ViU29ja2V0QWNj
ZXB0KGNvbnN0IFN0cmluZyYgc2VjV2ViU29ja2V0S2V5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMGJhNGZmZDk3MTcxOTZkYTRhMTg5Zjk3MjQ2
OWU0ZTNlYTI4M2RiOS4uNDM1YzViYzFhOTkwYzY1YWUxYzBhYmRhNGY2MWNkMTc2NDc3YmFiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yODMsMTYg
KzI4MywxNiBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpk
aWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lcwogICAgIG1fbG9hZGVyUHJveHkucG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtl
ckdsb2JhbFNjb3BlRGlkUmVjZWl2ZU1lc3NhZ2UsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbWVz
c2FnZSksIG1fdGFza01vZGUpOwogfQogCi1zdGF0aWMgdm9pZCB3b3JrZXJHbG9iYWxTY29wZURp
ZFJlY2VpdmVCaW5hcnlEYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGll
bnRXcmFwcGVyLCBQYXNzT3duUHRyPFZlY3RvcjxjaGFyPj4gYmluYXJ5RGF0YSkKK3N0YXRpYyB2
b2lkIHdvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2ZUJpbmFyeURhdGEoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8
Y2hhcj4+IGJpbmFyeURhdGEpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0
LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZFJl
Y2VpdmVCaW5hcnlEYXRhKGJpbmFyeURhdGEpOworICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKHN0ZDo6bW92ZShiaW5hcnlEYXRhKSk7CiB9CiAKLXZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVCaW5hcnlEYXRh
KFBhc3NPd25QdHI8VmVjdG9yPGNoYXI+PiBiaW5hcnlEYXRhKQordm9pZCBXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoc3RkOjp1bmlx
dWVfcHRyPFZlY3RvcjxjaGFyPj4gYmluYXJ5RGF0YSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxT
Y29wZShjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2ZUJpbmFy
eURhdGEsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgYmluYXJ5RGF0YSksIG1fdGFza01vZGUpOwor
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShjcmVh
dGVDYWxsYmFja1Rhc2soJndvcmtlckdsb2JhbFNjb3BlRGlkUmVjZWl2ZUJpbmFyeURhdGEsIG1f
d29ya2VyQ2xpZW50V3JhcHBlciwgc3RkOjptb3ZlKGJpbmFyeURhdGEpKSwgbV90YXNrTW9kZSk7
CiB9CiAKIHN0YXRpYyB2b2lkIHdvcmtlckdsb2JhbFNjb3BlRGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IHdvcmtlckNsaWVudFdyYXBwZXIsIHVuc2ln
bmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFpblRocmVhZFNlbmQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY28KICAgICBwZWVyLT5zZW5kKG1lc3NhZ2UpOwogfQogCi12b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjptYWluVGhyZWFkU2VuZEFycmF5QnVmZmVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBlZXIqIHBlZXIsIFBhc3NPd25QdHI8VmVjdG9y
PGNoYXI+PiBkYXRhKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6bWFp
blRocmVhZFNlbmRBcnJheUJ1ZmZlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
ZWVyKiBwZWVyLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+PiBkYXRhKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0
LT5pc0RvY3VtZW50KCkpOwpAQCAtNDYxLDcgKzQ2MSw3IEBAIFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpTZW5kUmVzdWx0IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlk
Z2U6CiAgICAgaWYgKCFtX3dvcmtlckNsaWVudFdyYXBwZXIgfHwgIW1fcGVlcikKICAgICAgICAg
cmV0dXJuIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kRmFpbDsKICAgICAvLyBBcnJh
eUJ1ZmZlciBpc24ndCB0aHJlYWQtc2FmZSwgaGVuY2UgdGhlIGNvbnRlbnQgb2YgQXJyYXlCdWZm
ZXIgaXMgY29waWVkIGludG8gVmVjdG9yPGNoYXI+LgotICAgIE93blB0cjxWZWN0b3I8Y2hhcj4+
IGRhdGEgPSBhZG9wdFB0cihuZXcgVmVjdG9yPGNoYXI+KGJ5dGVMZW5ndGgpKTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+PiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8
Y2hhcj4+KGJ5dGVMZW5ndGgpOwogICAgIGlmIChiaW5hcnlEYXRhLmJ5dGVMZW5ndGgoKSkKICAg
ICAgICAgbWVtY3B5KGRhdGEtPmRhdGEoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGJpbmFy
eURhdGEuZGF0YSgpKSArIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpOwogICAgIHNldE1ldGhvZE5v
dENvbXBsZXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRl
eCAyM2VhNGI5MGI0YzMyZjA4NTE0OGViYzY3MTBjYzVkN2Y0MTU0NjlkLi43M2I2YmI3YzBmNTVj
MDVhZTA0MGIxZmIyY2IzZmRkMjljYTg4YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gV2Vi
U29ja2V0Q2hhbm5lbENsaWVudCBmdW5jdGlvbnMuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRD
b25uZWN0KCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4+KSBvdmVycmlkZTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKHN0ZDo6dW5pcXVlX3B0
cjxWZWN0b3I8Y2hhcj4+KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0
ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpIG92ZXJyaWRlOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgb3ZlcnJpZGU7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1
ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQg
c2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIG92ZXJyaWRlOwpAQCAtMTcxLDcgKzE3
MSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkQ29ubmVjdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wpOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRTZW5kKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQZWVyKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKLSAgICBzdGF0aWMgdm9pZCBt
YWluVGhyZWFkU2VuZEFycmF5QnVmZmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKiwg
UGFzc093blB0cjxWZWN0b3I8Y2hhcj4+KTsKKyAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkU2Vu
ZEFycmF5QnVmZmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQZWVyKiwgc3RkOjp1bmlxdWVf
cHRyPFZlY3RvcjxjaGFyPj4pOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRTZW5kQmxvYihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciosIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dHlwZSwgbG9uZyBsb25nIHNpemUpOwogICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRCdWZmZXJl
ZEFtb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciopOwogICAgIHN0YXRpYyB2b2lk
IG1haW5UaHJlYWRDbG9zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGVlciosIGludCBjb2Rl
LCBjb25zdCBTdHJpbmcmIHJlYXNvbik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>