<?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>63295</bug_id>
          
          <creation_ts>2011-06-23 15:15:45 -0700</creation_ts>
          <short_desc>Remove some unneeded functions from FrameLoader</short_desc>
          <delta_ts>2011-06-24 17:09:46 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>426538</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-23 15:15:45 -0700</bug_when>
    <thetext>Remove some unneeded functions from FrameLoader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426667</commentid>
    <comment_count>1</comment_count>
      <attachid>98445</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-23 17:54:01 -0700</bug_when>
    <thetext>Created attachment 98445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426676</commentid>
    <comment_count>2</comment_count>
      <attachid>98445</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 18:09:35 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

Attachment 98445 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8934306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426699</commentid>
    <comment_count>3</comment_count>
      <attachid>98445</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 19:49:38 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

Attachment 98445 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8935230</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426705</commentid>
    <comment_count>4</comment_count>
      <attachid>98445</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 20:27:29 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

Attachment 98445 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8935238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426706</commentid>
    <comment_count>5</comment_count>
      <attachid>98445</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-23 20:39:11 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98445&amp;action=review

&gt; Source/WebCore/loader/FrameLoader.h:-283
&gt; -    bool suppressOpenerInNewFrame() const { return m_suppressOpenerInNewFrame; }

Looks like this is actually Chromium-only rather than unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426718</commentid>
    <comment_count>6</comment_count>
      <attachid>98445</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-23 21:33:17 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98445&amp;action=review

R+, modulo compile errors, of course.

&gt; Source/WebCore/loader/FrameLoader.cpp:1570
&gt; -    stopLoadingSubframes(clearProvisionalItemPolicy);
&gt; +    for (RefPtr&lt;Frame&gt; child = m_frame-&gt;tree()-&gt;firstChild(); child; child = child-&gt;tree()-&gt;nextSibling())
&gt; +        child-&gt;loader()-&gt;stopAllLoaders(clearProvisionalItemPolicy);

Inlining this function is very helpful.

&gt; Source/WebCore/loader/FrameLoader.h:159
&gt; -    // FIXME: Move this method to ResourceLoader with the rest of the ResourceError accessors.
&gt;      ResourceError cancelledError(const ResourceRequest&amp;) const;

It seems like this function should be removed.  Are there clients of this method that aren&apos;t better off calling the ResourceLoader version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426948</commentid>
    <comment_count>7</comment_count>
      <attachid>98445</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-24 10:25:23 -0700</bug_when>
    <thetext>Comment on attachment 98445
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=98445&amp;action=review

&gt;&gt; Source/WebCore/loader/FrameLoader.h:159
&gt;&gt;      ResourceError cancelledError(const ResourceRequest&amp;) const;
&gt; 
&gt; It seems like this function should be removed.  Are there clients of this method that aren&apos;t better off calling the ResourceLoader version?

I thought the same thing, believed the FIXME removed it, and then learned how this error is different from the other resource errors.

There are multiple places where a cancelled error has to be synthesized when there is no resource loader. In WebCore, this happens in DocumentLoader::stopLoading, FrameLoader::requestFromDelegate, and possibly in PluginStream::stop.

While there may be some good way to deal with this, simply removing the function isn’t clearly the correct step forward, which is why I removed the FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426954</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-24 10:39:19 -0700</bug_when>
    <thetext>Ok.  That explains why it was harder to move than the other ones.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427249</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-24 17:09:46 -0700</bug_when>
    <thetext>Committed r89715: &lt;http://trac.webkit.org/changeset/89715&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98445</attachid>
            <date>2011-06-23 17:54:01 -0700</date>
            <delta_ts>2011-06-24 10:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63295-20110623175400.patch</filename>
            <type>text/plain</type>
            <size>18653</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5NjI1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDYtMjMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBmcm9tIEZyYW1l
