<?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>166426</bug_id>
          
          <creation_ts>2016-12-22 12:33:51 -0800</creation_ts>
          <short_desc>Add WebCore::URL::protocolHostAndPort</short_desc>
          <delta_ts>2017-01-05 11:30:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1262358</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-22 12:33:51 -0800</bug_when>
    <thetext>In Bug 166041 comment 4, Darin suggests:

&gt; Seems to me that this should be a function in URL or URLParser itself, not
&gt; something in the network capture code. I don’t think the name “base URL” is
&gt; right for this, since that is a term that means something specific in the
&gt; context of URLs. It’s more like topLevelOfServerURL; it would be good to use
&gt; a more precise term in the name here.

In Bug 166041 comment 5, Alex adds:

&gt; This should definitely be in URL.h and URL.cpp. 

This bug tracks that work.

Darin seemed open to different names for the function, so I&apos;m considering schemeHostAndPort(). This matches the hostAndPort() that&apos;s already there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262366</commentid>
    <comment_count>1</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-22 12:54:54 -0800</bug_when>
    <thetext>For my work, I don&apos;t think it matters if the username and password are in the string I return. I don&apos;t think the record/replay mechanism will be exposed to such URLs. But what about in general? Should I do what the name of the function says and just return the scheme, host, and port, or should I do what my code currently does which is return the left part of the string up to but not including the path? I think the former.

Also, Alex says:

&gt; It looks like you just want to include the &apos;/&apos; after
&gt; the host if there is one.  There will always be one if the scheme is
&gt; something like http, but an unknown scheme without a &apos;/&apos; like
&gt; &quot;asdf://noSlash&quot; won&apos;t have one.

Is including that trailing slash important/required/expected? It seems odd to me to special case a &quot;scheme that is something like http&quot;. It&apos;s also not clear to me what qualifies as &quot;something like http&quot;. Certainly http(s), but is there anything else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262367</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-22 12:57:32 -0800</bug_when>
    <thetext>For consistency with existing terms in the URL class, I guess it should be protocolHostAndPort rather than schemeHostAndPort.

Are there significant semantic differences between protocol and scheme?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262417</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-12-22 14:56:37 -0800</bug_when>
    <thetext>scheme and protocol are basically the same thing.
special schemes are listed here https://url.spec.whatwg.org/#special-scheme</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262435</commentid>
    <comment_count>4</comment_count>
      <attachid>297685</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-22 15:42:26 -0800</bug_when>
    <thetext>Created attachment 297685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262438</commentid>
    <comment_count>5</comment_count>
      <attachid>297685</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-12-22 15:50:28 -0800</bug_when>
    <thetext>Comment on attachment 297685
Patch

Most of the time this should just return a substring from 0 to m_portEnd + 1 with a check that the string is long enough and that there is no user or password and an assertion that a &apos;/&apos; is immediately after the port.  If the string is not long enough, the &apos;/&apos; should be appended.  If there is a user and password, we will have to do additional string building, but that is rare.

This should have a test of a URL with a user and password.
This should have a test of a URL with no port.
This should have a test of a URL with a non-special scheme (such as asdf) with and without a slash after the host.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262487</commentid>
    <comment_count>6</comment_count>
      <attachid>297685</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-12-22 17:31:49 -0800</bug_when>
    <thetext>Comment on attachment 297685
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebCore/URL.cpp:63
&gt;      EXPECT_EQ(8080, kurl.port().value());

kurl!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263907</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-04 14:51:17 -0800</bug_when>
    <thetext>Alex, you had said:

&gt; It looks like you just want to include the &apos;/&apos; after
&gt; the host if there is one.  There will always be one if the scheme is
&gt; something like http, but an unknown scheme without a &apos;/&apos; like
&gt; &quot;asdf://noSlash&quot; won&apos;t have one.

I then asked if the slash was required, and what qualified as a being &quot;something like http&quot;. You subsequently posted a comment &quot;special schemes are listed here https://url.spec.whatwg.org/#special-scheme&quot;, but it&apos;s not clear to me if that&apos;s your answer to my questions. If so, my reading of that section of the spec tells me that the trailing slash you are talking about is part of the path component, not part of the host+port components. RFC 3986 also indicates this:

         foo://example.com:8042/over/there?name=ferret#nose
         \_/   \______________/\_________/ \_________/ \__/
          |           |            |            |        |
       scheme     authority       path        query   fragment

