<?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>162568</bug_id>
          
          <creation_ts>2016-09-26 10:41:47 -0700</creation_ts>
          <short_desc>[WK2] BlobDownloadClient should use asynchronous IPC to decide destination path</short_desc>
          <delta_ts>2016-09-26 15:22:54 -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>WebKit2</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>162543</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233462</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 10:41:47 -0700</bug_when>
    <thetext>BlobDownloadClient should use asynchronous IPC to decide destination path. It currently uses a synchronous IPC to do so which leads to flakiness such as Bug 162543.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233541</commentid>
    <comment_count>1</comment_count>
      <attachid>289854</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 13:16:43 -0700</bug_when>
    <thetext>Created attachment 289854
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233556</commentid>
    <comment_count>2</comment_count>
      <attachid>289862</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 13:38:21 -0700</bug_when>
    <thetext>Created attachment 289862
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233571</commentid>
    <comment_count>3</comment_count>
      <attachid>289866</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 14:19:13 -0700</bug_when>
    <thetext>Created attachment 289866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233581</commentid>
    <comment_count>4</comment_count>
      <attachid>289866</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-26 14:35:11 -0700</bug_when>
    <thetext>Comment on attachment 289866
Patch

We really need a BlobDataTask and have it and NetworkDataTask inherit from a common interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233615</commentid>
    <comment_count>5</comment_count>
      <attachid>289866</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 15:22:47 -0700</bug_when>
    <thetext>Comment on attachment 289866
Patch

Clearing flags on attachment: 289866

Committed r206397: &lt;http://trac.webkit.org/changeset/206397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233616</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-09-26 15:22:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289854</attachid>
            <date>2016-09-26 13:16:43 -0700</date>
            <delta_ts>2016-09-26 13:38:21 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>162568_Blob_async_destinationPath_wip.patch</filename>
            <type>text/plain</type>
            <size>18297</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IDQ0YTA4ZTYuLjllM2Y1
OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1kb3dubG9hZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQg
QEAKLURvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQg
c3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93
bmxvYWQgY29tcGxldGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9h
ZC1zZXQtZXhwZWN0ZWQudHh0CmluZGV4IDQ0YTA4ZTYuLjllM2Y1OGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNl
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLURv
d25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQgc3RhcnRl
ZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQg
Y29tcGxldGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LWJsb2ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi1leHBl
Y3RlZC50eHQKaW5kZXggNjg2YzExZC4uMGQ3NGNjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQt
YWxsb3ctYmxvYi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACi1Eb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZvby5wZGYiCiBEb3dubG9hZCBzdGFydGVkLgorRG93
bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmb28ucGRmIgogRG93bmxvYWQg
Y29tcGxldGVkLgogVGVzdHMgdGhhdCBhIHN1Z2dlc3RlZCBmaWxlbmFtZSBvbiBhIGRvd25sb2Fk
IGF0dHJpYnV0ZSBpcyBhbGxvd2VkIGlmIHRoZSBsaW5rIGlzIGEgYmxvYiBVUkwuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYmQyNTk3
Li4yOWEzYTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTAsOSArMjEwLDYgQEAgd2Via2l0Lm9yZy9iLzExNzk2MiBtZWRpYS92aWRl
by1wbGF5ZWQtY29sbGFwc2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8x
MzYxMDkgZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIAotIyBGbGFreSBvbiBXZWJLaXQyLgotd2Via2l0Lm9yZy9iLzE2MjU0
MyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi0KICMgUmVmZXJlbmNlIGV4cGVjdGF0aW9uIGRvZXNuJ3QgZW5kIHVwIGluIGNv
bXBvc2l0aW5nIGNvZGUgcGF0aCwgbGVhZGluZyB0byBhbnRpYWxpYXNpbmcgZGlmZmVyZW5jZXMu
CiB3ZWJraXQub3JnL2IvMTMyNDIxIGZhc3QvbXVsdGljb2wvZml4ZWQtc3RhY2suaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggOTBiOGIxNi4uODUzYjFlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNl
SGFuZGxlLmNwcApAQCAtMTU4LDcgKzE1OCwxMSBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6
Y2FuY2VsKCkKIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCkKIHsKLSAgICAvLyBCbG9iUmVzb3VyY2VIYW5kbGUgZG9lc24ndCB3YWl0IGZvciBk
aWRSZWNlaXZlUmVzcG9uc2UsIGFuZCBpdCBjdXJyZW50bHkgY2Fubm90IGJlIHVzZWQgZm9yIGRv
d25sb2FkaW5nLgorICAgIEFTU0VSVChtX2FzeW5jKTsKKyAgICBBU1NFUlQodXNlc0FzeW5jQ2Fs
bGJhY2tzKCkpOworCisgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgIHJlYWRB
c3luYygpOwogfQogCiB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpAQCAtMjIzLDgg
KzIyNywxMCBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Z2V0U2l6ZUZvck5leHQoKQogICAg
ICAgICBpZiAobV9hc3luYykgewogICAgICAgICAgICAgUmVmPEJsb2JSZXNvdXJjZUhhbmRsZT4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgICAgICAgICBub3RpZnlSZXNwb25zZSgpOwotICAg
ICAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOwotICAgICAgICAgICAgcmVhZEFz
eW5jKCk7CisgICAgICAgICAgICBpZiAoIXVzZXNBc3luY0NhbGxiYWNrcygpKSB7CisgICAgICAg
ICAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICAgICAgICAgIHJl
YWRBc3luYygpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC01NjgsOSArNTc0LDYgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJl
c3BvbnNlT25TdWNjZXNzKCkKICAgICAvLyBhcyBpZiB0aGUgcmVzcG9uc2UgaGFkIGEgQ29udGVu
dC1EaXNwb3NpdGlvbiBoZWFkZXIgd2l0aCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIHNldCB0byB0
aGUgRmlsZSdzIG5hbWUgYXR0cmlidXRlLgogICAgIC8vIE5vdGFibHksIHRoaXMgd2lsbCBhZmZl
Y3QgYSBuYW1lIHN1Z2dlc3RlZCBpbiAiRmlsZSBTYXZlIEFzIi4KIAotICAgIC8vIEJsb2JSZXNv
dXJjZUhhbmRsZSBjYW5ub3QgYmUgdXNlZCB3aXRoIGRvd25sb2FkaW5nLCBhbmQgZG9lc24ndCBl
dmVuIHdhaXQgZm9yIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlLgotICAgIC8vIEl0J3MgY3Vy
cmVudGx5IGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGtub3cgdGhhdCBkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyBjYW5ub3QgYmUgdXNlZCB0byBjb252ZXJ0IGEKLSAgICAvLyBsb2FkIGludG8g
YSBkb3dubG9hZCBvciBibG9icy4KICAgICBpZiAodXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAgICAg
ICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJlc3Bv
bnNlKSk7CiAgICAgZWxzZQpAQCAtNTk3LDggKzYwMCw2IEBAIHZvaWQgQmxvYlJlc291cmNlSGFu
ZGxlOjpub3RpZnlSZXNwb25zZU9uRXJyb3IoKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICAvLyBOb3RlIHRoYXQgd2UgZG9uJ3Qgd2FpdCBmb3IgY29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2Ugd2hlbiB1c2luZyBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYy4KLSAgICAvLyBUaGlzIGlzIG5v
dCBmb3JtYWxseSBjb3JyZWN0LCBidXQgdGhlIGNsaWVudCBoYXMgdG8gYmUgYSBuby1vcCBhbnl3
YXksIGJlY2F1c2UgYmxvYnMgY2FuJ3QgYmUgZG93bmxvYWRlZC4KICAgICBpZiAodXNlc0FzeW5j
Q2FsbGJhY2tzKCkpCiAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0
aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50
LmNwcAppbmRleCBiZmE0YzI5Li40OTA5MDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNw
cApAQCAtNDEsMTIgKzQxLDE3IEBAIEJsb2JEb3dubG9hZENsaWVudDo6QmxvYkRvd25sb2FkQ2xp
ZW50KERvd25sb2FkJiBkb3dubG9hZCkKIHsKIH0KIAotdm9pZCBCbG9iRG93bmxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiBy
ZXNwb25zZSkKK3ZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3lu
YyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKKyAgICBX
VEZMb2dBbHdheXMoImRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKCkiKTsKICAgICBtX2Rvd25sb2Fk
LmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgbV9kb3dubG9hZC5k
ZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG1fZG93bmxvYWQuc3Vn
Z2VzdGVkTmFtZSgpKTsKK30KIAotICAgIGJvb2wgYWxsb3dPdmVyd3JpdGUgPSBmYWxzZTsKLSAg
ICBtX2Rlc3RpbmF0aW9uUGF0aCA9IG1fZG93bmxvYWQuZGVjaWRlRGVzdGluYXRpb25XaXRoU3Vn
Z2VzdGVkRmlsZW5hbWUobV9kb3dubG9hZC5zdWdnZXN0ZWROYW1lKCksIGFsbG93T3ZlcndyaXRl
KTsKK3ZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9u
KGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBib29sIGFsbG93T3ZlcndyaXRlKQorewor
ICAgIFdURkxvZ0Fsd2F5cygiZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbiglcykiLCBkZXN0
aW5hdGlvblBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgbV9kZXN0aW5hdGlvblBhdGggPSBkZXN0
aW5hdGlvblBhdGg7CiAgICAgaWYgKG1fZGVzdGluYXRpb25QYXRoLmlzRW1wdHkoKSkgewogICAg
ICAgICBkaWRGYWlsKG51bGxwdHIsIGNhbmNlbGxlZEVycm9yKG1fZG93bmxvYWQucmVxdWVzdCgp
KSk7CiAgICAgICAgIHJldHVybjsKQEAgLTYyLDE2ICs2NywyMCBAQCB2b2lkIEJsb2JEb3dubG9h
ZENsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXNw
b25zZSYmCiAKICAgICBtX2Rlc3RpbmF0aW9uRmlsZSA9IG9wZW5GaWxlKG1fZGVzdGluYXRpb25Q
YXRoLCBPcGVuRm9yV3JpdGUpOwogICAgIG1fZG93bmxvYWQuZGlkQ3JlYXRlRGVzdGluYXRpb24o
bV9kZXN0aW5hdGlvblBhdGgpOworCisgICAgbV9kb3dubG9hZC5jb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOwogfQogCiB2b2lkIEJsb2JEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZUJ1ZmZl
cihSZXNvdXJjZUhhbmRsZSosIFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQpCiB7Cisg
ICAgV1RGTG9nQWx3YXlzKCJkaWRSZWNlaXZlQnVmZmVyKCkiKTsKICAgICB3cml0ZVRvRmlsZSht
X2Rlc3RpbmF0aW9uRmlsZSwgYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKICAgICBt
X2Rvd25sb2FkLmRpZFJlY2VpdmVEYXRhKGJ1ZmZlci0+c2l6ZSgpKTsKIH0KIAogdm9pZCBCbG9i
RG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUp
CiB7CisgICAgV1RGTG9nQWx3YXlzKCJkaWRGaW5pc2hMb2FkaW5nKCkiKTsKICAgICBjbG9zZUZp
bGUobV9kZXN0aW5hdGlvbkZpbGUpOwogICAgIG1fZG93bmxvYWQuZGlkRmluaXNoKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRv
d25sb2FkQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
QmxvYkRvd25sb2FkQ2xpZW50LmgKaW5kZXggNjI1YTgyZS4uZGNiODg5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93
bmxvYWRDbGllbnQuaApAQCAtMzksMTMgKzM5LDE1IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBC
bG9iRG93bmxvYWRDbGllbnQoRG93bmxvYWQmKTsKIAogICAgIHZvaWQgZGlkQ2FuY2VsKCk7Cisg
ICAgdm9pZCBkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25QYXRoLCBib29sIGFsbG93T3ZlcndyaXRlKTsKIAogcHJpdmF0ZToKICAgICAvLyBSZXNv
dXJjZUhhbmRsZUNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCdWZm
ZXIoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYm
LCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIGZp
bmFsOwogICAgIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICBib29sIHVzZXNBc3luY0NhbGxiYWNr
cygpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIERvd25sb2FkJiBtX2Rvd25sb2FkOwog
ICAgIFN0cmluZyBtX2Rlc3RpbmF0aW9uUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDcyY2YwNzMuLjdmOTky
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkLmNwcApAQCAtMTQ2LDYgKzE0Niw4IEBAIGJvb2wgRG93bmxvYWQ6OnNob3VsZERl
Y29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAorI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQorCiBTdHJpbmcgRG93
bmxvYWQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYgZmlsZW5hbWUsIGJvb2wmIGFsbG93T3ZlcndyaXRlKQogewogICAgIFN0cmluZyBkZXN0aW5h
dGlvbjsKQEAgLTE2MCw2ICsxNjIsMzQgQEAgU3RyaW5nIERvd25sb2FkOjpkZWNpZGVEZXN0aW5h
dGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLAogICAgIHJl
dHVybiBkZXN0aW5hdGlvbjsKIH0KIAorI2VuZGlmCisKK3ZvaWQgRG93bmxvYWQ6OmRlY2lkZURl
c3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRGaWxlbmFtZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKGRvd25sb2FkSUQoKSwgc3VnZ2Vz
dGVkRmlsZW5hbWUpKTsKK30KKwordm9pZCBEb3dubG9hZDo6ZGlkRGVjaWRlRG93bmxvYWREZXN0
aW5hdGlvbihjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRl
KQoreworICAgIEFTU0VSVCghbV9zYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBtX3NhbmRib3hFeHRl
bnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7
CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9u
LT5jb25zdW1lKCk7CisKKyAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkp
IHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8QmxvYkRvd25sb2FkQ2xpZW50Kj4obV9kb3dubG9hZENs
aWVudC5nZXQoKSktPmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24oZGVzdGluYXRpb25QYXRo
LCBhbGxvd092ZXJ3cml0ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGb3Ig
bm93LCBvbmx5IEJsb2IgVVJMIGRvd25sb2FkcyBnbyB0aHJvdWdoIHRoaXMgY29kZSBwYXRoLgor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIERvd25sb2FkOjpjb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZSgpCit7CisgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2UoKTsKK30KKwogdm9pZCBEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRp
b24oY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJv
eHk6OkRpZENyZWF0ZURlc3RpbmF0aW9uKHBhdGgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKaW5kZXggM2IwMDRkMi4uMTZhOWY3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmgKQEAgLTEwMCw3ICsxMDAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGxlbmd0aCk7CiAgICAgYm9vbCBzaG91bGREZWNvZGVTb3Vy
Y2VEYXRhT2ZNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyNpZiAhVVNFKE5FVFdP
UktfU0VTU0lPTikKICAgICBTdHJpbmcgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgYm9vbCYgYWxsb3dPdmVyd3JpdGUpOworI2Vu
ZGlmCisgICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5j
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOwogICAgIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBw
YXRoKTsKICAgICB2b2lkIGRpZEZpbmlzaCgpOwogICAgIHZvaWQgcGxhdGZvcm1EaWRGaW5pc2go
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggYjBhNjg4ZC4uNDA3NTU4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5jcHAKQEAgLTEwNSwyNSArMTA1LDYgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6
OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihOZXR3b3JrRGF0YVRhc2smIG5l
dHcKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9u
LnNldChkb3dubG9hZElELCBzdGQ6Om1ha2VfcGFpcjxSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiwg
UmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcj4oJm5ldHdvcmtEYXRhVGFzaywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0
LmlzTmV3RW50cnkpOwogfQotCi12b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQ
ZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBk
ZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQotewotICAgIGF1dG8gcGFpciA9IG1fZG93
bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLnRha2UoZG93bmxvYWRJRCk7Ci0gICAgYXV0byBu
ZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwotICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKLSAgICBpZiAoIW5ldHdvcmtEYXRhVGFz
ayB8fCAhY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG5ldHdvcmtE
YXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24sIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUpOwotICAgIAotICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBmaWxlRXhp
c3RzKGRlc3RpbmF0aW9uKSkKLSAgICAgICAgZGVsZXRlRmlsZShkZXN0aW5hdGlvbik7Ci0KLSAg
ICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lEb3dubG9hZCk7Ci0gICAgCi0gICAgQVNTRVJUKCFt
X2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsK
LSAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNldChkb3dubG9hZElELCBu
ZXR3b3JrRGF0YVRhc2spOwotfQogI2Vsc2UKIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb252ZXJ0
SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElEIGRvd25sb2FkSUQsIFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCiB7CkBAIC0xMzUsNiArMTE2LDMyIEBAIHZvaWQgRG93bmxvYWRNYW5h
Z2VyOjpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElEIGRvd25sb2FkSUQsIFJlc291
cmNlSGFuCiB9CiAjZW5kaWYKIAordm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlRGVjaWRl
UGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcg
ZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyNpZiBVU0UoTkVUV09SS19TRVNT
SU9OKQorICAgIGlmIChtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5jb250YWlucyhk
b3dubG9hZElEKSkgeworICAgICAgICBhdXRvIHBhaXIgPSBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JE
ZXN0aW5hdGlvbi50YWtlKGRvd25sb2FkSUQpOworICAgICAgICBhdXRvIG5ldHdvcmtEYXRhVGFz
ayA9IFdURk1vdmUocGFpci5maXJzdCk7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgaWYgKCFuZXR3b3JrRGF0YVRhc2sgfHwg
IWNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG5ldHdv
cmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24sIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOworCisgICAgICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBmaWxl
RXhpc3RzKGRlc3RpbmF0aW9uKSkKKyAgICAgICAgICAgIGRlbGV0ZUZpbGUoZGVzdGluYXRpb24p
OworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeURvd25sb2FkKTsKKworICAgICAg
ICBBU1NFUlQoIW1fZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93
bmxvYWRJRCkpOworICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNl
dChkb3dubG9hZElELCBuZXR3b3JrRGF0YVRhc2spOworICAgICAgICByZXR1cm47CisgICAgfQor
I2VuZGlmCisgICAgaWYgKGF1dG8qIHdhaXRpbmdEb3dubG9hZCA9IGRvd25sb2FkKGRvd25sb2Fk
SUQpKQorICAgICAgICB3YWl0aW5nRG93bmxvYWQtPmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRp
b24oZGVzdGluYXRpb24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlKTsK
K30KKwogdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2FkKFNlc3Npb25JRCwgRG93
bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEs
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmgKaW5kZXggOTg3NmE4NC4uODYzMjMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaApAQCAt
ODAsMTAgKzgwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZShEb3dubG9hZElELCBib29sIGNhbkF1dGhlbnRpY2F0ZSk7
CiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3dubG9hZElELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCB3aWxsRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVz
dGluYXRpb24oTmV0d29ya0RhdGFUYXNrJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKTsK
LSAgICB2b2lkIGNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxv
YWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
LCBib29sIGFsbG93T3ZlcndyaXRlKTsKICNlbHNlCiAgICAgdm9pZCBjb252ZXJ0SGFuZGxlVG9E
b3dubG9hZChEb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
ICNlbmRpZgorICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlv
bihEb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCiAgICAgdm9pZCByZXN1bWVEb3dubG9h
ZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwCmluZGV4IDU5NmU4ZjUuLjRhMDAwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTE0OSw3ICsxNDksNiBAQCB2b2lkIE5ldHdv
cmtMb2FkOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiBuZXdSZXF1ZXN0KQogdm9pZCBOZXR3b3JrTG9hZDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2UoKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgQVNTRVJUKG1fcmVzcG9uc2VD
b21wbGV0aW9uSGFuZGxlcik7CiAgICAgaWYgKG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcikg
ewogICAgICAgICBtX3Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIoUG9saWN5VXNlKTsKICAgICAg
ICAgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzMTllNDJmLi42
NzQxZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC01MjUsNyArNTI1LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmluZFBl
bmRpbmdEb3dubG9hZExvY2F0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29ya0RhdGFUYXMKICAg
ICBkb3dubG9hZE1hbmFnZXIoKS53aWxsRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24o
bmV0d29ya0RhdGFUYXNrLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgZG93bmxv
YWRQcm94eUNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRl
RGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhuZXR3b3JrRGF0YVRhc2sucGVu
ZGluZ0Rvd25sb2FkSUQoKSwgbmV0d29ya0RhdGFUYXNrLnN1Z2dlc3RlZEZpbGVuYW1lKCkpLCBk
ZXN0aW5hdGlvbklEKTsKIH0KLSAgICAKKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
b250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxv
YWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiB7CiAgICAgaWYg
KGRlc3RpbmF0aW9uLmlzRW1wdHkoKSkKQEAgLTUzMyw3ICs1MzQsNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2Fk
SUQgZG93bmxvYQogICAgIGVsc2UKICAgICAgICAgZG93bmxvYWRNYW5hZ2VyKCkuY29udGludWVE
ZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihkb3dubG9hZElELCBkZXN0aW5hdGlvbiwg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYWxsb3dPdmVyd3JpdGUpOwogfQotI2VuZGlmCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9kZWwodWludDMyX3QgY20pCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBmYTU1NGM3
Li5kMGY1MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKQEAgLTE3OSw4ICsxNzksOSBAQCBwcml2YXRlOgogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pCiAgICAgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2VEb3dubG9hZChEb3dubG9hZElELCBib29sIGNhbkF1dGhlbnRpY2F0ZSk7CiAgICAgdm9p
ZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik7Ci0gICAgdm9pZCBjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0
aW9uKERvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKTsK
ICNlbmRpZgorICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlv
bihEb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisK
ICAgICB2b2lkIHNldENhY2hlTW9kZWwodWludDMyX3QpOwogICAgIHZvaWQgYWxsb3dTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGNvbnN0IFN0cmluZyYgaG9zdCk7CiAgICAgdm9pZCBzZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRy
dXN0RXZhbHVhdGlvbihib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZGY0MGNmMC4uNzU2MjM5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUxLDggKzUxLDggQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAg
Q29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlRG93bmxvYWQoV2Vi
S2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIGJvb2wgY2FuQXV0aGVudGljYXRlKQogICAgIENv
bnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKLSAgICBDb250aW51ZURlY2lkZVBlbmRpbmdE
b3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcg
ZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAjZW5kaWYKKyAgICBDb250aW51ZURl
Y2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9h
ZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAKICAgICBTZXRQ
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykKICNpZiBQTEFURk9STShDT0NPQSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289862</attachid>
            <date>2016-09-26 13:38:21 -0700</date>
            <delta_ts>2016-09-26 14:19:09 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>162568_Blob_async_destinationPath_wip.patch</filename>
            <type>text/plain</type>
            <size>22517</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1kb3dubG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IDQ0YTA4ZTYuLjllM2Y1
OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1kb3dubG9hZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQg
QEAKLURvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQg
c3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93
bmxvYWQgY29tcGxldGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9h
ZC1zZXQtZXhwZWN0ZWQudHh0CmluZGV4IDQ0YTA4ZTYuLjllM2Y1OGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNl
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLURv
d25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQgc3RhcnRl
ZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiIgogRG93bmxvYWQg
Y29tcGxldGVkLgogQmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvYW5jaG9yLWRvd25sb2FkLWFsbG93LWJsb2ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi1leHBl
Y3RlZC50eHQKaW5kZXggNjg2YzExZC4uMGQ3NGNjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctYmxvYi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQt
YWxsb3ctYmxvYi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACi1Eb3dubG9hZGluZyBVUkwg
d2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImZvby5wZGYiCiBEb3dubG9hZCBzdGFydGVkLgorRG93
bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmb28ucGRmIgogRG93bmxvYWQg
Y29tcGxldGVkLgogVGVzdHMgdGhhdCBhIHN1Z2dlc3RlZCBmaWxlbmFtZSBvbiBhIGRvd25sb2Fk
IGF0dHJpYnV0ZSBpcyBhbGxvd2VkIGlmIHRoZSBsaW5rIGlzIGEgYmxvYiBVUkwuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYmQyNTk3
Li4yOWEzYTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMTAsOSArMjEwLDYgQEAgd2Via2l0Lm9yZy9iLzExNzk2MiBtZWRpYS92aWRl
by1wbGF5ZWQtY29sbGFwc2UuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8x
MzYxMDkgZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbCAgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIAotIyBGbGFreSBvbiBXZWJLaXQyLgotd2Via2l0Lm9yZy9iLzE2MjU0
MyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi0KICMgUmVmZXJlbmNlIGV4cGVjdGF0aW9uIGRvZXNuJ3QgZW5kIHVwIGluIGNv
bXBvc2l0aW5nIGNvZGUgcGF0aCwgbGVhZGluZyB0byBhbnRpYWxpYXNpbmcgZGlmZmVyZW5jZXMu
CiB3ZWJraXQub3JnL2IvMTMyNDIxIGZhc3QvbXVsdGljb2wvZml4ZWQtc3RhY2suaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggOTBiOGIxNi4uODUzYjFlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNl
SGFuZGxlLmNwcApAQCAtMTU4LDcgKzE1OCwxMSBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6
Y2FuY2VsKCkKIAogdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCkKIHsKLSAgICAvLyBCbG9iUmVzb3VyY2VIYW5kbGUgZG9lc24ndCB3YWl0IGZvciBk
aWRSZWNlaXZlUmVzcG9uc2UsIGFuZCBpdCBjdXJyZW50bHkgY2Fubm90IGJlIHVzZWQgZm9yIGRv
d25sb2FkaW5nLgorICAgIEFTU0VSVChtX2FzeW5jKTsKKyAgICBBU1NFUlQodXNlc0FzeW5jQ2Fs
bGJhY2tzKCkpOworCisgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgIHJlYWRB
c3luYygpOwogfQogCiB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQpAQCAtMjIzLDgg
KzIyNywxMCBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6Z2V0U2l6ZUZvck5leHQoKQogICAg
ICAgICBpZiAobV9hc3luYykgewogICAgICAgICAgICAgUmVmPEJsb2JSZXNvdXJjZUhhbmRsZT4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgICAgICAgICBub3RpZnlSZXNwb25zZSgpOwotICAg
ICAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOwotICAgICAgICAgICAgcmVhZEFz
eW5jKCk7CisgICAgICAgICAgICBpZiAoIXVzZXNBc3luY0NhbGxiYWNrcygpKSB7CisgICAgICAg
ICAgICAgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworICAgICAgICAgICAgICAgIHJl
YWRBc3luYygpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC01NjgsOSArNTc0LDYgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJl
c3BvbnNlT25TdWNjZXNzKCkKICAgICAvLyBhcyBpZiB0aGUgcmVzcG9uc2UgaGFkIGEgQ29udGVu
dC1EaXNwb3NpdGlvbiBoZWFkZXIgd2l0aCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIHNldCB0byB0
aGUgRmlsZSdzIG5hbWUgYXR0cmlidXRlLgogICAgIC8vIE5vdGFibHksIHRoaXMgd2lsbCBhZmZl
Y3QgYSBuYW1lIHN1Z2dlc3RlZCBpbiAiRmlsZSBTYXZlIEFzIi4KIAotICAgIC8vIEJsb2JSZXNv
dXJjZUhhbmRsZSBjYW5ub3QgYmUgdXNlZCB3aXRoIGRvd25sb2FkaW5nLCBhbmQgZG9lc24ndCBl
dmVuIHdhaXQgZm9yIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlLgotICAgIC8vIEl0J3MgY3Vy
cmVudGx5IGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGtub3cgdGhhdCBkaWRSZWNlaXZlUmVz
cG9uc2VBc3luYyBjYW5ub3QgYmUgdXNlZCB0byBjb252ZXJ0IGEKLSAgICAvLyBsb2FkIGludG8g
YSBkb3dubG9hZCBvciBibG9icy4KICAgICBpZiAodXNlc0FzeW5jQ2FsbGJhY2tzKCkpCiAgICAg
ICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJlc3Bv
bnNlKSk7CiAgICAgZWxzZQpAQCAtNTk3LDggKzYwMCw2IEBAIHZvaWQgQmxvYlJlc291cmNlSGFu
ZGxlOjpub3RpZnlSZXNwb25zZU9uRXJyb3IoKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICAvLyBOb3RlIHRoYXQgd2UgZG9uJ3Qgd2FpdCBmb3IgY29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2Ugd2hlbiB1c2luZyBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYy4KLSAgICAvLyBUaGlzIGlzIG5v
dCBmb3JtYWxseSBjb3JyZWN0LCBidXQgdGhlIGNsaWVudCBoYXMgdG8gYmUgYSBuby1vcCBhbnl3
YXksIGJlY2F1c2UgYmxvYnMgY2FuJ3QgYmUgZG93bmxvYWRlZC4KICAgICBpZiAodXNlc0FzeW5j
Q2FsbGJhY2tzKCkpCiAgICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0
aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50
LmNwcAppbmRleCBiZmE0YzI5Li5jYWExYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNw
cApAQCAtNDEsMjcgKzQxLDI5IEBAIEJsb2JEb3dubG9hZENsaWVudDo6QmxvYkRvd25sb2FkQ2xp
ZW50KERvd25sb2FkJiBkb3dubG9hZCkKIHsKIH0KIAotdm9pZCBCbG9iRG93bmxvYWRDbGllbnQ6
OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiBy
ZXNwb25zZSkKK3ZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3lu
YyhSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKICAgICBt
X2Rvd25sb2FkLmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgbV9k
b3dubG9hZC5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG1fZG93
bmxvYWQuc3VnZ2VzdGVkTmFtZSgpKTsKK30KIAotICAgIGJvb2wgYWxsb3dPdmVyd3JpdGUgPSBm
YWxzZTsKLSAgICBtX2Rlc3RpbmF0aW9uUGF0aCA9IG1fZG93bmxvYWQuZGVjaWRlRGVzdGluYXRp
b25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUobV9kb3dubG9hZC5zdWdnZXN0ZWROYW1lKCksIGFsbG93
T3ZlcndyaXRlKTsKLSAgICBpZiAobV9kZXN0aW5hdGlvblBhdGguaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGRpZEZhaWwobnVsbHB0ciwgY2FuY2VsbGVkRXJyb3IobV9kb3dubG9hZC5yZXF1ZXN0KCkp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoZmlsZUV4aXN0cyhtX2Rlc3RpbmF0
aW9uUGF0aCkpIHsKK3ZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWREZWNpZGVEb3dubG9hZERl
c3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBib29sIGFsbG93T3Zlcndy
aXRlKQoreworICAgIEFTU0VSVCghZGVzdGluYXRpb25QYXRoLmlzRW1wdHkoKSk7CisKKyAgICBp
ZiAoZmlsZUV4aXN0cyhkZXN0aW5hdGlvblBhdGgpKSB7CiAgICAgICAgIGlmICghYWxsb3dPdmVy
d3JpdGUpIHsKLSAgICAgICAgICAgIG1fZGVzdGluYXRpb25QYXRoID0gZW1wdHlTdHJpbmcoKTsK
ICAgICAgICAgICAgIGRpZEZhaWwobnVsbHB0ciwgY2FuY2VsbGVkRXJyb3IobV9kb3dubG9hZC5y
ZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBkZWxl
dGVGaWxlKG1fZGVzdGluYXRpb25QYXRoKTsKKyAgICAgICAgZGVsZXRlRmlsZShkZXN0aW5hdGlv
blBhdGgpOwogICAgIH0KIAorICAgIG1fZGVzdGluYXRpb25QYXRoID0gZGVzdGluYXRpb25QYXRo
OwogICAgIG1fZGVzdGluYXRpb25GaWxlID0gb3BlbkZpbGUobV9kZXN0aW5hdGlvblBhdGgsIE9w
ZW5Gb3JXcml0ZSk7CiAgICAgbV9kb3dubG9hZC5kaWRDcmVhdGVEZXN0aW5hdGlvbihtX2Rlc3Rp
bmF0aW9uUGF0aCk7CisKKyAgICBtX2Rvd25sb2FkLmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCk7CiB9CiAKIHZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlQnVmZmVyKFJlc291
cmNlSGFuZGxlKiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxv
YWRDbGllbnQuaAppbmRleCA2MjVhODJlLi5kY2I4ODlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVu
dC5oCkBAIC0zOSwxMyArMzksMTUgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEJsb2JEb3dubG9h
ZENsaWVudChEb3dubG9hZCYpOwogCiAgICAgdm9pZCBkaWRDYW5jZWwoKTsKKyAgICB2b2lkIGRp
ZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblBhdGgs
IGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCiBwcml2YXRlOgogICAgIC8vIFJlc291cmNlSGFuZGxl
Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlQXN5bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZSosIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBv
cnRlZEVuY29kZWREYXRhTGVuZ3RoKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgZmluYWw7CiAgICAg
dm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIGZpbmFsOworICAgIGJvb2wgdXNlc0FzeW5jQ2FsbGJhY2tzKCkgZmluYWwg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgRG93bmxvYWQmIG1fZG93bmxvYWQ7CiAgICAgU3RyaW5n
IG1fZGVzdGluYXRpb25QYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggNzJjZjA3My4uN2Y5OTI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
Y3BwCkBAIC0xNDYsNiArMTQ2LDggQEAgYm9vbCBEb3dubG9hZDo6c2hvdWxkRGVjb2RlU291cmNl
RGF0YU9mTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCisjaWYgIVVTRShORVRXT1JLX1NFU1NJT04pCisKIFN0cmluZyBEb3dubG9hZDo6ZGVj
aWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFt
ZSwgYm9vbCYgYWxsb3dPdmVyd3JpdGUpCiB7CiAgICAgU3RyaW5nIGRlc3RpbmF0aW9uOwpAQCAt
MTYwLDYgKzE2MiwzNCBAQCBTdHJpbmcgRG93bmxvYWQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1
Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsCiAgICAgcmV0dXJuIGRlc3Rp
bmF0aW9uOwogfQogCisjZW5kaWYKKwordm9pZCBEb3dubG9hZDo6ZGVjaWRlRGVzdGluYXRpb25X
aXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoZG93bmxvYWRJRCgpLCBzdWdnZXN0ZWRGaWxlbmFt
ZSkpOworfQorCit2b2lkIERvd25sb2FkOjpkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit7CisgICAg
QVNTRVJUKCFtX3NhbmRib3hFeHRlbnNpb24pOworICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBpZiAo
bV9zYW5kYm94RXh0ZW5zaW9uKQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUo
KTsKKworICAgIGlmIChtX3JlcXVlc3QudXJsKCkucHJvdG9jb2xJc0Jsb2IoKSkgeworICAgICAg
ICBzdGF0aWNfY2FzdDxCbG9iRG93bmxvYWRDbGllbnQqPihtX2Rvd25sb2FkQ2xpZW50LmdldCgp
KS0+ZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihkZXN0aW5hdGlvblBhdGgsIGFsbG93T3Zl
cndyaXRlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZvciBub3csIG9ubHkg
QmxvYiBVUkwgZG93bmxvYWRzIGdvIHRocm91Z2ggdGhpcyBjb2RlIHBhdGguCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OmNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlKCkKK3sKKyAgICBtX3Jlc291cmNlSGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpOworfQorCiB2b2lkIERvd25sb2FkOjpkaWRDcmVhdGVEZXN0aW5hdGlvbihjb25zdCBT
dHJpbmcmIHBhdGgpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkQ3Jl
YXRlRGVzdGluYXRpb24ocGF0aCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAppbmRleCAzYjAwNGQyLi4xNmE5ZjdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaApA
QCAtMTAwLDcgKzEwMCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEodWludDY0X3QgbGVuZ3RoKTsKICAgICBib29sIHNob3VsZERlY29kZVNvdXJjZURhdGFPZk1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworI2lmICFVU0UoTkVUV09SS19TRVNTSU9O
KQogICAgIFN0cmluZyBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBib29sJiBhbGxvd092ZXJ3cml0ZSk7CisjZW5kaWYKKyAgICB2
b2lkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoY29uc3QgU3Ry
aW5nJik7CisgICAgdm9pZCBkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25QYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBib29s
IGFsbG93T3ZlcndyaXRlKTsKKyAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CiAgICAgdm9pZCBkaWRDcmVhdGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcmIHBhdGgpOwogICAg
IHZvaWQgZGlkRmluaXNoKCk7CiAgICAgdm9pZCBwbGF0Zm9ybURpZEZpbmlzaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRNYW5hZ2VyLmNwcAppbmRleCBiMGE2ODhkLi40MDc1NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmNwcApAQCAtMTA1LDI1ICsxMDUsNiBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6d2lsbERlY2lk
ZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0dwogICAgIGF1
dG8gYWRkUmVzdWx0ID0gbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24uc2V0KGRvd25s
b2FkSUQsIHN0ZDo6bWFrZV9wYWlyPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+LCBSZXNwb25zZUNv
bXBsZXRpb25IYW5kbGVyPigmbmV0d29ya0RhdGFUYXNrLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRy
eSk7CiB9Ci0KLXZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9u
LCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUs
IGJvb2wgYWxsb3dPdmVyd3JpdGUpCi17Ci0gICAgYXV0byBwYWlyID0gbV9kb3dubG9hZHNXYWl0
aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKLSAgICBhdXRvIG5ldHdvcmtEYXRh
VGFzayA9IFdURk1vdmUocGFpci5maXJzdCk7Ci0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUocGFpci5zZWNvbmQpOwotICAgIGlmICghbmV0d29ya0RhdGFUYXNrIHx8ICFjb21w
bGV0aW9uSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbmV0d29ya0RhdGFUYXNrLT5z
ZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihkZXN0aW5hdGlvbiwgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSk7Ci0gICAgCi0gICAgaWYgKGFsbG93T3ZlcndyaXRlICYmIGZpbGVFeGlzdHMoZGVzdGlu
YXRpb24pKQotICAgICAgICBkZWxldGVGaWxlKGRlc3RpbmF0aW9uKTsKLQotICAgIGNvbXBsZXRp
b25IYW5kbGVyKFBvbGljeURvd25sb2FkKTsKLSAgICAKLSAgICBBU1NFUlQoIW1fZG93bmxvYWRz
QWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93bmxvYWRJRCkpOwotICAgIG1fZG93
bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuc2V0KGRvd25sb2FkSUQsIG5ldHdvcmtEYXRh
VGFzayk7Ci19CiAjZWxzZQogdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnRIYW5kbGVUb0Rv
d25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKQEAgLTEzNSw2ICsxMTYsMzIgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZl
cnRIYW5kbGVUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgUmVzb3VyY2VIYW4KIH0K
ICNlbmRpZgogCit2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93
bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlv
biwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxl
LCBib29sIGFsbG93T3ZlcndyaXRlKQoreworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisgICAg
aWYgKG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLmNvbnRhaW5zKGRvd25sb2FkSUQp
KSB7CisgICAgICAgIGF1dG8gcGFpciA9IG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9u
LnRha2UoZG93bmxvYWRJRCk7CisgICAgICAgIGF1dG8gbmV0d29ya0RhdGFUYXNrID0gV1RGTW92
ZShwYWlyLmZpcnN0KTsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
cGFpci5zZWNvbmQpOworICAgICAgICBpZiAoIW5ldHdvcmtEYXRhVGFzayB8fCAhY29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbmV0d29ya0RhdGFUYXNr
LT5zZXRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbihkZXN0aW5hdGlvbiwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSk7CisKKyAgICAgICAgaWYgKGFsbG93T3ZlcndyaXRlICYmIGZpbGVFeGlzdHMoZGVz
dGluYXRpb24pKQorICAgICAgICAgICAgZGVsZXRlRmlsZShkZXN0aW5hdGlvbik7CisKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5RG93bmxvYWQpOworCisgICAgICAgIEFTU0VSVCgh
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5jb250YWlucyhkb3dubG9hZElEKSk7
CisgICAgICAgIG1fZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuc2V0KGRvd25sb2Fk
SUQsIG5ldHdvcmtEYXRhVGFzayk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAg
ICBpZiAoYXV0byogd2FpdGluZ0Rvd25sb2FkID0gZG93bmxvYWQoZG93bmxvYWRJRCkpCisgICAg
ICAgIHdhaXRpbmdEb3dubG9hZC0+ZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihkZXN0aW5h
dGlvbiwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYWxsb3dPdmVyd3JpdGUpOworfQorCiB2b2lk
IERvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQoU2Vzc2lvbklELCBEb3dubG9hZElEIGRv
d25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpCiB7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaApp
bmRleCA5ODc2YTg0Li44NjMyMzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCkBAIC04MCwxMCArODAs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKERvd25sb2FkSUQsIGJvb2wgY2FuQXV0aGVudGljYXRlKTsKICAgICB2b2lk
IGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmKTsKICAgICB2b2lkIHdpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihO
ZXR3b3JrRGF0YVRhc2smLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpOwotICAgIHZvaWQg
Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElELCBTdHJp
bmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGJvb2wgYWxs
b3dPdmVyd3JpdGUpOwogI2Vsc2UKICAgICB2b2lkIGNvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKERv
d25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCisg
ICAgdm9pZCBjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2Fk
SUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwg
Ym9vbCBhbGxvd092ZXJ3cml0ZSk7CiAKICAgICB2b2lkIHJlc3VtZURvd25sb2FkKFdlYkNvcmU6
OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVE
YXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5k
ZXggNTk2ZThmNS4uNGEwMDBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcApAQCAtMTQ5LDcgKzE0OSw2IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmNv
bnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVl
c3QpCiB2b2lkIE5ldHdvcmtMb2FkOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7CiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBBU1NFUlQobV9yZXNwb25zZUNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICBpZiAobV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAg
IG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcihQb2xpY3lVc2UpOwogICAgICAgICBtX3Jlc3Bv
bnNlQ29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDMxOWU0MmYuLjY3NDFlZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTUyNSw3ICs1MjUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmaW5kUGVuZGluZ0Rvd25s
b2FkTG9jYXRpb24oTmV0d29ya0RhdGFUYXNrJiBuZXR3b3JrRGF0YVRhcwogICAgIGRvd25sb2Fk
TWFuYWdlcigpLndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihuZXR3b3JrRGF0
YVRhc2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICBkb3dubG9hZFByb3h5Q29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKG5ldHdvcmtEYXRhVGFzay5wZW5kaW5nRG93bmxv
YWRJRCgpLCBuZXR3b3JrRGF0YVRhc2suc3VnZ2VzdGVkRmlsZW5hbWUoKSksIGRlc3RpbmF0aW9u
SUQpOwogfQotICAgIAorI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvbnRpbnVlRGVj
aWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJp
bmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKIHsKICAgICBpZiAoZGVzdGluYXRp
b24uaXNFbXB0eSgpKQpAQCAtNTMzLDcgKzUzNCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNv
bnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3dubG9h
CiAgICAgZWxzZQogICAgICAgICBkb3dubG9hZE1hbmFnZXIoKS5jb250aW51ZURlY2lkZVBlbmRp
bmdEb3dubG9hZERlc3RpbmF0aW9uKGRvd25sb2FkSUQsIGRlc3RpbmF0aW9uLCBzYW5kYm94RXh0
ZW5zaW9uSGFuZGxlLCBhbGxvd092ZXJ3cml0ZSk7CiB9Ci0jZW5kaWYKIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Q2FjaGVNb2RlbCh1aW50MzJfdCBjbSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGZhNTU0YzcuLmQwZjUwMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMTc5LDggKzE3OSw5IEBAIHByaXZhdGU6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAg
ICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZURvd25s
b2FkKERvd25sb2FkSUQsIGJvb2wgY2FuQXV0aGVudGljYXRlKTsKICAgICB2b2lkIGNvbnRpbnVl
V2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsK
LSAgICB2b2lkIGNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxv
YWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogI2VuZGlmCisg
ICAgdm9pZCBjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2Fk
SUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKTsKKwogICAgIHZvaWQg
c2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3Ry
aW5nJiBob3N0KTsKICAgICB2b2lkIHNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0
aW9uKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkZjQwY2YwLi43NTYyMzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtNTEsOCArNTEsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBDb250aW51ZUNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VEb3dubG9hZChXZWJLaXQ6OkRvd25s
b2FkSUQgZG93bmxvYWRJRCwgYm9vbCBjYW5BdXRoZW50aWNhdGUpCiAgICAgQ29udGludWVXaWxs
U2VuZFJlcXVlc3QoV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KQotICAgIENvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVz
dGluYXRpb24oV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlv
biwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKICNlbmRpZgorICAgIENvbnRpbnVlRGVjaWRlUGVuZGlu
Z0Rvd25sb2FkRGVzdGluYXRpb24oV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmlu
ZyBkZXN0aW5hdGlvbiwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKIAogICAgIFNldFByb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFnKQogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKaW5k
ZXggMjU0OTUwMi4uNzlkYTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCkBAIC0xNzIsNyArMTcyLDYgQEAgdm9pZCBE
b3dubG9hZFByb3h5OjpzaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib28KICAgICByZXN1bHQgPSBtX3Byb2Nlc3NQb29sLT5kb3dubG9hZENs
aWVudCgpLnNob3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKG1fcHJvY2Vzc1Bvb2wuZ2V0
KCksIHRoaXMsIG1pbWVUeXBlKTsKIH0KIAotI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiB2b2lk
IERvd25sb2FkUHJveHk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5
bmMoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
KQogewogICAgIGJvb2wgYWxsb3dPdmVyd3JpdGUgPSBmYWxzZTsKQEAgLTE4OSw3ICsxODgsOCBA
QCB2b2lkIERvd25sb2FkUHJveHk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lQXN5bmMoRG93bmxvYWRJRCBkb3dubAogICAgIGlmIChOZXR3b3JrUHJvY2Vzc1Byb3h5KiBu
ZXR3b3JrUHJvY2VzcyA9IG1fcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCiAgICAgICAg
IG5ldHdvcmtQcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpDb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKGRvd25sb2FkSUQs
IGRlc3RpbmF0aW9uLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBhbGxvd092ZXJ3cml0ZSksIDAp
OwogfQotI2VuZGlmCisKKyNpZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKIAogdm9pZCBEb3dubG9h
ZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJp
bmcmIGZpbGVuYW1lLCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sJiBhbGxvd092ZXJ3cml0ZSwg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewpAQCAt
MjA4LDYgKzIwOCw4IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtCiAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZShkZXN0aW5hdGlvbiwgU2FuZGJveEV4dGVuc2lvbjo6UmVh
ZFdyaXRlLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIH0KIAorI2VuZGlmCisKIHZvaWQgRG93
bmxvYWRQcm94eTo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogewog
ICAgIGlmICghbV9wcm9jZXNzUG9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggMjMwMjZhZC4uNjc0NDdkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgK
QEAgLTgyLDcgKzgyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YSh1aW50NjRfdCBsZW5ndGgpOwogICAgIHZvaWQgc2hvdWxkRGVjb2RlU291cmNlRGF0YU9mTUlN
RVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCYgcmVzdWx0KTsKLSAgICB2b2lkIGRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIFN0cmluZyYgZGVzdGluYXRpb24sIGJvb2wmIGFsbG93T3ZlcndyaXRlLCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogICAgIHZvaWQgZGlkQ3Jl
YXRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKTsKICAgICB2b2lkIGRpZEZpbmlzaCgp
OwogICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKTsKQEAgLTkwLDggKzg5LDEwIEBAIHByaXZh
dGU6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJik7CiAg
ICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpOwotICAgIHZvaWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5h
bWVBc3luYyhEb3dubG9hZElELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKyNl
bHNlCisgICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sJiBhbGxvd092ZXJ3
cml0ZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsK
ICNlbmRpZgorICAgIHZvaWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVB
c3luYyhEb3dubG9hZElELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKTsKIAogICAg
IERvd25sb2FkUHJveHlNYXAmIG1fZG93bmxvYWRQcm94eU1hcDsKICAgICBSZWZQdHI8V2ViUHJv
Y2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggY2Fi
NDliMS4uY2NmOGUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjYsMTMgKzI2LDE1
IEBAIG1lc3NhZ2VzIC0+IERvd25sb2FkUHJveHkgewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CiAgICAgV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZWRpcmVjdFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSkpOwogICAg
IENhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlIHByb3RlY3Rpb25TcGFjZSkKLSAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZUFzeW5jKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgc3Vn
Z2VzdGVkRmlsZW5hbWUpCiAjZW5kaWYKKyAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZUFzeW5jKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgc3Vn
Z2VzdGVkRmlsZW5hbWUpCiAKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRSZWNlaXZlRGF0YSh1aW50NjRfdCBsZW5ndGgp
CiAgICAgU2hvdWxkRGVjb2RlU291cmNlRGF0YU9mTUlNRVR5cGUoU3RyaW5nIG1pbWVUeXBlKSAt
PiAoYm9vbCByZXN1bHQpCisjaWYgIVVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgRGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoU3RyaW5nIGZpbGVuYW1lKSAtPiAoU3RyaW5n
IGRlc3RpbmF0aW9uLCBib29sIGFsbG93T3ZlcndyaXRlLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQorI2VuZGlmCiAgICAgRGlkQ3JlYXRl
RGVzdGluYXRpb24oU3RyaW5nIHBhdGgpCiAgICAgRGlkRmluaXNoKCkKICAgICBEaWRGYWlsKFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIElQQzo6RGF0YVJlZmVyZW5jZSByZXN1bWVEYXRh
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289866</attachid>
            <date>2016-09-26 14:19:13 -0700</date>
            <delta_ts>2016-09-26 15:22:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162568-20160926141616.patch</filename>
            <type>text/plain</type>
            <size>28737</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdjZTJjOTIxY2RhNzU0