TG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MzI5NQorCisgICAgICAgIFJlbW92aW5nIDggb2YgdGhlIGZ1bmN0aW9ucyBpbiBGcmFtZUxvYWRl
ci5oIGlzIHByb2JhYmx5IGEgc3RlcAorICAgICAgICBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLgor
CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyOjpoYW5kbGVkT25sb2FkRXZlbnRzKToKKyAgICAgICAgTW92ZWQgdGhl
IGNhbGwgdG8gc3RvcERlZmVycmluZ0V2ZW50cyBpbiBoZXJlIGZyb20gRnJhbWVMb2FkZXIuCisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6IERpdHRvLgorCisgICAgICAgICogbG9h
ZGVyL0RvY3VtZW50V3JpdGVyLmg6IEZpeGVkIGEgdHlwby4KKworICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2V0Rmlyc3RQ
YXJ0eUZvckNvb2tpZXMpOiBDaGFuZ2VkIHRoaXMgdG8KKyAgICAgICAgdXNlIGEgbm9uLXJlY3Vy
c2l2ZSB0cmVlIHdhbGsgaW5zdGVhZCBvZiByZWN1cnNpb24uCisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOiBNb3ZlZCB0aGUgY29kZSBmcm9tCisgICAgICAg
IHN0b3BMb2FkaW5nU3ViZnJhbWVzIGlubGluZSwgc2luY2UgaXQncyBvbmx5IHR3byBsaW5lcyBv
ZiBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRl
Rm9yVGhpc0ZyYW1lKTogTW92ZWQKKyAgICAgICAgdGhlIGNvZGUgZnJvbSBtYXJrTG9hZENvbXBs
ZXRlIGlubGluZSwgc2luY2UgaXQncyBvbmx5IG9uZSBsaW5lLgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlKTogQ2hhbmdlZCB0aGlzIHRvIHVzZSBhCisg
ICAgICAgIG5vbi1yZWN1cnNpdmUgdHJlZSB3YWxrIGluc3RlYWQgb2YgcmVjdXJzaW9uLCBlbGlt
aW5hdGluZyB0aGUKKyAgICAgICAgcmVjdXJzaXZlQ2hlY2tMb2FkQ29tcGxldGUgZnVuY3Rpb24g
Y29tcGxldGVseS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpoYW5kbGVkT25sb2Fk
RXZlbnRzKTogTW92ZWQgdGhlIGNhbGwgdG8KKyAgICAgICAgc3RvcERlZmVycmluZ0V2ZW50cyBp
bnRvIERvY3VtZW50TG9hZGVyLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6IFJl
bW92ZWQgdW5uZWVkZWQgZm9yd2FyZCBkZWNsYXJhdGlvbnMsCisgICAgICAgIGFuZCBub3ctdW5u
ZWVkZWQgZnVuY3Rpb25zIHNldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGUsCisgICAgICAgIGlzU3Rv
cHBpbmcsIGlzTG9hZGluZ0Zyb21DYWNoZWRQYWdlLCBzdXBwcmVzc09wZW5lckluTmV3RnJhbWUs
CisgICAgICAgIHN0b3BMb2FkaW5nU3ViZnJhbWVzLCBtYXJrTG9hZENvbXBsZXRlLCBtYWluUmVj
ZWl2ZWRFcnJvciwKKyAgICAgICAgYW5kIHJlY3Vyc2l2ZUNoZWNrTG9hZENvbXBsZXRlLiBBbHNv
IG1hZGUgYWxsQ2hpbGRyZW5BcmVDb21wbGV0ZQorICAgICAgICBwcml2YXRlLgorCisgICAgICAg
ICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWlu
UmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KToKKyAgICAgICAgQ2Fs
bCBEb2N1bWVudExvYWRlcjo6aXNTdG9wcGluZyBzbyB3ZSBjYW4gcmVtb3ZlIHRoZSBmdW5jdGlv
bgorICAgICAgICBmcm9tIEZyYW1lTG9hZGVyIHRoYXQganVzdCBjYWxscyB0aHJvdWdoLiBPdGhl
ciBjYWxsIHNpdGVzIHdlcmUKKyAgICAgICAgdXNpbmcgRG9jdW1lbnRMb2FkZXI6OmlzU3RvcHBp
bmcgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6IENhbGwKKyAgICAgICAgRG9jdW1lbnRMb2FkZXI6OnNldHVwRm9yUmVw
bGFjZUJ5TUlNRVR5cGUgc28gd2UgY2FuIHJlbW92ZSB0aGUKKyAgICAgICAgZnVuY3Rpb24gZnJv
bSBGcmFtZUxvYWRlciB0aGF0IGp1c3QgY2FsbHMgdGhyb3VnaC4gVGhpcyB3YXMKKyAgICAgICAg
dGhlIG9ubHkgY2FsbCBzaXRlLgorCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjppbml0KTogQ2FsbCB0aGUKKyAg
ICAgICAgUmVzb3VyY2VMb2FkZXI6OmNhbmNlbGxlZEVycm9yIGZ1bmN0aW9uIGluc3RlYWQgb2Yg
Y2FsbGluZworICAgICAgICBkaXJlY3RseSB0byBGcmFtZUxvYWRlci4KKworICAgICAgICAqIGxv
YWRlci9SZXNvdXJjZUxvYWRlci5oOiBNYWRlIHJlc3BvbnNlIGFuIGlubGluZSBmdW5jdGlvbi4K
KwogMjAxMS0wNi0yMyAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDg5NjEwKQorKysgU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTE5LDQgKzkxOSwxMiBA
QCB2b2lkIERvY3VtZW50TG9hZGVyOjpnZXRJY29uRGF0YUZvckljb25VCiAgICAgaWNvbkRhdGFi
YXNlKCkuaWNvbkRhdGFGb3JJY29uVVJMKHVybFN0cmluZywgbV9pY29uRGF0YUNhbGxiYWNrKTsK
IH0KIAordm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9ubG9hZEV2ZW50cygpCit7CisgICAg
bV93YXNPbmxvYWRIYW5kbGVkID0gdHJ1ZTsKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQorICAgIGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPnN0b3BEZWZlcnJpbmdFdmVudHMo
KTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24gODk2MTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDcgKzEy
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwcmVwYXJlRm9yTG9hZFN0
YXJ0KCk7CiAgICAgICAgIGJvb2wgaXNDbGllbnRSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNDbGllbnRSZWRpcmVjdDsgfQogICAgICAgICB2b2lkIHNldElzQ2xpZW50UmVkaXJlY3QoYm9v
bCBpc0NsaWVudFJlZGlyZWN0KSB7IG1faXNDbGllbnRSZWRpcmVjdCA9IGlzQ2xpZW50UmVkaXJl
Y3Q7IH0KLSAgICAgICAgdm9pZCBoYW5kbGVkT25sb2FkRXZlbnRzKCkgeyBtX3dhc09ubG9hZEhh
bmRsZWQgPSB0cnVlOyB9CisgICAgICAgIHZvaWQgaGFuZGxlZE9ubG9hZEV2ZW50cygpOwogICAg
ICAgICBib29sIHdhc09ubG9hZEhhbmRsZWQoKSB7IHJldHVybiBtX3dhc09ubG9hZEhhbmRsZWQ7
IH0KICAgICAgICAgYm9vbCBpc0xvYWRpbmdJbkFQSVNlbnNlKCkgY29uc3Q7CiAgICAgICAgIHZv
aWQgc2V0UHJpbWFyeUxvYWRDb21wbGV0ZShib29sKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFdyaXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFdyaXRlci5oCShyZXZpc2lvbiA4OTYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFdyaXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0RGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyKik7CiAKLSAg
ICAvLyBFeHBvc2VkIGZvciBEb3VjbWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMKKyAgICAvLyBFeHBv
c2VkIGZvciBEb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMuCiAgICAgVGV4dFJlc291cmNlRGVj
b2RlciogY3JlYXRlRGVjb2RlcklmTmVlZGVkKCk7CiAgICAgdm9pZCByZXBvcnREYXRhUmVjZWl2
ZWQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lv
biA4OTYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDkgKzQxLDcgQEAKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKLSNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2VuZGlmCiAj
aW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgog
I2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCkBAIC05ODMsOSArOTgxLDggQEAgdm9pZCBG
cmFtZUxvYWRlcjo6dXBkYXRlRmlyc3RQYXJ0eUZvckNvbwogCiB2b2lkIEZyYW1lTG9hZGVyOjpz
ZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+c2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXModXJsKTsKLSAgICBmb3IgKEZyYW1l
KiBjaGlsZCA9IG1fZnJhbWUtPnRyZWUoKS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQotICAgICAgICBjaGlsZC0+bG9hZGVyKCktPnNl
dEZpcnN0UGFydHlGb3JDb29raWVzKHVybCk7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX2Zy
YW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9mcmFtZSkp
CisgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyh1cmwp
OwogfQogCiAvLyBUaGlzIGRvZXMgdGhlIHNhbWUga2luZCBvZiB3b3JrIHRoYXQgZGlkT3BlblVS
TCBkb2VzLCBleGNlcHQgaXQgcmVsaWVzIG9uIHRoZSBmYWN0CkBAIC0xMDk1LDExICsxMDkyLDYg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6c2V0dXBGb3JSZXBsYWNlKCkKICAgICBkZXRhY2hDaGlsZHJl
bigpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpzZXR1cEZvclJlcGxhY2VCeU1JTUVUeXBlKGNv
bnN0IFN0cmluZyYgbmV3TUlNRVR5cGUpCi17Ci0gICAgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+
c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlwZShuZXdNSU1FVHlwZSk7Ci19Ci0KIC8vIFRoaXMgaXMg
YSBoYWNrIHRvIGFsbG93IGtlZXAgbmF2aWdhdGlvbiB0byBodHRwL2h0dHBzIGZlZWRzIHdvcmtp
bmcuIFRvIHJlbW92ZSB0aGlzCiAvLyB3ZSBuZWVkIHRvIGludHJvZHVjZSBuZXcgQVBJIGFraW4g
dG8gcmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsLCB0aGF0IHJlZ2lzdGVycyBhCiAvLyBwcm90b2Nv
bHMgbmF2aWdhdGlvbiBwb2xpY3kuCkBAIC0xNTU1LDEyICsxNTQ3LDYgQEAgYm9vbCBGcmFtZUxv
YWRlcjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBGcmFtZUxvYWRlcjo6c3RvcExvYWRpbmdTdWJmcmFtZXMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kpCi17Ci0gICAgZm9yIChSZWZQdHI8RnJh
bWU+IGNoaWxkID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS0+
c3RvcEFsbExvYWRlcnMoY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kpOwotfQotCiB2b2lkIEZy
YW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyhDbGVhclByb3Zpc2lvbmFsSXRlbVBvbGljeSBjbGVh
clByb3Zpc2lvbmFsSXRlbVBvbGljeSkKIHsKICAgICBBU1NFUlQoIW1fZnJhbWUtPmRvY3VtZW50
KCkgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCkpOwpAQCAtMTU4MCw3ICsx
NTY2LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcgogICAgIGlm
IChjbGVhclByb3Zpc2lvbmFsSXRlbVBvbGljeSA9PSBTaG91bGRDbGVhclByb3Zpc2lvbmFsSXRl
bSkKICAgICAgICAgaGlzdG9yeSgpLT5zZXRQcm92aXNpb25hbEl0ZW0oMCk7CiAKLSAgICBzdG9w
TG9hZGluZ1N1YmZyYW1lcyhjbGVhclByb3Zpc2lvbmFsSXRlbVBvbGljeSk7CisgICAgZm9yIChS
ZWZQdHI8RnJhbWU+IGNoaWxkID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGNoaWxkLT5s
b2FkZXIoKS0+c3RvcEFsbExvYWRlcnMoY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kpOwogICAg
IGlmIChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIG1fcHJvdmlzaW9uYWxE
b2N1bWVudExvYWRlci0+c3RvcExvYWRpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudExvYWRlcikK
QEAgLTE3MTQsMTEgKzE3MDEsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjbGVhclByb3Zpc2lvbmFs
TG9hZCgpCiAgICAgc2V0U3RhdGUoRnJhbWVTdGF0ZUNvbXBsZXRlKTsKIH0KIAotdm9pZCBGcmFt
ZUxvYWRlcjo6bWFya0xvYWRDb21wbGV0ZSgpCi17Ci0gICAgc2V0U3RhdGUoRnJhbWVTdGF0ZUNv
bXBsZXRlKTsKLX0KLQogdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCkK
IHsKICAgICBSZWZQdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IG1fbG9hZGluZ0Zyb21DYWNo
ZWRQYWdlID8gcGFnZUNhY2hlKCktPmdldChoaXN0b3J5KCktPnByb3Zpc2lvbmFsSXRlbSgpKSA6
IDA7CkBAIC0yMDQwLDExICsyMDIyLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6b3BlbihDYWNoZWRG
cmFtZUJhc2UmIAogICAgIGNhY2hlZEZyYW1lLnJlc3RvcmUoKTsKIH0KIAotYm9vbCBGcmFtZUxv
YWRlcjo6aXNTdG9wcGluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGFjdGl2ZURvY3VtZW50TG9h
ZGVyKCktPmlzU3RvcHBpbmcoKTsKLX0KLQogdm9pZCBGcmFtZUxvYWRlcjo6ZmluaXNoZWRMb2Fk
aW5nKCkKIHsKICAgICAvLyBSZXRhaW4gYmVjYXVzZSB0aGUgc3RvcCBtYXkgcmVsZWFzZSB0aGUg
bGFzdCByZWZlcmVuY2UgdG8gaXQuCkBAIC0yMjQwLDcgKzIyMTcsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoCiAgICAgICAgICAgICBpZiAoIWRsIHx8IChkbC0+
aXNMb2FkaW5nSW5BUElTZW5zZSgpICYmICFkbC0+aXNTdG9wcGluZygpKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIG1hcmtMb2FkQ29tcGxldGUoKTsKKyAgICAgICAg
ICAgIHNldFN0YXRlKEZyYW1lU3RhdGVDb21wbGV0ZSk7CiAKICAgICAgICAgICAgIC8vIEZJWE1F
OiBJcyB0aGlzIHN1YnNlcXVlbnQgd29yayBpbXBvcnRhbnQgaWYgd2UgYWxyZWFkeSBuYXZpZ2F0
ZWQgYXdheT8KICAgICAgICAgICAgIC8vIE1heWJlIHRoZXJlIGFyZSBidWdzIGJlY2F1c2Ugb2Yg
dGhhdCwgb3IgZXh0cmEgd29yayB3ZSBjYW4gc2tpcCBiZWNhdXNlCkBAIC0yMzYyLDIxICsyMzM5
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChGcgogICAgIG1fZnJh
bWUtPnRyZWUoKS0+cmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpy
ZWN1cnNpdmVDaGVja0xvYWRDb21wbGV0ZSgpCi17Ci0gICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4s
IDEwPiBmcmFtZXM7Ci0gICAgCi0gICAgZm9yIChSZWZQdHI8RnJhbWU+IGZyYW1lID0gbV9mcmFt
ZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPm5l
eHRTaWJsaW5nKCkpCi0gICAgICAgIGZyYW1lcy5hcHBlbmQoZnJhbWUpOwotICAgIAotICAgIHVu
c2lnbmVkIHNpemUgPSBmcmFtZXMuc2l6ZSgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzaXplOyBpKyspCi0gICAgICAgIGZyYW1lc1tpXS0+bG9hZGVyKCktPnJlY3Vyc2l2ZUNoZWNr
TG9hZENvbXBsZXRlKCk7Ci0gICAgCi0gICAgY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUo
KTsKLX0KLQotLy8gQ2FsbGVkIGV2ZXJ5IHRpbWUgYSByZXNvdXJjZSBpcyBjb21wbGV0ZWx5IGxv
YWRlZCwgb3IgYW4gZXJyb3IgaXMgcmVjZWl2ZWQuCisvLyBDYWxsZWQgZXZlcnkgdGltZSBhIHJl
c291cmNlIGlzIGNvbXBsZXRlbHkgbG9hZGVkIG9yIGFuIGVycm9yIGlzIHJlY2VpdmVkLgogdm9p
ZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGUoKQogewogICAgIEFTU0VSVChtX2NsaWVu
dC0+aGFzV2ViVmlldygpKTsKQEAgLTIzODUsOCArMjM0OCwxNCBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpjaGVja0xvYWRDb21wbGV0ZSgpCiAKICAgICAvLyBGSVhNRTogQWx3YXlzIHRyYXZlcnNpbmcg
dGhlIGVudGlyZSBmcmFtZSB0cmVlIGlzIGEgYml0IGluZWZmaWNpZW50LCBidXQgCiAgICAgLy8g
aXMgY3VycmVudGx5IG5lZWRlZCBpbiBvcmRlciB0byBudWxsIG91dCB0aGUgcHJldmlvdXMgaGlz
dG9yeSBpdGVtIGZvciBhbGwgZnJhbWVzLgotICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKQotICAgICAgICBwYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnJlY3Vyc2l2ZUNo
ZWNrTG9hZENvbXBsZXRlKCk7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkp
IHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxGcmFtZT4sIDEwPiBmcmFtZXM7CisgICAgICAgIGZv
ciAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGZyYW1lcy5hcHBl
bmQoZnJhbWUpOworICAgICAgICAvLyBUbyBwcm9jZXNzIGNoaWxkcmVuIGJlZm9yZSB0aGVpciBw
YXJlbnRzLCBpdGVyYXRlIHRoZSB2ZWN0b3IgYmFja3dhcmRzLgorICAgICAgICBmb3IgKHNpemVf
dCBpID0gZnJhbWVzLnNpemUoKTsgaTsgLS1pKQorICAgICAgICAgICAgZnJhbWVzW2kgLSAxXS0+
bG9hZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKCk7CisgICAgfQogfQogCiBp
bnQgRnJhbWVMb2FkZXI6Om51bVBlbmRpbmdPckxvYWRpbmdSZXF1ZXN0cyhib29sIHJlY3Vyc2Up
IGNvbnN0CkBAIC0yNDExLDEyICsyMzgwLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6aGFuZGxlZE9u
bG9hZEV2ZW50cygpCiB7CiAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZl
bnRzKCk7CiAKLSAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKSkgeworICAgIGlmIChkb2N1bWVudExv
YWRlcigpKQogICAgICAgICBkb2N1bWVudExvYWRlcigpLT5oYW5kbGVkT25sb2FkRXZlbnRzKCk7
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSAgICAgICAgZG9jdW1lbnRM
b2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+c3RvcERlZmVycmluZ0V2ZW50cygpOwot
I2VuZGlmCi0gICAgfQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpmcmFtZURldGFjaGVkKCkKQEAg
LTMxMTYsMTEgKzMwODEsNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjptYWluUmVjZWl2ZWRDb21wbGV0
ZUVyCiAgICAgICAgIGNoZWNrTG9hZENvbXBsZXRlKCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6
Om1haW5SZWNlaXZlZEVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBib29sIGlzQ29t
cGxldGUpCi17Ci0gICAgYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlY2VpdmVkRXJyb3Io
ZXJyb3IsIGlzQ29tcGxldGUpOwotfQotCiBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7CiAgICAg
UmVzb3VyY2VFcnJvciBlcnJvciA9IG1fY2xpZW50LT5jYW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCShyZXZpc2lvbiA4OTYxMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OCwzOSArNDgsMjcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXJjaGl2ZTsKLWNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwogY2xhc3MgQ2FjaGVkRnJhbWVCYXNlOwogY2xh
c3MgQ2FjaGVkUGFnZTsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogY2xhc3MgQ2hyb21lOwogY2xh
c3MgRE9NV3JhcHBlcldvcmxkOwotY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudExvYWRl
cjsKIGNsYXNzIEV2ZW50OwotY2xhc3MgRm9ybURhdGE7CiBjbGFzcyBGb3JtU3RhdGU7CiBjbGFz
cyBGb3JtU3VibWlzc2lvbjsKLWNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7
CiBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwotY2xhc3MgSGlzdG9yeUl0ZW07Ci1jbGFz
cyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgTmV0d29y
a2luZ0NvbnRleHQ7CiBjbGFzcyBQYWdlOwotY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3Mg
UmVzb3VyY2VFcnJvcjsKLWNsYXNzIFJlc291cmNlTG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLWNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7Ci1j
bGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOwotY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgU3RyaW5nV2l0aERpcmVj
dGlvbjsKIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwotY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
IAogc3RydWN0IEZyYW1lTG9hZFJlcXVlc3Q7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CkBAIC0x
MDUsNyArOTMsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByZXBhcmVGb3JMb2FkU3RhcnQoKTsK
ICAgICB2b2lkIHNldHVwRm9yUmVwbGFjZSgpOwotICAgIHZvaWQgc2V0dXBGb3JSZXBsYWNlQnlN
SU1FVHlwZShjb25zdCBTdHJpbmcmIG5ld01JTUVUeXBlKTsKIAogICAgIC8vIEZJWE1FOiBUaGVz
ZSBhcmUgYWxsIGZ1bmN0aW9ucyB3aGljaCBzdGFydCBsb2Fkcy4gV2UgaGF2ZSB0b28gbWFueS4K
ICAgICB2b2lkIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiByZWZlcmVyLCBGcmFtZSopOwpAQCAtMTY2LDExICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCB3aWxsTG9hZE1lZGlhRWxlbWVudFVSTChLVVJMJik7CiAKICAgICB2b2lkIGhhbmRsZUZhbGxi
YWNrQ29udGVudCgpOwotICAgIGJvb2wgaXNTdG9wcGluZygpIGNvbnN0OwogCiAgICAgdm9pZCBm
aW5pc2hlZExvYWRpbmcoKTsKIAotICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgbWV0aG9kIHRvIFJl
c291cmNlTG9hZGVyIHdpdGggdGhlIHJlc3Qgb2YgdGhlIFJlc291cmNlRXJyb3IgYWNjZXNzb3Jz
LgogICAgIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgY29uc3Q7CiAKICAgICBib29sIGlzSG9zdGVkQnlPYmplY3RFbGVtZW50KCkgY29uc3Q7CkBA
IC0yNTcsMjEgKzI0MiwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJp
bmdXaXRoRGlyZWN0aW9uJik7CiAKICAgICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwot
ICAgIGJvb2wgaXNMb2FkaW5nRnJvbUNhY2hlZFBhZ2UoKSBjb25zdCB7IHJldHVybiBtX2xvYWRp
bmdGcm9tQ2FjaGVkUGFnZTsgfQogCiAgICAgRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUqIHN0YXRl
TWFjaGluZSgpIGNvbnN0IHsgcmV0dXJuICZtX3N0YXRlTWFjaGluZTsgfQogCiAgICAgYm9vbCBz
aG91bGRBbGxvd05hdmlnYXRpb24oRnJhbWUqIHRhcmdldEZyYW1lKSBjb25zdDsKICAgICBGcmFt
ZSogZmluZEZyYW1lRm9yTmF2aWdhdGlvbihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOwogCi0g
ICAgdm9pZCBhcHBseVVzZXJBZ2VudChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpOworICAgIHZv
aWQgYXBwbHlVc2VyQWdlbnQoUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBib29sIHNob3VsZElu
dGVycnVwdExvYWRGb3JYRnJhbWVPcHRpb25zKGNvbnN0IFN0cmluZyYsIGNvbnN0IEtVUkwmKTsK
IAotICAgIC8vIEZJWE1FOiBTaG91bGQgdGhlc2UgcmVhbGx5IGJlIHB1YmxpYz8KICAgICB2b2lk
IGNvbXBsZXRlZCgpOwogICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJlQ29tcGxldGUoKSBjb25zdDsg
Ly8gaW5jbHVkaW5nIHRoaXMKLSAgICBib29sIGFsbENoaWxkcmVuQXJlQ29tcGxldGUoKSBjb25z
dDsgLy8gaW1tZWRpYXRlIGNoaWxkcmVuLCBub3QgYWxsIGRlc2NlbmRhbnRzCiAgICAgdm9pZCBj
bGllbnRSZWRpcmVjdGVkKGNvbnN0IEtVUkwmLCBkb3VibGUgZGVsYXksIGRvdWJsZSBmaXJlRGF0
ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKICAgICB2b2lkIGNsaWVudFJlZGlyZWN0Q2Fu
Y2VsbGVkT3JGaW5pc2hlZChib29sIGNhbmNlbFdpdGhMb2FkSW5Qcm9ncmVzcyk7CiAKQEAgLTI3
OSw4ICsyNjEsNiBAQCBwdWJsaWM6CiAgICAgLy8gdXNlcyB0aGUgcG9saWN5IG1hY2hpbmVyeSAo
YW5kIHRoZXJlZm9yZSBpcyBjYWxsZWQgdmlhIHRoZSBQb2xpY3lDaGVja2VyKS4gIE9uY2Ugd2UK
ICAgICAvLyBpbnRyb2R1Y2UgYSBwcm9wZXIgY2FsbGJhY2sgdHlwZSBmb3IgdGhpcyBmdW5jdGlv
biwgd2Ugc2hvdWxkIG1ha2UgaXQgcHJpdmF0ZSBhZ2Fpbi4KICAgICB2b2lkIGNvbnRpbnVlTG9h
ZEFmdGVyV2lsbFN1Ym1pdEZvcm0oKTsKLSAgICAKLSAgICBib29sIHN1cHByZXNzT3BlbmVySW5O
ZXdGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1lOyB9CiAK
ICAgICBzdGF0aWMgT2JqZWN0Q29udGVudFR5cGUgZGVmYXVsdE9iamVjdENvbnRlbnRUeXBlKGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJ
bnNGb3JJbWFnZXMpOwogCkBAIC0yOTksNiArMjc5LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
aXZhdGU6CisgICAgYm9vbCBhbGxDaGlsZHJlbkFyZUNvbXBsZXRlKCkgY29uc3Q7IC8vIGltbWVk
aWF0ZSBjaGlsZHJlbiwgbm90IGFsbCBkZXNjZW5kYW50cworCiAgICAgdm9pZCBjaGVja1RpbWVy
RmlyZWQoVGltZXI8RnJhbWVMb2FkZXI+Kik7CiAgICAgCiAgICAgdm9pZCBsb2FkU2FtZURvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSopOwpAQCAtMzEzLDE2ICsyOTUsMTAgQEAgcHJpdmF0ZToKICAg
ICAKICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIEZy
YW1lTG9hZFR5cGUgbG9hZFR5cGUsIGJvb2wgaXNNYWluUmVzb3VyY2UsIGJvb2wgY29va2llUG9s
aWN5VVJMRnJvbVJlcXVlc3QpOwogCi0gICAgLy8gQWxzbyBub3QgY29vbC4KLSAgICB2b2lkIHN0
b3BMb2FkaW5nU3ViZnJhbWVzKENsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5KTsKLQogICAgIHZv
aWQgY2xlYXJQcm92aXNpb25hbExvYWQoKTsKLSAgICB2b2lkIG1hcmtMb2FkQ29tcGxldGUoKTsK
ICAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZChQYXNzUmVmUHRyPENhY2hlZFBhZ2U+KTsK
ICAgICB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpOwogCi0gICAgdm9pZCBtYWluUmVjZWl2ZWRF
cnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCBpc0NvbXBsZXRlKTsKLQogICAgIHN0YXRp
YyB2b2lkIGNhbGxDb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCosIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250
aW51ZSk7CiAgICAgc3RhdGljIHZvaWQgY2FsbENvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9s
aWN5KHZvaWQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4s
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgYm9vbCBz
aG91bGRDb250aW51ZSk7CiAgICAgc3RhdGljIHZvaWQgY2FsbENvbnRpbnVlRnJhZ21lbnRTY3Jv
bGxBZnRlck5hdmlnYXRpb25Qb2xpY3kodm9pZCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7CkBAIC0zNjcsOCArMzQz
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJl
cXVlc3QmLCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJik7CiAKLSAg
ICB2b2lkIHJlY3Vyc2l2ZUNoZWNrTG9hZENvbXBsZXRlKCk7Ci0KICAgICB2b2lkIGRldGFjaENo
aWxkcmVuKCk7CiAgICAgdm9pZCBjbG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1lKik7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lv
biA4OTYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTAsMTEgKzMxMCwxMSBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6Y29udGludWVBZnRlckNvCiAgICAgaWYgKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQog
ICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHIpOwogCi0gICAgaWYg
KGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmlzU3RvcHBpbmcoKSkgeworICAgIGlm
IChmcmFtZUxvYWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigp
LT5pc1N0b3BwaW5nKCkpIHsKICAgICAgICAgaWYgKG1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgp
KSB7CiAgICAgICAgICAgICBpZiAobV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSkK
ICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlRGF0YShtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQo
KS0+ZGF0YSgpLCBtX3N1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCBtX3N1YnN0aXR1
dGVEYXRhLmNvbnRlbnQoKS0+c2l6ZSgpLCB0cnVlKTsKLSAgICAgICAgICAgIGlmIChmcmFtZUxv
YWRlcigpICYmICFmcmFtZUxvYWRlcigpLT5pc1N0b3BwaW5nKCkpIAorICAgICAgICAgICAgaWYg
KGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkt
PmlzU3RvcHBpbmcoKSkgCiAgICAgICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAg
ICAgICAgfSBlbHNlIGlmIChzaG91bGRMb2FkQXNFbXB0eURvY3VtZW50KHVybCkgfHwgZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCktPnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKHVybC5w
cm90b2NvbCgpKSkKICAgICAgICAgICAgIGRpZEZpbmlzaExvYWRpbmcoMCk7CkBAIC0zMzAsNyAr
MzMwLDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDbwogewogICAg
IEFTU0VSVChtX3dhaXRpbmdGb3JDb250ZW50UG9saWN5KTsKICAgICBtX3dhaXRpbmdGb3JDb250
ZW50UG9saWN5ID0gZmFsc2U7Ci0gICAgaWYgKGZyYW1lTG9hZGVyKCkgJiYgIWZyYW1lTG9hZGVy
KCktPmlzU3RvcHBpbmcoKSkKKyAgICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIo
KS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKQogICAgICAgICBjb250aW51
ZUFmdGVyQ29udGVudFBvbGljeShwb2xpY3ksIG1fcmVzcG9uc2UpOwogICAgIGRlcmVmKCk7IC8v
IGJhbGFuY2VzIHJlZiBpbiBkaWRSZWNlaXZlUmVzcG9uc2UKIH0KQEAgLTM5MCw3ICszOTAsNyBA
QCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAjZW5kaWYKIAogICAg
IGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7Ci0gICAgICAgIGZyYW1lTG9hZGVyKCkt
PnNldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGUoci5taW1lVHlwZSgpKTsKKyAgICAgICAgZnJhbWVM
b2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+c2V0dXBGb3JSZXBsYWNlQnlNSU1FVHlw
ZShyLm1pbWVUeXBlKCkpOwogICAgICAgICBjbGVhclJlc291cmNlRGF0YSgpOwogICAgIH0KICAg
ICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNp
b24gODk2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRlcjo6aW5p
dChjb25zdCBSZXNvdXJjZQogCiAgICAgd2lsbFNlbmRSZXF1ZXN0KGNsaWVudFJlcXVlc3QsIFJl
c291cmNlUmVzcG9uc2UoKSk7CiAgICAgaWYgKGNsaWVudFJlcXVlc3QuaXNOdWxsKCkpIHsKLSAg
ICAgICAgZGlkRmFpbChmcmFtZUxvYWRlcigpLT5jYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpKTsK
KyAgICAgICAgZGlkRmFpbChjYW5jZWxsZWRFcnJvcigpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIApAQCAtMzk0LDExICszOTQsNiBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5j
ZWwoY29uc3QgUmVzb3VyCiAgICAgcmVsZWFzZVJlc291cmNlcygpOwogfQogCi1jb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiBSZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2UoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3Jlc3BvbnNlOwotfQotCiBSZXNvdXJjZUVycm9yIFJlc291cmNlTG9hZGVyOjpjYW5j
ZWxsZWRFcnJvcigpCiB7CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNhbmNlbGxlZEVycm9y
KG1fcmVxdWVzdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAko
cmV2aXNpb24gODk2MTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODIsNiArMTgyLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZGVmZXJyZWRS
ZXF1ZXN0OwogICAgIH07CiAKK2lubGluZSBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBSZXNvdXJj
ZUxvYWRlcjo6cmVzcG9uc2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc3BvbnNlOworfQor
CiB9CiAKICNlbmRpZgo=
</data>
<flag name="review"
          id="92684"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="92674"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>