If the slash is part of the path, then it doesn&apos;t seem to me that it should be included in a call that returns the scheme+authority (less any username and/or password).

What&apos;s your take here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263930</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-04 16:36:10 -0800</bug_when>
    <thetext>I agree, the slash is in the path.  The scheme+authority should not return the slash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263951</commentid>
    <comment_count>9</comment_count>
      <attachid>298053</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2017-01-04 17:50:05 -0800</bug_when>
    <thetext>Created attachment 298053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264163</commentid>
    <comment_count>10</comment_count>
      <attachid>298053</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-05 11:19:01 -0800</bug_when>
    <thetext>Comment on attachment 298053
Patch

Clearing flags on attachment: 298053

Committed r210365: &lt;http://trac.webkit.org/changeset/210365&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264164</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-05 11:19:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264167</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-05 11:29:56 -0800</bug_when>
    <thetext>In a sense it&apos;s reinvented WebCore::SecurityOrigin. Maybe you should return one of those instead? I added an extremely barebones API test for it last week; all of the tests added here would be good to have in that file too. It would also be good to validate that this function always returns the same result as SecurityOrigin::create(url).toString().

On the other hand, it maybe makes sense to have a way to avoid the construction of a SecurityOrigin object in situations where that&apos;s overkill. And there is certainly a difference between a string representation of a security origin (that&apos;s what is returned by this function) and an actual security origin (which could additionally contain a separate domain for CORS, or could be opaque and not have protocol/host/port at all).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297685</attachid>
            <date>2016-12-22 15:42:26 -0800</date>
            <delta_ts>2017-01-04 17:50:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166426-20161222154122.patch</filename>
            <type>text/plain</type>
            <size>3848</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjNjU0MmVlMGUzOTgy
