<?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>161837</bug_id>
          
          <creation_ts>2016-09-09 23:06:12 -0700</creation_ts>
          <short_desc>Optimize URLParser performance</short_desc>
          <delta_ts>2016-09-12 11:09:17 -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>New Bugs</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1228477</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-09 23:06:12 -0700</bug_when>
    <thetext>Optimize URLParser performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228478</commentid>
    <comment_count>1</comment_count>
      <attachid>288482</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-09 23:09:42 -0700</bug_when>
    <thetext>Created attachment 288482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228556</commentid>
    <comment_count>2</comment_count>
      <attachid>288509</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-10 16:42:25 -0700</bug_when>
    <thetext>Created attachment 288509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228787</commentid>
    <comment_count>3</comment_count>
      <attachid>288509</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-09-12 10:37:40 -0700</bug_when>
    <thetext>Comment on attachment 288509
Patch

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

&gt; Source/WebCore/platform/URLParser.cpp:137
&gt; +    const uint16_t ftpPort = 21;
&gt; +    const uint16_t gopherPort = 70;
&gt; +    const uint16_t httpPort = 80;
&gt; +    const uint16_t httpsPort = 433;
&gt; +    const uint16_t wsPort = 80;
&gt; +    const uint16_t wssPort = 433;

static const

