<?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>59964</bug_id>
          
          <creation_ts>2011-05-02 15:12:24 -0700</creation_ts>
          <short_desc>Implicit conversion from std::nullptr_t to PassOwnPtr doesn&apos;t work, but should</short_desc>
          <delta_ts>2011-05-03 06:58:24 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>396703</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-02 15:12:24 -0700</bug_when>
    <thetext>Implicit conversion from std::nullptr_t to PassOwnPtr doesn&apos;t work, but should</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396705</commentid>
    <comment_count>1</comment_count>
      <attachid>91990</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-02 15:13:29 -0700</bug_when>
    <thetext>Created attachment 91990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396707</commentid>
    <comment_count>2</comment_count>
      <attachid>91990</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-02 15:14:33 -0700</bug_when>
    <thetext>Comment on attachment 91990
Patch

So pretty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397065</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-03 06:58:24 -0700</bug_when>
    <thetext>Committed r85603: &lt;http://trac.webkit.org/changeset/85603&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91990</attachid>
            <date>2011-05-02 15:13:29 -0700</date>
            <delta_ts>2011-05-02 15:14:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59964-20110502181416.patch</filename>
            <type>text/plain</type>
            <size>45153</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU1MTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ODlmNzVjZmNkNTIxMDBlZGI0NTgxMzhmZTcxNjBjZWZkYjc5OWQuLmY0OWVhMTkwNzRhMGIwZmMx