ODc4ZWUyYTc4Y2YwYWI5YjQ1YmZlNTg4Yy4uMTJmMzM1NTcyNTk4NmIyZmMxNjU2NTEzYTY5MGU2
NDE2ZDlmNzkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTEyLTIyICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViQ29yZTo6VVJM
Ojpwcm90b2NvbEhvc3RBbmRQb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY0MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCB0byBzdXBwb3J0IHJlY29yZC9yZXBsYXkgbWVjaGFuaXNtLCB3
aGljaCBuZWVkcyBpdCBpbiBvcmRlciB0bworICAgICAgICBpbXBsZW1lbnQgZnV6enktbWF0Y2hp
bmcgb2YgVVJMcyB0aGF0IGFyZSBzaW1pbGFyIHRvIGVhY2ggb3RoZXIgYnV0CisgICAgICAgIHRo
YXQgbm9uZXRoZWxlc3MgY29tZSBmcm9tIHRoZSBzYW1lIHNvdXJjZS9ob3N0LgorCisgICAgICAg
IFVwZGF0ZWQgVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpwcm90b2NvbEhvc3RB
bmRQb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuaDoKKwogMjAxNi0xMi0yMiAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBOVUxMLWRlcmVmIENSQVNIIGlu
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjptZWRpYVR5cGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9V
UkwuY3BwCmluZGV4IDA3NWZlNjY5OWMwOTBmODAwNzVlNmViNTk4ZjM4MzY2MTJhYmU0NWEuLjM0
YjkwMDZkMjIwNjE1NjJmYzIzNjA0OGE0MWRhNzJhMDZkZDllMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VVJMLmNwcApAQCAtNzE3LDYgKzcxNywyMCBAQCBTdHJpbmcgVVJMOjpob3N0QW5kUG9ydCgpIGNv
bnN0CiAgICAgcmV0dXJuIGhvc3QoKTsKIH0KIAorU3RyaW5nIFVSTDo6cHJvdG9jb2xIb3N0QW5k
UG9ydCgpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgcmVzdWx0LmFw
cGVuZChtX3N0cmluZywgMCwgbV91c2VyU3RhcnQpOworICAgIHJlc3VsdC5hcHBlbmQobV9zdHJp
bmcsIGhvc3RTdGFydCgpLCBob3N0RW5kKCkgLSBob3N0U3RhcnQoKSk7CisgICAgaWYgKGF1dG8g
cG9ydCA9IHRoaXMtPnBvcnQoKSkgeworICAgICAgICByZXN1bHQuYXBwZW5kKCc6Jyk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIocG9ydC52YWx1ZSgpKSk7CisgICAgfQor
ICAgIGlmIChwcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQo
Jy8nKTsKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKIFN0cmluZyBVUkw6OnVz
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMobV9zdHJp
bmcuc3Vic3RyaW5nKG1fdXNlclN0YXJ0LCBtX3VzZXJFbmQgLSBtX3VzZXJTdGFydCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkwuaAppbmRleCAwYzMwYjZhZTBiOGMwZmUyZGJhZTAxYzA2YzBiZDc5MjRmYWJi
MTA5Li41YWJmMDVmZTdjNjM3NGZkNTUyYTgwMWRjNzhkYTJkYjZhNmNjZWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgaG9zdCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8
dWludDE2X3Q+IHBvcnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaG9zdEFu
ZFBvcnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcHJvdG9jb2xIb3N0QW5k
UG9ydCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB1c2VyKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHBhc3MoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgcGF0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGMyZDFmZTg1YjQ5ZGY3ODMxZGEzMWUyZjhlMWQ2MTViNjlmZDRh
YTguLjlmYzcwMzRiMjFmODgxMDNmZWYwNDk2NTA3YmM2YzEyODI4ZmI3NGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNi0xMi0yMiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIFdlYkNvcmU6OlVSTDo6cHJvdG9jb2xIb3N0QW5kUG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NDI2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHByb3RvY29sSG9zdEFu
ZFBvcnQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTYtMTItMjIgIFpodW8gTGkg
IDx6YWNobGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU1BJIGZvciBzZXRsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwu
Y3BwCmluZGV4IDkwMzNmNjQwODAzMGZiOGU5OWRlYmI4NWRkYTdiOTMzZDc0MDdhZDYuLjVhY2Iw
YzMxMWFkMWYxYWVhM2I4MjU0MDYwOGY2YjliMTU2NTJmODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCkBAIC02Myw2ICs2Myw4IEBAIFRFU1RfRihVUkxUZXN0
LCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikKICAgICBFWFBFQ1RfRVEoODA4MCwga3VybC5wb3J0
KCkudmFsdWUoKSk7CiAgICAgRVhQRUNUX0VRKFN0cmluZygidXNlcm5hbWUiKSwga3VybC51c2Vy
KCkpOwogICAgIEVYUEVDVF9FUShTdHJpbmcoInBhc3N3b3JkIiksIGt1cmwucGFzcygpKTsKKyAg
ICBFWFBFQ1RfRVEoU3RyaW5nKCJ3d3cuZXhhbXBsZS5jb206ODA4MCIpLCBrdXJsLmhvc3RBbmRQ
b3J0KCkpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5jb206ODA4
MC8iKSwga3VybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOwogICAgIEVYUEVDVF9FUShTdHJpbmco
Ii9pbmRleC5odG1sIiksIGt1cmwucGF0aCgpKTsKICAgICBFWFBFQ1RfRVEoU3RyaW5nKCJpbmRl
eC5odG1sIiksIGt1cmwubGFzdFBhdGhDb21wb25lbnQoKSk7CiAgICAgRVhQRUNUX0VRKFN0cmlu
ZygidmFyPXZhbCIpLCBrdXJsLnF1ZXJ5KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298053</attachid>
            <date>2017-01-04 17:50:05 -0800</date>
            <delta_ts>2017-01-05 11:19:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166426-20170104174838.patch</filename>
            <type>text/plain</type>
            <size>5766</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc0ZTc0YmE5NWRmYzlm
