<?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>153063</bug_id>
          
          <creation_ts>2016-01-13 04:21:32 -0800</creation_ts>
          <short_desc>WebRTC: Add support for RTCRtpSender.replaceTrack()</short_desc>
          <delta_ts>2016-01-13 11:22:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143211</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1155060</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-01-13 04:21:32 -0800</bug_when>
    <thetext>RTCRtpSender.replaceTrack() lets the script replace the currently sent track without negotiation [1].

[1] http://w3c.github.io/webrtc-pc/#widl-RTCRtpSender-replaceTrack-Promise-void--MediaStreamTrack-withTrack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155068</commentid>
    <comment_count>1</comment_count>
      <attachid>268865</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-01-13 06:17:24 -0800</bug_when>
    <thetext>Created attachment 268865
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155069</commentid>
    <comment_count>2</comment_count>
      <attachid>268866</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-01-13 06:21:53 -0800</bug_when>
    <thetext>Created attachment 268866
Updated patch

Removed a whitespace line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155144</commentid>
    <comment_count>3</comment_count>
      <attachid>268866</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-13 11:22:42 -0800</bug_when>
    <thetext>Comment on attachment 268866
Updated patch

Clearing flags on attachment: 268866

Committed r194968: &lt;http://trac.webkit.org/changeset/194968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155145</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-13 11:22:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268865</attachid>
            <date>2016-01-13 06:17:24 -0800</date>
            <delta_ts>2016-01-13 06:21:53 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>sender-replace-track_0.patch</filename>
            <type>text/plain</type>
            <size>16941</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMTUxMGI2Li5iZWEyMjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDEt
MTMgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIFJUQ1J0cFNlbmRlci5yZXBsYWNlVHJhY2soKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMDYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IGZvciBSVENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkuIEEgc3VjY2Vzc2Z1bCBjYWxsIGlz
IHN0aWxsCisgICAgICAgIHJlamVjdGVkIChwcm9taXNlKSB1bnRpbCBwcm9wZXIgc3VwcG9ydCBp
cyBhdmFpbGFibGUgaW4gdGhlIFdlYlJUQyBiYWNrZW5kLgorCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0bWw6
IEFkZGVkLgorCiAyMDE2LTAxLTA3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIEluZGV4ZWREQiB0ZXN0IGdhcmRlbmluZy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRl
ci1yZXBsYWNlVHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI3NjY5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjMgQEAKK1Rlc3QgYmFzaWMgYmVoYXZpb3Igb2YgUlRDUnRwU2VuZGVyLnJlcGxhY2VUcmFjaygp
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBjLmdldFNlbmRlcnMoKS5s
ZW5ndGggaXMgMAorUEFTUyBzZW5kZXIgPSBwYy5hZGRUcmFjayhhdWRpb1RyYWNrLCBzdHJlYW0p
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZW5kZXIgaXMgYW4gaW5zdGFuY2Ugb2Yg
UlRDUnRwU2VuZGVyCitQQVNTIHNlbmRlci50cmFjayBpcyBhdWRpb1RyYWNrCitQQVNTIHByb21p
c2Ugc2VuZGVyLnJlcGxhY2VUcmFjaygpIHJlamVjdGVkIHdpdGggVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cworUEFTUyBwcm9taXNlIHNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCkgcmVq
ZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcHJvbWlzZSBzZW5kZXIucmVw
bGFjZVRyYWNrKHt9KSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dpdGhU
cmFjaycpIHRvIFJUQ1J0cFNlbmRlci5yZXBsYWNlVHJhY2sgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBNZWRpYVN0cmVhbVRyYWNrCitUZXN0IG1pc21hdGNoaW5nIHRyYWNrIGtpbmQKK1BBU1MgcHJv
bWlzZSBzZW5kZXIucmVwbGFjZVRyYWNrKHZpZGVvVHJhY2spIHJlamVjdGVkIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yCitUaGlzIGlzIGEgdmFsaWQgY2FsbCBidXQgd2lsbCBiZSByZWplY3Rl
ZCB1bnRpbCB0aGUgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGltcGxlbWVudGF0aW9uIGhhcyBwcm9w
ZXIgc3VwcG9ydAorUEFTUyBwcm9taXNlIHNlbmRlci5yZXBsYWNlVHJhY2soYXVkaW9UcmFjazIp
IHJlamVjdGVkIHdpdGggW29iamVjdCBET01FcnJvcl0KK1N0b3Agc2VuZGVyLCBhbmQgdHJ5IHJl
cGxhY2luZyB0aGUgdHJhY2sKK1BBU1MgcHJvbWlzZSBzZW5kZXIucmVwbGFjZVRyYWNrKGF1ZGlv
VHJhY2syKSByZWplY3RlZCB3aXRoIFtvYmplY3QgRE9NRXJyb3JdCitFbmQgb2YgcHJvbWlzZSBj
aGFpbgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJl
cGxhY2VUcmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENSdHBTZW5k
ZXItcmVwbGFjZVRyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzAxM2NjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgdmFyIHN0cmVhbTsKKyAgICAgICAgICAgIHZhciBhdWRpb1RyYWNrOworICAgICAg
ICAgICAgdmFyIGF1ZGlvVHJhY2syOworICAgICAgICAgICAgdmFyIHZpZGVvVHJhY2s7CisgICAg
ICAgICAgICB2YXIgc2VuZGVyOworCisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBiYXNp
YyBiZWhhdmlvciBvZiBSVENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkiKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1
bm5lciIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB2YXIgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNl
cnZlcnM6W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKKworICAgICAgICAgICAgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyAiYXVkaW8iOiB0cnVlLCAidmlkZW8iOiB0cnVl
IH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocykgeworICAgICAgICAgICAgICAgIHN0
cmVhbSA9IHM7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpWzBdOworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXTsKKworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2syID0gYXVkaW9UcmFjay5j
bG9uZSgpOworCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInBjLmdldFNlbmRlcnMoKS5sZW5n
dGgiLCAiMCIpOworCisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coInNlbmRlciA9IHBj
LmFkZFRyYWNrKGF1ZGlvVHJhY2ssIHN0cmVhbSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZVR5cGUoInNlbmRlciIsICJSVENSdHBTZW5kZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgic2VuZGVyLnRyYWNrIiwgImF1ZGlvVHJhY2siKTsKKworICAgICAgICAgICAgICAgIHByb21p
c2VTaG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2soKSIpCisgICAgICAgICAgICAgICAg
LmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2VT
aG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCkiKTsKKyAgICAgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlU2hvdWxkUmVqZWN0KCJzZW5kZXIucmVwbGFjZVRyYWNrKHt9
KSIpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgbWlzbWF0Y2hpbmcgdHJhY2sg
a2luZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVNob3VsZFJlamVjdCgi
c2VuZGVyLnJlcGxhY2VUcmFjayh2aWRlb1RyYWNrKSIpOworICAgICAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ZGVidWcoIlRoaXMgaXMgYSB2YWxpZCBjYWxsIGJ1dCB3aWxsIGJlIHJlamVjdGVkIHVudGlsIHRo
ZSBQZWVyQ29ubmVjdGlvbkJhY2tlbmQgaW1wbGVtZW50YXRpb24gaGFzIHByb3BlciBzdXBwb3J0
Iik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlU2hvdWxkUmVqZWN0KCJzZW5k
ZXIucmVwbGFjZVRyYWNrKGF1ZGlvVHJhY2syKSIpOworICAgICAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVi
dWcoIlN0b3Agc2VuZGVyLCBhbmQgdHJ5IHJlcGxhY2luZyB0aGUgdHJhY2siKTsKKyAgICAgICAg
ICAgICAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHByb21pc2VTaG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2soYXVkaW9UcmFj
azIpIik7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiRW5kIG9mIHByb21pc2UgY2hhaW4i
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikg
eworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImdldFVzZXJNZWRpYSBlcnJvcjogIiArIGVy
cm9yKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBwcm9taXNlU2hvdWxkUmVqZWN0KGV4cHIpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgcDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
ICAgICBwID0gZXZhbChleHByKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2YWx1YXRpbmcgIiArIGV4cHIgKyAiIHRocmV3
IGV4Y2VwdGlvbiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
amVjdCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghKHAgaW5z
dGFuY2VvZiBQcm9taXNlKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV4cHIg
KyAiIGRvZXMgbm90IGV2YWx1YXRlIHRvIGEgcHJvbWlzZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgcC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgicHJvbWlzZSAiICsgZXhwciArICIgZnVsZmlsbGVkIHVuZXhwZWN0ZWRseS4iKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHAuY2F0Y2goZnVuY3Rpb24gKHJl
YXNvbikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwcm9taXNlICIgKyBleHBy
ICsgIiByZWplY3RlZCB3aXRoICIgKyByZWFzb24pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU4MWM1MDcuLjVjOWU3NGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAxNi0wMS0xMyAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlz
dEBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgV2ViUlRDOiBBZGQgc3VwcG9ydCBmb3IgUlRDUnRw
U2VuZGVyLnJlcGxhY2VUcmFjaygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTMwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGhlIEFQSSBhbmQgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBS
VENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkuIFRoZSBwbGF0Zm9ybSBpcworICAgICAgICByZWFj
aGVkIHRocm91Z2ggdGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdCB0aGF0IGNyZWF0ZWQgdGhl
IFJUQ1J0cFNlbmRlciB2aWEgYSBjbGllbnQKKyAgICAgICAgaW50ZXJmYWNlLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odG1sCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJl
cGxhY2VUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZW1vdmVUcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDUnRwU2VuZGVyOjpSVENSdHBTZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRw
U2VuZGVyOjpyZXBsYWNlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2VuZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXJDbGllbnQ6On5SVENS
dHBTZW5kZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2VuZGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2VuZGVyOjp0cmFja0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1J0cFNlbmRlcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTZW5kZXIuaWRsOgorCiAyMDE2LTAxLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBjb21wdXRlTGluZUJvdW5kc0ZvclRleHQgZnJvbSBH
cmFwaGljc0NvbnRleHQqIHRvIEdyYXBoaWNzQ29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uLmNwcAppbmRleCBlYTI1ZWIyLi5jMzRjMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xNTMsNiArMTUzLDE3IEBAIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrKiwgUGVlckNvbm5lY3Rp
b246OlN0CiAgICAgcHJvbWlzZS5yZWplY3QoRE9NRXJyb3I6OmNyZWF0ZSgiTm90U3VwcG9ydGVk
RXJyb3IiKSk7CiB9CiAKK3ZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNl
VHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlhU3RyZWFtVHJhY2smIHdpdGhUcmFjaywg
UGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBVTlVTRURfUEFS
QU0oc2VuZGVyKTsKKyAgICBVTlVTRURfUEFSQU0od2l0aFRyYWNrKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvbWlzZSk7CisKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgcHJvbWlzZS5yZWpl
Y3QoRE9NRXJyb3I6OmNyZWF0ZSgiTm90U3VwcG9ydGVkRXJyb3IiKSk7Cit9CisKIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzdG9wKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggNDBjZTYzMi4uNmNkM2IxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC02NCw2ICs2NCw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjayosIFBlZXJDb25uZWN0aW9u
OjpTdGF0c1Byb21pc2UmJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENS
dHBTZW5kZXImLCBNZWRpYVN0cmVhbVRyYWNrJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNl
JiYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlz
TmVnb3RpYXRpb25OZWVkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oCmluZGV4IGI5NWJkMjIuLjg5OGQ3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaApAQCAtMTAxLDYgKzEwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRT
dGF0cyhNZWRpYVN0cmVhbVRyYWNrKiwgUGVlckNvbm5lY3Rpb246OlN0YXRzUHJvbWlzZSYmKSA9
IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIE1lZGlh
U3RyZWFtVHJhY2smLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgPSAwOworCiAgICAg
dmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNOZWdvdGlhdGlv
bk5lZWRlZCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMWRkNjViMi4uZjRmODg5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBSZWZQdHI8UlRDUnRwU2Vu
ZGVyPiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
JiYgdHJhYwogICAgIH0KIAogICAgIGZvciAoYXV0byYgc2VuZGVyIDogbV9zZW5kZXJTZXQpIHsK
LSAgICAgICAgaWYgKHNlbmRlci0+dHJhY2soKS0+aWQoKSA9PSB0cmFjay0+aWQoKSkgeworICAg
ICAgICBpZiAoc2VuZGVyLT50cmFja0lkKCkgPT0gdHJhY2stPmlkKCkpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBTcGVjIHNheXMgSW52YWxpZFBhcmFtZXRlcgogICAgICAgICAgICAgZWMgPSBJ
TlZBTElEX01PRElGSUNBVElPTl9FUlI7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTEzMiw3ICsxMzIsNyBAQCBSZWZQdHI8UlRDUnRwU2VuZGVyPiBSVENQZWVyQ29ubmVjdGlvbjo6
YWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhYwogICAgIGZvciAoYXV0byBz
dHJlYW0gOiBzdHJlYW1zKQogICAgICAgICBtZWRpYVN0cmVhbUlkcy5hcHBlbmQoc3RyZWFtLT5p
ZCgpKTsKIAotICAgIFJlZlB0cjxSVENSdHBTZW5kZXI+IHNlbmRlciA9IFJUQ1J0cFNlbmRlcjo6
Y3JlYXRlKFdURk1vdmUodHJhY2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSk7CisgICAgUmVm
UHRyPFJUQ1J0cFNlbmRlcj4gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoV1RGTW92ZSh0
cmFjayksIFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCAqdGhpcyk7CiAgICAgbV9zZW5kZXJTZXQu
YXBwZW5kKHNlbmRlcik7CiAKICAgICBtX2JhY2tlbmQtPm1hcmtBc05lZWRpbmdOZWdvdGlhdGlv
bigpOwpAQCAtMTU1LDYgKzE1NSw4IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVRy
YWNrKFJUQ1J0cFNlbmRlciogc2VuZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoIW1f
c2VuZGVyU2V0LmNvbnRhaW5zKHNlbmRlcikpCiAgICAgICAgIHJldHVybjsKIAorICAgIHNlbmRl
ci0+c3RvcCgpOworCiAgICAgbV9iYWNrZW5kLT5tYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsK
IH0KIApAQCAtNDI3LDYgKzQyOSwxMSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpmaXJlRXZl
bnQoRXZlbnQmIGV2ZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCit2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlh
U3RyZWFtVHJhY2smIHdpdGhUcmFjaywgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICBtX2JhY2tlbmQtPnJlcGxhY2VUcmFjayhzZW5kZXIsIHdpdGhUcmFjaywg
V1RGTW92ZShwcm9taXNlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggOWY5ZTg3NS4uMjhlOTFm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBSVENQZWVyQ29ubmVjdGlv
bkVycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBSVENT
dGF0c0NhbGxiYWNrOwogCi1jbGFzcyBSVENQZWVyQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVi
bGljIFBlZXJDb25uZWN0aW9uQmFja2VuZENsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUsIHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGllbnQsIHB1Ymxp
YyBSVENSdHBTZW5kZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFJUQ1Bl
ZXJDb25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IERpY3Rp
b25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+UlRDUGVlckNv
bm5lY3Rpb24oKTsKQEAgLTEzMSw2ICsxMzEsOSBAQCBwcml2YXRlOgogICAgIFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhlcmluZ1N0YXRlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQogICAgIFBlZXJD
b25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0aW9u
U3RhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQog
CisgICAgLy8gUlRDUnRwU2VuZGVyQ2xpZW50CisgICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRw
U2VuZGVyJiwgTWVkaWFTdHJlYW1UcmFjayYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYm
KSBvdmVycmlkZTsKKwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBt
X3NpZ25hbGluZ1N0YXRlOwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdT
dGF0ZSBtX2ljZUdhdGhlcmluZ1N0YXRlOwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VD
b25uZWN0aW9uU3RhdGUgbV9pY2VDb25uZWN0aW9uU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKaW5kZXggNjZkMzc0MC4u
MzEzYzk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2VuZGVyLmNwcApAQCAtMzMsMTQgKzMzLDQyIEBACiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCisjaW5jbHVkZSAiRE9NRXJyb3IuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiSlNET01FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJU
Q1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNr
LCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKQorUlRDUnRwU2VuZGVyOjpSVENSdHBT
ZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIFZlY3RvcjxTdHJpbmc+JiYg
bWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYgY2xpZW50KQogICAgIDogUlRDUnRw
U2VuZGVyUmVjZWl2ZXJCYXNlKFdURk1vdmUodHJhY2spKQogICAgICwgbV9tZWRpYVN0cmVhbUlk
cyhXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSkKKyAgICAsIG1fY2xpZW50KCZjbGllbnQpCit7Cisg
ICAgLy8gVGhlIG9yaWdpbmFsIHRyYWNrIGlkIGlzIGFsd2F5cyB1c2VkIGluIG5lZ290aWF0aW9u
IGV2ZW4gaWYgdGhlIHRyYWNrIGlzIHJlcGxhY2VkLgorICAgIG1fdHJhY2tJZCA9IG1fdHJhY2st
PmlkKCk7Cit9CisKK3ZvaWQgUlRDUnRwU2VuZGVyOjpyZXBsYWNlVHJhY2soTWVkaWFTdHJlYW1U
cmFjayogd2l0aFRyYWNrLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJiBwcm9taXNlLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXdpdGhUcmFjaykgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9jbGllbnQp
IHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRE9NRXJyb3I6OmNyZWF0ZSgiSW52YWxpZFN0YXRl
RXJyb3IiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV90cmFjay0+a2lu
ZCgpICE9IHdpdGhUcmFjay0+a2luZCgpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jbGllbnQtPnJlcGxhY2VUcmFjaygqdGhpcywg
KndpdGhUcmFjaywgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5oCmluZGV4IDI1N2QzMjYuLjlk
OWQwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTZW5kZXIuaApAQCAtMzMsMjQgKzMzLDM5IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRw
U2VuZGVyUmVjZWl2ZXJCYXNlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUlRDUnRwU2VuZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIE1lZGlhU3Ry
ZWFtVHJhY2smLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgPSAwOworCisgICAgdmly
dHVhbCB+UlRDUnRwU2VuZGVyQ2xpZW50KCkgeyB9Cit9OworCiBjbGFzcyBSVENSdHBTZW5kZXIg
OiBwdWJsaWMgUlRDUnRwU2VuZGVyUmVjZWl2ZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFJUQ1J0cFNlbmRlcj4gY3JlYXRlKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNr
LCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKQorICAgIHN0YXRpYyBSZWY8UlRDUnRw
U2VuZGVyPiBjcmVhdGUoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIFZlY3RvcjxT
dHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYgY2xpZW50KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDUnRwU2VuZGVyKFdURk1vdmUodHJh
Y2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSVENSdHBTZW5kZXIoV1RGTW92ZSh0cmFjayksIFdURk1vdmUobWVkaWFTdHJlYW1JZHMp
LCBjbGllbnQpKTsKICAgICB9CiAKKyAgICBjb25zdCBTdHJpbmcmIHRyYWNrSWQoKSB7IHJldHVy
biBtX3RyYWNrSWQ7IH0KICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFTdHJlYW1JZHMo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtSWRzOyB9CiAKKyAgICB2b2lkIHN0b3AoKSB7
IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorCisgICAgdm9pZCByZXBsYWNlVHJhY2soTWVkaWFTdHJl
YW1UcmFjayosIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYmLCBFeGNlcHRpb25Db2RlJik7
CisKIHByaXZhdGU6Ci0gICAgUlRDUnRwU2VuZGVyKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYm
LCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKTsKKyAgICBSVENSdHBTZW5kZXIoUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIFZlY3RvcjxTdHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMs
IFJUQ1J0cFNlbmRlckNsaWVudCYpOwogCisgICAgU3RyaW5nIG1fdHJhY2tJZDsKICAgICBWZWN0
b3I8U3RyaW5nPiBtX21lZGlhU3RyZWFtSWRzOworICAgIFJUQ1J0cFNlbmRlckNsaWVudCogbV9j
bGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5pZGwKaW5kZXggOGNiMjc1NS4u
MzAyNzJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2VuZGVyLmlkbApAQCAtMzIsNCArMzIsNiBAQAogICAgIENvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTQogXSBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgTWVkaWFTdHJlYW1UcmFjayB0cmFjazsKKworICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJh
aXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSByZXBsYWNlVHJhY2soTWVkaWFTdHJlYW1UcmFjayB3aXRo
VHJhY2spOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268866</attachid>
            <date>2016-01-13 06:21:53 -0800</date>
            <delta_ts>2016-01-13 11:22:42 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>sender-replace-track_1.patch</filename>
            <type>text/plain</type>
            <size>16905</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMTUxMGI2Li5iZWEyMjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDEt
MTMgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIFJUQ1J0cFNlbmRlci5yZXBsYWNlVHJhY2soKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMDYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IGZvciBSVENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkuIEEgc3VjY2Vzc2Z1bCBjYWxsIGlz
IHN0aWxsCisgICAgICAgIHJlamVjdGVkIChwcm9taXNlKSB1bnRpbCBwcm9wZXIgc3VwcG9ydCBp
cyBhdmFpbGFibGUgaW4gdGhlIFdlYlJUQyBiYWNrZW5kLgorCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0bWw6
IEFkZGVkLgorCiAyMDE2LTAxLTA3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIEluZGV4ZWREQiB0ZXN0IGdhcmRlbmluZy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRl
ci1yZXBsYWNlVHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjI3NjY5NTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjMgQEAKK1Rlc3QgYmFzaWMgYmVoYXZpb3Igb2YgUlRDUnRwU2VuZGVyLnJlcGxhY2VUcmFjaygp
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBjLmdldFNlbmRlcnMoKS5s
ZW5ndGggaXMgMAorUEFTUyBzZW5kZXIgPSBwYy5hZGRUcmFjayhhdWRpb1RyYWNrLCBzdHJlYW0p
IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZW5kZXIgaXMgYW4gaW5zdGFuY2Ugb2Yg
UlRDUnRwU2VuZGVyCitQQVNTIHNlbmRlci50cmFjayBpcyBhdWRpb1RyYWNrCitQQVNTIHByb21p
c2Ugc2VuZGVyLnJlcGxhY2VUcmFjaygpIHJlamVjdGVkIHdpdGggVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cworUEFTUyBwcm9taXNlIHNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCkgcmVq
ZWN0ZWQgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcHJvbWlzZSBzZW5kZXIucmVw
bGFjZVRyYWNrKHt9KSByZWplY3RlZCB3aXRoIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ3dpdGhU
cmFjaycpIHRvIFJUQ1J0cFNlbmRlci5yZXBsYWNlVHJhY2sgbXVzdCBiZSBhbiBpbnN0YW5jZSBv
ZiBNZWRpYVN0cmVhbVRyYWNrCitUZXN0IG1pc21hdGNoaW5nIHRyYWNrIGtpbmQKK1BBU1MgcHJv
bWlzZSBzZW5kZXIucmVwbGFjZVRyYWNrKHZpZGVvVHJhY2spIHJlamVjdGVkIHdpdGggVHlwZUVy
cm9yOiBUeXBlIGVycm9yCitUaGlzIGlzIGEgdmFsaWQgY2FsbCBidXQgd2lsbCBiZSByZWplY3Rl
ZCB1bnRpbCB0aGUgUGVlckNvbm5lY3Rpb25CYWNrZW5kIGltcGxlbWVudGF0aW9uIGhhcyBwcm9w
ZXIgc3VwcG9ydAorUEFTUyBwcm9taXNlIHNlbmRlci5yZXBsYWNlVHJhY2soYXVkaW9UcmFjazIp
IHJlamVjdGVkIHdpdGggW29iamVjdCBET01FcnJvcl0KK1N0b3Agc2VuZGVyLCBhbmQgdHJ5IHJl
cGxhY2luZyB0aGUgdHJhY2sKK1BBU1MgcHJvbWlzZSBzZW5kZXIucmVwbGFjZVRyYWNrKGF1ZGlv
VHJhY2syKSByZWplY3RlZCB3aXRoIFtvYmplY3QgRE9NRXJyb3JdCitFbmQgb2YgcHJvbWlzZSBj
aGFpbgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJl
cGxhY2VUcmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENSdHBTZW5k
ZXItcmVwbGFjZVRyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzAxM2NjYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
UlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorICAg
ICAgICAgICAgdmFyIHN0cmVhbTsKKyAgICAgICAgICAgIHZhciBhdWRpb1RyYWNrOworICAgICAg
ICAgICAgdmFyIGF1ZGlvVHJhY2syOworICAgICAgICAgICAgdmFyIHZpZGVvVHJhY2s7CisgICAg
ICAgICAgICB2YXIgc2VuZGVyOworCisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdCBiYXNp
YyBiZWhhdmlvciBvZiBSVENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkiKTsKKworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1
bm5lciIpOworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB2YXIgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNl
cnZlcnM6W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKKworICAgICAgICAgICAgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyAiYXVkaW8iOiB0cnVlLCAidmlkZW8iOiB0cnVl
IH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocykgeworICAgICAgICAgICAgICAgIHN0
cmVhbSA9IHM7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFjayA9IHN0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpWzBdOworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXTsKKworICAgICAgICAgICAgICAgIGF1ZGlvVHJhY2syID0gYXVkaW9UcmFjay5j
bG9uZSgpOworCisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInBjLmdldFNlbmRlcnMoKS5sZW5n
dGgiLCAiMCIpOworCisgICAgICAgICAgICAgICAgc2hvdWxkTm90VGhyb3coInNlbmRlciA9IHBj
LmFkZFRyYWNrKGF1ZGlvVHJhY2ssIHN0cmVhbSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZVR5cGUoInNlbmRlciIsICJSVENSdHBTZW5kZXIiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgic2VuZGVyLnRyYWNrIiwgImF1ZGlvVHJhY2siKTsKKworICAgICAgICAgICAgICAgIHByb21p
c2VTaG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2soKSIpCisgICAgICAgICAgICAgICAg
LmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2VT
aG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2sobnVsbCkiKTsKKyAgICAgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBwcm9taXNlU2hvdWxkUmVqZWN0KCJzZW5kZXIucmVwbGFjZVRyYWNrKHt9
KSIpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIlRlc3QgbWlzbWF0Y2hpbmcgdHJhY2sg
a2luZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZVNob3VsZFJlamVjdCgi
c2VuZGVyLnJlcGxhY2VUcmFjayh2aWRlb1RyYWNrKSIpOworICAgICAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ZGVidWcoIlRoaXMgaXMgYSB2YWxpZCBjYWxsIGJ1dCB3aWxsIGJlIHJlamVjdGVkIHVudGlsIHRo
ZSBQZWVyQ29ubmVjdGlvbkJhY2tlbmQgaW1wbGVtZW50YXRpb24gaGFzIHByb3BlciBzdXBwb3J0
Iik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlU2hvdWxkUmVqZWN0KCJzZW5k
ZXIucmVwbGFjZVRyYWNrKGF1ZGlvVHJhY2syKSIpOworICAgICAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVi
dWcoIlN0b3Agc2VuZGVyLCBhbmQgdHJ5IHJlcGxhY2luZyB0aGUgdHJhY2siKTsKKyAgICAgICAg
ICAgICAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHByb21pc2VTaG91bGRSZWplY3QoInNlbmRlci5yZXBsYWNlVHJhY2soYXVkaW9UcmFj
azIpIik7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiRW5kIG9mIHByb21pc2UgY2hhaW4i
KTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikg
eworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImdldFVzZXJNZWRpYSBlcnJvcjogIiArIGVy
cm9yKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBwcm9taXNlU2hvdWxkUmVqZWN0KGV4cHIpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgcDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
ICAgICBwID0gZXZhbChleHByKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImV2YWx1YXRpbmcgIiArIGV4cHIgKyAiIHRocmV3
IGV4Y2VwdGlvbiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
amVjdCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghKHAgaW5z
dGFuY2VvZiBQcm9taXNlKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV4cHIg
KyAiIGRvZXMgbm90IGV2YWx1YXRlIHRvIGEgcHJvbWlzZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgcC50aGVuKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgicHJvbWlzZSAiICsgZXhwciArICIgZnVsZmlsbGVkIHVuZXhwZWN0ZWRseS4iKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIHAuY2F0Y2goZnVuY3Rpb24gKHJl
YXNvbikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwcm9taXNlICIgKyBleHBy
ICsgIiByZWplY3RlZCB3aXRoICIgKyByZWFzb24pOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU4MWM1MDcuLjVjOWU3NGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAxNi0wMS0xMyAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlz
dEBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgV2ViUlRDOiBBZGQgc3VwcG9ydCBmb3IgUlRDUnRw
U2VuZGVyLnJlcGxhY2VUcmFjaygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTMwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGhlIEFQSSBhbmQgaW5mcmFzdHJ1Y3R1cmUgdG8gc3VwcG9ydCBS
VENSdHBTZW5kZXIucmVwbGFjZVRyYWNrKCkuIFRoZSBwbGF0Zm9ybSBpcworICAgICAgICByZWFj
aGVkIHRocm91Z2ggdGhlIFJUQ1BlZXJDb25uZWN0aW9uIG9iamVjdCB0aGF0IGNyZWF0ZWQgdGhl
IFJUQ1J0cFNlbmRlciB2aWEgYSBjbGllbnQKKyAgICAgICAgaW50ZXJmYWNlLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odG1sCisK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OnJl
cGxhY2VUcmFjayk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZFRy
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpyZW1vdmVUcmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6cmVwbGFjZVRyYWNrKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDUnRwU2VuZGVyOjpSVENSdHBTZW5kZXIpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRw
U2VuZGVyOjpyZXBsYWNlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU2VuZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTZW5kZXJDbGllbnQ6On5SVENS
dHBTZW5kZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2VuZGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2VuZGVyOjp0cmFja0lkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1J0cFNlbmRlcjo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTZW5kZXIuaWRsOgorCiAyMDE2LTAxLTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBjb21wdXRlTGluZUJvdW5kc0ZvclRleHQgZnJvbSBH
cmFwaGljc0NvbnRleHQqIHRvIEdyYXBoaWNzQ29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uLmNwcAppbmRleCBlYTI1ZWIyLi5jMzRjMzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50
UGVlckNvbm5lY3Rpb24uY3BwCkBAIC0xNTMsNiArMTUzLDE3IEBAIHZvaWQgTWVkaWFFbmRwb2lu
dFBlZXJDb25uZWN0aW9uOjpnZXRTdGF0cyhNZWRpYVN0cmVhbVRyYWNrKiwgUGVlckNvbm5lY3Rp
b246OlN0CiAgICAgcHJvbWlzZS5yZWplY3QoRE9NRXJyb3I6OmNyZWF0ZSgiTm90U3VwcG9ydGVk
RXJyb3IiKSk7CiB9CiAKK3ZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpyZXBsYWNl
VHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlhU3RyZWFtVHJhY2smIHdpdGhUcmFjaywg
UGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBVTlVTRURfUEFS
QU0oc2VuZGVyKTsKKyAgICBVTlVTRURfUEFSQU0od2l0aFRyYWNrKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvbWlzZSk7CisKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgcHJvbWlzZS5yZWpl
Y3QoRE9NRXJyb3I6OmNyZWF0ZSgiTm90U3VwcG9ydGVkRXJyb3IiKSk7Cit9CisKIHZvaWQgTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpzdG9wKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKaW5kZXggNDBjZTYzMi4uNmNkM2IxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBv
aW50UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCkBAIC02NCw2ICs2NCw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZ2V0U3RhdHMoTWVkaWFTdHJlYW1UcmFjayosIFBlZXJDb25uZWN0aW9u
OjpTdGF0c1Byb21pc2UmJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHJlcGxhY2VUcmFjayhSVENS
dHBTZW5kZXImLCBNZWRpYVN0cmVhbVRyYWNrJiwgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNl
JiYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlz
TmVnb3RpYXRpb25OZWVkZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oCmluZGV4IGI5NWJkMjIuLjg5OGQ3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaApAQCAtMTAxLDYgKzEwMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRT
dGF0cyhNZWRpYVN0cmVhbVRyYWNrKiwgUGVlckNvbm5lY3Rpb246OlN0YXRzUHJvbWlzZSYmKSA9
IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJUQ1J0cFNlbmRlciYsIE1lZGlh
U3RyZWFtVHJhY2smLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJikgPSAwOworCiAgICAg
dmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNOZWdvdGlhdGlv
bk5lZWRlZCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMWRkNjViMi4uZjRmODg5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBSZWZQdHI8UlRDUnRwU2Vu
ZGVyPiBSVENQZWVyQ29ubmVjdGlvbjo6YWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+
JiYgdHJhYwogICAgIH0KIAogICAgIGZvciAoYXV0byYgc2VuZGVyIDogbV9zZW5kZXJTZXQpIHsK
LSAgICAgICAgaWYgKHNlbmRlci0+dHJhY2soKS0+aWQoKSA9PSB0cmFjay0+aWQoKSkgeworICAg
ICAgICBpZiAoc2VuZGVyLT50cmFja0lkKCkgPT0gdHJhY2stPmlkKCkpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBTcGVjIHNheXMgSW52YWxpZFBhcmFtZXRlcgogICAgICAgICAgICAgZWMgPSBJ
TlZBTElEX01PRElGSUNBVElPTl9FUlI7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTEzMiw3ICsxMzIsNyBAQCBSZWZQdHI8UlRDUnRwU2VuZGVyPiBSVENQZWVyQ29ubmVjdGlvbjo6
YWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhYwogICAgIGZvciAoYXV0byBz
dHJlYW0gOiBzdHJlYW1zKQogICAgICAgICBtZWRpYVN0cmVhbUlkcy5hcHBlbmQoc3RyZWFtLT5p
ZCgpKTsKIAotICAgIFJlZlB0cjxSVENSdHBTZW5kZXI+IHNlbmRlciA9IFJUQ1J0cFNlbmRlcjo6
Y3JlYXRlKFdURk1vdmUodHJhY2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSk7CisgICAgUmVm
UHRyPFJUQ1J0cFNlbmRlcj4gc2VuZGVyID0gUlRDUnRwU2VuZGVyOjpjcmVhdGUoV1RGTW92ZSh0
cmFjayksIFdURk1vdmUobWVkaWFTdHJlYW1JZHMpLCAqdGhpcyk7CiAgICAgbV9zZW5kZXJTZXQu
YXBwZW5kKHNlbmRlcik7CiAKICAgICBtX2JhY2tlbmQtPm1hcmtBc05lZWRpbmdOZWdvdGlhdGlv
bigpOwpAQCAtMTU1LDYgKzE1NSw4IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnJlbW92ZVRy
YWNrKFJUQ1J0cFNlbmRlciogc2VuZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoIW1f
c2VuZGVyU2V0LmNvbnRhaW5zKHNlbmRlcikpCiAgICAgICAgIHJldHVybjsKIAorICAgIHNlbmRl
ci0+c3RvcCgpOworCiAgICAgbV9iYWNrZW5kLT5tYXJrQXNOZWVkaW5nTmVnb3RpYXRpb24oKTsK
IH0KIApAQCAtNDI3LDYgKzQyOSwxMSBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpmaXJlRXZl
bnQoRXZlbnQmIGV2ZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCit2b2lkIFJU
Q1BlZXJDb25uZWN0aW9uOjpyZXBsYWNlVHJhY2soUlRDUnRwU2VuZGVyJiBzZW5kZXIsIE1lZGlh
U3RyZWFtVHJhY2smIHdpdGhUcmFjaywgUGVlckNvbm5lY3Rpb246OlZvaWRQcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICBtX2JhY2tlbmQtPnJlcGxhY2VUcmFjayhzZW5kZXIsIHdpdGhUcmFjaywg
V1RGTW92ZShwcm9taXNlKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggOWY5ZTg3NS4uMjhlOTFm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaApAQCAtNTksNyArNTksNyBAQCBjbGFzcyBSVENQZWVyQ29ubmVjdGlv
bkVycm9yQ2FsbGJhY2s7CiBjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb247CiBjbGFzcyBSVENT
dGF0c0NhbGxiYWNrOwogCi1jbGFzcyBSVENQZWVyQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVi
bGljIFBlZXJDb25uZWN0aW9uQmFja2VuZENsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b24gZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBT
Y3JpcHRXcmFwcGFibGUsIHB1YmxpYyBQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGllbnQsIHB1Ymxp
YyBSVENSdHBTZW5kZXJDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFJUQ1Bl
ZXJDb25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IERpY3Rp
b25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+UlRDUGVlckNv
bm5lY3Rpb24oKTsKQEAgLTEzMSw2ICsxMzEsOSBAQCBwcml2YXRlOgogICAgIFBlZXJDb25uZWN0
aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdTdGF0ZSBpbnRlcm5hbEljZUdhdGhlcmluZ1N0YXRlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pY2VHYXRoZXJpbmdTdGF0ZTsgfQogICAgIFBlZXJD
b25uZWN0aW9uU3RhdGVzOjpJY2VDb25uZWN0aW9uU3RhdGUgaW50ZXJuYWxJY2VDb25uZWN0aW9u
U3RhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2ljZUNvbm5lY3Rpb25TdGF0ZTsgfQog
CisgICAgLy8gUlRDUnRwU2VuZGVyQ2xpZW50CisgICAgdm9pZCByZXBsYWNlVHJhY2soUlRDUnRw
U2VuZGVyJiwgTWVkaWFTdHJlYW1UcmFjayYsIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlzZSYm
KSBvdmVycmlkZTsKKwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpTaWduYWxpbmdTdGF0ZSBt
X3NpZ25hbGluZ1N0YXRlOwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VHYXRoZXJpbmdT
dGF0ZSBtX2ljZUdhdGhlcmluZ1N0YXRlOwogICAgIFBlZXJDb25uZWN0aW9uU3RhdGVzOjpJY2VD
b25uZWN0aW9uU3RhdGUgbV9pY2VDb25uZWN0aW9uU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKaW5kZXggNjZkMzc0MC4u
ZjRhYWRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2VuZGVyLmNwcApAQCAtMzMsMTIgKzMzLDM5IEBACiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCisjaW5jbHVkZSAiRE9NRXJyb3IuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiSlNET01FcnJvci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJU
Q1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNr
LCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKQorUlRDUnRwU2VuZGVyOjpSVENSdHBT
ZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYgdHJhY2ssIFZlY3RvcjxTdHJpbmc+JiYg
bWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYgY2xpZW50KQogICAgIDogUlRDUnRw
U2VuZGVyUmVjZWl2ZXJCYXNlKFdURk1vdmUodHJhY2spKQogICAgICwgbV9tZWRpYVN0cmVhbUlk
cyhXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSkKKyAgICAsIG1fY2xpZW50KCZjbGllbnQpCit7Cisg
ICAgLy8gVGhlIG9yaWdpbmFsIHRyYWNrIGlkIGlzIGFsd2F5cyB1c2VkIGluIG5lZ290aWF0aW9u
IGV2ZW4gaWYgdGhlIHRyYWNrIGlzIHJlcGxhY2VkLgorICAgIG1fdHJhY2tJZCA9IG1fdHJhY2st
PmlkKCk7Cit9CisKK3ZvaWQgUlRDUnRwU2VuZGVyOjpyZXBsYWNlVHJhY2soTWVkaWFTdHJlYW1U
cmFjayogd2l0aFRyYWNrLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21pc2UmJiBwcm9taXNlLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoIXdpdGhUcmFjaykgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9jbGllbnQp
IHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRE9NRXJyb3I6OmNyZWF0ZSgiSW52YWxpZFN0YXRl
RXJyb3IiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV90cmFjay0+a2lu
ZCgpICE9IHdpdGhUcmFjay0+a2luZCgpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jbGllbnQtPnJlcGxhY2VUcmFjaygqdGhpcywg
KndpdGhUcmFjaywgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2VuZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRl
ci5oCmluZGV4IDI1N2QzMjYuLjlkOWQwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaApAQCAtMzMsMjQgKzMzLDM5IEBACiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgiCiAjaW5jbHVkZSAiUlRDUnRwU2VuZGVyUmVjZWl2ZXJCYXNlLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUlRDUnRw
U2VuZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVRyYWNrKFJU
Q1J0cFNlbmRlciYsIE1lZGlhU3RyZWFtVHJhY2smLCBQZWVyQ29ubmVjdGlvbjo6Vm9pZFByb21p
c2UmJikgPSAwOworCisgICAgdmlydHVhbCB+UlRDUnRwU2VuZGVyQ2xpZW50KCkgeyB9Cit9Owor
CiBjbGFzcyBSVENSdHBTZW5kZXIgOiBwdWJsaWMgUlRDUnRwU2VuZGVyUmVjZWl2ZXJCYXNlIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNlbmRlcj4gY3JlYXRlKFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPiYmIHRyYWNrLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKQor
ICAgIHN0YXRpYyBSZWY8UlRDUnRwU2VuZGVyPiBjcmVhdGUoUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2s+JiYgdHJhY2ssIFZlY3RvcjxTdHJpbmc+JiYgbWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRl
ckNsaWVudCYgY2xpZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRD
UnRwU2VuZGVyKFdURk1vdmUodHJhY2spLCBXVEZNb3ZlKG1lZGlhU3RyZWFtSWRzKSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTZW5kZXIoV1RGTW92ZSh0cmFjayksIFdU
Rk1vdmUobWVkaWFTdHJlYW1JZHMpLCBjbGllbnQpKTsKICAgICB9CiAKKyAgICBjb25zdCBTdHJp
bmcmIHRyYWNrSWQoKSB7IHJldHVybiBtX3RyYWNrSWQ7IH0KICAgICBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgbWVkaWFTdHJlYW1JZHMoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtSWRzOyB9
CiAKKyAgICB2b2lkIHN0b3AoKSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorCisgICAgdm9pZCBy
ZXBsYWNlVHJhY2soTWVkaWFTdHJlYW1UcmFjayosIFBlZXJDb25uZWN0aW9uOjpWb2lkUHJvbWlz
ZSYmLCBFeGNlcHRpb25Db2RlJik7CisKIHByaXZhdGU6Ci0gICAgUlRDUnRwU2VuZGVyKFJlZlB0
cjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBWZWN0b3I8U3RyaW5nPiYmIG1lZGlhU3RyZWFtSWRzKTsK
KyAgICBSVENSdHBTZW5kZXIoUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiYsIFZlY3RvcjxTdHJp
bmc+JiYgbWVkaWFTdHJlYW1JZHMsIFJUQ1J0cFNlbmRlckNsaWVudCYpOwogCisgICAgU3RyaW5n
IG1fdHJhY2tJZDsKICAgICBWZWN0b3I8U3RyaW5nPiBtX21lZGlhU3RyZWFtSWRzOworICAgIFJU
Q1J0cFNlbmRlckNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNl
bmRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRl
ci5pZGwKaW5kZXggOGNiMjc1NS4uMzAyNzJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmlkbApAQCAtMzIsNCArMzIsNiBAQAog
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogXSBpbnRlcmZhY2UgUlRDUnRwU2VuZGVyIHsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFTdHJlYW1UcmFjayB0cmFjazsKKworICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmcsIFJhaXNlc0V4Y2VwdGlvbl0gUHJvbWlzZSByZXBsYWNlVHJhY2so
TWVkaWFTdHJlYW1UcmFjayB3aXRoVHJhY2spOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>