&gt; Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp:489
&gt; +    checkURL(&quot;hTtP://host:80&quot;, {&quot;http&quot;, &quot;&quot;, &quot;&quot;, &quot;host&quot;, 0, &quot;/&quot;, &quot;&quot;, &quot;&quot;, &quot;http://host/&quot;});

If this test is worth adding, then similar mixed case tests are worth adding for *all* known schemes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228806</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-12 11:09:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/205812</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288482</attachid>
            <date>2016-09-09 23:09:42 -0700</date>
            <delta_ts>2016-09-10 16:42:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161837-20160909230715.patch</filename>
            <type>text/plain</type>
            <size>5110</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTc4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA5LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgT3B0aW1pemUg
VVJMUGFyc2VyIHBlcmZvcm1hbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE4MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBFeGlzdGluZyBiZWhhdmlvciBj
b3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL1VSTFBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc0RlZmF1bHRQb3J0KToKKyAgICAgICAgVXNlIHN3aXRjaCBz
dGF0ZW1lbnRzIGluc3RlYWQgb2YgSGFzaE1hcCBsb29rdXBzLgorICAgICAgICAoV2ViQ29yZTo6
aXNTcGVjaWFsU2NoZW1lKToKKyAgICAgICAgVXNlIHN3aXRjaCBzdGF0ZW1lbnRzIGluc3RlYWQg
b2YgcmVwZWF0ZWQgU3RyaW5nIGNvbXBhcmlzb25zLgorICAgICAgICAoV2ViQ29yZTo6VVJMUGFy
c2VyOjpwYXJzZVBvcnQpOgorICAgICAgICBSZWR1Y2UgU3RyaW5nIGFsbG9jYXRpb24uCisKIDIw
MTYtMDktMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBVUkxQYXJzZXI6IEtlZXAgdHJhY2sgb2YgY2Fubm90LWJlLWEtYmFzZS11cmwgYWNj
b3JkaW5nIHRvIHNwZWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFBhcnNlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNwcAko
cmV2aXNpb24gMjA1NzgyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDI3ICsxMjcsMTExIEBAIHN0YXRpYyB2b2lkIGVuY29k
ZVF1ZXJ5KGNvbnN0IFN0cmluZ0J1aWwKICAgICB9CiB9CiAKLXN0YXRpYyBib29sIGlzRGVmYXVs
dFBvcnQoY29uc3QgU3RyaW5nJiBzY2hlbWUsIHVpbnQxNl90IHBvcnQpCitzdGF0aWMgYm9vbCBp
c0RlZmF1bHRQb3J0KFN0cmluZ1ZpZXcgc2NoZW1lLCB1aW50MTZfdCBwb3J0KQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFN0cmluZywgdWludDE2X3Q+PiBkZWZhdWx0UG9y
dHMoSGFzaE1hcDxTdHJpbmcsIHVpbnQxNl90Pih7Ci0gICAgICAgIHsiZnRwIiwgMjF9LAotICAg
ICAgICB7ImdvcGhlciIsIDcwfSwKLSAgICAgICAgeyJodHRwIiwgODB9LAotICAgICAgICB7Imh0
dHBzIiwgNDQzfSwKLSAgICAgICAgeyJ3cyIsIDgwfSwKLSAgICAgICAgeyJ3c3MiLCA0NDN9fSkp
OwotICAgIHJldHVybiBkZWZhdWx0UG9ydHMuZ2V0KCkuZ2V0KHNjaGVtZSkgPT0gcG9ydDsKKyAg
ICBhdXRvIGxlbmd0aCA9IHNjaGVtZS5sZW5ndGgoKTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHN3aXRjaCAoc2NoZW1lWzBdKSB7CisgICAgY2FzZSAndyc6
CisgICAgICAgIHN3aXRjaCAobGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IHJldHVybiBzY2hlbWVbMV0gPT0gJ3MnCisgICAgICAgICAgICAgICAgJiYgcG9ydCA9PSA4MDsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAncycKKyAg
ICAgICAgICAgICAgICAmJiBzY2hlbWVbMl0gPT0gJ3MnCisgICAgICAgICAgICAgICAgJiYgcG9y
dCA9PSA0NDM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICBjYXNlICdoJzoKKyAgICAgICAgc3dpdGNoIChsZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAndCcKKyAgICAgICAg
ICAgICAgICAmJiBzY2hlbWVbMl0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzNd
ID09ICdwJworICAgICAgICAgICAgICAgICYmIHBvcnQgPT0gODA7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIHJldHVybiBzY2hlbWVbMV0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYg
c2NoZW1lWzJdID09ICd0JworICAgICAgICAgICAgICAgICYmIHNjaGVtZVszXSA9PSAncCcKKyAg
ICAgICAgICAgICAgICAmJiBzY2hlbWVbNF0gPT0gJ3MnCisgICAgICAgICAgICAgICAgJiYgcG9y
dCA9PSA0NDM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICBjYXNlICdnJzoKKyAgICAgICAgcmV0dXJuIGxlbmd0aCA9PSA2CisgICAg
ICAgICAgICAmJiBzY2hlbWVbMV0gPT0gJ28nCisgICAgICAgICAgICAmJiBzY2hlbWVbMl0gPT0g
J3AnCisgICAgICAgICAgICAmJiBzY2hlbWVbM10gPT0gJ2gnCisgICAgICAgICAgICAmJiBzY2hl
bWVbNF0gPT0gJ2UnCisgICAgICAgICAgICAmJiBzY2hlbWVbNV0gPT0gJ3InCisgICAgICAgICAg
ICAmJiBwb3J0ID09IDcwOworICAgIGNhc2UgJ2YnOgorICAgICAgICByZXR1cm4gbGVuZ3RoID09
IDMKKyAgICAgICAgICAgICYmIHNjaGVtZVsxXSA9PSAndCcKKyAgICAgICAgICAgICYmIHNjaGVt
ZVsyXSA9PSAncCcKKyAgICAgICAgICAgICYmIHBvcnQgPT0gMjE7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBz
dGF0aWMgYm9vbCBpc1NwZWNpYWxTY2hlbWUoU3RyaW5nVmlldyBzY2hlbWUpCiB7Ci0gICAgcmV0
dXJuIHNjaGVtZSA9PSAiZnRwIgotICAgICAgICB8fCBzY2hlbWUgPT0gImZpbGUiCi0gICAgICAg
IHx8IHNjaGVtZSA9PSAiZ29waGVyIgotICAgICAgICB8fCBzY2hlbWUgPT0gImh0dHAiCi0gICAg
ICAgIHx8IHNjaGVtZSA9PSAiaHR0cHMiCi0gICAgICAgIHx8IHNjaGVtZSA9PSAid3MiCi0gICAg
ICAgIHx8IHNjaGVtZSA9PSAid3NzIjsKKyAgICBhdXRvIGxlbmd0aCA9IHNjaGVtZS5sZW5ndGgo
KTsKKyAgICBpZiAoIWxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN3aXRjaCAo
c2NoZW1lWzBdKSB7CisgICAgY2FzZSAnZic6CisgICAgICAgIHN3aXRjaCAobGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBzY2hlbWVbMV0gPT0gJ3QnCisgICAg
ICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09ICdwJzsKKyAgICAgICAgY2FzZSA0OgorICAgICAg
ICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAnaScKKyAgICAgICAgICAgICAgICAmJiBzY2hlbWVb
Ml0gPT0gJ2wnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzNdID09ICdlJzsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIGNhc2Ug
J2cnOgorICAgICAgICByZXR1cm4gbGVuZ3RoID09IDYKKyAgICAgICAgICAgICYmIHNjaGVtZVsx
XSA9PSAnbycKKyAgICAgICAgICAgICYmIHNjaGVtZVsyXSA9PSAncCcKKyAgICAgICAgICAgICYm
IHNjaGVtZVszXSA9PSAnaCcKKyAgICAgICAgICAgICYmIHNjaGVtZVs0XSA9PSAnZScKKyAgICAg
ICAgICAgICYmIHNjaGVtZVs1XSA9PSAncic7CisgICAgY2FzZSAnaCc6CisgICAgICAgIHN3aXRj
aCAobGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVybiBzY2hlbWVb
MV0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09ICd0JworICAgICAgICAg
ICAgICAgICYmIHNjaGVtZVszXSA9PSAncCc7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAg
IHJldHVybiBzY2hlbWVbMV0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09
ICd0JworICAgICAgICAgICAgICAgICYmIHNjaGVtZVszXSA9PSAncCcKKyAgICAgICAgICAgICAg
ICAmJiBzY2hlbWVbNF0gPT0gJ3MnOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgY2FzZSAndyc6CisgICAgICAgIHN3aXRjaCAobGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiBzY2hlbWVbMV0gPT0g
J3MnOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gc2NoZW1lWzFdID09ICdz
JworICAgICAgICAgICAgICAgICYmIHNjaGVtZVsyXSA9PSAncyc7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiBzdGF0aWMgU3RyaW5nVmlldyBidWZmZXJW
aWV3KGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgpCkBAIC0xMzk0LDkgKzE0NzgsNyBAQCBib29sIFVSTFBhcnNlcjo6cGFyc2VQb3J0
KFN0cmluZ1ZpZXc6OkNvCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAot
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBuZWVkIGEgU3RyaW5nIGFsbG9jYXRpb24uCi0g
ICAgU3RyaW5nIHNjaGVtZSA9IG1fYnVmZmVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLnN1
YnN0cmluZygwLCBtX3VybC5tX3NjaGVtZUVuZCk7Ci0gICAgaWYgKGlzRGVmYXVsdFBvcnQoc2No
ZW1lLCBwb3J0KSkgeworICAgIGlmIChpc0RlZmF1bHRQb3J0KGJ1ZmZlclZpZXcobV9idWZmZXIs
IDAsIG1fdXJsLm1fc2NoZW1lRW5kKSwgcG9ydCkpIHsKICAgICAgICAgQVNTRVJUKG1fYnVmZmVy
W21fYnVmZmVyLmxlbmd0aCgpIC0gMV0gPT0gJzonKTsKICAgICAgICAgbV9idWZmZXIucmVzaXpl
KG1fYnVmZmVyLmxlbmd0aCgpIC0gMSk7CiAgICAgfSBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288509</attachid>
            <date>2016-09-10 16:42:25 -0700</date>
            <delta_ts>2016-09-12 10:37:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161837-20160910164000.patch</filename>
            <type>text/plain</type>
            <size>6887</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTc4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA5LTA5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgT3B0aW1pemUg
VVJMUGFyc2VyIHBlcmZvcm1hbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE4MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBFeGlzdGluZyBiZWhhdmlvciBj
b3ZlcmVkIGJ5IEFQSSB0ZXN0cyBhbmQgYWRkZWQgYSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9VUkxQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEZWZhdWx0UG9y
dCk6CisgICAgICAgIFVzZSBzd2l0Y2ggc3RhdGVtZW50cyBpbnN0ZWFkIG9mIEhhc2hNYXAgbG9v
a3Vwcy4KKyAgICAgICAgKFdlYkNvcmU6OmlzU3BlY2lhbFNjaGVtZSk6CisgICAgICAgIFVzZSBz
d2l0Y2ggc3RhdGVtZW50cyBpbnN0ZWFkIG9mIHJlcGVhdGVkIFN0cmluZyBjb21wYXJpc29ucy4K
KyAgICAgICAgKFdlYkNvcmU6OlVSTFBhcnNlcjo6cGFyc2VQb3J0KToKKyAgICAgICAgUmVkdWNl
IFN0cmluZyBhbGxvY2F0aW9uLgorCiAyMDE2LTA5LTA5ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVVJMUGFyc2VyOiBLZWVwIHRyYWNrIG9m
IGNhbm5vdC1iZS1hLWJhc2UtdXJsIGFjY29yZGluZyB0byBzcGVjCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9VUkxQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHJldmlzaW9uIDIwNTc4MikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNywyNyArMTI3
LDExOCBAQCBzdGF0aWMgdm9pZCBlbmNvZGVRdWVyeShjb25zdCBTdHJpbmdCdWlsCiAgICAgfQog
fQogCi1zdGF0aWMgYm9vbCBpc0RlZmF1bHRQb3J0KGNvbnN0IFN0cmluZyYgc2NoZW1lLCB1aW50
MTZfdCBwb3J0KQorc3RhdGljIGJvb2wgaXNEZWZhdWx0UG9ydChTdHJpbmdWaWV3IHNjaGVtZSwg
dWludDE2X3QgcG9ydCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJp
bmcsIHVpbnQxNl90Pj4gZGVmYXVsdFBvcnRzKEhhc2hNYXA8U3RyaW5nLCB1aW50MTZfdD4oewot
ICAgICAgICB7ImZ0cCIsIDIxfSwKLSAgICAgICAgeyJnb3BoZXIiLCA3MH0sCi0gICAgICAgIHsi
aHR0cCIsIDgwfSwKLSAgICAgICAgeyJodHRwcyIsIDQ0M30sCi0gICAgICAgIHsid3MiLCA4MH0s
Ci0gICAgICAgIHsid3NzIiwgNDQzfX0pKTsKLSAgICByZXR1cm4gZGVmYXVsdFBvcnRzLmdldCgp
LmdldChzY2hlbWUpID09IHBvcnQ7CisgICAgY29uc3QgdWludDE2X3QgZnRwUG9ydCA9IDIxOwor
ICAgIGNvbnN0IHVpbnQxNl90IGdvcGhlclBvcnQgPSA3MDsKKyAgICBjb25zdCB1aW50MTZfdCBo
dHRwUG9ydCA9IDgwOworICAgIGNvbnN0IHVpbnQxNl90IGh0dHBzUG9ydCA9IDQzMzsKKyAgICBj
b25zdCB1aW50MTZfdCB3c1BvcnQgPSA4MDsKKyAgICBjb25zdCB1aW50MTZfdCB3c3NQb3J0ID0g
NDMzOworICAgIAorICAgIGF1dG8gbGVuZ3RoID0gc2NoZW1lLmxlbmd0aCgpOworICAgIGlmICgh
bGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc3dpdGNoIChzY2hlbWVbMF0pIHsK
KyAgICBjYXNlICd3JzoKKyAgICAgICAgc3dpdGNoIChsZW5ndGgpIHsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAncycKKyAgICAgICAgICAgICAgICAm
JiBwb3J0ID09IHdzUG9ydDsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIHNj
aGVtZVsxXSA9PSAncycKKyAgICAgICAgICAgICAgICAmJiBzY2hlbWVbMl0gPT0gJ3MnCisgICAg
ICAgICAgICAgICAgJiYgcG9ydCA9PSB3c3NQb3J0OworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgY2FzZSAnaCc6CisgICAgICAgIHN3
aXRjaCAobGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVybiBzY2hl
bWVbMV0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09ICd0JworICAgICAg
ICAgICAgICAgICYmIHNjaGVtZVszXSA9PSAncCcKKyAgICAgICAgICAgICAgICAmJiBwb3J0ID09
IGh0dHBQb3J0OworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gc2NoZW1lWzFd
ID09ICd0JworICAgICAgICAgICAgICAgICYmIHNjaGVtZVsyXSA9PSAndCcKKyAgICAgICAgICAg
ICAgICAmJiBzY2hlbWVbM10gPT0gJ3AnCisgICAgICAgICAgICAgICAgJiYgc2NoZW1lWzRdID09
ICdzJworICAgICAgICAgICAgICAgICYmIHBvcnQgPT0gaHR0cHNQb3J0OworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgY2FzZSAnZyc6
CisgICAgICAgIHJldHVybiBsZW5ndGggPT0gNgorICAgICAgICAgICAgJiYgc2NoZW1lWzFdID09
ICdvJworICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09ICdwJworICAgICAgICAgICAgJiYgc2No
ZW1lWzNdID09ICdoJworICAgICAgICAgICAgJiYgc2NoZW1lWzRdID09ICdlJworICAgICAgICAg
ICAgJiYgc2NoZW1lWzVdID09ICdyJworICAgICAgICAgICAgJiYgcG9ydCA9PSBnb3BoZXJQb3J0
OworICAgIGNhc2UgJ2YnOgorICAgICAgICByZXR1cm4gbGVuZ3RoID09IDMKKyAgICAgICAgICAg
ICYmIHNjaGVtZVsxXSA9PSAndCcKKyAgICAgICAgICAgICYmIHNjaGVtZVsyXSA9PSAncCcKKyAg
ICAgICAgICAgICYmIHBvcnQgPT0gZnRwUG9ydDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiB9CiAKIHN0YXRpYyBib29s
IGlzU3BlY2lhbFNjaGVtZShTdHJpbmdWaWV3IHNjaGVtZSkKIHsKLSAgICByZXR1cm4gc2NoZW1l
ID09ICJmdHAiCi0gICAgICAgIHx8IHNjaGVtZSA9PSAiZmlsZSIKLSAgICAgICAgfHwgc2NoZW1l
ID09ICJnb3BoZXIiCi0gICAgICAgIHx8IHNjaGVtZSA9PSAiaHR0cCIKLSAgICAgICAgfHwgc2No
ZW1lID09ICJodHRwcyIKLSAgICAgICAgfHwgc2NoZW1lID09ICJ3cyIKLSAgICAgICAgfHwgc2No
ZW1lID09ICJ3c3MiOworICAgIGF1dG8gbGVuZ3RoID0gc2NoZW1lLmxlbmd0aCgpOworICAgIGlm
ICghbGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgc3dpdGNoIChzY2hlbWVbMF0p
IHsKKyAgICBjYXNlICdmJzoKKyAgICAgICAgc3dpdGNoIChsZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAndCcKKyAgICAgICAgICAgICAg
ICAmJiBzY2hlbWVbMl0gPT0gJ3AnOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1
cm4gc2NoZW1lWzFdID09ICdpJworICAgICAgICAgICAgICAgICYmIHNjaGVtZVsyXSA9PSAnbCcK
KyAgICAgICAgICAgICAgICAmJiBzY2hlbWVbM10gPT0gJ2UnOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgY2FzZSAnZyc6CisgICAg
ICAgIHJldHVybiBsZW5ndGggPT0gNgorICAgICAgICAgICAgJiYgc2NoZW1lWzFdID09ICdvJwor
ICAgICAgICAgICAgJiYgc2NoZW1lWzJdID09ICdwJworICAgICAgICAgICAgJiYgc2NoZW1lWzNd
ID09ICdoJworICAgICAgICAgICAgJiYgc2NoZW1lWzRdID09ICdlJworICAgICAgICAgICAgJiYg
c2NoZW1lWzVdID09ICdyJzsKKyAgICBjYXNlICdoJzoKKyAgICAgICAgc3dpdGNoIChsZW5ndGgp
IHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAndCcK
KyAgICAgICAgICAgICAgICAmJiBzY2hlbWVbMl0gPT0gJ3QnCisgICAgICAgICAgICAgICAgJiYg
c2NoZW1lWzNdID09ICdwJzsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgcmV0dXJuIHNj
aGVtZVsxXSA9PSAndCcKKyAgICAgICAgICAgICAgICAmJiBzY2hlbWVbMl0gPT0gJ3QnCisgICAg
ICAgICAgICAgICAgJiYgc2NoZW1lWzNdID09ICdwJworICAgICAgICAgICAgICAgICYmIHNjaGVt
ZVs0XSA9PSAncyc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICBjYXNlICd3JzoKKyAgICAgICAgc3dpdGNoIChsZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIHNjaGVtZVsxXSA9PSAncyc7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBzY2hlbWVbMV0gPT0gJ3MnCisgICAgICAg
ICAgICAgICAgJiYgc2NoZW1lWzJdID09ICdzJzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiB9CiAKIHN0YXRpYyBTdHJpbmdWaWV3IGJ1ZmZlclZpZXcoY29uc3Qg
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCkK
QEAgLTEzOTQsOSArMTQ4NSw3IEBAIGJvb2wgVVJMUGFyc2VyOjpwYXJzZVBvcnQoU3RyaW5nVmll
dzo6Q28KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCi0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkbid0IG5lZWQgYSBTdHJpbmcgYWxsb2NhdGlvbi4KLSAgICBTdHJpbmcg
c2NoZW1lID0gbV9idWZmZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkuc3Vic3RyaW5nKDAs
IG1fdXJsLm1fc2NoZW1lRW5kKTsKLSAgICBpZiAoaXNEZWZhdWx0UG9ydChzY2hlbWUsIHBvcnQp
KSB7CisgICAgaWYgKGlzRGVmYXVsdFBvcnQoYnVmZmVyVmlldyhtX2J1ZmZlciwgMCwgbV91cmwu
bV9zY2hlbWVFbmQpLCBwb3J0KSkgewogICAgICAgICBBU1NFUlQobV9idWZmZXJbbV9idWZmZXIu
bGVuZ3RoKCkgLSAxXSA9PSAnOicpOwogICAgICAgICBtX2J1ZmZlci5yZXNpemUobV9idWZmZXIu
bGVuZ3RoKCkgLSAxKTsKICAgICB9IGVsc2UKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTc4NykKKysrIFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA5LTEwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgT3B0aW1pemUg
VVJMUGFyc2VyIHBlcmZvcm1hbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE4MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgQWRkZWQgYSB0ZXN0
IHRvIHZlcmlmeSB0aGUgY2FzZSBpbnNlbnNpdGl2aXR5IG9mIHRoZSBkZWZhdWx0IHBvcnQgY2hl
Y2tzLgorCiAyMDE2LTA5LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgcGFyc2VIVE1MSW50ZWdlcigpIHNob3VsZCB0YWtlIGEgU3RyaW5nVmlldyBpbiBwYXJh
bWV0ZXIKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkxQ
YXJzZXIuY3BwCShyZXZpc2lvbiAyMDU3ODIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVVJMUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg2LDYgKzQ4Niw3IEBA
IFRFU1RfRihVUkxQYXJzZXJUZXN0LCBEZWZhdWx0UG9ydCkKICAgICAgICAgeyJnb3BoZXIiLCAi
IiwgIiIsICJob3N0IiwgNzEsICIvIiwgIiIsICIiLCAiZ29waGVyOi8vaG9zdDo3MS8ifSwKICAg
ICAgICAgeyJnb3BoZXIiLCAiIiwgIiIsICJob3N0IiwgNzEsICIiLCAiIiwgIiIsICJnb3BoZXI6
Ly9ob3N0OjcxIn0pOwogICAgIAorICAgIGNoZWNrVVJMKCJoVHRQOi8vaG9zdDo4MCIsIHsiaHR0
cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiLyIsICIiLCAiIiwgImh0dHA6Ly9ob3N0LyJ9KTsKICAg
ICBjaGVja1VSTCgiaHR0cDovL2hvc3Q6ODAiLCB7Imh0dHAiLCAiIiwgIiIsICJob3N0IiwgMCwg
Ii8iLCAiIiwgIiIsICJodHRwOi8vaG9zdC8ifSk7CiAgICAgY2hlY2tVUkwoImh0dHA6Ly9ob3N0
OjgwLyIsIHsiaHR0cCIsICIiLCAiIiwgImhvc3QiLCAwLCAiLyIsICIiLCAiIiwgImh0dHA6Ly9o
b3N0LyJ9KTsKICAgICBjaGVja1VSTCgiaHR0cDovL2hvc3Q6ODEiLCB7Imh0dHAiLCAiIiwgIiIs
ICJob3N0IiwgODEsICIvIiwgIiIsICIiLCAiaHR0cDovL2hvc3Q6ODEvIn0pOwo=
</data>
<flag name="review"
          id="311827"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>