MzVkNWRiOTJkMjc0N2U3NmU0N2EwYmM5YS4uNTY2MDk0ZTYzMTQxODUyNTQwMDRmZDhkNzdkMThl
ZGNlNGRmMTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQmxvYkRvd25sb2Fk
Q2xpZW50IHNob3VsZCB1c2UgYXN5bmNocm9ub3VzIElQQyB0byBkZWNpZGUgZGVzdGluYXRpb24g
cGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIEJsb2JSZXNvdXJjZUhhbmRsZSB0byB3YWl0IGZvciBjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpIHRvIGJlCisgICAgICAgIGNhbGxlZCBhZnRlciBpdCBjYWxscyB0aGUgY2xpZW50J3Mg
ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoKSwgYmVmb3JlCisgICAgICAgIGFjdHVhbGx5IHJlYWRp
bmcgdGhlIEJsb2IgRGF0YS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZXNvdXJjZUhhbmRs
ZTo6Z2V0U2l6ZUZvck5leHQpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlc291cmNlSGFuZGxl
Ojpub3RpZnlSZXNwb25zZU9uU3VjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3Vy
Y2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcik6CisKIDIwMTYtMDktMjYgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0ciBkZWxldGVyIGZ1bmN0aW9ucyBzaG91bGQgbm90IGNoZWNrIGlmIHBvaW50ZXIgaXMgbnVs
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGJkZmM0NTFkOWE5NzA1MTYyYjM5Mzc3ZmI2YmY2YWIxMWYyZTMzZjMu
LjljNjRiZGQyNDQwNTBhODg2ZDMxMWUyNWE1OTM1ODc4ZDlkNmZjNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NyBAQAorMjAxNi0wOS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIEJsb2JEb3dubG9hZENsaWVudCBzaG91bGQgdXNlIGFzeW5jaHJv
bm91cyBJUEMgdG8gZGVjaWRlIGRlc3RpbmF0aW9uIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU2OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZUFzeW5jIElQQyB0byBkZWNpZGUgdGhlIGRlc3RpbmF0aW9uCisgICAgICAg
IHBhdGggaW4gdGhlIGNhc2Ugb2YgQmxvYiBkb3dubG9hZHMsIGluc3RlYWQgb2YgdGhlIHN5bmNo
cm9ub3VzIGFsdGVybmF0aXZlLgorICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIEJsb2JSZXNvdXJj
ZUhhbmRsZSB3YXMgdXBkYXRlZCBpbiBXZWJDb3JlIHRvIHByb3Blcmx5IHN1cHBvcnQKKyAgICAg
ICAgYXN5bmNocm9ub3VzIGNhbGxiYWNrIGFuZCBCbG9iRG93bmxvYWRDbGllbnQgd2FzIHVwZGF0
ZWQgdG8gdXNlIGFzeW5jaHJvbm91cworICAgICAgICBjYWxsYmFja3MuIFdoZW4gQmxvYkRvd25s
b2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYygpIGlzIGNhbGxlZCwgd2UKKyAgICAg
ICAgbm93IGFzayB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzeW5jaHJvbm91c2x5IHRvIGRlY2lk
ZSB3aGF0IHRoZSBkZXN0aW5hdGlvbgorICAgICAgICBwYXRoIHNob3VsZCBiZS4gVGhlbiwgd2hl
biB3ZSBsYXRlciBnZXQgdGhlIGRlc3RpbmF0aW9uIHBhdGggYmFjayBmcm9tIHRoZQorICAgICAg
ICBXZWJDb250ZW50IHByb2Nlc3MsIHdlIGNyZWF0ZSB0aGUgZmlsZSBvbiBkaXNrIGFuZCBjYWxs
CisgICAgICAgIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgb24gdGhlIEJsb2JSZXNvdXJj
ZUhhbmRsZSBzbyB3ZSBzdGFydCBnZXR0aW5nIHRoZQorICAgICAgICBibG9iIGRhdGEgdG8gd3Jp
dGUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZl
UmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OkJsb2JEb3dubG9hZENsaWVudDo6ZGlk
RGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZDo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOiBEZWxl
dGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWRE
ZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6Y29udGludWVE
ZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFuYWdlcjo6Y29udmVydEhhbmRsZVRvRG93bmxvYWQpOiBEZWxldGVkLgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtM
b2FkOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW46CisKIDIwMTYtMDktMjYg
IE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZp
eCAtV2Zvcm1hdCB3YXJuaW5ncyBpbiBXZWJMb2FkZXJTdHJhdGVneQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4
IDkwYjhiMTY3ZTU3M2FjNGMyMTNlZWYxYjk4OWEwYmJmMGZkNjllMDYuLjg1M2IxZWJlODgyMGUw
M2RkZGVlNjQ5YTI1NDg5OTI4ZWEyOWQ3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1OCw3ICsxNTgs
MTEgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAKIHZvaWQgQmxvYlJlc291
cmNlSGFuZGxlOjpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpCiB7Ci0gICAgLy8gQmxvYlJl
c291cmNlSGFuZGxlIGRvZXNuJ3Qgd2FpdCBmb3IgZGlkUmVjZWl2ZVJlc3BvbnNlLCBhbmQgaXQg
Y3VycmVudGx5IGNhbm5vdCBiZSB1c2VkIGZvciBkb3dubG9hZGluZy4KKyAgICBBU1NFUlQobV9h
c3luYyk7CisgICAgQVNTRVJUKHVzZXNBc3luY0NhbGxiYWNrcygpKTsKKworICAgIG1fYnVmZmVy
LnJlc2l6ZShidWZmZXJTaXplKTsKKyAgICByZWFkQXN5bmMoKTsKIH0KIAogdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KCkKQEAgLTIyMyw4ICsyMjcsMTAgQEAgdm9pZCBCbG9iUmVzb3Vy
Y2VIYW5kbGU6OmdldFNpemVGb3JOZXh0KCkKICAgICAgICAgaWYgKG1fYXN5bmMpIHsKICAgICAg
ICAgICAgIFJlZjxCbG9iUmVzb3VyY2VIYW5kbGU+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAg
ICAgICAgICAgbm90aWZ5UmVzcG9uc2UoKTsKLSAgICAgICAgICAgIG1fYnVmZmVyLnJlc2l6ZShi
dWZmZXJTaXplKTsKLSAgICAgICAgICAgIHJlYWRBc3luYygpOworICAgICAgICAgICAgaWYgKCF1
c2VzQXN5bmNDYWxsYmFja3MoKSkgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyLnJlc2l6ZShi
dWZmZXJTaXplKTsKKyAgICAgICAgICAgICAgICByZWFkQXN5bmMoKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNTY4LDkgKzU3NCw2IEBAIHZv
aWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU9uU3VjY2VzcygpCiAgICAgLy8g
YXMgaWYgdGhlIHJlc3BvbnNlIGhhZCBhIENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyIHdpdGgg
dGhlIGZpbGVuYW1lIHBhcmFtZXRlciBzZXQgdG8gdGhlIEZpbGUncyBuYW1lIGF0dHJpYnV0ZS4K
ICAgICAvLyBOb3RhYmx5LCB0aGlzIHdpbGwgYWZmZWN0IGEgbmFtZSBzdWdnZXN0ZWQgaW4gIkZp
bGUgU2F2ZSBBcyIuCiAKLSAgICAvLyBCbG9iUmVzb3VyY2VIYW5kbGUgY2Fubm90IGJlIHVzZWQg
d2l0aCBkb3dubG9hZGluZywgYW5kIGRvZXNuJ3QgZXZlbiB3YWl0IGZvciBjb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZS4KLSAgICAvLyBJdCdzIGN1cnJlbnRseSBjbGllbnQncyByZXNwb25zaWJp
bGl0eSB0byBrbm93IHRoYXQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMgY2Fubm90IGJlIHVzZWQg
dG8gY29udmVydCBhCi0gICAgLy8gbG9hZCBpbnRvIGEgZG93bmxvYWQgb3IgYmxvYnMuCiAgICAg
aWYgKHVzZXNBc3luY0NhbGxiYWNrcygpKQogICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSkpOwogICAgIGVsc2UKQEAgLTU5Nyw4
ICs2MDAsNiBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9y
KCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgLy8gTm90ZSB0aGF0IHdlIGRvbid0IHdh
aXQgZm9yIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlIHdoZW4gdXNpbmcgZGlkUmVjZWl2ZVJl
c3BvbnNlQXN5bmMuCi0gICAgLy8gVGhpcyBpcyBub3QgZm9ybWFsbHkgY29ycmVjdCwgYnV0IHRo
ZSBjbGllbnQgaGFzIHRvIGJlIGEgbm8tb3AgYW55d2F5LCBiZWNhdXNlIGJsb2JzIGNhbid0IGJl
IGRvd25sb2FkZWQuCiAgICAgaWYgKHVzZXNBc3luY0NhbGxiYWNrcygpKQogICAgICAgICBjbGll
bnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSkpOwog
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHAKaW5kZXggYmZhNGMyOWU4Y2ViZTNi
YWFhODdjNmI2ZDU4NDY5NTExYjg3MmRiZi4uY2FhMWFlZmZkM2FjNmM0N2ZlMjU4OTJiZWMzMmU2
ZmRmYmI4OWZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHAKQEAgLTQxLDI3ICs0MSwy
OSBAQCBCbG9iRG93bmxvYWRDbGllbnQ6OkJsb2JEb3dubG9hZENsaWVudChEb3dubG9hZCYgZG93
bmxvYWQpCiB7CiB9CiAKLXZvaWQgQmxvYkRvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIEJs
b2JEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiB7CiAgICAgbV9kb3dubG9hZC5kaWRSZWNl
aXZlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkpOworICAgIG1fZG93bmxvYWQuZGVjaWRlRGVz
dGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhtX2Rvd25sb2FkLnN1Z2dlc3RlZE5h
bWUoKSk7Cit9CiAKLSAgICBib29sIGFsbG93T3ZlcndyaXRlID0gZmFsc2U7Ci0gICAgbV9kZXN0
aW5hdGlvblBhdGggPSBtX2Rvd25sb2FkLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKG1fZG93bmxvYWQuc3VnZ2VzdGVkTmFtZSgpLCBhbGxvd092ZXJ3cml0ZSk7Ci0gICAg
aWYgKG1fZGVzdGluYXRpb25QYXRoLmlzRW1wdHkoKSkgewotICAgICAgICBkaWRGYWlsKG51bGxw
dHIsIGNhbmNlbGxlZEVycm9yKG1fZG93bmxvYWQucmVxdWVzdCgpKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgaWYgKGZpbGVFeGlzdHMobV9kZXN0aW5hdGlvblBhdGgpKSB7Cit2b2lk
IEJsb2JEb3dubG9hZENsaWVudDo6ZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyAgICBBU1NF
UlQoIWRlc3RpbmF0aW9uUGF0aC5pc0VtcHR5KCkpOworCisgICAgaWYgKGZpbGVFeGlzdHMoZGVz
dGluYXRpb25QYXRoKSkgewogICAgICAgICBpZiAoIWFsbG93T3ZlcndyaXRlKSB7Ci0gICAgICAg
ICAgICBtX2Rlc3RpbmF0aW9uUGF0aCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBkaWRG
YWlsKG51bGxwdHIsIGNhbmNlbGxlZEVycm9yKG1fZG93bmxvYWQucmVxdWVzdCgpKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlRmlsZShtX2Rlc3RpbmF0
aW9uUGF0aCk7CisgICAgICAgIGRlbGV0ZUZpbGUoZGVzdGluYXRpb25QYXRoKTsKICAgICB9CiAK
KyAgICBtX2Rlc3RpbmF0aW9uUGF0aCA9IGRlc3RpbmF0aW9uUGF0aDsKICAgICBtX2Rlc3RpbmF0
aW9uRmlsZSA9IG9wZW5GaWxlKG1fZGVzdGluYXRpb25QYXRoLCBPcGVuRm9yV3JpdGUpOwogICAg
IG1fZG93bmxvYWQuZGlkQ3JlYXRlRGVzdGluYXRpb24obV9kZXN0aW5hdGlvblBhdGgpOworCisg
ICAgbV9kb3dubG9hZC5jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwogfQogCiB2b2lkIEJs
b2JEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSosIFJlZjxT
aGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmgKaW5kZXgg
NjI1YTgyZTBmMTZmOGExYTJmMGI2MTg1OTg2MGFjZGQ2NTM3OTk2NC4uZGNiODg5ZDMwNzE1Mjkz
NTMwZDQyNjAwM2YwOWY1N2YyZTA4ODZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuaApAQCAt
MzksMTMgKzM5LDE1IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBCbG9iRG93bmxvYWRDbGllbnQo
RG93bmxvYWQmKTsKIAogICAgIHZvaWQgZGlkQ2FuY2VsKCk7CisgICAgdm9pZCBkaWREZWNpZGVE
b3dubG9hZERlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25QYXRoLCBib29sIGFs
bG93T3ZlcndyaXRlKTsKIAogcHJpdmF0ZToKICAgICAvLyBSZXNvdXJjZUhhbmRsZUNsaWVudAot
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZUFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBpbnQgcmVwb3J0ZWRFbmNv
ZGVkRGF0YUxlbmd0aCkgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIGZpbmFsOwogICAgIHZvaWQgZGlk
RmFpbChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKSBmaW5hbDsKKyAgICBib29sIHVzZXNBc3luY0NhbGxiYWNrcygpIGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIERvd25sb2FkJiBtX2Rvd25sb2FkOwogICAgIFN0cmluZyBtX2Rlc3Rp
bmF0aW9uUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDcyY2YwNzNlNjA2ZGFiZjYyNTdjMGU5OThhZjJlZjM1
MGNhN2FkMDYuLjdmOTkyOWIzYmM0MjdiM2EwYjgyMTk1ZWM1MjAwOTVkZjMwZGIxODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmNwcApAQCAtMTQ2LDYgKzE0Niw4IEBAIGJvb2wgRG93bmxvYWQ6OnNob3VsZERlY29kZVNvdXJj
ZURhdGFPZk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQorCiBTdHJpbmcgRG93bmxvYWQ6OmRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGJvb2wmIGFsbG93T3ZlcndyaXRlKQogewogICAgIFN0cmluZyBkZXN0aW5hdGlvbjsKQEAg
LTE2MCw2ICsxNjIsMzQgQEAgU3RyaW5nIERvd25sb2FkOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhT
dWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLAogICAgIHJldHVybiBkZXN0
aW5hdGlvbjsKIH0KIAorI2VuZGlmCisKK3ZvaWQgRG93bmxvYWQ6OmRlY2lkZURlc3RpbmF0aW9u
V2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFt
ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKGRvd25sb2FkSUQoKSwgc3VnZ2VzdGVkRmlsZW5h
bWUpKTsKK30KKwordm9pZCBEb3dubG9hZDo6ZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQoreworICAg
IEFTU0VSVCghbV9zYW5kYm94RXh0ZW5zaW9uKTsKKyAgICBtX3NhbmRib3hFeHRlbnNpb24gPSBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgaWYg
KG1fc2FuZGJveEV4dGVuc2lvbikKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5jb25zdW1l
KCk7CisKKyAgICBpZiAobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpIHsKKyAgICAg
ICAgc3RhdGljX2Nhc3Q8QmxvYkRvd25sb2FkQ2xpZW50Kj4obV9kb3dubG9hZENsaWVudC5nZXQo
KSktPmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRpb24oZGVzdGluYXRpb25QYXRoLCBhbGxvd092
ZXJ3cml0ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGb3Igbm93LCBvbmx5
IEJsb2IgVVJMIGRvd25sb2FkcyBnbyB0aHJvdWdoIHRoaXMgY29kZSBwYXRoLgorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIERvd25sb2FkOjpjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpCit7CisgICAgbV9yZXNvdXJjZUhhbmRsZS0+Y29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2UoKTsKK30KKwogdm9pZCBEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oY29uc3Qg
U3RyaW5nJiBwYXRoKQogewogICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZENy
ZWF0ZURlc3RpbmF0aW9uKHBhdGgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKaW5kZXggM2IwMDRkMmRmYmExYTgxYmExMDgwM2Ri
MjNkODFlMzM0NmE5ZTg4ZS4uMTZhOWY3ZDM0MmM4MmYxMTI0Nzc3OGY0ZTliM2ExYzVlM2UzOTli
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkLmgKQEAgLTEwMCw3ICsxMDAsMTIgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGxlbmd0aCk7CiAgICAgYm9vbCBzaG91bGREZWNvZGVTb3Vy
Y2VEYXRhT2ZNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyNpZiAhVVNFKE5FVFdP
UktfU0VTU0lPTikKICAgICBTdHJpbmcgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgYm9vbCYgYWxsb3dPdmVyd3JpdGUpOworI2Vu
ZGlmCisgICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5j
KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbihj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpOwogICAgIHZvaWQgZGlkQ3JlYXRlRGVzdGluYXRpb24oY29uc3QgU3RyaW5nJiBw
YXRoKTsKICAgICB2b2lkIGRpZEZpbmlzaCgpOwogICAgIHZvaWQgcGxhdGZvcm1EaWRGaW5pc2go
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggYjBhNjg4ZDU3ZGNhODVkMDA2YjcxMDY1YTJk
NDA5YzIyOTIxOTNiZi4uNDA3NTU4N2M2NWEwNDFmMTBhYTE0ZDNhNTlkMGMyMGZhNzQ4NWIyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKQEAgLTEwNSwyNSArMTA1LDYgQEAgdm9pZCBEb3dubG9h
ZE1hbmFnZXI6OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihOZXR3b3JrRGF0
YVRhc2smIG5ldHcKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZG93bmxvYWRzV2FpdGluZ0ZvckRl
c3RpbmF0aW9uLnNldChkb3dubG9hZElELCBzdGQ6Om1ha2VfcGFpcjxSZWZQdHI8TmV0d29ya0Rh
dGFUYXNrPiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcj4oJm5ldHdvcmtEYXRhVGFzaywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwg
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQotCi12b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGlu
dWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sb2FkSUQs
IFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQotewotICAgIGF1dG8gcGFp
ciA9IG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLnRha2UoZG93bmxvYWRJRCk7Ci0g
ICAgYXV0byBuZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwotICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKLSAgICBpZiAoIW5ldHdv
cmtEYXRhVGFzayB8fCAhY29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24s
IHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwotICAgIAotICAgIGlmIChhbGxvd092ZXJ3cml0ZSAm
JiBmaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkKLSAgICAgICAgZGVsZXRlRmlsZShkZXN0aW5hdGlv
bik7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lEb3dubG9hZCk7Ci0gICAgCi0gICAg
QVNTRVJUKCFtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25s
b2FkSUQpKTsKLSAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNldChkb3du
bG9hZElELCBuZXR3b3JrRGF0YVRhc2spOwotfQogI2Vsc2UKIHZvaWQgRG93bmxvYWRNYW5hZ2Vy
Ojpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElEIGRvd25sb2FkSUQsIFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CkBAIC0xMzUsNiArMTE2LDMyIEBAIHZvaWQgRG93
bmxvYWRNYW5hZ2VyOjpjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElEIGRvd25sb2Fk
SUQsIFJlc291cmNlSGFuCiB9CiAjZW5kaWYKIAordm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRp
bnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3dubG9hZElE
LCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkKK3sKKyNpZiBVU0UoTkVU
V09SS19TRVNTSU9OKQorICAgIGlmIChtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5j
b250YWlucyhkb3dubG9hZElEKSkgeworICAgICAgICBhdXRvIHBhaXIgPSBtX2Rvd25sb2Fkc1dh
aXRpbmdGb3JEZXN0aW5hdGlvbi50YWtlKGRvd25sb2FkSUQpOworICAgICAgICBhdXRvIG5ldHdv
cmtEYXRhVGFzayA9IFdURk1vdmUocGFpci5maXJzdCk7CisgICAgICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgaWYgKCFuZXR3b3JrRGF0
YVRhc2sgfHwgIWNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpOworCisgICAgICAgIGlmIChhbGxvd092ZXJ3cml0
ZSAmJiBmaWxlRXhpc3RzKGRlc3RpbmF0aW9uKSkKKyAgICAgICAgICAgIGRlbGV0ZUZpbGUoZGVz
dGluYXRpb24pOworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeURvd25sb2FkKTsK
KworICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuY29u
dGFpbnMoZG93bmxvYWRJRCkpOworICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25E
ZWNpZGVkLnNldChkb3dubG9hZElELCBuZXR3b3JrRGF0YVRhc2spOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCisgICAgaWYgKGF1dG8qIHdhaXRpbmdEb3dubG9hZCA9IGRvd25sb2Fk
KGRvd25sb2FkSUQpKQorICAgICAgICB3YWl0aW5nRG93bmxvYWQtPmRpZERlY2lkZURvd25sb2Fk
RGVzdGluYXRpb24oZGVzdGluYXRpb24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3Zl
cndyaXRlKTsKK30KKwogdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2FkKFNlc3Np
b25JRCwgRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggOTg3NmE4NGM2YThlZjEzZTM2OTE3ZDlmMmM4ZTg0MzBj
OGIzYjJjZi4uODYzMjMxNWYzOTYyNDUyMzFlMTQ3ZTY1NDA3ODNkZjFhOWQzMWFiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZE1hbmFnZXIuaApAQCAtODAsMTAgKzgwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRp
bnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShEb3dubG9hZElELCBib29s
IGNhbkF1dGhlbnRpY2F0ZSk7CiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3du
bG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCB3aWxsRGVjaWRl
UGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oTmV0d29ya0RhdGFUYXNrJiwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lkIGNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2Fk
RGVzdGluYXRpb24oRG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBjb25zdCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmLCBib29sIGFsbG93T3ZlcndyaXRlKTsKICNlbHNlCiAgICAgdm9p
ZCBjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChEb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgorICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5n
RG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCiAgICAg
dm9pZCByZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IDU5NmU4ZjVkZTMwMzJhMGVhYmVmOTFiMzBl
NTUxYmM5NDlhMWE5M2MuLjRhMDAwYmE3NzM4MmQ2ZjYxZTNmMmE1MDEwNmIzNWQ5ZjBlMTE1OGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAg
LTE0OSw3ICsxNDksNiBAQCB2b2lkIE5ldHdvcmtMb2FkOjpjb250aW51ZVdpbGxTZW5kUmVxdWVz
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0KQogdm9pZCBOZXR3b3JrTG9h
ZDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQogewogI2lmIFVTRShORVRXT1JLX1NFU1NJ
T04pCi0gICAgQVNTRVJUKG1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcik7CiAgICAgaWYgKG1f
cmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBtX3Jlc3BvbnNlQ29tcGxldGlv
bkhhbmRsZXIoUG9saWN5VXNlKTsKICAgICAgICAgbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCAzMTllNDJmYTVlY2I5ZGIzZjM3NDdiMGU4Y2Q0MWRiNGU3NDg5M2Nh
Li42NzQxZWZlMDk0ZmI5MWQ1ZjA0ZTJmOTMzMDU2Mzk3NjRlMDM0ZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01MjUsNyAr
NTI1LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExvY2F0aW9u
KE5ldHdvcmtEYXRhVGFzayYgbmV0d29ya0RhdGFUYXMKICAgICBkb3dubG9hZE1hbmFnZXIoKS53
aWxsRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24obmV0d29ya0RhdGFUYXNrLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2Vz
dGVkRmlsZW5hbWVBc3luYyhuZXR3b3JrRGF0YVRhc2sucGVuZGluZ0Rvd25sb2FkSUQoKSwgbmV0
d29ya0RhdGFUYXNrLnN1Z2dlc3RlZEZpbGVuYW1lKCkpLCBkZXN0aW5hdGlvbklEKTsKIH0KLSAg
ICAKKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb250aW51ZURlY2lkZVBlbmRpbmdE
b3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0
aW9uLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5k
bGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiB7CiAgICAgaWYgKGRlc3RpbmF0aW9uLmlzRW1wdHko
KSkKQEAgLTUzMyw3ICs1MzQsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb250aW51ZURlY2lk
ZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQgZG93bmxvYQogICAgIGVsc2UK
ICAgICAgICAgZG93bmxvYWRNYW5hZ2VyKCkuY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWRE
ZXN0aW5hdGlvbihkb3dubG9hZElELCBkZXN0aW5hdGlvbiwgc2FuZGJveEV4dGVuc2lvbkhhbmRs
ZSwgYWxsb3dPdmVyd3JpdGUpOwogfQotI2VuZGlmCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dENhY2hlTW9kZWwodWludDMyX3QgY20pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBmYTU1NGM3MGM3MDk3OTYwOTM4NGVhZWQ1Y2Jh
NjU4MzYyNDE2NjJlLi5kMGY1MDA5MWQ0YmUwMDRiZjJkODFlYzdjMjljZmJlYWRkZGJkYzdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTE3OSw4ICsxNzksOSBAQCBwcml2YXRlOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAg
dm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VEb3dubG9h
ZChEb3dubG9hZElELCBib29sIGNhbkF1dGhlbnRpY2F0ZSk7CiAgICAgdm9pZCBjb250aW51ZVdp
bGxTZW5kUmVxdWVzdChEb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7Ci0g
ICAgdm9pZCBjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2Fk
SUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKTsKICNlbmRpZgorICAg
IHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihEb3dubG9hZElE
LCBTdHJpbmcgZGVzdGluYXRpb24sIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisKICAgICB2b2lkIHNl
dENhY2hlTW9kZWwodWludDMyX3QpOwogICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGNvbnN0IFN0cmlu
ZyYgaG9zdCk7CiAgICAgdm9pZCBzZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlv
bihib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZGY0MGNmMDQwMWU2YzNiOTM5Mzg2NmY0MmI0
ODYzMTg5MDgzM2YxZi4uNzU2MjM5NDVkYTU3NmY3Yjg0NTY3NmE5Yjk4OTBiZGQxOWM3NzhjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUxLDggKzUxLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1By
b2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgQ29u
dGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlRG93bmxvYWQoV2ViS2l0
OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIGJvb2wgY2FuQXV0aGVudGljYXRlKQogICAgIENvbnRp
bnVlV2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKLSAgICBDb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgZGVz
dGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAjZW5kaWYKKyAgICBDb250aW51ZURlY2lk
ZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBTdHJpbmcgZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAKICAgICBTZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgZmxhZykKICNpZiBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
Y3BwCmluZGV4IDI1NDk1MDJlZDgzYWFjMjE0OGRhYmJmYmU0MTA1YTljNWQyODc0ZGYuLjc5ZGE3
MGIxOTZmOTE3MzEyNDA1ZGY5ZDhjZmUxZTAxZGUxNGQ4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcApAQCAtMTcyLDcg
KzE3Miw2IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6c2hvdWxkRGVjb2RlU291cmNlRGF0YU9mTUlN
RVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vCiAgICAgcmVzdWx0ID0gbV9wcm9jZXNz
UG9vbC0+ZG93bmxvYWRDbGllbnQoKS5zaG91bGREZWNvZGVTb3VyY2VEYXRhT2ZNSU1FVHlwZSht
X3Byb2Nlc3NQb29sLmdldCgpLCB0aGlzLCBtaW1lVHlwZSk7CiB9CiAKLSNpZiBVU0UoTkVUV09S
S19TRVNTSU9OKQogdm9pZCBEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZUFzeW5jKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSkKIHsKICAgICBib29sIGFsbG93T3ZlcndyaXRlID0gZmFsc2U7CkBA
IC0xODksNyArMTg4LDggQEAgdm9pZCBEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKERvd25sb2FkSUQgZG93bmwKICAgICBpZiAoTmV0d29y
a1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3MgPSBtX3Byb2Nlc3NQb29sLT5uZXR3b3JrUHJv
Y2VzcygpKQogICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6Q29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5h
dGlvbihkb3dubG9hZElELCBkZXN0aW5hdGlvbiwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYWxs
b3dPdmVyd3JpdGUpLCAwKTsKIH0KLSNlbmRpZgorCisjaWYgIVVTRShORVRXT1JLX1NFU1NJT04p
CiAKIHZvaWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU3RyaW5nJiBkZXN0aW5hdGlvbiwgYm9vbCYg
YWxsb3dPdmVyd3JpdGUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSkKIHsKQEAgLTIwOCw2ICsyMDgsOCBAQCB2b2lkIERvd25sb2FkUHJveHk6OmRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZW5hbQog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoZGVzdGluYXRpb24sIFNhbmRi
b3hFeHRlbnNpb246OlJlYWRXcml0ZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiB9CiAKKyNl
bmRpZgorCiB2b2lkIERvd25sb2FkUHJveHk6OmRpZENyZWF0ZURlc3RpbmF0aW9uKGNvbnN0IFN0
cmluZyYgcGF0aCkKIHsKICAgICBpZiAoIW1fcHJvY2Vzc1Bvb2wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCmluZGV4IDIzMDI2YWRm
MDAxNjk0ZTk3YzkwZmNlMmIwMzNjYmRjMzQ0NDY5ZjMuLjY3NDQ3ZGM4ZGFmYzZiMWZlNWVjNjBi
YWNiMTBmYmFhNTU5OGUwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodWludDY0X3QgbGVuZ3RoKTsKICAgICB2b2lkIHNo
b3VsZERlY29kZVNvdXJjZURhdGFPZk1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
b2wmIHJlc3VsdCk7Ci0gICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBTdHJpbmcmIGRlc3RpbmF0aW9uLCBib29sJiBh
bGxvd092ZXJ3cml0ZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKICAgICB2b2lkIGRpZENyZWF0ZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgcGF0
aCk7CiAgICAgdm9pZCBkaWRGaW5pc2goKTsKICAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSk7
CkBAIC05MCw4ICs4OSwxMCBAQCBwcml2YXRlOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAg
ICAgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNvbnN0IFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZSYpOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICB2b2lkIGRlY2lkZURlc3Rp
bmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93bmxvYWRJRCwgY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWRGaWxlbmFtZSk7CisjZWxzZQorICAgIHZvaWQgZGVjaWRlRGVzdGluYXRpb25X
aXRoU3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU3RyaW5nJiBkZXN0
aW5hdGlvbiwgYm9vbCYgYWxsb3dPdmVyd3JpdGUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKKyAgICB2b2lkIGRlY2lkZURlc3RpbmF0
aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93bmxvYWRJRCwgY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSk7CiAKICAgICBEb3dubG9hZFByb3h5TWFwJiBtX2Rvd25sb2FkUHJv
eHlNYXA7CiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQb29sPiBtX3Byb2Nlc3NQb29sOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGNhYjQ5YjExMmM4NzQ0NGRiMzNiMWMzZDg2M2E3MGYxYWU2
ZjM5NzUuLmNjZjhlMGNmNzg5YjZiN2M1NjhmZjI2M2MyMzJmMmIxMjY3ZDljNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDEzICsyNiwxNSBAQCBtZXNzYWdlcyAtPiBEb3dubG9h
ZFByb3h5IHsKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIFdpbGxTZW5kUmVxdWVzdChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpKTsKICAgICBDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2Up
Ci0gICAgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQogI2VuZGlm
CisgICAgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWVBc3luYyhXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQogCiAgICAg
RGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAg
ICAgRGlkUmVjZWl2ZURhdGEodWludDY0X3QgbGVuZ3RoKQogICAgIFNob3VsZERlY29kZVNvdXJj
ZURhdGFPZk1JTUVUeXBlKFN0cmluZyBtaW1lVHlwZSkgLT4gKGJvb2wgcmVzdWx0KQorI2lmICFV
U0UoTkVUV09SS19TRVNTSU9OKQogICAgIERlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKFN0cmluZyBmaWxlbmFtZSkgLT4gKFN0cmluZyBkZXN0aW5hdGlvbiwgYm9vbCBhbGxv
d092ZXJ3cml0ZSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkKKyNlbmRpZgogICAgIERpZENyZWF0ZURlc3RpbmF0aW9uKFN0cmluZyBwYXRo
KQogICAgIERpZEZpbmlzaCgpCiAgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yLCBJUEM6OkRhdGFSZWZlcmVuY2UgcmVzdW1lRGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZmFjYTk1OGQ0Yzdi
MWViMWE1MjFiYjEwNjQwNDMxZTQ4NjVjOTRkLi45NThjMjEyMjk4ZDVjOTQ0NGQ5N2I0ZmQ2OGEw
MmVjMDU2MzM2ZGY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xICsxLDE3IEBACisyMDE2LTA5LTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQmxvYkRvd25sb2FkQ2xpZW50
IHNob3VsZCB1c2UgYXN5bmNocm9ub3VzIElQQyB0byBkZWNpZGUgZGVzdGluYXRpb24gcGF0aAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQt
YWxsb3ctYmxvYi1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgc2V2ZXJhbCBCbG9i
IGRvd25sb2FkIHRlc3RzIG5vdyB0aGF0IHRoZSAiRG93bmxvYWQgc3RhcnRlZCIKKyAgICAgICAg
bWVzc2FnZSBhbHdheXMgY29tZXMgZmlyc3QgKGFzIGl0IHNob3VsZCkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tpcCB0ZXN0IHRo
YXQgaXMgbm8gbG9uZ2VyIGZsYWt5LgorCiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAx
Ni0wOS0yNiA9PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVs
ZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1leHBlY3RlZC50eHQKaW5kZXggNDRh
MDhlNjg0OTBlNTA4YjY4MDMwOTQwNWVlMGNhZjMzOTI2MWU0ZC4uOWUzZjU4ZjE3NTc3ODAzMDgw
YmU3MDg1Y2VkNjY3MGEyMTc4MDkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZp
bGVuYW1lICIiCiBEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2Vz
dGVkIGZpbGVuYW1lICIiCiBEb3dubG9hZCBjb21wbGV0ZWQuCiBCbG9iIFVSTApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vZG93bmxv
YWQtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1ub2Rvd25sb2FkLXNldC1leHBlY3RlZC50eHQKaW5kZXggNDRhMDhlNjg0OTBl
NTA4YjY4MDMwOTQwNWVlMGNhZjMzOTI2MWU0ZC4uOWUzZjU4ZjE3NTc3ODAzMDgwYmU3MDg1Y2Vk
NjY3MGEyMTc4MDkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLW5vZG93bmxvYWQtc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVk
IGZpbGVuYW1lICIiCiBEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3Vn
Z2VzdGVkIGZpbGVuYW1lICIiCiBEb3dubG9hZCBjb21wbGV0ZWQuCiBCbG9iIFVSTApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3ItZG93bmxvYWQtYWxs
b3ctYmxvYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Fu
Y2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLWV4cGVjdGVkLnR4dAppbmRleCA2ODZjMTFkMWI3ZTdi
YjUxMWZiZjJmMWNiNTcwODFjNjRkNzYxMDc3Li4wZDc0Y2MyYzFlMjMzMDAxOGIyNDQwMjc1NmEz
OGM3NTYyYmI2NzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2FuY2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKLURvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxl
bmFtZSAiZm9vLnBkZiIKIERvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9hZGluZyBVUkwgd2l0aCBz
dWdnZXN0ZWQgZmlsZW5hbWUgImZvby5wZGYiCiBEb3dubG9hZCBjb21wbGV0ZWQuCiBUZXN0cyB0
aGF0IGEgc3VnZ2VzdGVkIGZpbGVuYW1lIG9uIGEgZG93bmxvYWQgYXR0cmlidXRlIGlzIGFsbG93
ZWQgaWYgdGhlIGxpbmsgaXMgYSBibG9iIFVSTC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZiZDI1OTdkNDkyYmM4NjU4Zjc0MWI4M2Zj
MTE5NmRjNzBmNzE1ZGEuLjI5YTNhMzZkNjYxNTViNzhlMDE5MmRkZTMxZDkwZTVkZjIxMDdiZjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIxMCw5ICsyMTAsNiBAQCB3ZWJraXQub3JnL2IvMTE3OTYyIG1lZGlhL3ZpZGVvLXBsYXllZC1j
b2xsYXBzZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEzNjEwOSBmYXN0
L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sICBbIEltYWdlT25seUZhaWx1
cmUgXQogCi0jIEZsYWt5IG9uIFdlYktpdDIuCi13ZWJraXQub3JnL2IvMTYyNTQzIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
LQogIyBSZWZlcmVuY2UgZXhwZWN0YXRpb24gZG9lc24ndCBlbmQgdXAgaW4gY29tcG9zaXRpbmcg
Y29kZSBwYXRoLCBsZWFkaW5nIHRvIGFudGlhbGlhc2luZyBkaWZmZXJlbmNlcy4KIHdlYmtpdC5v
cmcvYi8xMzI0MjEgZmFzdC9tdWx0aWNvbC9maXhlZC1zdGFjay5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>