Y2JiZTM0N2U5OTdjMTMwZTQwNzUyMTdhMy4uY2VjNzljNmIzZWQxZGQ5NDhmYWY2NzRlNjY0M2Fh
Yjk3NTMzMzZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTAxLTA0ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViQ29yZTo6VVJM
Ojpwcm90b2NvbEhvc3RBbmRQb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY0MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCB0byBzdXBwb3J0IHJlY29yZC9yZXBsYXkgbWVjaGFuaXNtLCB3
aGljaCBuZWVkcyBpdCBpbiBvcmRlciB0bworICAgICAgICBpbXBsZW1lbnQgZnV6enktbWF0Y2hp
bmcgb2YgVVJMcyB0aGF0IGFyZSBzaW1pbGFyIHRvIGVhY2ggb3RoZXIgYnV0CisgICAgICAgIHRo
YXQgbm9uZXRoZWxlc3MgY29tZSBmcm9tIHRoZSBzYW1lIHNvdXJjZS9ob3N0LgorCisgICAgICAg
IFVwZGF0ZWQgVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9VUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjpwcm90b2NvbEhvc3RB
bmRQb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9VUkwuaDoKKwogMjAxNy0wMS0wMyAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVjayBmb3IgdGhlIGV4aXN0
ZW5jZSBvZiBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIuaCBiZWZvcmUgcmVkZWNsYXJpbmcg
QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAppbmRleCAw
NzVmZTY2OTljMDkwZjgwMDc1ZTZlYjU5OGYzODM2NjEyYWJlNDVhLi5lNzBhMGY3YjgzZTllMmY4
NDU0Y2QxMWY1YTY0OTg2MWEwMjYzODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKQEAgLTcx
Nyw2ICs3MTcsMTggQEAgU3RyaW5nIFVSTDo6aG9zdEFuZFBvcnQoKSBjb25zdAogICAgIHJldHVy
biBob3N0KCk7CiB9CiAKK1N0cmluZyBVUkw6OnByb3RvY29sSG9zdEFuZFBvcnQoKSBjb25zdAor
eworICAgIFN0cmluZyByZXN1bHQgPSBtX3N0cmluZy5zdWJzdHJpbmcoMCwgbV9wb3J0RW5kKTsK
KworICAgIGlmIChtX3Bhc3N3b3JkRW5kIC0gbV91c2VyU3RhcnQgPiAwKSB7CisgICAgICAgIGNv
bnN0IGludCBhbGxvd0ZvclRyYWlsaW5nQXRTaWduID0gMTsKKyAgICAgICAgcmVzdWx0LnJlbW92
ZShtX3VzZXJTdGFydCwgbV9wYXNzd29yZEVuZCAtIG1fdXNlclN0YXJ0ICsgYWxsb3dGb3JUcmFp
bGluZ0F0U2lnbik7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogU3RyaW5nIFVS
TDo6dXNlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyht
X3N0cmluZy5zdWJzdHJpbmcobV91c2VyU3RhcnQsIG1fdXNlckVuZCAtIG1fdXNlclN0YXJ0KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTC5oCmluZGV4IDBjMzBiNmFlMGI4YzBmZTJkYmFlMDFjMDZjMGJkNzky
NGZhYmIxMDkuLjVhYmYwNWZlN2M2Mzc0ZmQ1NTJhODAxZGM3OGRhMmRiNmE2Y2NlZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTC5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBob3N0KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRp
b25hbDx1aW50MTZfdD4gcG9ydCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBo
b3N0QW5kUG9ydCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBwcm90b2NvbEhv
c3RBbmRQb3J0KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHVzZXIoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcGFzcygpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBwYXRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWEyYjhiN2E2MGU3MTc0OGExYTFmNDhkZDRmZjRmNzQ5
Y2Q0NTIwNS4uZmY4NWJiYTNjMDNkZGUzNTgxMjYzOWRjOTRjYzJhZjkzNWVhNjI5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE3LTAxLTA0ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV2ViQ29yZTo6VVJMOjpwcm90b2NvbEhvc3RBbmRQb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgcHJvdG9jb2xI
b3N0QW5kUG9ydC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAxNy0wMS0wMyAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
RXhwb3NlIFdlYktpdFNlY3VyaXR5T3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMLmNwcAppbmRleCA5MDMzZjY0MDgwMzBmYjhlOTlkZWJiODVkZGE3YjkzM2Q3
NDA3YWQ2Li4zMGE3ZTMwMWUwMzFkNGU3NmJiOTIzNTAwNTFkZjkxMmZjY2IwZTk2IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldURlN0cmluZ1V0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTcwLDYgKzcxLDUzIEBAIFRFU1RfRihVUkxUZXN0LCBVUkxDb25zdHJ1Y3RvckNvbnN0Q2hhcikK
ICAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmcmFnbWVudCIpLCBrdXJsLmZyYWdtZW50SWRlbnRpZmll
cigpKTsKIH0KIAorVEVTVF9GKFVSTFRlc3QsIFVSTFByb3RvY29sSG9zdEFuZFBvcnQpCit7Cisg
ICAgYXV0byBjcmVhdGVVUkwgPSBbXShjb25zdCBjaGFyKiB1cmxBc1N0cmluZykgeworICAgICAg
ICBVUkxQYXJzZXIgcGFyc2VyKHVybEFzU3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5y
ZXN1bHQoKTsKKyAgICB9OworCisgICAgYXV0byB1cmwgPSBjcmVhdGVVUkwoImh0dHA6Ly91c2Vy
bmFtZTpwYXNzd29yZEB3d3cuZXhhbXBsZS5jb206ODA4MC9pbmRleC5odG1sP3Zhcj12YWwjZnJh
Z21lbnQiKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tOjgw
ODAiKSwgdXJsLnByb3RvY29sSG9zdEFuZFBvcnQoKSk7CisKKyAgICB1cmwgPSBjcmVhdGVVUkwo
Imh0dHA6Ly91c2VybmFtZTpAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFs
I2ZyYWdtZW50Iik7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNv
bTo4MDgwIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworCisgICAgdXJsID0gY3JlYXRl
VVJMKCJodHRwOi8vOnBhc3N3b3JkQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFy
PXZhbCNmcmFnbWVudCIpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBs
ZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKworICAgIHVybCA9IGNy
ZWF0ZVVSTCgiaHR0cDovL3VzZXJuYW1lQHd3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/
dmFyPXZhbCNmcmFnbWVudCIpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhh
bXBsZS5jb206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKworICAgIHVybCA9
IGNyZWF0ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTo4MDgwL2luZGV4Lmh0bWw/dmFyPXZh
bCNmcmFnbWVudCIpOworICAgIEVYUEVDVF9FUShTdHJpbmcoImh0dHA6Ly93d3cuZXhhbXBsZS5j
b206ODA4MCIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKworICAgIHVybCA9IGNyZWF0
ZVVSTCgiaHR0cDovL3d3dy5leGFtcGxlLmNvbTovaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50
Iik7CisgICAgRVhQRUNUX0VRKFN0cmluZygiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpLCB1cmwu
cHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKworICAgIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDovL3d3
dy5leGFtcGxlLmNvbS9pbmRleC5odG1sP3Zhcj12YWwjZnJhZ21lbnQiKTsKKyAgICBFWFBFQ1Rf
RVEoU3RyaW5nKCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIiksIHVybC5wcm90b2NvbEhvc3RBbmRQ
b3J0KCkpOworCisgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8vL2EvYi9jIik7CisgICAgRVhQ
RUNUX0VRKFN0cmluZygiZmlsZTovLyIpLCB1cmwucHJvdG9jb2xIb3N0QW5kUG9ydCgpKTsKKwor
ICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy9hL2IiKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5n
KCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworCisgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL2EiKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVy
bC5wcm90b2NvbEhvc3RBbmRQb3J0KCkpOworCisgICAgdXJsID0gY3JlYXRlVVJMKCJmaWxlOi8v
L2EiKTsKKyAgICBFWFBFQ1RfRVEoU3RyaW5nKCJmaWxlOi8vIiksIHVybC5wcm90b2NvbEhvc3RB
bmRQb3J0KCkpOworCisgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vdXNlcm5hbWU6cGFzc3dv
cmRAd3d3LmV4YW1wbGUuY29tOjgwODAvaW5kZXguaHRtbD92YXI9dmFsI2ZyYWdtZW50Iik7Cisg
ICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovL3d3dy5leGFtcGxlLmNvbTo4MDgwIiksIHVybC5w
cm90b2NvbEhvc3RBbmRQb3J0KCkpOworCisgICAgdXJsID0gY3JlYXRlVVJMKCJhc2RmOi8vL2Ev
Yi9jIik7CisgICAgRVhQRUNUX0VRKFN0cmluZygiYXNkZjovLyIpLCB1cmwucHJvdG9jb2xIb3N0
QW5kUG9ydCgpKTsKK30KKwogVEVTVF9GKFVSTFRlc3QsIFVSTERhdGFVUklTdHJpbmdTaGFyaW5n
KQogewogICAgIFVSTCBiYXNlVVJMKFBhcnNlZFVSTFN0cmluZywgImh0dHA6Ly93d3cud2Via2l0
Lm9yZy8iKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>