NmU5ZTI3OWJjNTM4YzY2ZGFmYjlkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDExLTA1LTAyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbGxvdyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gbnVsbHB0cl90IHRvIFBhc3NP
d25QdHIKKworICAgICAgICBUaGlzIG1ha2VzIGl0IGEgbG90IGVhc2llciB0byB3cml0ZSBjb2Rl
IHRoYXQganVzdCB3YW50cyBhIG51bGwgUGFzc093blB0ciwgZXNwZWNpYWxseSBpbgorICAgICAg
ICBzdHJpY3QgUGFzc093blB0ciBtb2RlLgorCisgICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzU5OTY0PiBJbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gc3RkOjpudWxscHRyX3QgdG8g
UGFzc093blB0cgorICAgICAgICBkb2Vzbid0IHdvcmssIGJ1dCBzaG91bGQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QYXNzT3duUHRyLmg6
CisgICAgICAgIChXVEY6OlBhc3NPd25QdHI6OlBhc3NPd25QdHIpOiBBZGRlZCBhIG5vbi1leHBs
aWNpdCBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgbnVsbHB0cl90LgorCisgICAgICAgICogd3Rm
L01lc3NhZ2VRdWV1ZS5oOgorICAgICAgICAoV1RGOjo6OndhaXRGb3JNZXNzYWdlRmlsdGVyZWRX
aXRoVGltZW91dCk6CisgICAgICAgIChXVEY6Ojo6dHJ5R2V0TWVzc2FnZSk6CisgICAgICAgIFVz
ZSB0aGUgbmV3IGltcGxpY2l0IGNvbnZlcnNpb24uCisKIDIwMTEtMDUtMDIgIEdhdmluIEJhcnJh
Y2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NZXNzYWdl
UXVldWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWVzc2FnZVF1ZXVlLmgKaW5kZXgg
M2U2ZDEyMGUxYTc0MDExNGY1N2Q4ZTZlMTNlYjJjNGYzMzc1ZDNhNi4uM2U0ODE1NDc3OTRlNWY3
ODRkNmE3YzI4ZDIzNDMwYmEyOGYyMjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9NZXNzYWdlUXVldWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01l
c3NhZ2VRdWV1ZS5oCkBAIC0xNDAsMTIgKzE0MCwxMiBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAg
ICAgICBpZiAobV9raWxsZWQpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZVRl
cm1pbmF0ZWQ7Ci0gICAgICAgICAgICByZXR1cm4gUGFzc093blB0cjxEYXRhVHlwZT4oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRpbWVk
T3V0KSB7CiAgICAgICAgICAgICByZXN1bHQgPSBNZXNzYWdlUXVldWVUaW1lb3V0OwotICAgICAg
ICAgICAgcmV0dXJuIFBhc3NPd25QdHI8RGF0YVR5cGU+KCk7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVChmb3VuZCAhPSBtX3F1ZXVlLmVu
ZCgpKTsKQEAgLTE2MCw5ICsxNjAsOSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB7CiAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX2tpbGxlZCkKLSAgICAg
ICAgICAgIHJldHVybiBQYXNzT3duUHRyPERhdGFUeXBlPigpOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIGlmIChtX3F1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJl
dHVybiBQYXNzT3duUHRyPERhdGFUeXBlPigpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG1fcXVldWUudGFrZUZpcnN0KCkpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGFzc093blB0ci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmgKaW5kZXggODIzZjhiMTBlNzhlM2U5
NWVmNTBlMmZmODBmOTRjMzViY2NiOTUwNC4uN2Y4MTRkNGNmMTI0MWMxNDdiZGQwZWRhMTNkZmQ1
YTU5ZDhjOTE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3du
UHRyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzT3duUHRyLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlKiBQ
dHJUeXBlOwogCiAgICAgICAgIFBhc3NPd25QdHIoKSA6IG1fcHRyKDApIHsgfQorICAgICAgICBQ
YXNzT3duUHRyKHN0ZDo6bnVsbHB0cl90KSA6IG1fcHRyKDApIHsgfQogCiAgICAgICAgIC8vIEl0
IHNvbWV3aGF0IGJyZWFrcyB0aGUgdHlwZSBzeXN0ZW0gdG8gYWxsb3cgdHJhbnNmZXIgb2Ygb3du
ZXJzaGlwIG91dCBvZgogICAgICAgICAvLyBhIGNvbnN0IFBhc3NPd25QdHIuIEhvd2V2ZXIsIGl0
IG1ha2VzIGl0IG11Y2ggZWFzaWVyIHRvIHdvcmsgd2l0aCBQYXNzT3duUHRyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggODUwNzg3MTlhYzlmOTk5ODI4ZjMwYzI0NzE3MGQ1NGZjMWI2YmMxZS4uYmRiMTQ4MmM2Mjlj
NWFkNDQ1ZDg0YmU3NjcyYzExMDMxMGJmZTBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBA
CisyMDExLTA1LTAyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKworICAgICAgICBU
YWtlIGFkdmFudGFnZSBvZiBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gbnVsbHB0cl90IHRvIFBh
c3NPd25QdHIKKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi81OTk2ND4gSW1w
bGljaXQgY29udmVyc2lvbiBmcm9tIHN0ZDo6bnVsbHB0cl90IHRvIFBhc3NPd25QdHIKKyAgICAg
ICAgZG9lc24ndCB3b3JrLCBidXQgc2hvdWxkCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKiBjc3MvTWVkaWFM
aXN0LmNwcDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwOgorICAgICAgICAq
IGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQu
Y3BwOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHA6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bUdlc3R1cmVSZWNvZ25pemVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QdXJnZWFibGVCdWZm
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2xldmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0
L1JlZ3VsYXJFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U1ZHUmVuZGVyU3R5bGVEZWZzLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU2hhZG93
RGF0YS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVy
bi5jcHA6CisKIDIwMTEtMDUtMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCmluZGV4IDg2ZjJhNmI1NmI3MjhlMmY3NDFmZWI0
Mzc1MjAzNDkzYmQzZmExZTEuLjNhZjYxMTU4ZTgzMTE0ZjdhMjk0MDE3ZGViYWNiNzNmZmYzM2Vk
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNw
cApAQCAtNTQsMTAgKzU0LDEwIEBAIFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBTY2hlZHVs
ZWRBY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIERPTVdyYXBwZXJXCiAgICAgQ2FsbERh
dGEgY2FsbERhdGE7CiAgICAgaWYgKGdldENhbGxEYXRhKHYsIGNhbGxEYXRhKSA9PSBDYWxsVHlw
ZU5vbmUpIHsKICAgICAgICAgaWYgKHBvbGljeSAmJiAhcG9saWN5LT5hbGxvd0V2YWwoKSkKLSAg
ICAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4oKTsKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBVU3RyaW5nIHN0cmluZyA9IHYudG9TdHJpbmco
ZXhlYyk7CiAgICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJl
dHVybiBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4oKTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjaGVkdWxlZEFjdGlvbih1c3Ry
aW5nVG9TdHJpbmcoc3RyaW5nKSwgaXNvbGF0ZWRXb3JsZCkpOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDk2MjA4MmMyNGI5M2EwYjg4OWY3YWZm
YzQyOTYxMmE1NzYwYTQyY2IuLjUzYzI3Y2Q5YjhiOWUzNmNkMmU3ZTQxMjgyMjdlZTExOWQ3OWI3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQ4MjcsMTEg
KzQ4MjcsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3hTaGFkb3c6IHsK
ICAgICAgICAgaWYgKGlzSW5oZXJpdCkgewogICAgICAgICAgICAgaWYgKGlkID09IENTU1Byb3Bl
cnR5VGV4dFNoYWRvdykKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9zdHlsZS0+c2V0VGV4dFNo
YWRvdyhtX3BhcmVudFN0eWxlLT50ZXh0U2hhZG93KCkgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0
YSgqbV9wYXJlbnRTdHlsZS0+dGV4dFNoYWRvdygpKSkgOiBQYXNzT3duUHRyPFNoYWRvd0RhdGE+
KCkpOwotICAgICAgICAgICAgcmV0dXJuIG1fc3R5bGUtPnNldEJveFNoYWRvdyhtX3BhcmVudFN0
eWxlLT5ib3hTaGFkb3coKSA/IGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKCptX3BhcmVudFN0eWxl
LT5ib3hTaGFkb3coKSkpIDogUGFzc093blB0cjxTaGFkb3dEYXRhPigpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbV9zdHlsZS0+c2V0VGV4dFNoYWRvdyhtX3BhcmVudFN0eWxlLT50ZXh0U2hh
ZG93KCkgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqbV9wYXJlbnRTdHlsZS0+dGV4dFNoYWRv
dygpKSkgOiBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0eWxlLT5zZXRCb3hTaGFk
b3cobV9wYXJlbnRTdHlsZS0+Ym94U2hhZG93KCkgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgq
bV9wYXJlbnRTdHlsZS0+Ym94U2hhZG93KCkpKSA6IG51bGxwdHIpOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChpc0luaXRpYWwgfHwgcHJpbWl0aXZlVmFsdWUpIC8vIGluaXRpYWwgfCBub25lCi0g
ICAgICAgICAgICByZXR1cm4gaWQgPT0gQ1NTUHJvcGVydHlUZXh0U2hhZG93ID8gbV9zdHlsZS0+
c2V0VGV4dFNoYWRvdyhQYXNzT3duUHRyPFNoYWRvd0RhdGE+KCkpIDogbV9zdHlsZS0+c2V0Qm94
U2hhZG93KFBhc3NPd25QdHI8U2hhZG93RGF0YT4oKSk7CisgICAgICAgICAgICByZXR1cm4gaWQg
PT0gQ1NTUHJvcGVydHlUZXh0U2hhZG93ID8gbV9zdHlsZS0+c2V0VGV4dFNoYWRvdyhudWxscHRy
KSA6IG1fc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKIAogICAgICAgICBpZiAoIXZhbHVl
LT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0
LmNwcAppbmRleCA2NTlhMTE2NjIyNzFkMzYwOTNjNWNhNGYxMTYxZDc3NWQ2YjliYzM4Li4yOWFh
MDYyNTczMjdmNjMxYzkwNjc2YWYxZjg4Y2JiN2Q3YjI4YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFM
aXN0LmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgTWVkaWFMaXN0OjpkZWxldGVNZWRpdW0o
Y29uc3QgU3RyaW5nJiBvbGRNZWRpdW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0gZWxzZSBp
ZiAobV9mYWxsYmFjaykgewogICAgICAgICBTdHJpbmcgbWVkaXVtID0gcGFyc2VNZWRpYURlc2Ny
aXB0b3Iob2xkTWVkaXVtKTsKICAgICAgICAgaWYgKCFtZWRpdW0uaXNOdWxsKCkpIHsKLSAgICAg
ICAgICAgIGNyZWF0ZWRRdWVyeSA9IGFkb3B0UHRyKG5ldyBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6
Ok5vbmUsIG1lZGl1bSwgUGFzc093blB0cjxNZWRpYVF1ZXJ5OjpFeHByZXNzaW9uVmVjdG9yPigp
KSk7CisgICAgICAgICAgICBjcmVhdGVkUXVlcnkgPSBhZG9wdFB0cihuZXcgTWVkaWFRdWVyeShN
ZWRpYVF1ZXJ5OjpOb25lLCBtZWRpdW0sIG51bGxwdHIpKTsKICAgICAgICAgICAgIG9sZFF1ZXJ5
ID0gY3JlYXRlZFF1ZXJ5LmdldCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTg2LDcgKzE4Niw3
IEBAIHZvaWQgTWVkaWFMaXN0OjpzZXRNZWRpYVRleHQoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICAgICAgaWYgKG1fZmFsbGJhY2spIHsKICAgICAg
ICAgICAgICAgICAgICAgU3RyaW5nIG1lZGlhRGVzY3JpcHRvciA9IHBhcnNlTWVkaWFEZXNjcmlw
dG9yKG1lZGl1bSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWVkaWFEZXNjcmlwdG9yLmlz
TnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1lZGlhTGlzdC0+bV9xdWVyaWVz
LmFwcGVuZChuZXcgTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb25lLCBtZWRpYURlc2NyaXB0b3Is
IFBhc3NPd25QdHI8TWVkaWFRdWVyeTo6RXhwcmVzc2lvblZlY3Rvcj4oKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVtcE1lZGlhTGlzdC0+bV9xdWVyaWVzLmFwcGVuZChuZXcgTWVkaWFR
dWVyeShNZWRpYVF1ZXJ5OjpOb25lLCBtZWRpYURlc2NyaXB0b3IsIG51bGxwdHIpKTsKICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIE1l
ZGlhTGlzdDo6YXBwZW5kTWVkaXVtKGNvbnN0IFN0cmluZyYgbmV3TWVkaXVtLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICB9IGVsc2UgaWYgKG1fZmFsbGJhY2spIHsKICAgICAgICAgU3RyaW5nIG1l
ZGl1bSA9IHBhcnNlTWVkaWFEZXNjcmlwdG9yKG5ld01lZGl1bSk7CiAgICAgICAgIGlmICghbWVk
aXVtLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBtX3F1ZXJpZXMuYXBwZW5kKG5ldyBNZWRpYVF1
ZXJ5KE1lZGlhUXVlcnk6Ok5vbmUsIG1lZGl1bSwgUGFzc093blB0cjxNZWRpYVF1ZXJ5OjpFeHBy
ZXNzaW9uVmVjdG9yPigpKSk7CisgICAgICAgICAgICBtX3F1ZXJpZXMuYXBwZW5kKG5ldyBNZWRp
YVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vbmUsIG1lZGl1bSwgbnVsbHB0cikpOwogICAgICAgICAgICAg
ZWMgPSAwOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TWF0
Y2hlci5jcHAKaW5kZXggNmJiN2YyYjYxZGY2ZWE2YjllOTkyMjcyMDBjMjk4ZDliYmRkMjk1MC4u
NDgwM2E3MWViNDYwMGUyYmY5MDkxNTc3ZjIwYzJiZTFiOWE5Yzg5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCkBAIC03NywxNSArNzcsMTUgQEAgU3RyaW5nIE1l
ZGlhUXVlcnlNYXRjaGVyOjptZWRpYVR5cGUoKSBjb25zdAogUGFzc093blB0cjxNZWRpYVF1ZXJ5
RXZhbHVhdG9yPiBNZWRpYVF1ZXJ5TWF0Y2hlcjo6cHJlcGFyZUV2YWx1YXRvcigpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX2RvY3VtZW50LT5mcmFtZSgpKQotICAgICAgICBy
ZXR1cm4gUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPigpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOwogICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQotICAgICAgICByZXR1
cm4gUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPigpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHN0eWxlU2VsZWN0b3IgPSBtX2RvY3VtZW50
LT5zdHlsZVNlbGVjdG9yKCk7CiAgICAgaWYgKCFzdHlsZVNlbGVjdG9yKQotICAgICAgICByZXR1
cm4gUGFzc093blB0cjxNZWRpYVF1ZXJ5RXZhbHVhdG9yPigpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gcm9vdFN0eWxlID0gc3R5bGVTZWxlY3Rv
ci0+c3R5bGVGb3JFbGVtZW50KGRvY3VtZW50RWxlbWVudCwgMCAvKmRlZmF1bHRQYXJlbnQqLywg
ZmFsc2UgLyphbGxvd1NoYXJpbmcqLywgdHJ1ZSAvKnJlc29sdmVGb3JSb290RGVmYXVsdCovKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGIwZTc2
OWRlYWVlODc2ZGU1MmVjODUzMGExZDA3MmI0NDFhZjllODIuLjZiMDk0MjZlYzBkNzcwZjRjZTQ1
MGQ3MTZmNjU3YTdhOTVjOGRmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdD
U1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICBpZiAo
aXNJbmhlcml0KQogICAgICAgICAgICAgICAgIHJldHVybiBzdmdzdHlsZS0+c2V0U2hhZG93KGFk
b3B0UHRyKG1fcGFyZW50U3R5bGUtPnN2Z1N0eWxlKCktPnNoYWRvdygpID8gbmV3IFNoYWRvd0Rh
dGEoKm1fcGFyZW50U3R5bGUtPnN2Z1N0eWxlKCktPnNoYWRvdygpKSA6IDApKTsKICAgICAgICAg
ICAgIGlmIChpc0luaXRpYWwgfHwgcHJpbWl0aXZlVmFsdWUpIC8vIGluaXRpYWwgfCBub25lCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHN2Z3N0eWxlLT5zZXRTaGFkb3coUGFzc093blB0cjxTaGFk
b3dEYXRhPigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Znc3R5bGUtPnNldFNoYWRvdyhu
dWxscHRyKTsKIAogICAgICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZVBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAppbmRleCA3ZjMz
MzI1MjJiY2E1ZGVkZTY0YjA4YjU4YTE5MmMyYTU1YWRmN2M3Li44M2ExNDBhMGNmNGM5YWY1YWFk
NmY5MjJiMjE1M2U1ZjE4M2FmMDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZVBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKQEAg
LTIwNiw3ICsyMDYsNyBAQCBNZXNzYWdlUG9ydCogTWVzc2FnZVBvcnQ6OmxvY2FsbHlFbnRhbmds
ZWRQb3J0KCkKIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IE1lc3NhZ2VQb3J0
OjpkaXNlbnRhbmdsZVBvcnRzKGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBpZiAoIXBvcnRzIHx8ICFwb3J0cy0+c2l6ZSgpKQotICAgICAg
ICByZXR1cm4gUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBIYXNoU2V0IHVzZWQgdG8gZWZmaWNpZW50bHkgY2hl
Y2sgZm9yIGR1cGxpY2F0ZXMgaW4gdGhlIHBhc3NlZC1pbiBhcnJheS4KICAgICBIYXNoU2V0PE1l
c3NhZ2VQb3J0Kj4gcG9ydFNldDsKQEAgLTIxNiw3ICsyMTYsNyBAQCBQYXNzT3duUHRyPE1lc3Nh
Z2VQb3J0Q2hhbm5lbEFycmF5PiBNZXNzYWdlUG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhjb25zdCBN
ZXNzYWdlUAogICAgICAgICBNZXNzYWdlUG9ydCogcG9ydCA9ICgqcG9ydHMpW2ldLmdldCgpOwog
ICAgICAgICBpZiAoIXBvcnQgfHwgcG9ydC0+aXNDbG9uZWQoKSB8fCBwb3J0U2V0LmNvbnRhaW5z
KHBvcnQpKSB7CiAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICAg
ICAgcmV0dXJuIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KCk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICBwb3J0U2V0LmFkZChwb3J0
KTsKICAgICB9CkBAIC0yMzQsNyArMjM0LDcgQEAgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheT4gTWVzc2FnZVBvcnQ6OmRpc2VudGFuZ2xlUG9ydHMoY29uc3QgTWVzc2FnZVAKIFBh
c3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheT4gY2hhbm5lbHMpCiB7CiAgICAgaWYgKCFjaGFubmVscyB8fCAhY2hhbm5lbHMtPnNp
emUoKSkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBPd25QdHI8TWVzc2FnZVBvcnRBcnJheT4gcG9y
dEFycmF5ID0gYWRvcHRQdHIobmV3IE1lc3NhZ2VQb3J0QXJyYXkoY2hhbm5lbHMtPnNpemUoKSkp
OwogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgY2hhbm5lbHMtPnNpemUoKTsgKytp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggOTAzMmIxYzhlODI1NTY2Y2U2NzNk
ZWY1MDU0YzUzYTg4MjI1NzgwMS4uYzg4MmNkNWM0YjhlYzMxYzEyZmZlNjE3OWIyOGU1MjRlZTEx
MzBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTA0LDcgKzUwNCw3IEBAIGJv
b2wgSW5wdXRUeXBlOjpjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKQogCiBQYXNzT3duUHRyPENs
aWNrSGFuZGxpbmdTdGF0ZT4gSW5wdXRUeXBlOjp3aWxsRGlzcGF0Y2hDbGljaygpCiB7Ci0gICAg
cmV0dXJuIFBhc3NPd25QdHI8Q2xpY2tIYW5kbGluZ1N0YXRlPigpOworICAgIHJldHVybiBudWxs
cHRyOwogfQogCiB2b2lkIElucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCosIGNvbnN0
IENsaWNrSGFuZGxpbmdTdGF0ZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0Y2QxMDMxZTJjM2YxN2ZkYWI3ZGI2
Y2ZiYzhlOTg5NzdlYjBhNWJkLi5iM2ZhMDEzNDc3MGIxNTlmMjhjNmRkYjdlMzRjYTY5ODIxYTU2
YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTM3MSw3ICszNzEsNyBAQCBQYXNzT3duUHRyPFdlYkdMUmVuZGVy
aW5nQ29udGV4dD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoSFRNTENhbnZhc0VsZW1l
bgogCiAgICAgaWYgKCFjb250ZXh0KSB7CiAgICAgICAgIGNhbnZhcy0+ZGlzcGF0Y2hFdmVudChX
ZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjcmVhdGlv
bmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdlYkdMIGNvbnRl
eHQuIikpOwotICAgICAgICByZXR1cm4gUGFzc093blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHJldHVybiBhZG9wdFB0
cihuZXcgV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNhbnZhcywgY29udGV4dCwgYXR0cmlidXRlcykp
OwpAQCAtNDczLDcgKzQ3Myw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZs
YWdzKCkKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29udGV4dCgpCiB7
CiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwotICAgIG1fY29udGV4dC0+c2V0Q29u
dGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9z
dENhbGxiYWNrPigpKTsKKyAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJhY2sobnVs
bHB0cik7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjptYXJrQ29udGV4dENoYW5n
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQu
Y3BwCmluZGV4IDFiNTgwNzQ1YzVjMjA5YzY1NTc3ZjI4ZjkwM2Y0ZGFkY2Q3Njc5MDkuLjBlNDY0
MWYyYjNiMjMyMTA5ZjNhYjg4YzFkNzE2YzhkYjQ4M2ZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAg
dm9pZCBQYXJzZWRTdHlsZVNoZWV0OjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAg
ICBtX2hhc1RleHQgPSB0cnVlOwogICAgIG1fdGV4dCA9IHRleHQ7Ci0gICAgc2V0U291cmNlRGF0
YShQYXNzT3duUHRyPFNvdXJjZURhdGE+KCkpOworICAgIHNldFNvdXJjZURhdGEobnVsbHB0cik7
CiB9CiAKIHZvaWQgUGFyc2VkU3R5bGVTaGVldDo6c2V0U291cmNlRGF0YShQYXNzT3duUHRyPFNv
dXJjZURhdGE+IHNvdXJjZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggOTdiZGUzYmE5Nzk5NmYxYmNhODRhYWJhMTE2ZTNjODllNzdm
YzE1Yi4uOTIzZDJjZWM5NDY1NDk3YzhmZGUxMWZlZTQ1NzZhZjQ1ZDUxODA5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtMTIyLDcgKzEy
Miw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQq
IGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiBQYXNzT3duUHRyPENvbnRleHRNZW51PiBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUNvbnRleHRNZW51KEV2ZW50KiBldmVudCkKIHsK
ICAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZlbnQoKSkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25Q
dHI8Q29udGV4dE1lbnU+KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgTW91c2VF
dmVudCogbW91c2VFdmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCk7CiAgICAg
SGl0VGVzdFJlc3VsdCByZXN1bHQobW91c2VFdmVudC0+YWJzb2x1dGVMb2NhdGlvbigpKTsKQEAg
LTEzMSw3ICsxMzEsNyBAQCBQYXNzT3duUHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNyZWF0ZUNvbnRleHRNZW51KEV2ZW50KiBldmVudCkKICAgICAgICAgcmVzdWx0ID0g
ZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCksIGZhbHNlKTsKIAogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hh
cmVkTm9kZSgpKQotICAgICAgICByZXR1cm4gUGFzc093blB0cjxDb250ZXh0TWVudT4oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBtX2hpdFRlc3RSZXN1bHQgPSByZXN1bHQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDhkZjAyOTk0MmM1ZjdiYTk3NTZiMTgwN2RhZGJhMWRmNDQz
YjU1YzYuLjVjNjI3NDkzMjc2ZjVhMmJhNTA4ZDQzMDY2YWNmOTA1NjE1NjkxNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtMTI4LDggKzEyOCw4IEBAIFBhZ2U6OlBhZ2UoY29uc3QgUGFnZUNsaWVu
dHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9nZW9sb2NhdGlvbkNvbnRyb2xsZXIoYWRvcHRQdHIo
bmV3IEdlb2xvY2F0aW9uQ29udHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNs
aWVudCkpKQogI2VuZGlmCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICAsIG1f
ZGV2aWNlTW90aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkZXZpY2VNb3Rp
b25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlTW90aW9uQ29udHJvbGxlcihwYWdlQ2xp
ZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpKSA6IFBhc3NPd25QdHI8RGV2aWNlTW90aW9uQ29udHJv
bGxlcj4oKSkKLSAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmRldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcih0aGlzLCBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRh
dGlvbkNsaWVudCkpIDogUGFzc093blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCkp
CisgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gYWRvcHRQdHIobmV3IERldmljZU1vdGlvbkNvbnRyb2xs
ZXIocGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50KSkgOiBudWxscHRyKQorICAgICwgbV9k
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNl
T3JpZW50YXRpb25FbmFibGVkKCkgPyBhZG9wdFB0cihuZXcgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKHRoaXMsIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSkgOiBudWxs
cHRyKQogI2VuZGlmCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICAsIG1fc3BlZWNoSW5w
dXRDbGllbnQocGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuY3BwCmluZGV4IGQ5
ZTU1NzlmYTNhYTY4NzE3NDNhOWUwMTY5YWZkMGRhYWY2NWRiZGMuLjllYmVhMTViYTA3ZjI0Mzk4
ZDhiMjI1MTkyNmE3NDA1M2U4MjgwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBAIFBs
YXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6On5QbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyKCkgeyB9
CiAvLyBoZXJlIHRoYXQgbWVldHMgaXRzIG5lZWRzLiBFdmVudEhhbmRsZXIgd2lsbCBpZ25vcmUg
bnVsbCBHZXN0dXJlUmVjb2duaXplcnMuCiBQYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZVJlY29n
bml6ZXI+IFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJu
IFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcj4oKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QdXJnZWFibGVCdWZmZXIuaAppbmRleCA0NDEzNmMyZjIyOTRlZGJlMmMyZjcwYTY5ZmVjMGYy
YjU4MGUxMzE0Li40NjhiOTJiMjUxMmI4YmY4YjcwNDVhMjc2MWYwODBkOTAwMDRkMzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaApAQCAtNjMsNyArNjMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKIAogI2lmICFFTkFCTEUoUFVSR0VBQkxFX01F
TU9SWSkKLSAgICBpbmxpbmUgUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+IFB1cmdlYWJsZUJ1
ZmZlcjo6Y3JlYXRlKGNvbnN0IGNoYXIqLCBzaXplX3QpIHsgcmV0dXJuIFBhc3NPd25QdHI8UHVy
Z2VhYmxlQnVmZmVyPigpOyB9CisgICAgaW5saW5lIFBhc3NPd25QdHI8UHVyZ2VhYmxlQnVmZmVy
PiBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZShjb25zdCBjaGFyKiwgc2l6ZV90KSB7IHJldHVybiBu
dWxscHRyOyB9CiAgICAgaW5saW5lIFB1cmdlYWJsZUJ1ZmZlcjo6flB1cmdlYWJsZUJ1ZmZlcigp
IHsgfQogICAgIGlubGluZSBjb25zdCBjaGFyKiBQdXJnZWFibGVCdWZmZXI6OmRhdGEoKSBjb25z
dCB7IHJldHVybiAwOyB9CiAgICAgaW5saW5lIGJvb2wgUHVyZ2VhYmxlQnVmZmVyOjp3YXNQdXJn
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMTZjY2Y1N2VmOTA3YTJjMzFiM2UxNDgzNDdk
MzIwZjdjZWFhNDJjZS4uMTczZTZmN2I4NWNmNzY5YzE3MjllZDRjNDFlYzM1ZjEzMTVmYTNhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBA
IC02OSw3ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIE93blB0cjxJ
bWFnZUJ1ZmZlcj4gYnVmID0gYWRvcHRQdHIobmV3IEltYWdlQnVmZmVyKHNpemUsIGNvbG9yU3Bh
Y2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKICAgICAgICAgICAgIGlmIChzdWNjZXNzKQog
ICAgICAgICAgICAgICAgIHJldHVybiBidWYucmVsZWFzZSgpOwotICAgICAgICAgICAgcmV0dXJu
IFBhc3NPd25QdHI8SW1hZ2VCdWZmZXI+KCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgfQogCiAgICAgICAgIH5JbWFnZUJ1ZmZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCRGF0YWJhc2UuY3BwCmluZGV4IDBkMzllOGQ2
Mzk3NzA5OWRkNmNmMmMxYzU1MzcyYjE0ZWUxMGU0YTIuLmY4ZDQ0YWE0YTlhMmNjNzM3NTY2OTI0
MDQwOWY1MmM5ODNiMWY1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xl
dmVsZGIvTGV2ZWxEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9s
ZXZlbGRiL0xldmVsREJEYXRhYmFzZS5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBQYXNzT3duUHRy
PExldmVsREJEYXRhYmFzZT4gTGV2ZWxEQkRhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIGNvbnN0CiAgICAgbGV2ZWxkYjo6U3RhdHVzIHMgPSBsZXZlbGRiOjpEQjo6T3Blbihv
cHRpb25zLCBmaWxlTmFtZS51dGY4KCkuZGF0YSgpLCAmZGIpOwogCiAgICAgaWYgKCFzLm9rKCkp
Ci0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPExldmVsREJEYXRhYmFzZT4oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICByZXN1bHQtPm1fZGIgPSBhZG9wdFB0cihkYik7CiAgICAg
cmVzdWx0LT5tX2NvbXBhcmF0b3JBZGFwdGVyID0gY29tcGFyYXRvckFkYXB0ZXIucmVsZWFzZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZl
ck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFj
LmNwcAppbmRleCA1MTcxZjI5Zjg4NTMwMTJhNWEzM2Q0N2YwZmVlYWM3MjgxZjk3YzA3Li5jYzY3
NjUxNWU0MTdmMGY2OTcyYWEyNjE1YmI4MTBlMmI5YjZmYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcApAQCAtNTUsMjEgKzU1
LDIxIEBAIFB1cmdlYWJsZUJ1ZmZlcjo6flB1cmdlYWJsZUJ1ZmZlcigpCiBQYXNzT3duUHRyPFB1
cmdlYWJsZUJ1ZmZlcj4gUHVyZ2VhYmxlQnVmZmVyOjpjcmVhdGUoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IHNpemUpCiB7CiAgICAgaWYgKHNpemUgPCBtaW5QdXJnZWFibGVCdWZmZXJTaXplKQot
ICAgICAgICByZXR1cm4gUGFzc093blB0cjxQdXJnZWFibGVCdWZmZXI+KCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgdm1fYWRkcmVzc190IGJ1ZmZlciA9IDA7CiAgICAga2Vybl9y
ZXR1cm5fdCByZXQgPSB2bV9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCAmYnVmZmVyLCBzaXpl
LCBWTV9GTEFHU19QVVJHQUJMRSB8IFZNX0ZMQUdTX0FOWVdIRVJFIHwgVk1fVEFHX0ZPUl9XRUJD
T1JFX1BVUkdFQUJMRV9NRU1PUlkpOwogCiAgICAgQVNTRVJUKHJldCA9PSBLRVJOX1NVQ0NFU1Mp
OwogICAgIGlmIChyZXQgIT0gS0VSTl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gUGFzc093blB0
cjxQdXJnZWFibGVCdWZmZXI+KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0
ID0gdm1fY29weShtYWNoX3Rhc2tfc2VsZigpLCByZWludGVycHJldF9jYXN0PHZtX2FkZHJlc3Nf
dD4oZGF0YSksIHNpemUsIGJ1ZmZlcik7CiAKICAgICBBU1NFUlQocmV0ID09IEtFUk5fU1VDQ0VT
Uyk7CiAgICAgaWYgKHJldCAhPSBLRVJOX1NVQ0NFU1MpIHsKICAgICAgICAgdm1fZGVhbGxvY2F0
ZShtYWNoX3Rhc2tfc2VsZigpLCBidWZmZXIsIHNpemUpOwotICAgICAgICByZXR1cm4gUGFzc093
blB0cjxQdXJnZWFibGVCdWZmZXI+KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IAogICAgIHJldHVybiBhZG9wdFB0cihuZXcgUHVyZ2VhYmxlQnVmZmVyKHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KGJ1ZmZlciksIHNpemUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKaW5kZXggZTAyMGI5MTQxYjUzMDI3ODMzYjNk
NzhmYmJkY2VhYzM1ZWMwZmY4ZS4uMWY4YzNkYmQ4N2FmZDFkMmQzNWFkNjU1YWRmNGFmMDBhZDFh
M2RiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgSlNDOjpZYXJy
OjpZYXJyUGF0dGVybiBwYXR0ZXJuKEpTQzo6VVN0cmluZyhwYXR0ZXJuU3RyaW5nLmltcGwoKSks
IChjYXNlU2Vuc2l0aXZpdHkgPT0gVGV4dENhc2VJbnNlbnNpdGl2ZSksIGZhbHNlLCAmbV9jb25z
dHJ1Y3Rpb25FcnJvcik7CiAgICAgICAgIGlmIChtX2NvbnN0cnVjdGlvbkVycm9yKSB7CiAgICAg
ICAgICAgICBMT0dfRVJST1IoIlJlZ3VsYXJFeHByZXNzaW9uOiBZQVJSIGNvbXBpbGUgZmFpbGVk
IHdpdGggJyVzJyIsIG1fY29uc3RydWN0aW9uRXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuIFBh
c3NPd25QdHI8SlNDOjpZYXJyOjpCeXRlY29kZVBhdHRlcm4+KCk7CisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgICAgIG1fbnVtU3VicGF0dGVybnMgPSBwYXR0
ZXJuLm1fbnVtU3VicGF0dGVybnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAppbmRleCA0ODc1M2EwYjY4MWM5MmU4NTczYjllYTllZGRmM2VlNTQyMjEwMDQ5Li44Mzdj
MTdlMDljYTBlN2IxOWQ1NGI2ZjRlNGIzMTQzZTQ2M2JmNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBSZW5kZXJUaGVt
ZTo6YWRqdXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIFJlbmRlclN0eWxlKiBz
dHlsZSwgRWwKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmV2ZXIgc3VwcG9ydCBib3gtc2hh
ZG93IG9uIG5hdGl2ZSBjb250cm9scy4KLSAgICBzdHlsZS0+c2V0Qm94U2hhZG93KFBhc3NPd25Q
dHI8U2hhZG93RGF0YT4oKSk7CisgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKICAg
ICAKICNpZiBVU0UoTkVXX1RIRU1FKQogICAgIHN3aXRjaCAocGFydCkgewpAQCAtOTI5LDcgKzky
OSw3IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbihSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJCiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKIHZv
aWQgUmVuZGVyVGhlbWU6OmFkanVzdE1ldGVyU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRl
clN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0CiB7Ci0gICAgc3R5bGUtPnNldEJveFNoYWRv
dyhQYXNzT3duUHRyPFNoYWRvd0RhdGE+KCkpOworICAgIHN0eWxlLT5zZXRCb3hTaGFkb3cobnVs
bHB0cik7CiB9CiAKIEludFNpemUgUmVuZGVyVGhlbWU6Om1ldGVyU2l6ZUZvckJvdW5kcyhjb25z
dCBSZW5kZXJNZXRlciosIGNvbnN0IEludFJlY3QmIGJvdW5kcykgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBmMDYzZDhhZThiZGZmZTE0Mjkw
YzViYzU4NTMyNGMyZjVmOTJjNTJlLi5mNGZlODg4ZTlkODc5NjNlOWNhYmQ4OWMyYzMxZTUzYmI0
Y2E0ZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBA
IC0xMTY0LDcgKzExNjQsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0
eWxlKENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZQogICAgIC8vIHN5c3Rl
bSBmb250IGZvciB0aGUgY29udHJvbCBzaXplIGluc3RlYWQuCiAgICAgc2V0Rm9udEZyb21Db250
cm9sU2l6ZShzZWxlY3Rvciwgc3R5bGUsIGNvbnRyb2xTaXplKTsKIAotICAgIHN0eWxlLT5zZXRC
b3hTaGFkb3coUGFzc093blB0cjxTaGFkb3dEYXRhPigpKTsKKyAgICBzdHlsZS0+c2V0Qm94U2hh
ZG93KG51bGxwdHIpOwogfQogCiBpbnQgUmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRk
aW5nTGVmdChSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CkBAIC0xMjUwLDcgKzEyNTAsNyBAQCBj
b25zdCBpbnQgdHJhY2tSYWRpdXMgPSAyOwogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RT
bGlkZXJUcmFja1N0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVs
ZW1lbnQqKSBjb25zdAogewotICAgIHN0eWxlLT5zZXRCb3hTaGFkb3coUGFzc093blB0cjxTaGFk
b3dEYXRhPigpKTsKKyAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQogCiBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3Qg
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHIpCkBAIC0xMjkxLDcgKzEyOTEs
NyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCog
bywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZgogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1
c3RTbGlkZXJUaHVtYlN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEVsZW1lbnQqKSBjb25zdAogewotICAgIHN0eWxlLT5zZXRCb3hTaGFkb3coUGFzc093blB0cjxT
aGFkb3dEYXRhPigpKTsKKyAgICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQogCiBj
b25zdCBmbG9hdCB2ZXJ0aWNhbFNsaWRlckhlaWdodFBhZGRpbmcgPSAwLjFmOwpAQCAtMTQ0Myw3
ICsxNDQzLDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2VhcmNoRmllbGRTdHlsZShD
U1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVyU3QKICAgICBOU0NvbnRyb2xTaXplIGNv
bnRyb2xTaXplID0gY29udHJvbFNpemVGb3JGb250KHN0eWxlKTsKICAgICBzZXRGb250RnJvbUNv
bnRyb2xTaXplKHNlbGVjdG9yLCBzdHlsZSwgY29udHJvbFNpemUpOwogCi0gICAgc3R5bGUtPnNl
dEJveFNoYWRvdyhQYXNzT3duUHRyPFNoYWRvd0RhdGE+KCkpOworICAgIHN0eWxlLT5zZXRCb3hT
aGFkb3cobnVsbHB0cik7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNoRmll
bGRDYW5jZWxCdXR0b24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcikKQEAgLTE1MDIsNyArMTUwMiw3IEBAIHZvaWQgUmVuZGVyVGhl
bWVNYWM6OmFkanVzdFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3Rv
ciosIFJlbmRlCiAgICAgSW50U2l6ZSBzaXplID0gc2l6ZUZvclN5c3RlbUZvbnQoc3R5bGUsIGNh
bmNlbEJ1dHRvblNpemVzKCkpOwogICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0
aCgpLCBGaXhlZCkpOwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUuaGVpZ2h0KCks
IEZpeGVkKSk7Ci0gICAgc3R5bGUtPnNldEJveFNoYWRvdyhQYXNzT3duUHRyPFNoYWRvd0RhdGE+
KCkpOworICAgIHN0eWxlLT5zZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9CiAKIGNvbnN0IEludFNp
emUqIFJlbmRlclRoZW1lTWFjOjpyZXN1bHRzQnV0dG9uU2l6ZXMoKSBjb25zdApAQCAtMTUxNyw3
ICsxNTE3LDcgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2VhcmNoRmllbGREZWNvcmF0
aW9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclMKICAgICBJbnRTaXplIHNpemUgPSBz
aXplRm9yU3lzdGVtRm9udChzdHlsZSwgcmVzdWx0c0J1dHRvblNpemVzKCkpOwogICAgIHN0eWxl
LT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpIC0gZW1wdHlSZXN1bHRzT2Zmc2V0LCBGaXhl
ZCkpOwogICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7
Ci0gICAgc3R5bGUtPnNldEJveFNoYWRvdyhQYXNzT3duUHRyPFNoYWRvd0RhdGE+KCkpOworICAg
IHN0eWxlLT5zZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6
OnBhaW50U2VhcmNoRmllbGREZWNvcmF0aW9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEludFJlY3QmKQpAQCAtMTUzMCw3ICsxNTMwLDcgQEAgdm9pZCBSZW5kZXJUaGVt
ZU1hYzo6YWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzRGVjb3JhdGlvblN0eWxlKENTU1N0eWxlU2Vs
ZWN0b3IqLAogICAgIEludFNpemUgc2l6ZSA9IHNpemVGb3JTeXN0ZW1Gb250KHN0eWxlLCByZXN1
bHRzQnV0dG9uU2l6ZXMoKSk7CiAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXplLndpZHRo
KCksIEZpeGVkKSk7CiAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc2l6ZS5oZWlnaHQoKSwg
Rml4ZWQpKTsKLSAgICBzdHlsZS0+c2V0Qm94U2hhZG93KFBhc3NPd25QdHI8U2hhZG93RGF0YT4o
KSk7CisgICAgc3R5bGUtPnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIAogYm9vbCBSZW5kZXJU
aGVtZU1hYzo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNEZWNvcmF0aW9uKFJlbmRlck9iamVjdCog
bywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHIpCkBAIC0xNTYz
LDcgKzE1NjMsNyBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RTZWFyY2hGaWVsZFJlc3Vs
dHNCdXR0b25TdHlsZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZAogICAgIEludFNpemUgc2l6ZSA9
IHNpemVGb3JTeXN0ZW1Gb250KHN0eWxlLCByZXN1bHRzQnV0dG9uU2l6ZXMoKSk7CiAgICAgc3R5
bGUtPnNldFdpZHRoKExlbmd0aChzaXplLndpZHRoKCkgKyByZXN1bHRzQXJyb3dXaWR0aCwgRml4
ZWQpKTsKICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzaXplLmhlaWdodCgpLCBGaXhlZCkp
OwotICAgIHN0eWxlLT5zZXRCb3hTaGFkb3coUGFzc093blB0cjxTaGFkb3dEYXRhPigpKTsKKyAg
ICBzdHlsZS0+c2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQogCiBib29sIFJlbmRlclRoZW1lTWFj
OjpwYWludFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBmNmNjMDdjYmVmZGMwYjllYzBiNDdh
N2I0MzcxMTdhZWU4ZWFhOTZmLi45MzhiMjk3NjBhNTliMDU2ZTNhODA5YjU0YmJkNTI4NDdkZGJi
Y2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApA
QCAtMTEwMiw4ICsxMTAyLDggQEAgcHVibGljOgogICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9ucy5jbGVhcigpOwogICAgIH0KIAotICAgIHZvaWQgaW5o
ZXJpdEFuaW1hdGlvbnMoY29uc3QgQW5pbWF0aW9uTGlzdCogcGFyZW50KSB7IHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2FuaW1hdGlvbnMgPSBwYXJlbnQgPyBhZG9wdFB0cihuZXcg
QW5pbWF0aW9uTGlzdCgqcGFyZW50KSkgOiBQYXNzT3duUHRyPEFuaW1hdGlvbkxpc3Q+KCk7IH0K
LSAgICB2b2lkIGluaGVyaXRUcmFuc2l0aW9ucyhjb25zdCBBbmltYXRpb25MaXN0KiBwYXJlbnQp
IHsgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fdHJhbnNpdGlvbnMgPSBwYXJlbnQg
PyBhZG9wdFB0cihuZXcgQW5pbWF0aW9uTGlzdCgqcGFyZW50KSkgOiBQYXNzT3duUHRyPEFuaW1h
dGlvbkxpc3Q+KCk7IH0KKyAgICB2b2lkIGluaGVyaXRBbmltYXRpb25zKGNvbnN0IEFuaW1hdGlv
bkxpc3QqIHBhcmVudCkgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9hbmltYXRp
b25zID0gcGFyZW50ID8gYWRvcHRQdHIobmV3IEFuaW1hdGlvbkxpc3QoKnBhcmVudCkpIDogbnVs
bHB0cjsgfQorICAgIHZvaWQgaW5oZXJpdFRyYW5zaXRpb25zKGNvbnN0IEFuaW1hdGlvbkxpc3Qq
IHBhcmVudCkgeyByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9ucyA9
IHBhcmVudCA/IGFkb3B0UHRyKG5ldyBBbmltYXRpb25MaXN0KCpwYXJlbnQpKSA6IG51bGxwdHI7
IH0KICAgICB2b2lkIGFkanVzdEFuaW1hdGlvbnMoKTsKICAgICB2b2lkIGFkanVzdFRyYW5zaXRp
b25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TVkdS
ZW5kZXJTdHlsZURlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1Jl
bmRlclN0eWxlRGVmcy5jcHAKaW5kZXggMmJiMDQ5OTE1MDkzYjllZTBhYzMxY2U1NGY5M2ZlYWJj
OGY4NDE2My4uZmU4Y2U1ZDczMWUwNjk5MjQ2ODZiZWQ2YzkzYjZjMjdkMWRkMjY1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVmcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlRGVm
cy5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCBTdHlsZVNoYWRvd1NWR0RhdGE6OlN0eWxlU2hhZG93
U1ZHRGF0YSgpCiAKIFN0eWxlU2hhZG93U1ZHRGF0YTo6U3R5bGVTaGFkb3dTVkdEYXRhKGNvbnN0
IFN0eWxlU2hhZG93U1ZHRGF0YSYgb3RoZXIpCiAgICAgOiBSZWZDb3VudGVkPFN0eWxlU2hhZG93
U1ZHRGF0YT4oKQotICAgICwgc2hhZG93KG90aGVyLnNoYWRvdyA/IGFkb3B0UHRyKG5ldyBTaGFk
b3dEYXRhKCpvdGhlci5zaGFkb3cpKSA6IFBhc3NPd25QdHI8U2hhZG93RGF0YT4oKSkKKyAgICAs
IHNoYWRvdyhvdGhlci5zaGFkb3cgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqb3RoZXIuc2hh
ZG93KSkgOiBudWxscHRyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU2hhZG93RGF0YS5jcHAKaW5kZXggOWVmYTg0MjI5YmQ2NDA4YzJkZGZjOWRjMGZmYzRkMmM4
YmMwZjhiMy4uZmRjNjZkNjI2MTI5ZTIxNTNiNDUwNDBiOTQ4NmUxYjM0YmI5OTk0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmNwcApAQCAtMzcsNyAr
MzcsNyBAQCBTaGFkb3dEYXRhOjpTaGFkb3dEYXRhKGNvbnN0IFNoYWRvd0RhdGEmIG8pCiAgICAg
LCBtX2NvbG9yKG8ubV9jb2xvcikKICAgICAsIG1fc3R5bGUoby5tX3N0eWxlKQogICAgICwgbV9p
c1dlYmtpdEJveFNoYWRvdyhvLm1faXNXZWJraXRCb3hTaGFkb3cpCi0gICAgLCBtX25leHQoby5t
X25leHQgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqby5tX25leHQpKSA6IFBhc3NPd25QdHI8
U2hhZG93RGF0YT4oKSkKKyAgICAsIG1fbmV4dChvLm1fbmV4dCA/IGFkb3B0UHRyKG5ldyBTaGFk
b3dEYXRhKCpvLm1fbmV4dCkpIDogbnVsbHB0cikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmlu
ZGV4IDJhOGM1MDJjMmU4OGY5YjUwMThmOTNmY2E0YzBkYzIwNDcxOThkYzQuLmMzODQ2MTE2NmJm
YmMyYjE1NGYzYTY5MjZhNTNlYjc3YTU2YTUwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTYz
LDcgKzYzLDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogICAgICwgdGV4dFN0cm9rZVdpZHRo
KG8udGV4dFN0cm9rZVdpZHRoKQogICAgICwgdGV4dEZpbGxDb2xvcihvLnRleHRGaWxsQ29sb3Ip
CiAgICAgLCB0ZXh0RW1waGFzaXNDb2xvcihvLnRleHRFbXBoYXNpc0NvbG9yKQotICAgICwgdGV4
dFNoYWRvdyhvLnRleHRTaGFkb3cgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqby50ZXh0U2hh
ZG93KSkgOiBQYXNzT3duUHRyPFNoYWRvd0RhdGE+KCkpCisgICAgLCB0ZXh0U2hhZG93KG8udGV4
dFNoYWRvdyA/IGFkb3B0UHRyKG5ldyBTaGFkb3dEYXRhKCpvLnRleHRTaGFkb3cpKSA6IG51bGxw
dHIpCiAgICAgLCBoaWdobGlnaHQoby5oaWdobGlnaHQpCiAgICAgLCBjdXJzb3JEYXRhKG8uY3Vy
c29yRGF0YSkKICAgICAsIGluZGVudChvLmluZGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApp
bmRleCBkODUyMzVjMzNiYzk3ODc2NWQxMTc2ZDIxMjg2MzlmMjI5MTBiOWYxLi40YTRkN2QyNjE3
Y2FmZTdjMGE0Yzg4NmEzMzVhNzI2ZTgxM2JlZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3Bw
CkBAIC03OSwxMCArNzksMTAgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWQKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlv
bihvLm1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKQogI2VuZGlmCi0gICAgLCBtX2JveFNo
YWRvdyhvLm1fYm94U2hhZG93ID8gYWRvcHRQdHIobmV3IFNoYWRvd0RhdGEoKm8ubV9ib3hTaGFk
b3cpKSA6IFBhc3NPd25QdHI8U2hhZG93RGF0YT4oKSkKKyAgICAsIG1fYm94U2hhZG93KG8ubV9i
b3hTaGFkb3cgPyBhZG9wdFB0cihuZXcgU2hhZG93RGF0YSgqby5tX2JveFNoYWRvdykpIDogbnVs
bHB0cikKICAgICAsIG1fYm94UmVmbGVjdChvLm1fYm94UmVmbGVjdCkKLSAgICAsIG1fYW5pbWF0
aW9ucyhvLm1fYW5pbWF0aW9ucyA/IGFkb3B0UHRyKG5ldyBBbmltYXRpb25MaXN0KCpvLm1fYW5p
bWF0aW9ucykpIDogUGFzc093blB0cjxBbmltYXRpb25MaXN0PigpKQotICAgICwgbV90cmFuc2l0
aW9ucyhvLm1fdHJhbnNpdGlvbnMgPyBhZG9wdFB0cihuZXcgQW5pbWF0aW9uTGlzdCgqby5tX3Ry
YW5zaXRpb25zKSkgOiBQYXNzT3duUHRyPEFuaW1hdGlvbkxpc3Q+KCkpCisgICAgLCBtX2FuaW1h
dGlvbnMoby5tX2FuaW1hdGlvbnMgPyBhZG9wdFB0cihuZXcgQW5pbWF0aW9uTGlzdCgqby5tX2Fu
aW1hdGlvbnMpKSA6IG51bGxwdHIpCisgICAgLCBtX3RyYW5zaXRpb25zKG8ubV90cmFuc2l0aW9u
cyA/IGFkb3B0UHRyKG5ldyBBbmltYXRpb25MaXN0KCpvLm1fdHJhbnNpdGlvbnMpKSA6IG51bGxw
dHIpCiAgICAgLCBtX21hc2soby5tX21hc2spCiAgICAgLCBtX21hc2tCb3hJbWFnZShvLm1fbWFz
a0JveEltYWdlKQogICAgICwgbV90cmFuc2Zvcm1TdHlsZTNEKG8ubV90cmFuc2Zvcm1TdHlsZTNE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZVBhdHRlcm4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZVBhdHRlcm4uY3BwCmluZGV4IGZjMjY5NzhkNDJkYzQwZjJmYThhYjlkMzZiMTRiYTNj
OGQxMmY5ZWUuLmIzMzdmMGZlM2I5ODc5ZTcyODI5MTIzYjg2MTM0YjMxY2JiZWE2MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0
ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlUGF0dGVybi5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCBQYXNzT3duUHRyPEltYWdlQnVmZmVy
PiBSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmNyZWF0ZVRpbGVJbWFnZShSZW5kZXJPYmplY3Qq
CiAgICAgT3duUHRyPEltYWdlQnVmZmVyPiB0aWxlSW1hZ2U7CiAKICAgICBpZiAoIVNWR0ltYWdl
QnVmZmVyVG9vbHM6OmNyZWF0ZUltYWdlQnVmZmVyKGFic29sdXRlVGlsZUJvdW5kYXJpZXMsIGNs
YW1wZWRBYnNvbHV0ZVRpbGVCb3VuZGFyaWVzLCB0aWxlSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VS
R0IpKQotICAgICAgICByZXR1cm4gUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIHRpbGVJbWFnZUNvbnRleHQg
PSB0aWxlSW1hZ2UtPmNvbnRleHQoKTsKICAgICBBU1NFUlQodGlsZUltYWdlQ29udGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGFhMmY0YzQ1ZTM0OTEyOWYzYjg0YmNjMGEzMjc0
MmVkNjdmMzVmMjguLjAwNTE1MGFhN2FlZTg2ZWJlNDljNjA4ZGI4YTVmMDE4NGRkMzRiNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMDIgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIFRha2UgYWR2YW50YWdlIG9m
IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBudWxscHRyX3QgdG8gUGFzc093blB0cgorCisgICAg
ICAgIEZpeGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU5OTY0PiBJbXBsaWNpdCBjb252ZXJzaW9u
IGZyb20gc3RkOjpudWxscHRyX3QgdG8gUGFzc093blB0cgorICAgICAgICBkb2Vzbid0IHdvcmss
IGJ1dCBzaG91bGQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwOgorCiAyMDExLTA1LTAyICBB
bG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmluZGV4IDdmZmRlNTcxYmEwZTBjNDAw
YzFlODQxYmRkMDY2NzZhNWVjYTg2YzkuLmJjYzU3NmUwOWFjN2UzNGJlYzg2ZTI0OWY0NTY5ZDY4
Yzc3YWUxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgUGFzc093
blB0cjxXZWJNZWRpYVBsYXllcj4gY3JlYXRlV2ViTWVkaWFQbGF5ZXIoV2ViTWVkaWFQbGF5ZXJD
bGllbnQqIGNsaQogICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBXZWJGcmFtZUltcGw6OmZy
b21GcmFtZShmcmFtZSk7CiAKICAgICBpZiAoIXdlYkZyYW1lLT5jbGllbnQoKSkKLSAgICAgICAg
cmV0dXJuIFBhc3NPd25QdHI8V2ViTWVkaWFQbGF5ZXI+KCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIHJldHVybiBhZG9wdFB0cih3ZWJGcmFtZS0+Y2xpZW50KCktPmNyZWF0ZU1lZGlh
UGxheWVyKHdlYkZyYW1lLCBjbGllbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDk0YTMw
M2Y4YzlhOGQxZjAxZWRjZTAwMWUyMGMxYjBhMTA3ZWExOTcuLjhmZjc5OTkxYjhiMWZjZmEzY2Zj
N2E5ZWZkNTcyOWY5ZjRhYjFmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMS0wNS0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGFr
ZSBhZHZhbnRhZ2Ugb2YgaW1wbGljaXQgY29udmVyc2lvbiBmcm9tIG51bGxwdHJfdCB0byBQYXNz
T3duUHRyCisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTk5NjQ+IEltcGxp
Y2l0IGNvbnZlcnNpb24gZnJvbSBzdGQ6Om51bGxwdHJfdCB0byBQYXNzT3duUHRyCisgICAgICAg
IGRvZXNuJ3Qgd29yaywgYnV0IHNob3VsZAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogSGlzdG9yeS9XZWJIaXN0b3J5Lm1tOgorICAgICAgICAqIFBs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW06CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorCiAyMDExLTA1LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9I
aXN0b3J5L1dlYkhpc3RvcnkubW0KaW5kZXggYTUxY2M0ZDVkMDQxOTIyYjgyM2JhZWJhYzgyZWNk
ZGY2MzA5NDFkMS4uMTFiM2ZlZGUzMTgzMDU3OWZkM2JhZDNlMDViNzlhNTM3NDhjNmEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeS5tbQpAQCAtODI2LDcgKzgyNiw3IEBA
IC0gKHZvaWQpX3Zpc2l0ZWRVUkw6KE5TVVJMICopdXJsIHdpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZSBtZXRob2Q6KE5TU3RyaW5nICopCiAgICAgaWYgKFttZXRob2QgbGVuZ3RoXSkKICAgICAg
ICAgaXRlbS0+c2V0TGFzdFZpc2l0V2FzSFRUUE5vbkdldChbbWV0aG9kIGNhc2VJbnNlbnNpdGl2
ZUNvbXBhcmU6QCJHRVQiXSAmJiAoIVtbdXJsIHNjaGVtZV0gY2FzZUluc2Vuc2l0aXZlQ29tcGFy
ZTpAImh0dHAiXSB8fCAhW1t1cmwgc2NoZW1lXSBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiaHR0
cHMiXSkpOwogCi0gICAgaXRlbS0+c2V0UmVkaXJlY3RVUkxzKFBhc3NPd25QdHI8VmVjdG9yPFN0
cmluZz4gPigpKTsKKyAgICBpdGVtLT5zZXRSZWRpcmVjdFVSTHMobnVsbHB0cik7CiAKICAgICBO
U0FycmF5ICplbnRyaWVzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6ZW50cnks
IG5pbF07CiAgICAgW3NlbGYgX3NlbmROb3RpZmljYXRpb246V2ViSGlzdG9yeUl0ZW1zQWRkZWRO
b3RpZmljYXRpb24gZW50cmllczplbnRyaWVzXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyLm1tCmluZGV4IGNm
ZTJhZThjZTQzYzkyNjMzYzYyZjhkNGZjMTMxOTk5MjY2MzBmYWUuLjljMmRjNTA1ZTNmZWQzMmQ2
NDEwMWYyMTUxOGM2ZWU4YTM4MDg2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlci5tbQpAQCAtNDQsNyAr
NDQsNyBAQCBQYXNzT3duUHRyPFdlYk5ldHNjYXBlUGx1Z2luRXZlbnRIYW5kbGVyPiBXZWJOZXRz
Y2FwZVBsdWdpbkV2ZW50SGFuZGxlcjo6Y3JlYXRlKAogICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBXZWJOZXRzY2FwZVBsdWdpbkV2ZW50SGFuZGxlckNvY29hKHBsdWdpblZpZXcpKTsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8V2ViTmV0c2NhcGVQbHVnaW5FdmVudEhhbmRsZXI+
KCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBiYzk1NzJiM2Q3NzRkMjRiZmZhODk4MjU2M2Q5OGUy
MTlmYzFjMWI4Li5lYzI5MTI2ZDZlN2UzZjczN2FiMjM2ZGM5MmViODNlNGU4NTFhNDIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC02NDIsNyArNjQyLDcgQEAgLSAodm9p
ZClfaW5qZWN0TWFpbFF1aXJrc1NjcmlwdAogewogICAgIHN0YXRpYyBOU1N0cmluZyAqbWFpbFF1
aXJrc1NjcmlwdENvbnRlbnRzID0gbGVha01haWxRdWlya3NVc2VyU2NyaXB0Q29udGVudHMoKTsK
ICAgICBjb3JlKHNlbGYpLT5ncm91cCgpLmFkZFVzZXJTY3JpcHRUb1dvcmxkKGNvcmUoW1dlYlNj
cmlwdFdvcmxkIHdvcmxkXSksCi0gICAgICAgIG1haWxRdWlya3NTY3JpcHRDb250ZW50cywgS1VS
TCgpLCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKSwgUGFzc093blB0cjxWZWN0b3I8U3Ry
aW5nPiA+KCksIEluamVjdEF0RG9jdW1lbnRFbmQsIEluamVjdEluQWxsRnJhbWVzKTsKKyAgICAg
ICAgbWFpbFF1aXJrc1NjcmlwdENvbnRlbnRzLCBLVVJMKCksIG51bGxwdHIsIG51bGxwdHIsIElu
amVjdEF0RG9jdW1lbnRFbmQsIEluamVjdEluQWxsRnJhbWVzKTsKIH0KIAogc3RhdGljIGJvb2wg
bmVlZHNPdXRsb29rUXVpcmtzU2NyaXB0KCkKQEAgLTY2Myw3ICs2NjMsNyBAQCAtKHZvaWQpX2lu
amVjdE91dGxvb2tRdWlya3NTY3JpcHQKIHsKICAgICBzdGF0aWMgTlNTdHJpbmcgKm91dGxvb2tR
dWlya3NTY3JpcHRDb250ZW50cyA9IGxlYWtPdXRsb29rUXVpcmtzVXNlclNjcmlwdENvbnRlbnRz
KCk7CiAgICAgY29yZShzZWxmKS0+Z3JvdXAoKS5hZGRVc2VyU2NyaXB0VG9Xb3JsZChjb3JlKFtX
ZWJTY3JpcHRXb3JsZCB3b3JsZF0pLAotICAgICAgICBvdXRsb29rUXVpcmtzU2NyaXB0Q29udGVu
dHMsIEtVUkwoKSwgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+KCksIFBhc3NPd25QdHI8VmVj
dG9yPFN0cmluZz4gPigpLCBJbmplY3RBdERvY3VtZW50RW5kLCBJbmplY3RJbkFsbEZyYW1lcyk7
CisgICAgICAgIG91dGxvb2tRdWlya3NTY3JpcHRDb250ZW50cywgS1VSTCgpLCBudWxscHRyLCBu
dWxscHRyLCBJbmplY3RBdERvY3VtZW50RW5kLCBJbmplY3RJbkFsbEZyYW1lcyk7CiB9CiAKIC0g
KHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFt
ZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdyb3VwTmFtZSB1c2VzRG9jdW1lbnRWaWV3czoo
Qk9PTCl1c2VzRG9jdW1lbnRWaWV3cwpAQCAtMjU2Myw3ICsyNTYzLDcgQEAgc3RhdGljIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykK
ICAgICAvLyBDb252ZXJ0IHRoZSBwYXR0ZXJucyBpbnRvIFZlY3RvcnMuCiAgICAgTlNVSW50ZWdl
ciBjb3VudCA9IFtwYXR0ZXJucyBjb3VudF07CiAgICAgaWYgKGNvdW50ID09IDApCi0gICAgICAg
IHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gcGF0dGVybnNWZWN0b3IgPSBhZG9w
dFB0cihuZXcgVmVjdG9yPFN0cmluZz4pOwogICAgIGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8
IGNvdW50OyArK2kpIHsKICAgICAgICAgaWQgZW50cnkgPSBbcGF0dGVybnMgb2JqZWN0QXRJbmRl
eDppXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAzNmVhMmE2OTMwNTRlZTllMTYzNGVlZGUyYjQ3OWIwMzA5ZjI5
MzZhLi41ZTRlY2FkOWZiYTJkMmI0ZTNhYTc3YzI5ZGZjNWYxOTIyZmExOTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDUtMDIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFRha2UgYWR2YW50YWdlIG9mIGltcGxpY2l0IGNvbnZlcnNpb24gZnJv
bSBudWxscHRyX3QgdG8gUGFzc093blB0cgorCisgICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0
Lm9yZy9iLzU5OTY0PiBJbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gc3RkOjpudWxscHRyX3QgdG8g
UGFzc093blB0cgorICAgICAgICBkb2Vzbid0IHdvcmssIGJ1dCBzaG91bGQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJv
eHlRdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoK
KwogMjAxMS0wNS0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZTk1NzFlMTMzZDllMjg3OWZhODcxYmE5Njg1ZTVj
OTdjMzU0MmJjZC4uOWRhZmE3YjA5NTRhNTA1Njg4ZjYwZmE2YjRhNWVhYjMzNjRjMmFkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0z
NzcsNyArMzc3LDcgQEAgUGFzc093blB0cjxBcmd1bWVudERlY29kZXI+IENvbm5lY3Rpb246Ondh
aXRGb3JNZXNzYWdlKE1lc3NhZ2VJRCBtZXNzYWdlSUQsIHVpbnQKICAgICAgICAgfQogICAgIH0K
ICAgICAKLSAgICByZXR1cm4gUGFzc093blB0cjxBcmd1bWVudERlY29kZXI+KCk7CisgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPiBDb25uZWN0aW9u
OjpzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgdWludDY0X3Qgc3luY1JlcXVl
c3RJRCwgUGFzc093blB0cjxBcmd1bWVudEVuY29kZXI+IGVuY29kZXIsIGRvdWJsZSB0aW1lb3V0
KQpAQCAtMzg3LDcgKzM4Nyw3IEBAIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPiBDb25uZWN0
aW9uOjpzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3NhZ2VJRCwgdWluCiAKICAgICBpZiAo
IWlzVmFsaWQoKSkgewogICAgICAgICBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKLSAgICAg
ICAgcmV0dXJuIFBhc3NPd25QdHI8QXJndW1lbnREZWNvZGVyPigpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBQdXNoIHRoZSBwZW5kaW5nIHN5bmMgcmVwbHkgaW5m
b3JtYXRpb24gb24gb3VyIHN0YWNrLgpAQCAtMzk1LDcgKzM5NSw3IEBAIFBhc3NPd25QdHI8QXJn
dW1lbnREZWNvZGVyPiBDb25uZWN0aW9uOjpzZW5kU3luY01lc3NhZ2UoTWVzc2FnZUlEIG1lc3Nh
Z2VJRCwgdWluCiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRlTXV0
ZXgpOwogICAgICAgICBpZiAoIW1fc2hvdWxkV2FpdEZvclN5bmNSZXBsaWVzKSB7CiAgICAgICAg
ICAgICBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2UoKTsKLSAgICAgICAgICAgIHJldHVybiBQYXNz
T3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICB9CiAKICAgICAgICAgbV9wZW5kaW5nU3luY1JlcGxpZXMuYXBwZW5kKFBlbmRpbmdT
eW5jUmVwbHkoc3luY1JlcXVlc3RJRCkpOwpAQCAtNDU3LDcgKzQ1Nyw3IEBAIFBhc3NPd25QdHI8
QXJndW1lbnREZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2NF90IHN5
bmNSZXF1ZXN0SUQsCiAgICAgICAgIC8vIElmIHRoYXQgaGFwcGVucywgd2UgbmVlZCB0byBzdG9w
IHdhaXRpbmcsIG9yIHdlJ2xsIGhhbmcgc2luY2Ugd2Ugd29uJ3QgZ2V0CiAgICAgICAgIC8vIGFu
eSBtb3JlIGluY29taW5nIG1lc3NhZ2VzLgogICAgICAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAg
ICAgICAgIHJldHVybiBQYXNzT3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4oKTsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgICAgIC8vIFdlIGRpZG4ndCBmaW5kIGEgc3luYyByZXBs
eSB5ZXQsIGtlZXAgd2FpdGluZy4KICNpZiBQTEFURk9STShXSU4pCkBAIC00NzEsNyArNDcxLDcg
QEAgUGFzc093blB0cjxBcmd1bWVudERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVw
bHkodWludDY0X3Qgc3luY1JlcXVlc3RJRCwKICAgICBpZiAobV9jbGllbnQpCiAgICAgICAgIG1f
Y2xpZW50LT5zeW5jTWVzc2FnZVNlbmRUaW1lZE91dCh0aGlzKTsKIAotICAgIHJldHVybiBQYXNz
T3duUHRyPEFyZ3VtZW50RGVjb2Rlcj4oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9p
ZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdTeW5jUmVwbHkoUGFzc093blB0cjxBcmd1bWVu
dERlY29kZXI+IGFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAKaW5kZXggMTYyODNiYzk0M2Q0ZmU3MWJmZjU5
Y2ZjOTU3MTE3ODUzZjA1MzMwNy4uMTEzM2MyZjk2ZDI4OWM0MzA4ZWRjMGM2Y2U5ZGZlNzM4MzI5
MDU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRN
ZW51UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRNZW51UHJveHlRdC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBQYXNzT3duUHRyPFFNZW51PiBX
ZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxXZWJD
b250ZQogCiAgICAgLy8gRG8gbm90IHNob3cgc3ViLW1lbnVzIHdpdGgganVzdCBkaXNhYmxlZCBh
Y3Rpb25zLgogICAgIGlmIChtZW51LT5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBQYXNzT3du
UHRyPFFNZW51PigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGJvb2wgaXNBbnlB
Y3Rpb25FbmFibGVkID0gZmFsc2U7CiAgICAgUUxpc3Q8UUFjdGlvbiAqPiBhY3Rpb25zID0gbWVu
dS0+YWN0aW9ucygpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIFBhc3NPd25QdHI8UU1lbnU+IFdlYkNv
bnRleHRNZW51UHJveHlRdDo6Y3JlYXRlQ29udGV4dE1lbnUoY29uc3QgVmVjdG9yPFdlYkNvbnRl
CiAgICAgICAgICAgICBpc0FueUFjdGlvbkVuYWJsZWQgfD0gYWN0aW9ucy5hdChpKS0+aXNFbmFi
bGVkKCk7CiAgICAgfQogICAgIGlmICghaXNBbnlBY3Rpb25FbmFibGVkKQotICAgICAgICByZXR1
cm4gUGFzc093blB0cjxRTWVudT4oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBy
ZXR1cm4gbWVudS5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDQ2ZWQy
MmU0MjRjNjg0YzNhZmYxNzNiNmM4ZWQ4OGEwMzVmMjY3MjIuLmM0ODZhNmQ1OTgyNzVjOGQwZWFm
ZGY5ZjJiZTBmYjFhZDBkYzNiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yMTIsMTEg
KzIxMiwxMSBAQCBib29sIEluamVjdGVkQnVuZGxlOjppc1BhZ2VCb3hWaXNpYmxlKFdlYkZyYW1l
KiBmcmFtZSwgaW50IHBhZ2VJbmRleCkKIHN0YXRpYyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+
ID4gdG9TdHJpbmdWZWN0b3IoSW1tdXRhYmxlQXJyYXkqIHBhdHRlcm5zKQogewogICAgIGlmICgh
cGF0dGVybnMpCi0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzaXplX3Qgc2l6ZSA9ICBwYXR0ZXJucy0+
c2l6ZSgpOwogICAgIGlmICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8VmVjdG9y
PFN0cmluZz4gPigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE93blB0cjxWZWN0
b3I8U3RyaW5nPiA+IHBhdHRlcm5zVmVjdG9yID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJpbmc+
KTsKICAgICBwYXR0ZXJuc1ZlY3Rvci0+cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmlu
ZGV4IGEyOTc1Yzg3NzVmNTI5ZDc4Mzg0NjQzYzA1NDViODYxZjNmZjU1N2UuLmJhZjBmM2E0YThi
YTg3YjU4OTI3NWU1MzU4NmJiMjVmYjdkOTNlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtNDgsNyArNDgsNyBAQCBQYXNz
T3duUHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2Us
IGNvbnN0IFdlYlBhZ2VDcmVhdAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSB8
fCBQTEFURk9STShRVCkKICAgICAgICAgcmV0dXJuIERyYXdpbmdBcmVhSW1wbDo6Y3JlYXRlKHdl
YlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8RHJh
d2luZ0FyZWE+KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAgICAgY2FzZSBE
cmF3aW5nQXJlYVR5cGVDaHVua2VkVXBkYXRlOgogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYSh3ZWJQYWdlKSk7CkBAIC01OCw3ICs1OCw3IEBAIFBh
c3NPd25QdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFn
ZSwgY29uc3QgV2ViUGFnZUNyZWF0CiAjZW5kaWYKICAgICB9CiAKLSAgICByZXR1cm4gUGFzc093
blB0cjxEcmF3aW5nQXJlYT4oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogRHJhd2luZ0Fy
ZWE6OkRyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZSB0eXBlLCBXZWJQYWdlKiB3ZWJQYWdlKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQyZThl
MDQ2ZTZjNzRjYTI1MzRkMzVhMzNmNjYzNjBmNjFiOTVkODUuLjFiNWE4NDRhZGJkOGIwZTViMDUx
NzFmODFiYTBmMDY5MDI1OGEwZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNS0wMiAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGFrZSBhZHZhbnRhZ2Ugb2YgaW1wbGljaXQg
bnVsbHB0cl90IC0+IFBhc3NPd25QdHIgY29udmVyc2lvbgorCisgICAgICAgIEZpeGVzIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzU5OTY0PiBJbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gc3RkOjpudWxs
cHRyX3QgdG8gUGFzc093blB0cgorICAgICAgICBkb2Vzbid0IHdvcmssIGJ1dCBzaG91bGQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0NwcEJvdW5kQ2xhc3MuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisKIDIwMTEtMDUtMDIgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEluY29ycG9yYXRlIGEgcmV2aWV3
IGNvbW1lbnQgdGhhdCBJIG1pc3Rha2VubHkgb21pdHRlZCBmcm9tIG15IGxhc3QgY29tbWl0Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwQm91bmRDbGFzcy5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vQ3BwQm91bmRDbGFzcy5oCmluZGV4IGIw
ZWFiNmQ5MDI5MTc1ZjM2MTkwNGEzMmRmNTI2ODViNTIyZDQ0OWMuLmY3YjE5OGE0YWE5NWE1ZjMw
NjJmNzM0N2UyMjU3NzFlNTk3OWQxYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0NwcEJvdW5kQ2xhc3MuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9DcHBCb3VuZENsYXNzLmgKQEAgLTIwNSw3ICsyMDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgICAgICBPd25QdHI8Q2FsbGJhY2s+IGNhbGxiYWNrID0gYWRvcHRQdHIobmV3IE1lbWJlckNh
bGxiYWNrPFQ+KHN0YXRpY19jYXN0PFQqPih0aGlzKSwgbWV0aG9kKSk7CiAgICAgICAgICAgICBi
aW5kRmFsbGJhY2tDYWxsYmFjayhjYWxsYmFjay5yZWxlYXNlKCkpOwogICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIGJpbmRGYWxsYmFja0NhbGxiYWNrKFBhc3NPd25QdHI8Q2FsbGJhY2s+KCkp
OworICAgICAgICAgICAgYmluZEZhbGxiYWNrQ2FsbGJhY2sobnVsbHB0cik7CiAgICAgfQogCiAg
ICAgLy8gU29tZSBmaWVsZHMgYXJlIHByb3RlY3RlZCBiZWNhdXNlIHNvbWUgdGVzdHMgZGVwZW5k
IG9uIGFjY2Vzc2luZyB0aGVtLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCmluZGV4IDQ3NTczZGM2NTliNTZiOWExZmRlODFhNjMwM2E4ZDM4ZTczZTNh
MTcuLjM2NmM3MmM2YTMzZDVjMDI5NDdhYTdiYjE1MWFmYWQ2OGQ4MTgwMDUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTEyOTcsNyArMTI5
Nyw3IEBAIGJvb2wgV2ViVmlld0hvc3Q6Om5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50
cnkmIGVudHJ5LCBib29sIHJlbG9hZCkKICAgICB9CiAKICAgICAvLyBJbiBjYXNlIExvYWRSZXF1
ZXN0IGZhaWxlZCBiZWZvcmUgRGlkQ3JlYXRlRGF0YVNvdXJjZSB3YXMgY2FsbGVkLgotICAgIHNl
dFBlbmRpbmdFeHRyYURhdGEoUGFzc093blB0cjxUZXN0U2hlbGxFeHRyYURhdGE+KCkpOworICAg
IHNldFBlbmRpbmdFeHRyYURhdGEobnVsbHB0cik7CiAKICAgICAvLyBSZXN0b3JlIGZvY3VzIHRv
IHRoZSBtYWluIGZyYW1lIHByaW9yIHRvIGxvYWRpbmcgbmV3IHJlcXVlc3QuCiAgICAgLy8gVGhp
cyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhIGZvY3VzZWQgaWZyYW1lLiBPdGhlcndp
c2UsIHRoYXQK
</data>
<flag name="review"
          id="84910"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>