11cb0ef41Sopenharmony_ci[
21cb0ef41Sopenharmony_ci  "See ../README.md for a description of the format.",
31cb0ef41Sopenharmony_ci  {
41cb0ef41Sopenharmony_ci    "input": "http://example\t.\norg",
51cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
61cb0ef41Sopenharmony_ci    "href": "http://example.org/",
71cb0ef41Sopenharmony_ci    "origin": "http://example.org",
81cb0ef41Sopenharmony_ci    "protocol": "http:",
91cb0ef41Sopenharmony_ci    "username": "",
101cb0ef41Sopenharmony_ci    "password": "",
111cb0ef41Sopenharmony_ci    "host": "example.org",
121cb0ef41Sopenharmony_ci    "hostname": "example.org",
131cb0ef41Sopenharmony_ci    "port": "",
141cb0ef41Sopenharmony_ci    "pathname": "/",
151cb0ef41Sopenharmony_ci    "search": "",
161cb0ef41Sopenharmony_ci    "hash": ""
171cb0ef41Sopenharmony_ci  },
181cb0ef41Sopenharmony_ci  {
191cb0ef41Sopenharmony_ci    "input": "http://user:pass@foo:21/bar;par?b#c",
201cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
211cb0ef41Sopenharmony_ci    "href": "http://user:pass@foo:21/bar;par?b#c",
221cb0ef41Sopenharmony_ci    "origin": "http://foo:21",
231cb0ef41Sopenharmony_ci    "protocol": "http:",
241cb0ef41Sopenharmony_ci    "username": "user",
251cb0ef41Sopenharmony_ci    "password": "pass",
261cb0ef41Sopenharmony_ci    "host": "foo:21",
271cb0ef41Sopenharmony_ci    "hostname": "foo",
281cb0ef41Sopenharmony_ci    "port": "21",
291cb0ef41Sopenharmony_ci    "pathname": "/bar;par",
301cb0ef41Sopenharmony_ci    "search": "?b",
311cb0ef41Sopenharmony_ci    "hash": "#c"
321cb0ef41Sopenharmony_ci  },
331cb0ef41Sopenharmony_ci  {
341cb0ef41Sopenharmony_ci    "input": "https://test:@test",
351cb0ef41Sopenharmony_ci    "base": null,
361cb0ef41Sopenharmony_ci    "href": "https://test@test/",
371cb0ef41Sopenharmony_ci    "origin": "https://test",
381cb0ef41Sopenharmony_ci    "protocol": "https:",
391cb0ef41Sopenharmony_ci    "username": "test",
401cb0ef41Sopenharmony_ci    "password": "",
411cb0ef41Sopenharmony_ci    "host": "test",
421cb0ef41Sopenharmony_ci    "hostname": "test",
431cb0ef41Sopenharmony_ci    "port": "",
441cb0ef41Sopenharmony_ci    "pathname": "/",
451cb0ef41Sopenharmony_ci    "search": "",
461cb0ef41Sopenharmony_ci    "hash": ""
471cb0ef41Sopenharmony_ci  },
481cb0ef41Sopenharmony_ci  {
491cb0ef41Sopenharmony_ci    "input": "https://:@test",
501cb0ef41Sopenharmony_ci    "base": null,
511cb0ef41Sopenharmony_ci    "href": "https://test/",
521cb0ef41Sopenharmony_ci    "origin": "https://test",
531cb0ef41Sopenharmony_ci    "protocol": "https:",
541cb0ef41Sopenharmony_ci    "username": "",
551cb0ef41Sopenharmony_ci    "password": "",
561cb0ef41Sopenharmony_ci    "host": "test",
571cb0ef41Sopenharmony_ci    "hostname": "test",
581cb0ef41Sopenharmony_ci    "port": "",
591cb0ef41Sopenharmony_ci    "pathname": "/",
601cb0ef41Sopenharmony_ci    "search": "",
611cb0ef41Sopenharmony_ci    "hash": ""
621cb0ef41Sopenharmony_ci  },
631cb0ef41Sopenharmony_ci  {
641cb0ef41Sopenharmony_ci    "input": "non-special://test:@test/x",
651cb0ef41Sopenharmony_ci    "base": null,
661cb0ef41Sopenharmony_ci    "href": "non-special://test@test/x",
671cb0ef41Sopenharmony_ci    "origin": "null",
681cb0ef41Sopenharmony_ci    "protocol": "non-special:",
691cb0ef41Sopenharmony_ci    "username": "test",
701cb0ef41Sopenharmony_ci    "password": "",
711cb0ef41Sopenharmony_ci    "host": "test",
721cb0ef41Sopenharmony_ci    "hostname": "test",
731cb0ef41Sopenharmony_ci    "port": "",
741cb0ef41Sopenharmony_ci    "pathname": "/x",
751cb0ef41Sopenharmony_ci    "search": "",
761cb0ef41Sopenharmony_ci    "hash": ""
771cb0ef41Sopenharmony_ci  },
781cb0ef41Sopenharmony_ci  {
791cb0ef41Sopenharmony_ci    "input": "non-special://:@test/x",
801cb0ef41Sopenharmony_ci    "base": null,
811cb0ef41Sopenharmony_ci    "href": "non-special://test/x",
821cb0ef41Sopenharmony_ci    "origin": "null",
831cb0ef41Sopenharmony_ci    "protocol": "non-special:",
841cb0ef41Sopenharmony_ci    "username": "",
851cb0ef41Sopenharmony_ci    "password": "",
861cb0ef41Sopenharmony_ci    "host": "test",
871cb0ef41Sopenharmony_ci    "hostname": "test",
881cb0ef41Sopenharmony_ci    "port": "",
891cb0ef41Sopenharmony_ci    "pathname": "/x",
901cb0ef41Sopenharmony_ci    "search": "",
911cb0ef41Sopenharmony_ci    "hash": ""
921cb0ef41Sopenharmony_ci  },
931cb0ef41Sopenharmony_ci  {
941cb0ef41Sopenharmony_ci    "input": "http:foo.com",
951cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
961cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/foo.com",
971cb0ef41Sopenharmony_ci    "origin": "http://example.org",
981cb0ef41Sopenharmony_ci    "protocol": "http:",
991cb0ef41Sopenharmony_ci    "username": "",
1001cb0ef41Sopenharmony_ci    "password": "",
1011cb0ef41Sopenharmony_ci    "host": "example.org",
1021cb0ef41Sopenharmony_ci    "hostname": "example.org",
1031cb0ef41Sopenharmony_ci    "port": "",
1041cb0ef41Sopenharmony_ci    "pathname": "/foo/foo.com",
1051cb0ef41Sopenharmony_ci    "search": "",
1061cb0ef41Sopenharmony_ci    "hash": ""
1071cb0ef41Sopenharmony_ci  },
1081cb0ef41Sopenharmony_ci  {
1091cb0ef41Sopenharmony_ci    "input": "\t   :foo.com   \n",
1101cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
1111cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:foo.com",
1121cb0ef41Sopenharmony_ci    "origin": "http://example.org",
1131cb0ef41Sopenharmony_ci    "protocol": "http:",
1141cb0ef41Sopenharmony_ci    "username": "",
1151cb0ef41Sopenharmony_ci    "password": "",
1161cb0ef41Sopenharmony_ci    "host": "example.org",
1171cb0ef41Sopenharmony_ci    "hostname": "example.org",
1181cb0ef41Sopenharmony_ci    "port": "",
1191cb0ef41Sopenharmony_ci    "pathname": "/foo/:foo.com",
1201cb0ef41Sopenharmony_ci    "search": "",
1211cb0ef41Sopenharmony_ci    "hash": ""
1221cb0ef41Sopenharmony_ci  },
1231cb0ef41Sopenharmony_ci  {
1241cb0ef41Sopenharmony_ci    "input": " foo.com  ",
1251cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
1261cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/foo.com",
1271cb0ef41Sopenharmony_ci    "origin": "http://example.org",
1281cb0ef41Sopenharmony_ci    "protocol": "http:",
1291cb0ef41Sopenharmony_ci    "username": "",
1301cb0ef41Sopenharmony_ci    "password": "",
1311cb0ef41Sopenharmony_ci    "host": "example.org",
1321cb0ef41Sopenharmony_ci    "hostname": "example.org",
1331cb0ef41Sopenharmony_ci    "port": "",
1341cb0ef41Sopenharmony_ci    "pathname": "/foo/foo.com",
1351cb0ef41Sopenharmony_ci    "search": "",
1361cb0ef41Sopenharmony_ci    "hash": ""
1371cb0ef41Sopenharmony_ci  },
1381cb0ef41Sopenharmony_ci  {
1391cb0ef41Sopenharmony_ci    "input": "a:\t foo.com",
1401cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
1411cb0ef41Sopenharmony_ci    "href": "a: foo.com",
1421cb0ef41Sopenharmony_ci    "origin": "null",
1431cb0ef41Sopenharmony_ci    "protocol": "a:",
1441cb0ef41Sopenharmony_ci    "username": "",
1451cb0ef41Sopenharmony_ci    "password": "",
1461cb0ef41Sopenharmony_ci    "host": "",
1471cb0ef41Sopenharmony_ci    "hostname": "",
1481cb0ef41Sopenharmony_ci    "port": "",
1491cb0ef41Sopenharmony_ci    "pathname": " foo.com",
1501cb0ef41Sopenharmony_ci    "search": "",
1511cb0ef41Sopenharmony_ci    "hash": ""
1521cb0ef41Sopenharmony_ci  },
1531cb0ef41Sopenharmony_ci  {
1541cb0ef41Sopenharmony_ci    "input": "http://f:21/ b ? d # e ",
1551cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
1561cb0ef41Sopenharmony_ci    "href": "http://f:21/%20b%20?%20d%20#%20e",
1571cb0ef41Sopenharmony_ci    "origin": "http://f:21",
1581cb0ef41Sopenharmony_ci    "protocol": "http:",
1591cb0ef41Sopenharmony_ci    "username": "",
1601cb0ef41Sopenharmony_ci    "password": "",
1611cb0ef41Sopenharmony_ci    "host": "f:21",
1621cb0ef41Sopenharmony_ci    "hostname": "f",
1631cb0ef41Sopenharmony_ci    "port": "21",
1641cb0ef41Sopenharmony_ci    "pathname": "/%20b%20",
1651cb0ef41Sopenharmony_ci    "search": "?%20d%20",
1661cb0ef41Sopenharmony_ci    "hash": "#%20e"
1671cb0ef41Sopenharmony_ci  },
1681cb0ef41Sopenharmony_ci  {
1691cb0ef41Sopenharmony_ci    "input": "lolscheme:x x#x x",
1701cb0ef41Sopenharmony_ci    "base": null,
1711cb0ef41Sopenharmony_ci    "href": "lolscheme:x x#x%20x",
1721cb0ef41Sopenharmony_ci    "protocol": "lolscheme:",
1731cb0ef41Sopenharmony_ci    "username": "",
1741cb0ef41Sopenharmony_ci    "password": "",
1751cb0ef41Sopenharmony_ci    "host": "",
1761cb0ef41Sopenharmony_ci    "hostname": "",
1771cb0ef41Sopenharmony_ci    "port": "",
1781cb0ef41Sopenharmony_ci    "pathname": "x x",
1791cb0ef41Sopenharmony_ci    "search": "",
1801cb0ef41Sopenharmony_ci    "hash": "#x%20x"
1811cb0ef41Sopenharmony_ci  },
1821cb0ef41Sopenharmony_ci  {
1831cb0ef41Sopenharmony_ci    "input": "http://f:/c",
1841cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
1851cb0ef41Sopenharmony_ci    "href": "http://f/c",
1861cb0ef41Sopenharmony_ci    "origin": "http://f",
1871cb0ef41Sopenharmony_ci    "protocol": "http:",
1881cb0ef41Sopenharmony_ci    "username": "",
1891cb0ef41Sopenharmony_ci    "password": "",
1901cb0ef41Sopenharmony_ci    "host": "f",
1911cb0ef41Sopenharmony_ci    "hostname": "f",
1921cb0ef41Sopenharmony_ci    "port": "",
1931cb0ef41Sopenharmony_ci    "pathname": "/c",
1941cb0ef41Sopenharmony_ci    "search": "",
1951cb0ef41Sopenharmony_ci    "hash": ""
1961cb0ef41Sopenharmony_ci  },
1971cb0ef41Sopenharmony_ci  {
1981cb0ef41Sopenharmony_ci    "input": "http://f:0/c",
1991cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2001cb0ef41Sopenharmony_ci    "href": "http://f:0/c",
2011cb0ef41Sopenharmony_ci    "origin": "http://f:0",
2021cb0ef41Sopenharmony_ci    "protocol": "http:",
2031cb0ef41Sopenharmony_ci    "username": "",
2041cb0ef41Sopenharmony_ci    "password": "",
2051cb0ef41Sopenharmony_ci    "host": "f:0",
2061cb0ef41Sopenharmony_ci    "hostname": "f",
2071cb0ef41Sopenharmony_ci    "port": "0",
2081cb0ef41Sopenharmony_ci    "pathname": "/c",
2091cb0ef41Sopenharmony_ci    "search": "",
2101cb0ef41Sopenharmony_ci    "hash": ""
2111cb0ef41Sopenharmony_ci  },
2121cb0ef41Sopenharmony_ci  {
2131cb0ef41Sopenharmony_ci    "input": "http://f:00000000000000/c",
2141cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2151cb0ef41Sopenharmony_ci    "href": "http://f:0/c",
2161cb0ef41Sopenharmony_ci    "origin": "http://f:0",
2171cb0ef41Sopenharmony_ci    "protocol": "http:",
2181cb0ef41Sopenharmony_ci    "username": "",
2191cb0ef41Sopenharmony_ci    "password": "",
2201cb0ef41Sopenharmony_ci    "host": "f:0",
2211cb0ef41Sopenharmony_ci    "hostname": "f",
2221cb0ef41Sopenharmony_ci    "port": "0",
2231cb0ef41Sopenharmony_ci    "pathname": "/c",
2241cb0ef41Sopenharmony_ci    "search": "",
2251cb0ef41Sopenharmony_ci    "hash": ""
2261cb0ef41Sopenharmony_ci  },
2271cb0ef41Sopenharmony_ci  {
2281cb0ef41Sopenharmony_ci    "input": "http://f:00000000000000000000080/c",
2291cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2301cb0ef41Sopenharmony_ci    "href": "http://f/c",
2311cb0ef41Sopenharmony_ci    "origin": "http://f",
2321cb0ef41Sopenharmony_ci    "protocol": "http:",
2331cb0ef41Sopenharmony_ci    "username": "",
2341cb0ef41Sopenharmony_ci    "password": "",
2351cb0ef41Sopenharmony_ci    "host": "f",
2361cb0ef41Sopenharmony_ci    "hostname": "f",
2371cb0ef41Sopenharmony_ci    "port": "",
2381cb0ef41Sopenharmony_ci    "pathname": "/c",
2391cb0ef41Sopenharmony_ci    "search": "",
2401cb0ef41Sopenharmony_ci    "hash": ""
2411cb0ef41Sopenharmony_ci  },
2421cb0ef41Sopenharmony_ci  {
2431cb0ef41Sopenharmony_ci    "input": "http://f:b/c",
2441cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2451cb0ef41Sopenharmony_ci    "failure": true
2461cb0ef41Sopenharmony_ci  },
2471cb0ef41Sopenharmony_ci  {
2481cb0ef41Sopenharmony_ci    "input": "http://f: /c",
2491cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2501cb0ef41Sopenharmony_ci    "failure": true
2511cb0ef41Sopenharmony_ci  },
2521cb0ef41Sopenharmony_ci  {
2531cb0ef41Sopenharmony_ci    "input": "http://f:\n/c",
2541cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2551cb0ef41Sopenharmony_ci    "href": "http://f/c",
2561cb0ef41Sopenharmony_ci    "origin": "http://f",
2571cb0ef41Sopenharmony_ci    "protocol": "http:",
2581cb0ef41Sopenharmony_ci    "username": "",
2591cb0ef41Sopenharmony_ci    "password": "",
2601cb0ef41Sopenharmony_ci    "host": "f",
2611cb0ef41Sopenharmony_ci    "hostname": "f",
2621cb0ef41Sopenharmony_ci    "port": "",
2631cb0ef41Sopenharmony_ci    "pathname": "/c",
2641cb0ef41Sopenharmony_ci    "search": "",
2651cb0ef41Sopenharmony_ci    "hash": ""
2661cb0ef41Sopenharmony_ci  },
2671cb0ef41Sopenharmony_ci  {
2681cb0ef41Sopenharmony_ci    "input": "http://f:fifty-two/c",
2691cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2701cb0ef41Sopenharmony_ci    "failure": true
2711cb0ef41Sopenharmony_ci  },
2721cb0ef41Sopenharmony_ci  {
2731cb0ef41Sopenharmony_ci    "input": "http://f:999999/c",
2741cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2751cb0ef41Sopenharmony_ci    "failure": true
2761cb0ef41Sopenharmony_ci  },
2771cb0ef41Sopenharmony_ci  {
2781cb0ef41Sopenharmony_ci    "input": "non-special://f:999999/c",
2791cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2801cb0ef41Sopenharmony_ci    "failure": true
2811cb0ef41Sopenharmony_ci  },
2821cb0ef41Sopenharmony_ci  {
2831cb0ef41Sopenharmony_ci    "input": "http://f: 21 / b ? d # e ",
2841cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2851cb0ef41Sopenharmony_ci    "failure": true
2861cb0ef41Sopenharmony_ci  },
2871cb0ef41Sopenharmony_ci  {
2881cb0ef41Sopenharmony_ci    "input": "",
2891cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
2901cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar",
2911cb0ef41Sopenharmony_ci    "origin": "http://example.org",
2921cb0ef41Sopenharmony_ci    "protocol": "http:",
2931cb0ef41Sopenharmony_ci    "username": "",
2941cb0ef41Sopenharmony_ci    "password": "",
2951cb0ef41Sopenharmony_ci    "host": "example.org",
2961cb0ef41Sopenharmony_ci    "hostname": "example.org",
2971cb0ef41Sopenharmony_ci    "port": "",
2981cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
2991cb0ef41Sopenharmony_ci    "search": "",
3001cb0ef41Sopenharmony_ci    "hash": ""
3011cb0ef41Sopenharmony_ci  },
3021cb0ef41Sopenharmony_ci  {
3031cb0ef41Sopenharmony_ci    "input": "  \t",
3041cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3051cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar",
3061cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3071cb0ef41Sopenharmony_ci    "protocol": "http:",
3081cb0ef41Sopenharmony_ci    "username": "",
3091cb0ef41Sopenharmony_ci    "password": "",
3101cb0ef41Sopenharmony_ci    "host": "example.org",
3111cb0ef41Sopenharmony_ci    "hostname": "example.org",
3121cb0ef41Sopenharmony_ci    "port": "",
3131cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
3141cb0ef41Sopenharmony_ci    "search": "",
3151cb0ef41Sopenharmony_ci    "hash": ""
3161cb0ef41Sopenharmony_ci  },
3171cb0ef41Sopenharmony_ci  {
3181cb0ef41Sopenharmony_ci    "input": ":foo.com/",
3191cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3201cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:foo.com/",
3211cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3221cb0ef41Sopenharmony_ci    "protocol": "http:",
3231cb0ef41Sopenharmony_ci    "username": "",
3241cb0ef41Sopenharmony_ci    "password": "",
3251cb0ef41Sopenharmony_ci    "host": "example.org",
3261cb0ef41Sopenharmony_ci    "hostname": "example.org",
3271cb0ef41Sopenharmony_ci    "port": "",
3281cb0ef41Sopenharmony_ci    "pathname": "/foo/:foo.com/",
3291cb0ef41Sopenharmony_ci    "search": "",
3301cb0ef41Sopenharmony_ci    "hash": ""
3311cb0ef41Sopenharmony_ci  },
3321cb0ef41Sopenharmony_ci  {
3331cb0ef41Sopenharmony_ci    "input": ":foo.com\\",
3341cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3351cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:foo.com/",
3361cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3371cb0ef41Sopenharmony_ci    "protocol": "http:",
3381cb0ef41Sopenharmony_ci    "username": "",
3391cb0ef41Sopenharmony_ci    "password": "",
3401cb0ef41Sopenharmony_ci    "host": "example.org",
3411cb0ef41Sopenharmony_ci    "hostname": "example.org",
3421cb0ef41Sopenharmony_ci    "port": "",
3431cb0ef41Sopenharmony_ci    "pathname": "/foo/:foo.com/",
3441cb0ef41Sopenharmony_ci    "search": "",
3451cb0ef41Sopenharmony_ci    "hash": ""
3461cb0ef41Sopenharmony_ci  },
3471cb0ef41Sopenharmony_ci  {
3481cb0ef41Sopenharmony_ci    "input": ":",
3491cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3501cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:",
3511cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3521cb0ef41Sopenharmony_ci    "protocol": "http:",
3531cb0ef41Sopenharmony_ci    "username": "",
3541cb0ef41Sopenharmony_ci    "password": "",
3551cb0ef41Sopenharmony_ci    "host": "example.org",
3561cb0ef41Sopenharmony_ci    "hostname": "example.org",
3571cb0ef41Sopenharmony_ci    "port": "",
3581cb0ef41Sopenharmony_ci    "pathname": "/foo/:",
3591cb0ef41Sopenharmony_ci    "search": "",
3601cb0ef41Sopenharmony_ci    "hash": ""
3611cb0ef41Sopenharmony_ci  },
3621cb0ef41Sopenharmony_ci  {
3631cb0ef41Sopenharmony_ci    "input": ":a",
3641cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3651cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:a",
3661cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3671cb0ef41Sopenharmony_ci    "protocol": "http:",
3681cb0ef41Sopenharmony_ci    "username": "",
3691cb0ef41Sopenharmony_ci    "password": "",
3701cb0ef41Sopenharmony_ci    "host": "example.org",
3711cb0ef41Sopenharmony_ci    "hostname": "example.org",
3721cb0ef41Sopenharmony_ci    "port": "",
3731cb0ef41Sopenharmony_ci    "pathname": "/foo/:a",
3741cb0ef41Sopenharmony_ci    "search": "",
3751cb0ef41Sopenharmony_ci    "hash": ""
3761cb0ef41Sopenharmony_ci  },
3771cb0ef41Sopenharmony_ci  {
3781cb0ef41Sopenharmony_ci    "input": ":/",
3791cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3801cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:/",
3811cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3821cb0ef41Sopenharmony_ci    "protocol": "http:",
3831cb0ef41Sopenharmony_ci    "username": "",
3841cb0ef41Sopenharmony_ci    "password": "",
3851cb0ef41Sopenharmony_ci    "host": "example.org",
3861cb0ef41Sopenharmony_ci    "hostname": "example.org",
3871cb0ef41Sopenharmony_ci    "port": "",
3881cb0ef41Sopenharmony_ci    "pathname": "/foo/:/",
3891cb0ef41Sopenharmony_ci    "search": "",
3901cb0ef41Sopenharmony_ci    "hash": ""
3911cb0ef41Sopenharmony_ci  },
3921cb0ef41Sopenharmony_ci  {
3931cb0ef41Sopenharmony_ci    "input": ":\\",
3941cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
3951cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:/",
3961cb0ef41Sopenharmony_ci    "origin": "http://example.org",
3971cb0ef41Sopenharmony_ci    "protocol": "http:",
3981cb0ef41Sopenharmony_ci    "username": "",
3991cb0ef41Sopenharmony_ci    "password": "",
4001cb0ef41Sopenharmony_ci    "host": "example.org",
4011cb0ef41Sopenharmony_ci    "hostname": "example.org",
4021cb0ef41Sopenharmony_ci    "port": "",
4031cb0ef41Sopenharmony_ci    "pathname": "/foo/:/",
4041cb0ef41Sopenharmony_ci    "search": "",
4051cb0ef41Sopenharmony_ci    "hash": ""
4061cb0ef41Sopenharmony_ci  },
4071cb0ef41Sopenharmony_ci  {
4081cb0ef41Sopenharmony_ci    "input": ":#",
4091cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4101cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:#",
4111cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4121cb0ef41Sopenharmony_ci    "protocol": "http:",
4131cb0ef41Sopenharmony_ci    "username": "",
4141cb0ef41Sopenharmony_ci    "password": "",
4151cb0ef41Sopenharmony_ci    "host": "example.org",
4161cb0ef41Sopenharmony_ci    "hostname": "example.org",
4171cb0ef41Sopenharmony_ci    "port": "",
4181cb0ef41Sopenharmony_ci    "pathname": "/foo/:",
4191cb0ef41Sopenharmony_ci    "search": "",
4201cb0ef41Sopenharmony_ci    "hash": ""
4211cb0ef41Sopenharmony_ci  },
4221cb0ef41Sopenharmony_ci  {
4231cb0ef41Sopenharmony_ci    "input": "#",
4241cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4251cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar#",
4261cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4271cb0ef41Sopenharmony_ci    "protocol": "http:",
4281cb0ef41Sopenharmony_ci    "username": "",
4291cb0ef41Sopenharmony_ci    "password": "",
4301cb0ef41Sopenharmony_ci    "host": "example.org",
4311cb0ef41Sopenharmony_ci    "hostname": "example.org",
4321cb0ef41Sopenharmony_ci    "port": "",
4331cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
4341cb0ef41Sopenharmony_ci    "search": "",
4351cb0ef41Sopenharmony_ci    "hash": ""
4361cb0ef41Sopenharmony_ci  },
4371cb0ef41Sopenharmony_ci  {
4381cb0ef41Sopenharmony_ci    "input": "#/",
4391cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4401cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar#/",
4411cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4421cb0ef41Sopenharmony_ci    "protocol": "http:",
4431cb0ef41Sopenharmony_ci    "username": "",
4441cb0ef41Sopenharmony_ci    "password": "",
4451cb0ef41Sopenharmony_ci    "host": "example.org",
4461cb0ef41Sopenharmony_ci    "hostname": "example.org",
4471cb0ef41Sopenharmony_ci    "port": "",
4481cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
4491cb0ef41Sopenharmony_ci    "search": "",
4501cb0ef41Sopenharmony_ci    "hash": "#/"
4511cb0ef41Sopenharmony_ci  },
4521cb0ef41Sopenharmony_ci  {
4531cb0ef41Sopenharmony_ci    "input": "#\\",
4541cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4551cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar#\\",
4561cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4571cb0ef41Sopenharmony_ci    "protocol": "http:",
4581cb0ef41Sopenharmony_ci    "username": "",
4591cb0ef41Sopenharmony_ci    "password": "",
4601cb0ef41Sopenharmony_ci    "host": "example.org",
4611cb0ef41Sopenharmony_ci    "hostname": "example.org",
4621cb0ef41Sopenharmony_ci    "port": "",
4631cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
4641cb0ef41Sopenharmony_ci    "search": "",
4651cb0ef41Sopenharmony_ci    "hash": "#\\"
4661cb0ef41Sopenharmony_ci  },
4671cb0ef41Sopenharmony_ci  {
4681cb0ef41Sopenharmony_ci    "input": "#;?",
4691cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4701cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar#;?",
4711cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4721cb0ef41Sopenharmony_ci    "protocol": "http:",
4731cb0ef41Sopenharmony_ci    "username": "",
4741cb0ef41Sopenharmony_ci    "password": "",
4751cb0ef41Sopenharmony_ci    "host": "example.org",
4761cb0ef41Sopenharmony_ci    "hostname": "example.org",
4771cb0ef41Sopenharmony_ci    "port": "",
4781cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
4791cb0ef41Sopenharmony_ci    "search": "",
4801cb0ef41Sopenharmony_ci    "hash": "#;?"
4811cb0ef41Sopenharmony_ci  },
4821cb0ef41Sopenharmony_ci  {
4831cb0ef41Sopenharmony_ci    "input": "?",
4841cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
4851cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar?",
4861cb0ef41Sopenharmony_ci    "origin": "http://example.org",
4871cb0ef41Sopenharmony_ci    "protocol": "http:",
4881cb0ef41Sopenharmony_ci    "username": "",
4891cb0ef41Sopenharmony_ci    "password": "",
4901cb0ef41Sopenharmony_ci    "host": "example.org",
4911cb0ef41Sopenharmony_ci    "hostname": "example.org",
4921cb0ef41Sopenharmony_ci    "port": "",
4931cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
4941cb0ef41Sopenharmony_ci    "search": "",
4951cb0ef41Sopenharmony_ci    "hash": ""
4961cb0ef41Sopenharmony_ci  },
4971cb0ef41Sopenharmony_ci  {
4981cb0ef41Sopenharmony_ci    "input": "/",
4991cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5001cb0ef41Sopenharmony_ci    "href": "http://example.org/",
5011cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5021cb0ef41Sopenharmony_ci    "protocol": "http:",
5031cb0ef41Sopenharmony_ci    "username": "",
5041cb0ef41Sopenharmony_ci    "password": "",
5051cb0ef41Sopenharmony_ci    "host": "example.org",
5061cb0ef41Sopenharmony_ci    "hostname": "example.org",
5071cb0ef41Sopenharmony_ci    "port": "",
5081cb0ef41Sopenharmony_ci    "pathname": "/",
5091cb0ef41Sopenharmony_ci    "search": "",
5101cb0ef41Sopenharmony_ci    "hash": ""
5111cb0ef41Sopenharmony_ci  },
5121cb0ef41Sopenharmony_ci  {
5131cb0ef41Sopenharmony_ci    "input": ":23",
5141cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5151cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:23",
5161cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5171cb0ef41Sopenharmony_ci    "protocol": "http:",
5181cb0ef41Sopenharmony_ci    "username": "",
5191cb0ef41Sopenharmony_ci    "password": "",
5201cb0ef41Sopenharmony_ci    "host": "example.org",
5211cb0ef41Sopenharmony_ci    "hostname": "example.org",
5221cb0ef41Sopenharmony_ci    "port": "",
5231cb0ef41Sopenharmony_ci    "pathname": "/foo/:23",
5241cb0ef41Sopenharmony_ci    "search": "",
5251cb0ef41Sopenharmony_ci    "hash": ""
5261cb0ef41Sopenharmony_ci  },
5271cb0ef41Sopenharmony_ci  {
5281cb0ef41Sopenharmony_ci    "input": "/:23",
5291cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5301cb0ef41Sopenharmony_ci    "href": "http://example.org/:23",
5311cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5321cb0ef41Sopenharmony_ci    "protocol": "http:",
5331cb0ef41Sopenharmony_ci    "username": "",
5341cb0ef41Sopenharmony_ci    "password": "",
5351cb0ef41Sopenharmony_ci    "host": "example.org",
5361cb0ef41Sopenharmony_ci    "hostname": "example.org",
5371cb0ef41Sopenharmony_ci    "port": "",
5381cb0ef41Sopenharmony_ci    "pathname": "/:23",
5391cb0ef41Sopenharmony_ci    "search": "",
5401cb0ef41Sopenharmony_ci    "hash": ""
5411cb0ef41Sopenharmony_ci  },
5421cb0ef41Sopenharmony_ci  {
5431cb0ef41Sopenharmony_ci    "input": "\\x",
5441cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5451cb0ef41Sopenharmony_ci    "href": "http://example.org/x",
5461cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5471cb0ef41Sopenharmony_ci    "protocol": "http:",
5481cb0ef41Sopenharmony_ci    "username": "",
5491cb0ef41Sopenharmony_ci    "password": "",
5501cb0ef41Sopenharmony_ci    "host": "example.org",
5511cb0ef41Sopenharmony_ci    "hostname": "example.org",
5521cb0ef41Sopenharmony_ci    "port": "",
5531cb0ef41Sopenharmony_ci    "pathname": "/x",
5541cb0ef41Sopenharmony_ci    "search": "",
5551cb0ef41Sopenharmony_ci    "hash": ""
5561cb0ef41Sopenharmony_ci  },
5571cb0ef41Sopenharmony_ci  {
5581cb0ef41Sopenharmony_ci    "input": "\\\\x\\hello",
5591cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5601cb0ef41Sopenharmony_ci    "href": "http://x/hello",
5611cb0ef41Sopenharmony_ci    "origin": "http://x",
5621cb0ef41Sopenharmony_ci    "protocol": "http:",
5631cb0ef41Sopenharmony_ci    "username": "",
5641cb0ef41Sopenharmony_ci    "password": "",
5651cb0ef41Sopenharmony_ci    "host": "x",
5661cb0ef41Sopenharmony_ci    "hostname": "x",
5671cb0ef41Sopenharmony_ci    "port": "",
5681cb0ef41Sopenharmony_ci    "pathname": "/hello",
5691cb0ef41Sopenharmony_ci    "search": "",
5701cb0ef41Sopenharmony_ci    "hash": ""
5711cb0ef41Sopenharmony_ci  },
5721cb0ef41Sopenharmony_ci  {
5731cb0ef41Sopenharmony_ci    "input": "::",
5741cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5751cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/::",
5761cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5771cb0ef41Sopenharmony_ci    "protocol": "http:",
5781cb0ef41Sopenharmony_ci    "username": "",
5791cb0ef41Sopenharmony_ci    "password": "",
5801cb0ef41Sopenharmony_ci    "host": "example.org",
5811cb0ef41Sopenharmony_ci    "hostname": "example.org",
5821cb0ef41Sopenharmony_ci    "port": "",
5831cb0ef41Sopenharmony_ci    "pathname": "/foo/::",
5841cb0ef41Sopenharmony_ci    "search": "",
5851cb0ef41Sopenharmony_ci    "hash": ""
5861cb0ef41Sopenharmony_ci  },
5871cb0ef41Sopenharmony_ci  {
5881cb0ef41Sopenharmony_ci    "input": "::23",
5891cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
5901cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/::23",
5911cb0ef41Sopenharmony_ci    "origin": "http://example.org",
5921cb0ef41Sopenharmony_ci    "protocol": "http:",
5931cb0ef41Sopenharmony_ci    "username": "",
5941cb0ef41Sopenharmony_ci    "password": "",
5951cb0ef41Sopenharmony_ci    "host": "example.org",
5961cb0ef41Sopenharmony_ci    "hostname": "example.org",
5971cb0ef41Sopenharmony_ci    "port": "",
5981cb0ef41Sopenharmony_ci    "pathname": "/foo/::23",
5991cb0ef41Sopenharmony_ci    "search": "",
6001cb0ef41Sopenharmony_ci    "hash": ""
6011cb0ef41Sopenharmony_ci  },
6021cb0ef41Sopenharmony_ci  {
6031cb0ef41Sopenharmony_ci    "input": "foo://",
6041cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6051cb0ef41Sopenharmony_ci    "href": "foo://",
6061cb0ef41Sopenharmony_ci    "origin": "null",
6071cb0ef41Sopenharmony_ci    "protocol": "foo:",
6081cb0ef41Sopenharmony_ci    "username": "",
6091cb0ef41Sopenharmony_ci    "password": "",
6101cb0ef41Sopenharmony_ci    "host": "",
6111cb0ef41Sopenharmony_ci    "hostname": "",
6121cb0ef41Sopenharmony_ci    "port": "",
6131cb0ef41Sopenharmony_ci    "pathname": "",
6141cb0ef41Sopenharmony_ci    "search": "",
6151cb0ef41Sopenharmony_ci    "hash": ""
6161cb0ef41Sopenharmony_ci  },
6171cb0ef41Sopenharmony_ci  {
6181cb0ef41Sopenharmony_ci    "input": "http://a:b@c:29/d",
6191cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6201cb0ef41Sopenharmony_ci    "href": "http://a:b@c:29/d",
6211cb0ef41Sopenharmony_ci    "origin": "http://c:29",
6221cb0ef41Sopenharmony_ci    "protocol": "http:",
6231cb0ef41Sopenharmony_ci    "username": "a",
6241cb0ef41Sopenharmony_ci    "password": "b",
6251cb0ef41Sopenharmony_ci    "host": "c:29",
6261cb0ef41Sopenharmony_ci    "hostname": "c",
6271cb0ef41Sopenharmony_ci    "port": "29",
6281cb0ef41Sopenharmony_ci    "pathname": "/d",
6291cb0ef41Sopenharmony_ci    "search": "",
6301cb0ef41Sopenharmony_ci    "hash": ""
6311cb0ef41Sopenharmony_ci  },
6321cb0ef41Sopenharmony_ci  {
6331cb0ef41Sopenharmony_ci    "input": "http::@c:29",
6341cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6351cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/:@c:29",
6361cb0ef41Sopenharmony_ci    "origin": "http://example.org",
6371cb0ef41Sopenharmony_ci    "protocol": "http:",
6381cb0ef41Sopenharmony_ci    "username": "",
6391cb0ef41Sopenharmony_ci    "password": "",
6401cb0ef41Sopenharmony_ci    "host": "example.org",
6411cb0ef41Sopenharmony_ci    "hostname": "example.org",
6421cb0ef41Sopenharmony_ci    "port": "",
6431cb0ef41Sopenharmony_ci    "pathname": "/foo/:@c:29",
6441cb0ef41Sopenharmony_ci    "search": "",
6451cb0ef41Sopenharmony_ci    "hash": ""
6461cb0ef41Sopenharmony_ci  },
6471cb0ef41Sopenharmony_ci  {
6481cb0ef41Sopenharmony_ci    "input": "http://&a:foo(b]c@d:2/",
6491cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6501cb0ef41Sopenharmony_ci    "href": "http://&a:foo(b%5Dc@d:2/",
6511cb0ef41Sopenharmony_ci    "origin": "http://d:2",
6521cb0ef41Sopenharmony_ci    "protocol": "http:",
6531cb0ef41Sopenharmony_ci    "username": "&a",
6541cb0ef41Sopenharmony_ci    "password": "foo(b%5Dc",
6551cb0ef41Sopenharmony_ci    "host": "d:2",
6561cb0ef41Sopenharmony_ci    "hostname": "d",
6571cb0ef41Sopenharmony_ci    "port": "2",
6581cb0ef41Sopenharmony_ci    "pathname": "/",
6591cb0ef41Sopenharmony_ci    "search": "",
6601cb0ef41Sopenharmony_ci    "hash": ""
6611cb0ef41Sopenharmony_ci  },
6621cb0ef41Sopenharmony_ci  {
6631cb0ef41Sopenharmony_ci    "input": "http://::@c@d:2",
6641cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6651cb0ef41Sopenharmony_ci    "href": "http://:%3A%40c@d:2/",
6661cb0ef41Sopenharmony_ci    "origin": "http://d:2",
6671cb0ef41Sopenharmony_ci    "protocol": "http:",
6681cb0ef41Sopenharmony_ci    "username": "",
6691cb0ef41Sopenharmony_ci    "password": "%3A%40c",
6701cb0ef41Sopenharmony_ci    "host": "d:2",
6711cb0ef41Sopenharmony_ci    "hostname": "d",
6721cb0ef41Sopenharmony_ci    "port": "2",
6731cb0ef41Sopenharmony_ci    "pathname": "/",
6741cb0ef41Sopenharmony_ci    "search": "",
6751cb0ef41Sopenharmony_ci    "hash": ""
6761cb0ef41Sopenharmony_ci  },
6771cb0ef41Sopenharmony_ci  {
6781cb0ef41Sopenharmony_ci    "input": "http://foo.com:b@d/",
6791cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6801cb0ef41Sopenharmony_ci    "href": "http://foo.com:b@d/",
6811cb0ef41Sopenharmony_ci    "origin": "http://d",
6821cb0ef41Sopenharmony_ci    "protocol": "http:",
6831cb0ef41Sopenharmony_ci    "username": "foo.com",
6841cb0ef41Sopenharmony_ci    "password": "b",
6851cb0ef41Sopenharmony_ci    "host": "d",
6861cb0ef41Sopenharmony_ci    "hostname": "d",
6871cb0ef41Sopenharmony_ci    "port": "",
6881cb0ef41Sopenharmony_ci    "pathname": "/",
6891cb0ef41Sopenharmony_ci    "search": "",
6901cb0ef41Sopenharmony_ci    "hash": ""
6911cb0ef41Sopenharmony_ci  },
6921cb0ef41Sopenharmony_ci  {
6931cb0ef41Sopenharmony_ci    "input": "http://foo.com/\\@",
6941cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
6951cb0ef41Sopenharmony_ci    "href": "http://foo.com//@",
6961cb0ef41Sopenharmony_ci    "origin": "http://foo.com",
6971cb0ef41Sopenharmony_ci    "protocol": "http:",
6981cb0ef41Sopenharmony_ci    "username": "",
6991cb0ef41Sopenharmony_ci    "password": "",
7001cb0ef41Sopenharmony_ci    "host": "foo.com",
7011cb0ef41Sopenharmony_ci    "hostname": "foo.com",
7021cb0ef41Sopenharmony_ci    "port": "",
7031cb0ef41Sopenharmony_ci    "pathname": "//@",
7041cb0ef41Sopenharmony_ci    "search": "",
7051cb0ef41Sopenharmony_ci    "hash": ""
7061cb0ef41Sopenharmony_ci  },
7071cb0ef41Sopenharmony_ci  {
7081cb0ef41Sopenharmony_ci    "input": "http:\\\\foo.com\\",
7091cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7101cb0ef41Sopenharmony_ci    "href": "http://foo.com/",
7111cb0ef41Sopenharmony_ci    "origin": "http://foo.com",
7121cb0ef41Sopenharmony_ci    "protocol": "http:",
7131cb0ef41Sopenharmony_ci    "username": "",
7141cb0ef41Sopenharmony_ci    "password": "",
7151cb0ef41Sopenharmony_ci    "host": "foo.com",
7161cb0ef41Sopenharmony_ci    "hostname": "foo.com",
7171cb0ef41Sopenharmony_ci    "port": "",
7181cb0ef41Sopenharmony_ci    "pathname": "/",
7191cb0ef41Sopenharmony_ci    "search": "",
7201cb0ef41Sopenharmony_ci    "hash": ""
7211cb0ef41Sopenharmony_ci  },
7221cb0ef41Sopenharmony_ci  {
7231cb0ef41Sopenharmony_ci    "input": "http:\\\\a\\b:c\\d@foo.com\\",
7241cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7251cb0ef41Sopenharmony_ci    "href": "http://a/b:c/d@foo.com/",
7261cb0ef41Sopenharmony_ci    "origin": "http://a",
7271cb0ef41Sopenharmony_ci    "protocol": "http:",
7281cb0ef41Sopenharmony_ci    "username": "",
7291cb0ef41Sopenharmony_ci    "password": "",
7301cb0ef41Sopenharmony_ci    "host": "a",
7311cb0ef41Sopenharmony_ci    "hostname": "a",
7321cb0ef41Sopenharmony_ci    "port": "",
7331cb0ef41Sopenharmony_ci    "pathname": "/b:c/d@foo.com/",
7341cb0ef41Sopenharmony_ci    "search": "",
7351cb0ef41Sopenharmony_ci    "hash": ""
7361cb0ef41Sopenharmony_ci  },
7371cb0ef41Sopenharmony_ci  {
7381cb0ef41Sopenharmony_ci    "input": "foo:/",
7391cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7401cb0ef41Sopenharmony_ci    "href": "foo:/",
7411cb0ef41Sopenharmony_ci    "origin": "null",
7421cb0ef41Sopenharmony_ci    "protocol": "foo:",
7431cb0ef41Sopenharmony_ci    "username": "",
7441cb0ef41Sopenharmony_ci    "password": "",
7451cb0ef41Sopenharmony_ci    "host": "",
7461cb0ef41Sopenharmony_ci    "hostname": "",
7471cb0ef41Sopenharmony_ci    "port": "",
7481cb0ef41Sopenharmony_ci    "pathname": "/",
7491cb0ef41Sopenharmony_ci    "search": "",
7501cb0ef41Sopenharmony_ci    "hash": ""
7511cb0ef41Sopenharmony_ci  },
7521cb0ef41Sopenharmony_ci  {
7531cb0ef41Sopenharmony_ci    "input": "foo:/bar.com/",
7541cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7551cb0ef41Sopenharmony_ci    "href": "foo:/bar.com/",
7561cb0ef41Sopenharmony_ci    "origin": "null",
7571cb0ef41Sopenharmony_ci    "protocol": "foo:",
7581cb0ef41Sopenharmony_ci    "username": "",
7591cb0ef41Sopenharmony_ci    "password": "",
7601cb0ef41Sopenharmony_ci    "host": "",
7611cb0ef41Sopenharmony_ci    "hostname": "",
7621cb0ef41Sopenharmony_ci    "port": "",
7631cb0ef41Sopenharmony_ci    "pathname": "/bar.com/",
7641cb0ef41Sopenharmony_ci    "search": "",
7651cb0ef41Sopenharmony_ci    "hash": ""
7661cb0ef41Sopenharmony_ci  },
7671cb0ef41Sopenharmony_ci  {
7681cb0ef41Sopenharmony_ci    "input": "foo://///////",
7691cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7701cb0ef41Sopenharmony_ci    "href": "foo://///////",
7711cb0ef41Sopenharmony_ci    "origin": "null",
7721cb0ef41Sopenharmony_ci    "protocol": "foo:",
7731cb0ef41Sopenharmony_ci    "username": "",
7741cb0ef41Sopenharmony_ci    "password": "",
7751cb0ef41Sopenharmony_ci    "host": "",
7761cb0ef41Sopenharmony_ci    "hostname": "",
7771cb0ef41Sopenharmony_ci    "port": "",
7781cb0ef41Sopenharmony_ci    "pathname": "///////",
7791cb0ef41Sopenharmony_ci    "search": "",
7801cb0ef41Sopenharmony_ci    "hash": ""
7811cb0ef41Sopenharmony_ci  },
7821cb0ef41Sopenharmony_ci  {
7831cb0ef41Sopenharmony_ci    "input": "foo://///////bar.com/",
7841cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
7851cb0ef41Sopenharmony_ci    "href": "foo://///////bar.com/",
7861cb0ef41Sopenharmony_ci    "origin": "null",
7871cb0ef41Sopenharmony_ci    "protocol": "foo:",
7881cb0ef41Sopenharmony_ci    "username": "",
7891cb0ef41Sopenharmony_ci    "password": "",
7901cb0ef41Sopenharmony_ci    "host": "",
7911cb0ef41Sopenharmony_ci    "hostname": "",
7921cb0ef41Sopenharmony_ci    "port": "",
7931cb0ef41Sopenharmony_ci    "pathname": "///////bar.com/",
7941cb0ef41Sopenharmony_ci    "search": "",
7951cb0ef41Sopenharmony_ci    "hash": ""
7961cb0ef41Sopenharmony_ci  },
7971cb0ef41Sopenharmony_ci  {
7981cb0ef41Sopenharmony_ci    "input": "foo:////://///",
7991cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8001cb0ef41Sopenharmony_ci    "href": "foo:////://///",
8011cb0ef41Sopenharmony_ci    "origin": "null",
8021cb0ef41Sopenharmony_ci    "protocol": "foo:",
8031cb0ef41Sopenharmony_ci    "username": "",
8041cb0ef41Sopenharmony_ci    "password": "",
8051cb0ef41Sopenharmony_ci    "host": "",
8061cb0ef41Sopenharmony_ci    "hostname": "",
8071cb0ef41Sopenharmony_ci    "port": "",
8081cb0ef41Sopenharmony_ci    "pathname": "//://///",
8091cb0ef41Sopenharmony_ci    "search": "",
8101cb0ef41Sopenharmony_ci    "hash": ""
8111cb0ef41Sopenharmony_ci  },
8121cb0ef41Sopenharmony_ci  {
8131cb0ef41Sopenharmony_ci    "input": "c:/foo",
8141cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8151cb0ef41Sopenharmony_ci    "href": "c:/foo",
8161cb0ef41Sopenharmony_ci    "origin": "null",
8171cb0ef41Sopenharmony_ci    "protocol": "c:",
8181cb0ef41Sopenharmony_ci    "username": "",
8191cb0ef41Sopenharmony_ci    "password": "",
8201cb0ef41Sopenharmony_ci    "host": "",
8211cb0ef41Sopenharmony_ci    "hostname": "",
8221cb0ef41Sopenharmony_ci    "port": "",
8231cb0ef41Sopenharmony_ci    "pathname": "/foo",
8241cb0ef41Sopenharmony_ci    "search": "",
8251cb0ef41Sopenharmony_ci    "hash": ""
8261cb0ef41Sopenharmony_ci  },
8271cb0ef41Sopenharmony_ci  {
8281cb0ef41Sopenharmony_ci    "input": "//foo/bar",
8291cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8301cb0ef41Sopenharmony_ci    "href": "http://foo/bar",
8311cb0ef41Sopenharmony_ci    "origin": "http://foo",
8321cb0ef41Sopenharmony_ci    "protocol": "http:",
8331cb0ef41Sopenharmony_ci    "username": "",
8341cb0ef41Sopenharmony_ci    "password": "",
8351cb0ef41Sopenharmony_ci    "host": "foo",
8361cb0ef41Sopenharmony_ci    "hostname": "foo",
8371cb0ef41Sopenharmony_ci    "port": "",
8381cb0ef41Sopenharmony_ci    "pathname": "/bar",
8391cb0ef41Sopenharmony_ci    "search": "",
8401cb0ef41Sopenharmony_ci    "hash": ""
8411cb0ef41Sopenharmony_ci  },
8421cb0ef41Sopenharmony_ci  {
8431cb0ef41Sopenharmony_ci    "input": "http://foo/path;a??e#f#g",
8441cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8451cb0ef41Sopenharmony_ci    "href": "http://foo/path;a??e#f#g",
8461cb0ef41Sopenharmony_ci    "origin": "http://foo",
8471cb0ef41Sopenharmony_ci    "protocol": "http:",
8481cb0ef41Sopenharmony_ci    "username": "",
8491cb0ef41Sopenharmony_ci    "password": "",
8501cb0ef41Sopenharmony_ci    "host": "foo",
8511cb0ef41Sopenharmony_ci    "hostname": "foo",
8521cb0ef41Sopenharmony_ci    "port": "",
8531cb0ef41Sopenharmony_ci    "pathname": "/path;a",
8541cb0ef41Sopenharmony_ci    "search": "??e",
8551cb0ef41Sopenharmony_ci    "hash": "#f#g"
8561cb0ef41Sopenharmony_ci  },
8571cb0ef41Sopenharmony_ci  {
8581cb0ef41Sopenharmony_ci    "input": "http://foo/abcd?efgh?ijkl",
8591cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8601cb0ef41Sopenharmony_ci    "href": "http://foo/abcd?efgh?ijkl",
8611cb0ef41Sopenharmony_ci    "origin": "http://foo",
8621cb0ef41Sopenharmony_ci    "protocol": "http:",
8631cb0ef41Sopenharmony_ci    "username": "",
8641cb0ef41Sopenharmony_ci    "password": "",
8651cb0ef41Sopenharmony_ci    "host": "foo",
8661cb0ef41Sopenharmony_ci    "hostname": "foo",
8671cb0ef41Sopenharmony_ci    "port": "",
8681cb0ef41Sopenharmony_ci    "pathname": "/abcd",
8691cb0ef41Sopenharmony_ci    "search": "?efgh?ijkl",
8701cb0ef41Sopenharmony_ci    "hash": ""
8711cb0ef41Sopenharmony_ci  },
8721cb0ef41Sopenharmony_ci  {
8731cb0ef41Sopenharmony_ci    "input": "http://foo/abcd#foo?bar",
8741cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8751cb0ef41Sopenharmony_ci    "href": "http://foo/abcd#foo?bar",
8761cb0ef41Sopenharmony_ci    "origin": "http://foo",
8771cb0ef41Sopenharmony_ci    "protocol": "http:",
8781cb0ef41Sopenharmony_ci    "username": "",
8791cb0ef41Sopenharmony_ci    "password": "",
8801cb0ef41Sopenharmony_ci    "host": "foo",
8811cb0ef41Sopenharmony_ci    "hostname": "foo",
8821cb0ef41Sopenharmony_ci    "port": "",
8831cb0ef41Sopenharmony_ci    "pathname": "/abcd",
8841cb0ef41Sopenharmony_ci    "search": "",
8851cb0ef41Sopenharmony_ci    "hash": "#foo?bar"
8861cb0ef41Sopenharmony_ci  },
8871cb0ef41Sopenharmony_ci  {
8881cb0ef41Sopenharmony_ci    "input": "[61:24:74]:98",
8891cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
8901cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/[61:24:74]:98",
8911cb0ef41Sopenharmony_ci    "origin": "http://example.org",
8921cb0ef41Sopenharmony_ci    "protocol": "http:",
8931cb0ef41Sopenharmony_ci    "username": "",
8941cb0ef41Sopenharmony_ci    "password": "",
8951cb0ef41Sopenharmony_ci    "host": "example.org",
8961cb0ef41Sopenharmony_ci    "hostname": "example.org",
8971cb0ef41Sopenharmony_ci    "port": "",
8981cb0ef41Sopenharmony_ci    "pathname": "/foo/[61:24:74]:98",
8991cb0ef41Sopenharmony_ci    "search": "",
9001cb0ef41Sopenharmony_ci    "hash": ""
9011cb0ef41Sopenharmony_ci  },
9021cb0ef41Sopenharmony_ci  {
9031cb0ef41Sopenharmony_ci    "input": "http:[61:27]/:foo",
9041cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9051cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/[61:27]/:foo",
9061cb0ef41Sopenharmony_ci    "origin": "http://example.org",
9071cb0ef41Sopenharmony_ci    "protocol": "http:",
9081cb0ef41Sopenharmony_ci    "username": "",
9091cb0ef41Sopenharmony_ci    "password": "",
9101cb0ef41Sopenharmony_ci    "host": "example.org",
9111cb0ef41Sopenharmony_ci    "hostname": "example.org",
9121cb0ef41Sopenharmony_ci    "port": "",
9131cb0ef41Sopenharmony_ci    "pathname": "/foo/[61:27]/:foo",
9141cb0ef41Sopenharmony_ci    "search": "",
9151cb0ef41Sopenharmony_ci    "hash": ""
9161cb0ef41Sopenharmony_ci  },
9171cb0ef41Sopenharmony_ci  {
9181cb0ef41Sopenharmony_ci    "input": "http://[1::2]:3:4",
9191cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9201cb0ef41Sopenharmony_ci    "failure": true
9211cb0ef41Sopenharmony_ci  },
9221cb0ef41Sopenharmony_ci  {
9231cb0ef41Sopenharmony_ci    "input": "http://2001::1",
9241cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9251cb0ef41Sopenharmony_ci    "failure": true
9261cb0ef41Sopenharmony_ci  },
9271cb0ef41Sopenharmony_ci  {
9281cb0ef41Sopenharmony_ci    "input": "http://2001::1]",
9291cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9301cb0ef41Sopenharmony_ci    "failure": true
9311cb0ef41Sopenharmony_ci  },
9321cb0ef41Sopenharmony_ci  {
9331cb0ef41Sopenharmony_ci    "input": "http://2001::1]:80",
9341cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9351cb0ef41Sopenharmony_ci    "failure": true
9361cb0ef41Sopenharmony_ci  },
9371cb0ef41Sopenharmony_ci  {
9381cb0ef41Sopenharmony_ci    "input": "http://[2001::1]",
9391cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9401cb0ef41Sopenharmony_ci    "href": "http://[2001::1]/",
9411cb0ef41Sopenharmony_ci    "origin": "http://[2001::1]",
9421cb0ef41Sopenharmony_ci    "protocol": "http:",
9431cb0ef41Sopenharmony_ci    "username": "",
9441cb0ef41Sopenharmony_ci    "password": "",
9451cb0ef41Sopenharmony_ci    "host": "[2001::1]",
9461cb0ef41Sopenharmony_ci    "hostname": "[2001::1]",
9471cb0ef41Sopenharmony_ci    "port": "",
9481cb0ef41Sopenharmony_ci    "pathname": "/",
9491cb0ef41Sopenharmony_ci    "search": "",
9501cb0ef41Sopenharmony_ci    "hash": ""
9511cb0ef41Sopenharmony_ci  },
9521cb0ef41Sopenharmony_ci  {
9531cb0ef41Sopenharmony_ci    "input": "http://[::127.0.0.1]",
9541cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9551cb0ef41Sopenharmony_ci    "href": "http://[::7f00:1]/",
9561cb0ef41Sopenharmony_ci    "origin": "http://[::7f00:1]",
9571cb0ef41Sopenharmony_ci    "protocol": "http:",
9581cb0ef41Sopenharmony_ci    "username": "",
9591cb0ef41Sopenharmony_ci    "password": "",
9601cb0ef41Sopenharmony_ci    "host": "[::7f00:1]",
9611cb0ef41Sopenharmony_ci    "hostname": "[::7f00:1]",
9621cb0ef41Sopenharmony_ci    "port": "",
9631cb0ef41Sopenharmony_ci    "pathname": "/",
9641cb0ef41Sopenharmony_ci    "search": "",
9651cb0ef41Sopenharmony_ci    "hash": ""
9661cb0ef41Sopenharmony_ci  },
9671cb0ef41Sopenharmony_ci  {
9681cb0ef41Sopenharmony_ci    "input": "http://[::127.0.0.1.]",
9691cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9701cb0ef41Sopenharmony_ci    "failure": true
9711cb0ef41Sopenharmony_ci  },
9721cb0ef41Sopenharmony_ci  {
9731cb0ef41Sopenharmony_ci    "input": "http://[0:0:0:0:0:0:13.1.68.3]",
9741cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9751cb0ef41Sopenharmony_ci    "href": "http://[::d01:4403]/",
9761cb0ef41Sopenharmony_ci    "origin": "http://[::d01:4403]",
9771cb0ef41Sopenharmony_ci    "protocol": "http:",
9781cb0ef41Sopenharmony_ci    "username": "",
9791cb0ef41Sopenharmony_ci    "password": "",
9801cb0ef41Sopenharmony_ci    "host": "[::d01:4403]",
9811cb0ef41Sopenharmony_ci    "hostname": "[::d01:4403]",
9821cb0ef41Sopenharmony_ci    "port": "",
9831cb0ef41Sopenharmony_ci    "pathname": "/",
9841cb0ef41Sopenharmony_ci    "search": "",
9851cb0ef41Sopenharmony_ci    "hash": ""
9861cb0ef41Sopenharmony_ci  },
9871cb0ef41Sopenharmony_ci  {
9881cb0ef41Sopenharmony_ci    "input": "http://[2001::1]:80",
9891cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
9901cb0ef41Sopenharmony_ci    "href": "http://[2001::1]/",
9911cb0ef41Sopenharmony_ci    "origin": "http://[2001::1]",
9921cb0ef41Sopenharmony_ci    "protocol": "http:",
9931cb0ef41Sopenharmony_ci    "username": "",
9941cb0ef41Sopenharmony_ci    "password": "",
9951cb0ef41Sopenharmony_ci    "host": "[2001::1]",
9961cb0ef41Sopenharmony_ci    "hostname": "[2001::1]",
9971cb0ef41Sopenharmony_ci    "port": "",
9981cb0ef41Sopenharmony_ci    "pathname": "/",
9991cb0ef41Sopenharmony_ci    "search": "",
10001cb0ef41Sopenharmony_ci    "hash": ""
10011cb0ef41Sopenharmony_ci  },
10021cb0ef41Sopenharmony_ci  {
10031cb0ef41Sopenharmony_ci    "input": "http:/example.com/",
10041cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10051cb0ef41Sopenharmony_ci    "href": "http://example.org/example.com/",
10061cb0ef41Sopenharmony_ci    "origin": "http://example.org",
10071cb0ef41Sopenharmony_ci    "protocol": "http:",
10081cb0ef41Sopenharmony_ci    "username": "",
10091cb0ef41Sopenharmony_ci    "password": "",
10101cb0ef41Sopenharmony_ci    "host": "example.org",
10111cb0ef41Sopenharmony_ci    "hostname": "example.org",
10121cb0ef41Sopenharmony_ci    "port": "",
10131cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
10141cb0ef41Sopenharmony_ci    "search": "",
10151cb0ef41Sopenharmony_ci    "hash": ""
10161cb0ef41Sopenharmony_ci  },
10171cb0ef41Sopenharmony_ci  {
10181cb0ef41Sopenharmony_ci    "input": "ftp:/example.com/",
10191cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10201cb0ef41Sopenharmony_ci    "href": "ftp://example.com/",
10211cb0ef41Sopenharmony_ci    "origin": "ftp://example.com",
10221cb0ef41Sopenharmony_ci    "protocol": "ftp:",
10231cb0ef41Sopenharmony_ci    "username": "",
10241cb0ef41Sopenharmony_ci    "password": "",
10251cb0ef41Sopenharmony_ci    "host": "example.com",
10261cb0ef41Sopenharmony_ci    "hostname": "example.com",
10271cb0ef41Sopenharmony_ci    "port": "",
10281cb0ef41Sopenharmony_ci    "pathname": "/",
10291cb0ef41Sopenharmony_ci    "search": "",
10301cb0ef41Sopenharmony_ci    "hash": ""
10311cb0ef41Sopenharmony_ci  },
10321cb0ef41Sopenharmony_ci  {
10331cb0ef41Sopenharmony_ci    "input": "https:/example.com/",
10341cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10351cb0ef41Sopenharmony_ci    "href": "https://example.com/",
10361cb0ef41Sopenharmony_ci    "origin": "https://example.com",
10371cb0ef41Sopenharmony_ci    "protocol": "https:",
10381cb0ef41Sopenharmony_ci    "username": "",
10391cb0ef41Sopenharmony_ci    "password": "",
10401cb0ef41Sopenharmony_ci    "host": "example.com",
10411cb0ef41Sopenharmony_ci    "hostname": "example.com",
10421cb0ef41Sopenharmony_ci    "port": "",
10431cb0ef41Sopenharmony_ci    "pathname": "/",
10441cb0ef41Sopenharmony_ci    "search": "",
10451cb0ef41Sopenharmony_ci    "hash": ""
10461cb0ef41Sopenharmony_ci  },
10471cb0ef41Sopenharmony_ci  {
10481cb0ef41Sopenharmony_ci    "input": "madeupscheme:/example.com/",
10491cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10501cb0ef41Sopenharmony_ci    "href": "madeupscheme:/example.com/",
10511cb0ef41Sopenharmony_ci    "origin": "null",
10521cb0ef41Sopenharmony_ci    "protocol": "madeupscheme:",
10531cb0ef41Sopenharmony_ci    "username": "",
10541cb0ef41Sopenharmony_ci    "password": "",
10551cb0ef41Sopenharmony_ci    "host": "",
10561cb0ef41Sopenharmony_ci    "hostname": "",
10571cb0ef41Sopenharmony_ci    "port": "",
10581cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
10591cb0ef41Sopenharmony_ci    "search": "",
10601cb0ef41Sopenharmony_ci    "hash": ""
10611cb0ef41Sopenharmony_ci  },
10621cb0ef41Sopenharmony_ci  {
10631cb0ef41Sopenharmony_ci    "input": "file:/example.com/",
10641cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10651cb0ef41Sopenharmony_ci    "href": "file:///example.com/",
10661cb0ef41Sopenharmony_ci    "protocol": "file:",
10671cb0ef41Sopenharmony_ci    "username": "",
10681cb0ef41Sopenharmony_ci    "password": "",
10691cb0ef41Sopenharmony_ci    "host": "",
10701cb0ef41Sopenharmony_ci    "hostname": "",
10711cb0ef41Sopenharmony_ci    "port": "",
10721cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
10731cb0ef41Sopenharmony_ci    "search": "",
10741cb0ef41Sopenharmony_ci    "hash": ""
10751cb0ef41Sopenharmony_ci  },
10761cb0ef41Sopenharmony_ci  {
10771cb0ef41Sopenharmony_ci    "input": "file://example:1/",
10781cb0ef41Sopenharmony_ci    "base": null,
10791cb0ef41Sopenharmony_ci    "failure": true
10801cb0ef41Sopenharmony_ci  },
10811cb0ef41Sopenharmony_ci  {
10821cb0ef41Sopenharmony_ci    "input": "file://example:test/",
10831cb0ef41Sopenharmony_ci    "base": null,
10841cb0ef41Sopenharmony_ci    "failure": true
10851cb0ef41Sopenharmony_ci  },
10861cb0ef41Sopenharmony_ci  {
10871cb0ef41Sopenharmony_ci    "input": "file://example%/",
10881cb0ef41Sopenharmony_ci    "base": null,
10891cb0ef41Sopenharmony_ci    "failure": true
10901cb0ef41Sopenharmony_ci  },
10911cb0ef41Sopenharmony_ci  {
10921cb0ef41Sopenharmony_ci    "input": "file://[example]/",
10931cb0ef41Sopenharmony_ci    "base": null,
10941cb0ef41Sopenharmony_ci    "failure": true
10951cb0ef41Sopenharmony_ci  },
10961cb0ef41Sopenharmony_ci  {
10971cb0ef41Sopenharmony_ci    "input": "ftps:/example.com/",
10981cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
10991cb0ef41Sopenharmony_ci    "href": "ftps:/example.com/",
11001cb0ef41Sopenharmony_ci    "origin": "null",
11011cb0ef41Sopenharmony_ci    "protocol": "ftps:",
11021cb0ef41Sopenharmony_ci    "username": "",
11031cb0ef41Sopenharmony_ci    "password": "",
11041cb0ef41Sopenharmony_ci    "host": "",
11051cb0ef41Sopenharmony_ci    "hostname": "",
11061cb0ef41Sopenharmony_ci    "port": "",
11071cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
11081cb0ef41Sopenharmony_ci    "search": "",
11091cb0ef41Sopenharmony_ci    "hash": ""
11101cb0ef41Sopenharmony_ci  },
11111cb0ef41Sopenharmony_ci  {
11121cb0ef41Sopenharmony_ci    "input": "gopher:/example.com/",
11131cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11141cb0ef41Sopenharmony_ci    "href": "gopher:/example.com/",
11151cb0ef41Sopenharmony_ci    "origin": "null",
11161cb0ef41Sopenharmony_ci    "protocol": "gopher:",
11171cb0ef41Sopenharmony_ci    "username": "",
11181cb0ef41Sopenharmony_ci    "password": "",
11191cb0ef41Sopenharmony_ci    "host": "",
11201cb0ef41Sopenharmony_ci    "hostname": "",
11211cb0ef41Sopenharmony_ci    "port": "",
11221cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
11231cb0ef41Sopenharmony_ci    "search": "",
11241cb0ef41Sopenharmony_ci    "hash": ""
11251cb0ef41Sopenharmony_ci  },
11261cb0ef41Sopenharmony_ci  {
11271cb0ef41Sopenharmony_ci    "input": "ws:/example.com/",
11281cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11291cb0ef41Sopenharmony_ci    "href": "ws://example.com/",
11301cb0ef41Sopenharmony_ci    "origin": "ws://example.com",
11311cb0ef41Sopenharmony_ci    "protocol": "ws:",
11321cb0ef41Sopenharmony_ci    "username": "",
11331cb0ef41Sopenharmony_ci    "password": "",
11341cb0ef41Sopenharmony_ci    "host": "example.com",
11351cb0ef41Sopenharmony_ci    "hostname": "example.com",
11361cb0ef41Sopenharmony_ci    "port": "",
11371cb0ef41Sopenharmony_ci    "pathname": "/",
11381cb0ef41Sopenharmony_ci    "search": "",
11391cb0ef41Sopenharmony_ci    "hash": ""
11401cb0ef41Sopenharmony_ci  },
11411cb0ef41Sopenharmony_ci  {
11421cb0ef41Sopenharmony_ci    "input": "wss:/example.com/",
11431cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11441cb0ef41Sopenharmony_ci    "href": "wss://example.com/",
11451cb0ef41Sopenharmony_ci    "origin": "wss://example.com",
11461cb0ef41Sopenharmony_ci    "protocol": "wss:",
11471cb0ef41Sopenharmony_ci    "username": "",
11481cb0ef41Sopenharmony_ci    "password": "",
11491cb0ef41Sopenharmony_ci    "host": "example.com",
11501cb0ef41Sopenharmony_ci    "hostname": "example.com",
11511cb0ef41Sopenharmony_ci    "port": "",
11521cb0ef41Sopenharmony_ci    "pathname": "/",
11531cb0ef41Sopenharmony_ci    "search": "",
11541cb0ef41Sopenharmony_ci    "hash": ""
11551cb0ef41Sopenharmony_ci  },
11561cb0ef41Sopenharmony_ci  {
11571cb0ef41Sopenharmony_ci    "input": "data:/example.com/",
11581cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11591cb0ef41Sopenharmony_ci    "href": "data:/example.com/",
11601cb0ef41Sopenharmony_ci    "origin": "null",
11611cb0ef41Sopenharmony_ci    "protocol": "data:",
11621cb0ef41Sopenharmony_ci    "username": "",
11631cb0ef41Sopenharmony_ci    "password": "",
11641cb0ef41Sopenharmony_ci    "host": "",
11651cb0ef41Sopenharmony_ci    "hostname": "",
11661cb0ef41Sopenharmony_ci    "port": "",
11671cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
11681cb0ef41Sopenharmony_ci    "search": "",
11691cb0ef41Sopenharmony_ci    "hash": ""
11701cb0ef41Sopenharmony_ci  },
11711cb0ef41Sopenharmony_ci  {
11721cb0ef41Sopenharmony_ci    "input": "javascript:/example.com/",
11731cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11741cb0ef41Sopenharmony_ci    "href": "javascript:/example.com/",
11751cb0ef41Sopenharmony_ci    "origin": "null",
11761cb0ef41Sopenharmony_ci    "protocol": "javascript:",
11771cb0ef41Sopenharmony_ci    "username": "",
11781cb0ef41Sopenharmony_ci    "password": "",
11791cb0ef41Sopenharmony_ci    "host": "",
11801cb0ef41Sopenharmony_ci    "hostname": "",
11811cb0ef41Sopenharmony_ci    "port": "",
11821cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
11831cb0ef41Sopenharmony_ci    "search": "",
11841cb0ef41Sopenharmony_ci    "hash": ""
11851cb0ef41Sopenharmony_ci  },
11861cb0ef41Sopenharmony_ci  {
11871cb0ef41Sopenharmony_ci    "input": "mailto:/example.com/",
11881cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
11891cb0ef41Sopenharmony_ci    "href": "mailto:/example.com/",
11901cb0ef41Sopenharmony_ci    "origin": "null",
11911cb0ef41Sopenharmony_ci    "protocol": "mailto:",
11921cb0ef41Sopenharmony_ci    "username": "",
11931cb0ef41Sopenharmony_ci    "password": "",
11941cb0ef41Sopenharmony_ci    "host": "",
11951cb0ef41Sopenharmony_ci    "hostname": "",
11961cb0ef41Sopenharmony_ci    "port": "",
11971cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
11981cb0ef41Sopenharmony_ci    "search": "",
11991cb0ef41Sopenharmony_ci    "hash": ""
12001cb0ef41Sopenharmony_ci  },
12011cb0ef41Sopenharmony_ci  {
12021cb0ef41Sopenharmony_ci    "input": "http:example.com/",
12031cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12041cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/example.com/",
12051cb0ef41Sopenharmony_ci    "origin": "http://example.org",
12061cb0ef41Sopenharmony_ci    "protocol": "http:",
12071cb0ef41Sopenharmony_ci    "username": "",
12081cb0ef41Sopenharmony_ci    "password": "",
12091cb0ef41Sopenharmony_ci    "host": "example.org",
12101cb0ef41Sopenharmony_ci    "hostname": "example.org",
12111cb0ef41Sopenharmony_ci    "port": "",
12121cb0ef41Sopenharmony_ci    "pathname": "/foo/example.com/",
12131cb0ef41Sopenharmony_ci    "search": "",
12141cb0ef41Sopenharmony_ci    "hash": ""
12151cb0ef41Sopenharmony_ci  },
12161cb0ef41Sopenharmony_ci  {
12171cb0ef41Sopenharmony_ci    "input": "ftp:example.com/",
12181cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12191cb0ef41Sopenharmony_ci    "href": "ftp://example.com/",
12201cb0ef41Sopenharmony_ci    "origin": "ftp://example.com",
12211cb0ef41Sopenharmony_ci    "protocol": "ftp:",
12221cb0ef41Sopenharmony_ci    "username": "",
12231cb0ef41Sopenharmony_ci    "password": "",
12241cb0ef41Sopenharmony_ci    "host": "example.com",
12251cb0ef41Sopenharmony_ci    "hostname": "example.com",
12261cb0ef41Sopenharmony_ci    "port": "",
12271cb0ef41Sopenharmony_ci    "pathname": "/",
12281cb0ef41Sopenharmony_ci    "search": "",
12291cb0ef41Sopenharmony_ci    "hash": ""
12301cb0ef41Sopenharmony_ci  },
12311cb0ef41Sopenharmony_ci  {
12321cb0ef41Sopenharmony_ci    "input": "https:example.com/",
12331cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12341cb0ef41Sopenharmony_ci    "href": "https://example.com/",
12351cb0ef41Sopenharmony_ci    "origin": "https://example.com",
12361cb0ef41Sopenharmony_ci    "protocol": "https:",
12371cb0ef41Sopenharmony_ci    "username": "",
12381cb0ef41Sopenharmony_ci    "password": "",
12391cb0ef41Sopenharmony_ci    "host": "example.com",
12401cb0ef41Sopenharmony_ci    "hostname": "example.com",
12411cb0ef41Sopenharmony_ci    "port": "",
12421cb0ef41Sopenharmony_ci    "pathname": "/",
12431cb0ef41Sopenharmony_ci    "search": "",
12441cb0ef41Sopenharmony_ci    "hash": ""
12451cb0ef41Sopenharmony_ci  },
12461cb0ef41Sopenharmony_ci  {
12471cb0ef41Sopenharmony_ci    "input": "madeupscheme:example.com/",
12481cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12491cb0ef41Sopenharmony_ci    "href": "madeupscheme:example.com/",
12501cb0ef41Sopenharmony_ci    "origin": "null",
12511cb0ef41Sopenharmony_ci    "protocol": "madeupscheme:",
12521cb0ef41Sopenharmony_ci    "username": "",
12531cb0ef41Sopenharmony_ci    "password": "",
12541cb0ef41Sopenharmony_ci    "host": "",
12551cb0ef41Sopenharmony_ci    "hostname": "",
12561cb0ef41Sopenharmony_ci    "port": "",
12571cb0ef41Sopenharmony_ci    "pathname": "example.com/",
12581cb0ef41Sopenharmony_ci    "search": "",
12591cb0ef41Sopenharmony_ci    "hash": ""
12601cb0ef41Sopenharmony_ci  },
12611cb0ef41Sopenharmony_ci  {
12621cb0ef41Sopenharmony_ci    "input": "ftps:example.com/",
12631cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12641cb0ef41Sopenharmony_ci    "href": "ftps:example.com/",
12651cb0ef41Sopenharmony_ci    "origin": "null",
12661cb0ef41Sopenharmony_ci    "protocol": "ftps:",
12671cb0ef41Sopenharmony_ci    "username": "",
12681cb0ef41Sopenharmony_ci    "password": "",
12691cb0ef41Sopenharmony_ci    "host": "",
12701cb0ef41Sopenharmony_ci    "hostname": "",
12711cb0ef41Sopenharmony_ci    "port": "",
12721cb0ef41Sopenharmony_ci    "pathname": "example.com/",
12731cb0ef41Sopenharmony_ci    "search": "",
12741cb0ef41Sopenharmony_ci    "hash": ""
12751cb0ef41Sopenharmony_ci  },
12761cb0ef41Sopenharmony_ci  {
12771cb0ef41Sopenharmony_ci    "input": "gopher:example.com/",
12781cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12791cb0ef41Sopenharmony_ci    "href": "gopher:example.com/",
12801cb0ef41Sopenharmony_ci    "origin": "null",
12811cb0ef41Sopenharmony_ci    "protocol": "gopher:",
12821cb0ef41Sopenharmony_ci    "username": "",
12831cb0ef41Sopenharmony_ci    "password": "",
12841cb0ef41Sopenharmony_ci    "host": "",
12851cb0ef41Sopenharmony_ci    "hostname": "",
12861cb0ef41Sopenharmony_ci    "port": "",
12871cb0ef41Sopenharmony_ci    "pathname": "example.com/",
12881cb0ef41Sopenharmony_ci    "search": "",
12891cb0ef41Sopenharmony_ci    "hash": ""
12901cb0ef41Sopenharmony_ci  },
12911cb0ef41Sopenharmony_ci  {
12921cb0ef41Sopenharmony_ci    "input": "ws:example.com/",
12931cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
12941cb0ef41Sopenharmony_ci    "href": "ws://example.com/",
12951cb0ef41Sopenharmony_ci    "origin": "ws://example.com",
12961cb0ef41Sopenharmony_ci    "protocol": "ws:",
12971cb0ef41Sopenharmony_ci    "username": "",
12981cb0ef41Sopenharmony_ci    "password": "",
12991cb0ef41Sopenharmony_ci    "host": "example.com",
13001cb0ef41Sopenharmony_ci    "hostname": "example.com",
13011cb0ef41Sopenharmony_ci    "port": "",
13021cb0ef41Sopenharmony_ci    "pathname": "/",
13031cb0ef41Sopenharmony_ci    "search": "",
13041cb0ef41Sopenharmony_ci    "hash": ""
13051cb0ef41Sopenharmony_ci  },
13061cb0ef41Sopenharmony_ci  {
13071cb0ef41Sopenharmony_ci    "input": "wss:example.com/",
13081cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13091cb0ef41Sopenharmony_ci    "href": "wss://example.com/",
13101cb0ef41Sopenharmony_ci    "origin": "wss://example.com",
13111cb0ef41Sopenharmony_ci    "protocol": "wss:",
13121cb0ef41Sopenharmony_ci    "username": "",
13131cb0ef41Sopenharmony_ci    "password": "",
13141cb0ef41Sopenharmony_ci    "host": "example.com",
13151cb0ef41Sopenharmony_ci    "hostname": "example.com",
13161cb0ef41Sopenharmony_ci    "port": "",
13171cb0ef41Sopenharmony_ci    "pathname": "/",
13181cb0ef41Sopenharmony_ci    "search": "",
13191cb0ef41Sopenharmony_ci    "hash": ""
13201cb0ef41Sopenharmony_ci  },
13211cb0ef41Sopenharmony_ci  {
13221cb0ef41Sopenharmony_ci    "input": "data:example.com/",
13231cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13241cb0ef41Sopenharmony_ci    "href": "data:example.com/",
13251cb0ef41Sopenharmony_ci    "origin": "null",
13261cb0ef41Sopenharmony_ci    "protocol": "data:",
13271cb0ef41Sopenharmony_ci    "username": "",
13281cb0ef41Sopenharmony_ci    "password": "",
13291cb0ef41Sopenharmony_ci    "host": "",
13301cb0ef41Sopenharmony_ci    "hostname": "",
13311cb0ef41Sopenharmony_ci    "port": "",
13321cb0ef41Sopenharmony_ci    "pathname": "example.com/",
13331cb0ef41Sopenharmony_ci    "search": "",
13341cb0ef41Sopenharmony_ci    "hash": ""
13351cb0ef41Sopenharmony_ci  },
13361cb0ef41Sopenharmony_ci  {
13371cb0ef41Sopenharmony_ci    "input": "javascript:example.com/",
13381cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13391cb0ef41Sopenharmony_ci    "href": "javascript:example.com/",
13401cb0ef41Sopenharmony_ci    "origin": "null",
13411cb0ef41Sopenharmony_ci    "protocol": "javascript:",
13421cb0ef41Sopenharmony_ci    "username": "",
13431cb0ef41Sopenharmony_ci    "password": "",
13441cb0ef41Sopenharmony_ci    "host": "",
13451cb0ef41Sopenharmony_ci    "hostname": "",
13461cb0ef41Sopenharmony_ci    "port": "",
13471cb0ef41Sopenharmony_ci    "pathname": "example.com/",
13481cb0ef41Sopenharmony_ci    "search": "",
13491cb0ef41Sopenharmony_ci    "hash": ""
13501cb0ef41Sopenharmony_ci  },
13511cb0ef41Sopenharmony_ci  {
13521cb0ef41Sopenharmony_ci    "input": "mailto:example.com/",
13531cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13541cb0ef41Sopenharmony_ci    "href": "mailto:example.com/",
13551cb0ef41Sopenharmony_ci    "origin": "null",
13561cb0ef41Sopenharmony_ci    "protocol": "mailto:",
13571cb0ef41Sopenharmony_ci    "username": "",
13581cb0ef41Sopenharmony_ci    "password": "",
13591cb0ef41Sopenharmony_ci    "host": "",
13601cb0ef41Sopenharmony_ci    "hostname": "",
13611cb0ef41Sopenharmony_ci    "port": "",
13621cb0ef41Sopenharmony_ci    "pathname": "example.com/",
13631cb0ef41Sopenharmony_ci    "search": "",
13641cb0ef41Sopenharmony_ci    "hash": ""
13651cb0ef41Sopenharmony_ci  },
13661cb0ef41Sopenharmony_ci  {
13671cb0ef41Sopenharmony_ci    "input": "/a/b/c",
13681cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13691cb0ef41Sopenharmony_ci    "href": "http://example.org/a/b/c",
13701cb0ef41Sopenharmony_ci    "origin": "http://example.org",
13711cb0ef41Sopenharmony_ci    "protocol": "http:",
13721cb0ef41Sopenharmony_ci    "username": "",
13731cb0ef41Sopenharmony_ci    "password": "",
13741cb0ef41Sopenharmony_ci    "host": "example.org",
13751cb0ef41Sopenharmony_ci    "hostname": "example.org",
13761cb0ef41Sopenharmony_ci    "port": "",
13771cb0ef41Sopenharmony_ci    "pathname": "/a/b/c",
13781cb0ef41Sopenharmony_ci    "search": "",
13791cb0ef41Sopenharmony_ci    "hash": ""
13801cb0ef41Sopenharmony_ci  },
13811cb0ef41Sopenharmony_ci  {
13821cb0ef41Sopenharmony_ci    "input": "/a/ /c",
13831cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13841cb0ef41Sopenharmony_ci    "href": "http://example.org/a/%20/c",
13851cb0ef41Sopenharmony_ci    "origin": "http://example.org",
13861cb0ef41Sopenharmony_ci    "protocol": "http:",
13871cb0ef41Sopenharmony_ci    "username": "",
13881cb0ef41Sopenharmony_ci    "password": "",
13891cb0ef41Sopenharmony_ci    "host": "example.org",
13901cb0ef41Sopenharmony_ci    "hostname": "example.org",
13911cb0ef41Sopenharmony_ci    "port": "",
13921cb0ef41Sopenharmony_ci    "pathname": "/a/%20/c",
13931cb0ef41Sopenharmony_ci    "search": "",
13941cb0ef41Sopenharmony_ci    "hash": ""
13951cb0ef41Sopenharmony_ci  },
13961cb0ef41Sopenharmony_ci  {
13971cb0ef41Sopenharmony_ci    "input": "/a%2fc",
13981cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
13991cb0ef41Sopenharmony_ci    "href": "http://example.org/a%2fc",
14001cb0ef41Sopenharmony_ci    "origin": "http://example.org",
14011cb0ef41Sopenharmony_ci    "protocol": "http:",
14021cb0ef41Sopenharmony_ci    "username": "",
14031cb0ef41Sopenharmony_ci    "password": "",
14041cb0ef41Sopenharmony_ci    "host": "example.org",
14051cb0ef41Sopenharmony_ci    "hostname": "example.org",
14061cb0ef41Sopenharmony_ci    "port": "",
14071cb0ef41Sopenharmony_ci    "pathname": "/a%2fc",
14081cb0ef41Sopenharmony_ci    "search": "",
14091cb0ef41Sopenharmony_ci    "hash": ""
14101cb0ef41Sopenharmony_ci  },
14111cb0ef41Sopenharmony_ci  {
14121cb0ef41Sopenharmony_ci    "input": "/a/%2f/c",
14131cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
14141cb0ef41Sopenharmony_ci    "href": "http://example.org/a/%2f/c",
14151cb0ef41Sopenharmony_ci    "origin": "http://example.org",
14161cb0ef41Sopenharmony_ci    "protocol": "http:",
14171cb0ef41Sopenharmony_ci    "username": "",
14181cb0ef41Sopenharmony_ci    "password": "",
14191cb0ef41Sopenharmony_ci    "host": "example.org",
14201cb0ef41Sopenharmony_ci    "hostname": "example.org",
14211cb0ef41Sopenharmony_ci    "port": "",
14221cb0ef41Sopenharmony_ci    "pathname": "/a/%2f/c",
14231cb0ef41Sopenharmony_ci    "search": "",
14241cb0ef41Sopenharmony_ci    "hash": ""
14251cb0ef41Sopenharmony_ci  },
14261cb0ef41Sopenharmony_ci  {
14271cb0ef41Sopenharmony_ci    "input": "#β",
14281cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
14291cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar#%CE%B2",
14301cb0ef41Sopenharmony_ci    "origin": "http://example.org",
14311cb0ef41Sopenharmony_ci    "protocol": "http:",
14321cb0ef41Sopenharmony_ci    "username": "",
14331cb0ef41Sopenharmony_ci    "password": "",
14341cb0ef41Sopenharmony_ci    "host": "example.org",
14351cb0ef41Sopenharmony_ci    "hostname": "example.org",
14361cb0ef41Sopenharmony_ci    "port": "",
14371cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
14381cb0ef41Sopenharmony_ci    "search": "",
14391cb0ef41Sopenharmony_ci    "hash": "#%CE%B2"
14401cb0ef41Sopenharmony_ci  },
14411cb0ef41Sopenharmony_ci  {
14421cb0ef41Sopenharmony_ci    "input": "data:text/html,test#test",
14431cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
14441cb0ef41Sopenharmony_ci    "href": "data:text/html,test#test",
14451cb0ef41Sopenharmony_ci    "origin": "null",
14461cb0ef41Sopenharmony_ci    "protocol": "data:",
14471cb0ef41Sopenharmony_ci    "username": "",
14481cb0ef41Sopenharmony_ci    "password": "",
14491cb0ef41Sopenharmony_ci    "host": "",
14501cb0ef41Sopenharmony_ci    "hostname": "",
14511cb0ef41Sopenharmony_ci    "port": "",
14521cb0ef41Sopenharmony_ci    "pathname": "text/html,test",
14531cb0ef41Sopenharmony_ci    "search": "",
14541cb0ef41Sopenharmony_ci    "hash": "#test"
14551cb0ef41Sopenharmony_ci  },
14561cb0ef41Sopenharmony_ci  {
14571cb0ef41Sopenharmony_ci    "input": "tel:1234567890",
14581cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
14591cb0ef41Sopenharmony_ci    "href": "tel:1234567890",
14601cb0ef41Sopenharmony_ci    "origin": "null",
14611cb0ef41Sopenharmony_ci    "protocol": "tel:",
14621cb0ef41Sopenharmony_ci    "username": "",
14631cb0ef41Sopenharmony_ci    "password": "",
14641cb0ef41Sopenharmony_ci    "host": "",
14651cb0ef41Sopenharmony_ci    "hostname": "",
14661cb0ef41Sopenharmony_ci    "port": "",
14671cb0ef41Sopenharmony_ci    "pathname": "1234567890",
14681cb0ef41Sopenharmony_ci    "search": "",
14691cb0ef41Sopenharmony_ci    "hash": ""
14701cb0ef41Sopenharmony_ci  },
14711cb0ef41Sopenharmony_ci  "# Based on https://felixfbecker.github.io/whatwg-url-custom-host-repro/",
14721cb0ef41Sopenharmony_ci  {
14731cb0ef41Sopenharmony_ci    "input": "ssh://example.com/foo/bar.git",
14741cb0ef41Sopenharmony_ci    "base": "http://example.org/",
14751cb0ef41Sopenharmony_ci    "href": "ssh://example.com/foo/bar.git",
14761cb0ef41Sopenharmony_ci    "origin": "null",
14771cb0ef41Sopenharmony_ci    "protocol": "ssh:",
14781cb0ef41Sopenharmony_ci    "username": "",
14791cb0ef41Sopenharmony_ci    "password": "",
14801cb0ef41Sopenharmony_ci    "host": "example.com",
14811cb0ef41Sopenharmony_ci    "hostname": "example.com",
14821cb0ef41Sopenharmony_ci    "port": "",
14831cb0ef41Sopenharmony_ci    "pathname": "/foo/bar.git",
14841cb0ef41Sopenharmony_ci    "search": "",
14851cb0ef41Sopenharmony_ci    "hash": ""
14861cb0ef41Sopenharmony_ci  },
14871cb0ef41Sopenharmony_ci  "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/file.html",
14881cb0ef41Sopenharmony_ci  {
14891cb0ef41Sopenharmony_ci    "input": "file:c:\\foo\\bar.html",
14901cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
14911cb0ef41Sopenharmony_ci    "href": "file:///c:/foo/bar.html",
14921cb0ef41Sopenharmony_ci    "protocol": "file:",
14931cb0ef41Sopenharmony_ci    "username": "",
14941cb0ef41Sopenharmony_ci    "password": "",
14951cb0ef41Sopenharmony_ci    "host": "",
14961cb0ef41Sopenharmony_ci    "hostname": "",
14971cb0ef41Sopenharmony_ci    "port": "",
14981cb0ef41Sopenharmony_ci    "pathname": "/c:/foo/bar.html",
14991cb0ef41Sopenharmony_ci    "search": "",
15001cb0ef41Sopenharmony_ci    "hash": ""
15011cb0ef41Sopenharmony_ci  },
15021cb0ef41Sopenharmony_ci  {
15031cb0ef41Sopenharmony_ci    "input": "  File:c|////foo\\bar.html",
15041cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15051cb0ef41Sopenharmony_ci    "href": "file:///c:////foo/bar.html",
15061cb0ef41Sopenharmony_ci    "protocol": "file:",
15071cb0ef41Sopenharmony_ci    "username": "",
15081cb0ef41Sopenharmony_ci    "password": "",
15091cb0ef41Sopenharmony_ci    "host": "",
15101cb0ef41Sopenharmony_ci    "hostname": "",
15111cb0ef41Sopenharmony_ci    "port": "",
15121cb0ef41Sopenharmony_ci    "pathname": "/c:////foo/bar.html",
15131cb0ef41Sopenharmony_ci    "search": "",
15141cb0ef41Sopenharmony_ci    "hash": ""
15151cb0ef41Sopenharmony_ci  },
15161cb0ef41Sopenharmony_ci  {
15171cb0ef41Sopenharmony_ci    "input": "C|/foo/bar",
15181cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15191cb0ef41Sopenharmony_ci    "href": "file:///C:/foo/bar",
15201cb0ef41Sopenharmony_ci    "protocol": "file:",
15211cb0ef41Sopenharmony_ci    "username": "",
15221cb0ef41Sopenharmony_ci    "password": "",
15231cb0ef41Sopenharmony_ci    "host": "",
15241cb0ef41Sopenharmony_ci    "hostname": "",
15251cb0ef41Sopenharmony_ci    "port": "",
15261cb0ef41Sopenharmony_ci    "pathname": "/C:/foo/bar",
15271cb0ef41Sopenharmony_ci    "search": "",
15281cb0ef41Sopenharmony_ci    "hash": ""
15291cb0ef41Sopenharmony_ci  },
15301cb0ef41Sopenharmony_ci  {
15311cb0ef41Sopenharmony_ci    "input": "/C|\\foo\\bar",
15321cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15331cb0ef41Sopenharmony_ci    "href": "file:///C:/foo/bar",
15341cb0ef41Sopenharmony_ci    "protocol": "file:",
15351cb0ef41Sopenharmony_ci    "username": "",
15361cb0ef41Sopenharmony_ci    "password": "",
15371cb0ef41Sopenharmony_ci    "host": "",
15381cb0ef41Sopenharmony_ci    "hostname": "",
15391cb0ef41Sopenharmony_ci    "port": "",
15401cb0ef41Sopenharmony_ci    "pathname": "/C:/foo/bar",
15411cb0ef41Sopenharmony_ci    "search": "",
15421cb0ef41Sopenharmony_ci    "hash": ""
15431cb0ef41Sopenharmony_ci  },
15441cb0ef41Sopenharmony_ci  {
15451cb0ef41Sopenharmony_ci    "input": "//C|/foo/bar",
15461cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15471cb0ef41Sopenharmony_ci    "href": "file:///C:/foo/bar",
15481cb0ef41Sopenharmony_ci    "protocol": "file:",
15491cb0ef41Sopenharmony_ci    "username": "",
15501cb0ef41Sopenharmony_ci    "password": "",
15511cb0ef41Sopenharmony_ci    "host": "",
15521cb0ef41Sopenharmony_ci    "hostname": "",
15531cb0ef41Sopenharmony_ci    "port": "",
15541cb0ef41Sopenharmony_ci    "pathname": "/C:/foo/bar",
15551cb0ef41Sopenharmony_ci    "search": "",
15561cb0ef41Sopenharmony_ci    "hash": ""
15571cb0ef41Sopenharmony_ci  },
15581cb0ef41Sopenharmony_ci  {
15591cb0ef41Sopenharmony_ci    "input": "//server/file",
15601cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15611cb0ef41Sopenharmony_ci    "href": "file://server/file",
15621cb0ef41Sopenharmony_ci    "protocol": "file:",
15631cb0ef41Sopenharmony_ci    "username": "",
15641cb0ef41Sopenharmony_ci    "password": "",
15651cb0ef41Sopenharmony_ci    "host": "server",
15661cb0ef41Sopenharmony_ci    "hostname": "server",
15671cb0ef41Sopenharmony_ci    "port": "",
15681cb0ef41Sopenharmony_ci    "pathname": "/file",
15691cb0ef41Sopenharmony_ci    "search": "",
15701cb0ef41Sopenharmony_ci    "hash": ""
15711cb0ef41Sopenharmony_ci  },
15721cb0ef41Sopenharmony_ci  {
15731cb0ef41Sopenharmony_ci    "input": "\\\\server\\file",
15741cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15751cb0ef41Sopenharmony_ci    "href": "file://server/file",
15761cb0ef41Sopenharmony_ci    "protocol": "file:",
15771cb0ef41Sopenharmony_ci    "username": "",
15781cb0ef41Sopenharmony_ci    "password": "",
15791cb0ef41Sopenharmony_ci    "host": "server",
15801cb0ef41Sopenharmony_ci    "hostname": "server",
15811cb0ef41Sopenharmony_ci    "port": "",
15821cb0ef41Sopenharmony_ci    "pathname": "/file",
15831cb0ef41Sopenharmony_ci    "search": "",
15841cb0ef41Sopenharmony_ci    "hash": ""
15851cb0ef41Sopenharmony_ci  },
15861cb0ef41Sopenharmony_ci  {
15871cb0ef41Sopenharmony_ci    "input": "/\\server/file",
15881cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
15891cb0ef41Sopenharmony_ci    "href": "file://server/file",
15901cb0ef41Sopenharmony_ci    "protocol": "file:",
15911cb0ef41Sopenharmony_ci    "username": "",
15921cb0ef41Sopenharmony_ci    "password": "",
15931cb0ef41Sopenharmony_ci    "host": "server",
15941cb0ef41Sopenharmony_ci    "hostname": "server",
15951cb0ef41Sopenharmony_ci    "port": "",
15961cb0ef41Sopenharmony_ci    "pathname": "/file",
15971cb0ef41Sopenharmony_ci    "search": "",
15981cb0ef41Sopenharmony_ci    "hash": ""
15991cb0ef41Sopenharmony_ci  },
16001cb0ef41Sopenharmony_ci  {
16011cb0ef41Sopenharmony_ci    "input": "file:///foo/bar.txt",
16021cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16031cb0ef41Sopenharmony_ci    "href": "file:///foo/bar.txt",
16041cb0ef41Sopenharmony_ci    "protocol": "file:",
16051cb0ef41Sopenharmony_ci    "username": "",
16061cb0ef41Sopenharmony_ci    "password": "",
16071cb0ef41Sopenharmony_ci    "host": "",
16081cb0ef41Sopenharmony_ci    "hostname": "",
16091cb0ef41Sopenharmony_ci    "port": "",
16101cb0ef41Sopenharmony_ci    "pathname": "/foo/bar.txt",
16111cb0ef41Sopenharmony_ci    "search": "",
16121cb0ef41Sopenharmony_ci    "hash": ""
16131cb0ef41Sopenharmony_ci  },
16141cb0ef41Sopenharmony_ci  {
16151cb0ef41Sopenharmony_ci    "input": "file:///home/me",
16161cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16171cb0ef41Sopenharmony_ci    "href": "file:///home/me",
16181cb0ef41Sopenharmony_ci    "protocol": "file:",
16191cb0ef41Sopenharmony_ci    "username": "",
16201cb0ef41Sopenharmony_ci    "password": "",
16211cb0ef41Sopenharmony_ci    "host": "",
16221cb0ef41Sopenharmony_ci    "hostname": "",
16231cb0ef41Sopenharmony_ci    "port": "",
16241cb0ef41Sopenharmony_ci    "pathname": "/home/me",
16251cb0ef41Sopenharmony_ci    "search": "",
16261cb0ef41Sopenharmony_ci    "hash": ""
16271cb0ef41Sopenharmony_ci  },
16281cb0ef41Sopenharmony_ci  {
16291cb0ef41Sopenharmony_ci    "input": "//",
16301cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16311cb0ef41Sopenharmony_ci    "href": "file:///",
16321cb0ef41Sopenharmony_ci    "protocol": "file:",
16331cb0ef41Sopenharmony_ci    "username": "",
16341cb0ef41Sopenharmony_ci    "password": "",
16351cb0ef41Sopenharmony_ci    "host": "",
16361cb0ef41Sopenharmony_ci    "hostname": "",
16371cb0ef41Sopenharmony_ci    "port": "",
16381cb0ef41Sopenharmony_ci    "pathname": "/",
16391cb0ef41Sopenharmony_ci    "search": "",
16401cb0ef41Sopenharmony_ci    "hash": ""
16411cb0ef41Sopenharmony_ci  },
16421cb0ef41Sopenharmony_ci  {
16431cb0ef41Sopenharmony_ci    "input": "///",
16441cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16451cb0ef41Sopenharmony_ci    "href": "file:///",
16461cb0ef41Sopenharmony_ci    "protocol": "file:",
16471cb0ef41Sopenharmony_ci    "username": "",
16481cb0ef41Sopenharmony_ci    "password": "",
16491cb0ef41Sopenharmony_ci    "host": "",
16501cb0ef41Sopenharmony_ci    "hostname": "",
16511cb0ef41Sopenharmony_ci    "port": "",
16521cb0ef41Sopenharmony_ci    "pathname": "/",
16531cb0ef41Sopenharmony_ci    "search": "",
16541cb0ef41Sopenharmony_ci    "hash": ""
16551cb0ef41Sopenharmony_ci  },
16561cb0ef41Sopenharmony_ci  {
16571cb0ef41Sopenharmony_ci    "input": "///test",
16581cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16591cb0ef41Sopenharmony_ci    "href": "file:///test",
16601cb0ef41Sopenharmony_ci    "protocol": "file:",
16611cb0ef41Sopenharmony_ci    "username": "",
16621cb0ef41Sopenharmony_ci    "password": "",
16631cb0ef41Sopenharmony_ci    "host": "",
16641cb0ef41Sopenharmony_ci    "hostname": "",
16651cb0ef41Sopenharmony_ci    "port": "",
16661cb0ef41Sopenharmony_ci    "pathname": "/test",
16671cb0ef41Sopenharmony_ci    "search": "",
16681cb0ef41Sopenharmony_ci    "hash": ""
16691cb0ef41Sopenharmony_ci  },
16701cb0ef41Sopenharmony_ci  {
16711cb0ef41Sopenharmony_ci    "input": "file://test",
16721cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16731cb0ef41Sopenharmony_ci    "href": "file://test/",
16741cb0ef41Sopenharmony_ci    "protocol": "file:",
16751cb0ef41Sopenharmony_ci    "username": "",
16761cb0ef41Sopenharmony_ci    "password": "",
16771cb0ef41Sopenharmony_ci    "host": "test",
16781cb0ef41Sopenharmony_ci    "hostname": "test",
16791cb0ef41Sopenharmony_ci    "port": "",
16801cb0ef41Sopenharmony_ci    "pathname": "/",
16811cb0ef41Sopenharmony_ci    "search": "",
16821cb0ef41Sopenharmony_ci    "hash": ""
16831cb0ef41Sopenharmony_ci  },
16841cb0ef41Sopenharmony_ci  {
16851cb0ef41Sopenharmony_ci    "input": "file://localhost",
16861cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
16871cb0ef41Sopenharmony_ci    "href": "file:///",
16881cb0ef41Sopenharmony_ci    "protocol": "file:",
16891cb0ef41Sopenharmony_ci    "username": "",
16901cb0ef41Sopenharmony_ci    "password": "",
16911cb0ef41Sopenharmony_ci    "host": "",
16921cb0ef41Sopenharmony_ci    "hostname": "",
16931cb0ef41Sopenharmony_ci    "port": "",
16941cb0ef41Sopenharmony_ci    "pathname": "/",
16951cb0ef41Sopenharmony_ci    "search": "",
16961cb0ef41Sopenharmony_ci    "hash": ""
16971cb0ef41Sopenharmony_ci  },
16981cb0ef41Sopenharmony_ci  {
16991cb0ef41Sopenharmony_ci    "input": "file://localhost/",
17001cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
17011cb0ef41Sopenharmony_ci    "href": "file:///",
17021cb0ef41Sopenharmony_ci    "protocol": "file:",
17031cb0ef41Sopenharmony_ci    "username": "",
17041cb0ef41Sopenharmony_ci    "password": "",
17051cb0ef41Sopenharmony_ci    "host": "",
17061cb0ef41Sopenharmony_ci    "hostname": "",
17071cb0ef41Sopenharmony_ci    "port": "",
17081cb0ef41Sopenharmony_ci    "pathname": "/",
17091cb0ef41Sopenharmony_ci    "search": "",
17101cb0ef41Sopenharmony_ci    "hash": ""
17111cb0ef41Sopenharmony_ci  },
17121cb0ef41Sopenharmony_ci  {
17131cb0ef41Sopenharmony_ci    "input": "file://localhost/test",
17141cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
17151cb0ef41Sopenharmony_ci    "href": "file:///test",
17161cb0ef41Sopenharmony_ci    "protocol": "file:",
17171cb0ef41Sopenharmony_ci    "username": "",
17181cb0ef41Sopenharmony_ci    "password": "",
17191cb0ef41Sopenharmony_ci    "host": "",
17201cb0ef41Sopenharmony_ci    "hostname": "",
17211cb0ef41Sopenharmony_ci    "port": "",
17221cb0ef41Sopenharmony_ci    "pathname": "/test",
17231cb0ef41Sopenharmony_ci    "search": "",
17241cb0ef41Sopenharmony_ci    "hash": ""
17251cb0ef41Sopenharmony_ci  },
17261cb0ef41Sopenharmony_ci  {
17271cb0ef41Sopenharmony_ci    "input": "test",
17281cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
17291cb0ef41Sopenharmony_ci    "href": "file:///tmp/mock/test",
17301cb0ef41Sopenharmony_ci    "protocol": "file:",
17311cb0ef41Sopenharmony_ci    "username": "",
17321cb0ef41Sopenharmony_ci    "password": "",
17331cb0ef41Sopenharmony_ci    "host": "",
17341cb0ef41Sopenharmony_ci    "hostname": "",
17351cb0ef41Sopenharmony_ci    "port": "",
17361cb0ef41Sopenharmony_ci    "pathname": "/tmp/mock/test",
17371cb0ef41Sopenharmony_ci    "search": "",
17381cb0ef41Sopenharmony_ci    "hash": ""
17391cb0ef41Sopenharmony_ci  },
17401cb0ef41Sopenharmony_ci  {
17411cb0ef41Sopenharmony_ci    "input": "file:test",
17421cb0ef41Sopenharmony_ci    "base": "file:///tmp/mock/path",
17431cb0ef41Sopenharmony_ci    "href": "file:///tmp/mock/test",
17441cb0ef41Sopenharmony_ci    "protocol": "file:",
17451cb0ef41Sopenharmony_ci    "username": "",
17461cb0ef41Sopenharmony_ci    "password": "",
17471cb0ef41Sopenharmony_ci    "host": "",
17481cb0ef41Sopenharmony_ci    "hostname": "",
17491cb0ef41Sopenharmony_ci    "port": "",
17501cb0ef41Sopenharmony_ci    "pathname": "/tmp/mock/test",
17511cb0ef41Sopenharmony_ci    "search": "",
17521cb0ef41Sopenharmony_ci    "hash": ""
17531cb0ef41Sopenharmony_ci  },
17541cb0ef41Sopenharmony_ci  "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/path.js",
17551cb0ef41Sopenharmony_ci  {
17561cb0ef41Sopenharmony_ci    "input": "http://example.com/././foo",
17571cb0ef41Sopenharmony_ci    "base": null,
17581cb0ef41Sopenharmony_ci    "href": "http://example.com/foo",
17591cb0ef41Sopenharmony_ci    "origin": "http://example.com",
17601cb0ef41Sopenharmony_ci    "protocol": "http:",
17611cb0ef41Sopenharmony_ci    "username": "",
17621cb0ef41Sopenharmony_ci    "password": "",
17631cb0ef41Sopenharmony_ci    "host": "example.com",
17641cb0ef41Sopenharmony_ci    "hostname": "example.com",
17651cb0ef41Sopenharmony_ci    "port": "",
17661cb0ef41Sopenharmony_ci    "pathname": "/foo",
17671cb0ef41Sopenharmony_ci    "search": "",
17681cb0ef41Sopenharmony_ci    "hash": ""
17691cb0ef41Sopenharmony_ci  },
17701cb0ef41Sopenharmony_ci  {
17711cb0ef41Sopenharmony_ci    "input": "http://example.com/./.foo",
17721cb0ef41Sopenharmony_ci    "base": null,
17731cb0ef41Sopenharmony_ci    "href": "http://example.com/.foo",
17741cb0ef41Sopenharmony_ci    "origin": "http://example.com",
17751cb0ef41Sopenharmony_ci    "protocol": "http:",
17761cb0ef41Sopenharmony_ci    "username": "",
17771cb0ef41Sopenharmony_ci    "password": "",
17781cb0ef41Sopenharmony_ci    "host": "example.com",
17791cb0ef41Sopenharmony_ci    "hostname": "example.com",
17801cb0ef41Sopenharmony_ci    "port": "",
17811cb0ef41Sopenharmony_ci    "pathname": "/.foo",
17821cb0ef41Sopenharmony_ci    "search": "",
17831cb0ef41Sopenharmony_ci    "hash": ""
17841cb0ef41Sopenharmony_ci  },
17851cb0ef41Sopenharmony_ci  {
17861cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/.",
17871cb0ef41Sopenharmony_ci    "base": null,
17881cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
17891cb0ef41Sopenharmony_ci    "origin": "http://example.com",
17901cb0ef41Sopenharmony_ci    "protocol": "http:",
17911cb0ef41Sopenharmony_ci    "username": "",
17921cb0ef41Sopenharmony_ci    "password": "",
17931cb0ef41Sopenharmony_ci    "host": "example.com",
17941cb0ef41Sopenharmony_ci    "hostname": "example.com",
17951cb0ef41Sopenharmony_ci    "port": "",
17961cb0ef41Sopenharmony_ci    "pathname": "/foo/",
17971cb0ef41Sopenharmony_ci    "search": "",
17981cb0ef41Sopenharmony_ci    "hash": ""
17991cb0ef41Sopenharmony_ci  },
18001cb0ef41Sopenharmony_ci  {
18011cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/./",
18021cb0ef41Sopenharmony_ci    "base": null,
18031cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
18041cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18051cb0ef41Sopenharmony_ci    "protocol": "http:",
18061cb0ef41Sopenharmony_ci    "username": "",
18071cb0ef41Sopenharmony_ci    "password": "",
18081cb0ef41Sopenharmony_ci    "host": "example.com",
18091cb0ef41Sopenharmony_ci    "hostname": "example.com",
18101cb0ef41Sopenharmony_ci    "port": "",
18111cb0ef41Sopenharmony_ci    "pathname": "/foo/",
18121cb0ef41Sopenharmony_ci    "search": "",
18131cb0ef41Sopenharmony_ci    "hash": ""
18141cb0ef41Sopenharmony_ci  },
18151cb0ef41Sopenharmony_ci  {
18161cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar/..",
18171cb0ef41Sopenharmony_ci    "base": null,
18181cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
18191cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18201cb0ef41Sopenharmony_ci    "protocol": "http:",
18211cb0ef41Sopenharmony_ci    "username": "",
18221cb0ef41Sopenharmony_ci    "password": "",
18231cb0ef41Sopenharmony_ci    "host": "example.com",
18241cb0ef41Sopenharmony_ci    "hostname": "example.com",
18251cb0ef41Sopenharmony_ci    "port": "",
18261cb0ef41Sopenharmony_ci    "pathname": "/foo/",
18271cb0ef41Sopenharmony_ci    "search": "",
18281cb0ef41Sopenharmony_ci    "hash": ""
18291cb0ef41Sopenharmony_ci  },
18301cb0ef41Sopenharmony_ci  {
18311cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar/../",
18321cb0ef41Sopenharmony_ci    "base": null,
18331cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
18341cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18351cb0ef41Sopenharmony_ci    "protocol": "http:",
18361cb0ef41Sopenharmony_ci    "username": "",
18371cb0ef41Sopenharmony_ci    "password": "",
18381cb0ef41Sopenharmony_ci    "host": "example.com",
18391cb0ef41Sopenharmony_ci    "hostname": "example.com",
18401cb0ef41Sopenharmony_ci    "port": "",
18411cb0ef41Sopenharmony_ci    "pathname": "/foo/",
18421cb0ef41Sopenharmony_ci    "search": "",
18431cb0ef41Sopenharmony_ci    "hash": ""
18441cb0ef41Sopenharmony_ci  },
18451cb0ef41Sopenharmony_ci  {
18461cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/..bar",
18471cb0ef41Sopenharmony_ci    "base": null,
18481cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/..bar",
18491cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18501cb0ef41Sopenharmony_ci    "protocol": "http:",
18511cb0ef41Sopenharmony_ci    "username": "",
18521cb0ef41Sopenharmony_ci    "password": "",
18531cb0ef41Sopenharmony_ci    "host": "example.com",
18541cb0ef41Sopenharmony_ci    "hostname": "example.com",
18551cb0ef41Sopenharmony_ci    "port": "",
18561cb0ef41Sopenharmony_ci    "pathname": "/foo/..bar",
18571cb0ef41Sopenharmony_ci    "search": "",
18581cb0ef41Sopenharmony_ci    "hash": ""
18591cb0ef41Sopenharmony_ci  },
18601cb0ef41Sopenharmony_ci  {
18611cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar/../ton",
18621cb0ef41Sopenharmony_ci    "base": null,
18631cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/ton",
18641cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18651cb0ef41Sopenharmony_ci    "protocol": "http:",
18661cb0ef41Sopenharmony_ci    "username": "",
18671cb0ef41Sopenharmony_ci    "password": "",
18681cb0ef41Sopenharmony_ci    "host": "example.com",
18691cb0ef41Sopenharmony_ci    "hostname": "example.com",
18701cb0ef41Sopenharmony_ci    "port": "",
18711cb0ef41Sopenharmony_ci    "pathname": "/foo/ton",
18721cb0ef41Sopenharmony_ci    "search": "",
18731cb0ef41Sopenharmony_ci    "hash": ""
18741cb0ef41Sopenharmony_ci  },
18751cb0ef41Sopenharmony_ci  {
18761cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar/../ton/../../a",
18771cb0ef41Sopenharmony_ci    "base": null,
18781cb0ef41Sopenharmony_ci    "href": "http://example.com/a",
18791cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18801cb0ef41Sopenharmony_ci    "protocol": "http:",
18811cb0ef41Sopenharmony_ci    "username": "",
18821cb0ef41Sopenharmony_ci    "password": "",
18831cb0ef41Sopenharmony_ci    "host": "example.com",
18841cb0ef41Sopenharmony_ci    "hostname": "example.com",
18851cb0ef41Sopenharmony_ci    "port": "",
18861cb0ef41Sopenharmony_ci    "pathname": "/a",
18871cb0ef41Sopenharmony_ci    "search": "",
18881cb0ef41Sopenharmony_ci    "hash": ""
18891cb0ef41Sopenharmony_ci  },
18901cb0ef41Sopenharmony_ci  {
18911cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/../../..",
18921cb0ef41Sopenharmony_ci    "base": null,
18931cb0ef41Sopenharmony_ci    "href": "http://example.com/",
18941cb0ef41Sopenharmony_ci    "origin": "http://example.com",
18951cb0ef41Sopenharmony_ci    "protocol": "http:",
18961cb0ef41Sopenharmony_ci    "username": "",
18971cb0ef41Sopenharmony_ci    "password": "",
18981cb0ef41Sopenharmony_ci    "host": "example.com",
18991cb0ef41Sopenharmony_ci    "hostname": "example.com",
19001cb0ef41Sopenharmony_ci    "port": "",
19011cb0ef41Sopenharmony_ci    "pathname": "/",
19021cb0ef41Sopenharmony_ci    "search": "",
19031cb0ef41Sopenharmony_ci    "hash": ""
19041cb0ef41Sopenharmony_ci  },
19051cb0ef41Sopenharmony_ci  {
19061cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/../../../ton",
19071cb0ef41Sopenharmony_ci    "base": null,
19081cb0ef41Sopenharmony_ci    "href": "http://example.com/ton",
19091cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19101cb0ef41Sopenharmony_ci    "protocol": "http:",
19111cb0ef41Sopenharmony_ci    "username": "",
19121cb0ef41Sopenharmony_ci    "password": "",
19131cb0ef41Sopenharmony_ci    "host": "example.com",
19141cb0ef41Sopenharmony_ci    "hostname": "example.com",
19151cb0ef41Sopenharmony_ci    "port": "",
19161cb0ef41Sopenharmony_ci    "pathname": "/ton",
19171cb0ef41Sopenharmony_ci    "search": "",
19181cb0ef41Sopenharmony_ci    "hash": ""
19191cb0ef41Sopenharmony_ci  },
19201cb0ef41Sopenharmony_ci  {
19211cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/%2e",
19221cb0ef41Sopenharmony_ci    "base": null,
19231cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
19241cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19251cb0ef41Sopenharmony_ci    "protocol": "http:",
19261cb0ef41Sopenharmony_ci    "username": "",
19271cb0ef41Sopenharmony_ci    "password": "",
19281cb0ef41Sopenharmony_ci    "host": "example.com",
19291cb0ef41Sopenharmony_ci    "hostname": "example.com",
19301cb0ef41Sopenharmony_ci    "port": "",
19311cb0ef41Sopenharmony_ci    "pathname": "/foo/",
19321cb0ef41Sopenharmony_ci    "search": "",
19331cb0ef41Sopenharmony_ci    "hash": ""
19341cb0ef41Sopenharmony_ci  },
19351cb0ef41Sopenharmony_ci  {
19361cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/%2e%2",
19371cb0ef41Sopenharmony_ci    "base": null,
19381cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/%2e%2",
19391cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19401cb0ef41Sopenharmony_ci    "protocol": "http:",
19411cb0ef41Sopenharmony_ci    "username": "",
19421cb0ef41Sopenharmony_ci    "password": "",
19431cb0ef41Sopenharmony_ci    "host": "example.com",
19441cb0ef41Sopenharmony_ci    "hostname": "example.com",
19451cb0ef41Sopenharmony_ci    "port": "",
19461cb0ef41Sopenharmony_ci    "pathname": "/foo/%2e%2",
19471cb0ef41Sopenharmony_ci    "search": "",
19481cb0ef41Sopenharmony_ci    "hash": ""
19491cb0ef41Sopenharmony_ci  },
19501cb0ef41Sopenharmony_ci  {
19511cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar",
19521cb0ef41Sopenharmony_ci    "base": null,
19531cb0ef41Sopenharmony_ci    "href": "http://example.com/%2e.bar",
19541cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19551cb0ef41Sopenharmony_ci    "protocol": "http:",
19561cb0ef41Sopenharmony_ci    "username": "",
19571cb0ef41Sopenharmony_ci    "password": "",
19581cb0ef41Sopenharmony_ci    "host": "example.com",
19591cb0ef41Sopenharmony_ci    "hostname": "example.com",
19601cb0ef41Sopenharmony_ci    "port": "",
19611cb0ef41Sopenharmony_ci    "pathname": "/%2e.bar",
19621cb0ef41Sopenharmony_ci    "search": "",
19631cb0ef41Sopenharmony_ci    "hash": ""
19641cb0ef41Sopenharmony_ci  },
19651cb0ef41Sopenharmony_ci  {
19661cb0ef41Sopenharmony_ci    "input": "http://example.com////../..",
19671cb0ef41Sopenharmony_ci    "base": null,
19681cb0ef41Sopenharmony_ci    "href": "http://example.com//",
19691cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19701cb0ef41Sopenharmony_ci    "protocol": "http:",
19711cb0ef41Sopenharmony_ci    "username": "",
19721cb0ef41Sopenharmony_ci    "password": "",
19731cb0ef41Sopenharmony_ci    "host": "example.com",
19741cb0ef41Sopenharmony_ci    "hostname": "example.com",
19751cb0ef41Sopenharmony_ci    "port": "",
19761cb0ef41Sopenharmony_ci    "pathname": "//",
19771cb0ef41Sopenharmony_ci    "search": "",
19781cb0ef41Sopenharmony_ci    "hash": ""
19791cb0ef41Sopenharmony_ci  },
19801cb0ef41Sopenharmony_ci  {
19811cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar//../..",
19821cb0ef41Sopenharmony_ci    "base": null,
19831cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/",
19841cb0ef41Sopenharmony_ci    "origin": "http://example.com",
19851cb0ef41Sopenharmony_ci    "protocol": "http:",
19861cb0ef41Sopenharmony_ci    "username": "",
19871cb0ef41Sopenharmony_ci    "password": "",
19881cb0ef41Sopenharmony_ci    "host": "example.com",
19891cb0ef41Sopenharmony_ci    "hostname": "example.com",
19901cb0ef41Sopenharmony_ci    "port": "",
19911cb0ef41Sopenharmony_ci    "pathname": "/foo/",
19921cb0ef41Sopenharmony_ci    "search": "",
19931cb0ef41Sopenharmony_ci    "hash": ""
19941cb0ef41Sopenharmony_ci  },
19951cb0ef41Sopenharmony_ci  {
19961cb0ef41Sopenharmony_ci    "input": "http://example.com/foo/bar//..",
19971cb0ef41Sopenharmony_ci    "base": null,
19981cb0ef41Sopenharmony_ci    "href": "http://example.com/foo/bar/",
19991cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20001cb0ef41Sopenharmony_ci    "protocol": "http:",
20011cb0ef41Sopenharmony_ci    "username": "",
20021cb0ef41Sopenharmony_ci    "password": "",
20031cb0ef41Sopenharmony_ci    "host": "example.com",
20041cb0ef41Sopenharmony_ci    "hostname": "example.com",
20051cb0ef41Sopenharmony_ci    "port": "",
20061cb0ef41Sopenharmony_ci    "pathname": "/foo/bar/",
20071cb0ef41Sopenharmony_ci    "search": "",
20081cb0ef41Sopenharmony_ci    "hash": ""
20091cb0ef41Sopenharmony_ci  },
20101cb0ef41Sopenharmony_ci  {
20111cb0ef41Sopenharmony_ci    "input": "http://example.com/foo",
20121cb0ef41Sopenharmony_ci    "base": null,
20131cb0ef41Sopenharmony_ci    "href": "http://example.com/foo",
20141cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20151cb0ef41Sopenharmony_ci    "protocol": "http:",
20161cb0ef41Sopenharmony_ci    "username": "",
20171cb0ef41Sopenharmony_ci    "password": "",
20181cb0ef41Sopenharmony_ci    "host": "example.com",
20191cb0ef41Sopenharmony_ci    "hostname": "example.com",
20201cb0ef41Sopenharmony_ci    "port": "",
20211cb0ef41Sopenharmony_ci    "pathname": "/foo",
20221cb0ef41Sopenharmony_ci    "search": "",
20231cb0ef41Sopenharmony_ci    "hash": ""
20241cb0ef41Sopenharmony_ci  },
20251cb0ef41Sopenharmony_ci  {
20261cb0ef41Sopenharmony_ci    "input": "http://example.com/%20foo",
20271cb0ef41Sopenharmony_ci    "base": null,
20281cb0ef41Sopenharmony_ci    "href": "http://example.com/%20foo",
20291cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20301cb0ef41Sopenharmony_ci    "protocol": "http:",
20311cb0ef41Sopenharmony_ci    "username": "",
20321cb0ef41Sopenharmony_ci    "password": "",
20331cb0ef41Sopenharmony_ci    "host": "example.com",
20341cb0ef41Sopenharmony_ci    "hostname": "example.com",
20351cb0ef41Sopenharmony_ci    "port": "",
20361cb0ef41Sopenharmony_ci    "pathname": "/%20foo",
20371cb0ef41Sopenharmony_ci    "search": "",
20381cb0ef41Sopenharmony_ci    "hash": ""
20391cb0ef41Sopenharmony_ci  },
20401cb0ef41Sopenharmony_ci  {
20411cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%",
20421cb0ef41Sopenharmony_ci    "base": null,
20431cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%",
20441cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20451cb0ef41Sopenharmony_ci    "protocol": "http:",
20461cb0ef41Sopenharmony_ci    "username": "",
20471cb0ef41Sopenharmony_ci    "password": "",
20481cb0ef41Sopenharmony_ci    "host": "example.com",
20491cb0ef41Sopenharmony_ci    "hostname": "example.com",
20501cb0ef41Sopenharmony_ci    "port": "",
20511cb0ef41Sopenharmony_ci    "pathname": "/foo%",
20521cb0ef41Sopenharmony_ci    "search": "",
20531cb0ef41Sopenharmony_ci    "hash": ""
20541cb0ef41Sopenharmony_ci  },
20551cb0ef41Sopenharmony_ci  {
20561cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%2",
20571cb0ef41Sopenharmony_ci    "base": null,
20581cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%2",
20591cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20601cb0ef41Sopenharmony_ci    "protocol": "http:",
20611cb0ef41Sopenharmony_ci    "username": "",
20621cb0ef41Sopenharmony_ci    "password": "",
20631cb0ef41Sopenharmony_ci    "host": "example.com",
20641cb0ef41Sopenharmony_ci    "hostname": "example.com",
20651cb0ef41Sopenharmony_ci    "port": "",
20661cb0ef41Sopenharmony_ci    "pathname": "/foo%2",
20671cb0ef41Sopenharmony_ci    "search": "",
20681cb0ef41Sopenharmony_ci    "hash": ""
20691cb0ef41Sopenharmony_ci  },
20701cb0ef41Sopenharmony_ci  {
20711cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%2zbar",
20721cb0ef41Sopenharmony_ci    "base": null,
20731cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%2zbar",
20741cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20751cb0ef41Sopenharmony_ci    "protocol": "http:",
20761cb0ef41Sopenharmony_ci    "username": "",
20771cb0ef41Sopenharmony_ci    "password": "",
20781cb0ef41Sopenharmony_ci    "host": "example.com",
20791cb0ef41Sopenharmony_ci    "hostname": "example.com",
20801cb0ef41Sopenharmony_ci    "port": "",
20811cb0ef41Sopenharmony_ci    "pathname": "/foo%2zbar",
20821cb0ef41Sopenharmony_ci    "search": "",
20831cb0ef41Sopenharmony_ci    "hash": ""
20841cb0ef41Sopenharmony_ci  },
20851cb0ef41Sopenharmony_ci  {
20861cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%2©zbar",
20871cb0ef41Sopenharmony_ci    "base": null,
20881cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%2%C3%82%C2%A9zbar",
20891cb0ef41Sopenharmony_ci    "origin": "http://example.com",
20901cb0ef41Sopenharmony_ci    "protocol": "http:",
20911cb0ef41Sopenharmony_ci    "username": "",
20921cb0ef41Sopenharmony_ci    "password": "",
20931cb0ef41Sopenharmony_ci    "host": "example.com",
20941cb0ef41Sopenharmony_ci    "hostname": "example.com",
20951cb0ef41Sopenharmony_ci    "port": "",
20961cb0ef41Sopenharmony_ci    "pathname": "/foo%2%C3%82%C2%A9zbar",
20971cb0ef41Sopenharmony_ci    "search": "",
20981cb0ef41Sopenharmony_ci    "hash": ""
20991cb0ef41Sopenharmony_ci  },
21001cb0ef41Sopenharmony_ci  {
21011cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%41%7a",
21021cb0ef41Sopenharmony_ci    "base": null,
21031cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%41%7a",
21041cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21051cb0ef41Sopenharmony_ci    "protocol": "http:",
21061cb0ef41Sopenharmony_ci    "username": "",
21071cb0ef41Sopenharmony_ci    "password": "",
21081cb0ef41Sopenharmony_ci    "host": "example.com",
21091cb0ef41Sopenharmony_ci    "hostname": "example.com",
21101cb0ef41Sopenharmony_ci    "port": "",
21111cb0ef41Sopenharmony_ci    "pathname": "/foo%41%7a",
21121cb0ef41Sopenharmony_ci    "search": "",
21131cb0ef41Sopenharmony_ci    "hash": ""
21141cb0ef41Sopenharmony_ci  },
21151cb0ef41Sopenharmony_ci  {
21161cb0ef41Sopenharmony_ci    "input": "http://example.com/foo\t\u0091%91",
21171cb0ef41Sopenharmony_ci    "base": null,
21181cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%C2%91%91",
21191cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21201cb0ef41Sopenharmony_ci    "protocol": "http:",
21211cb0ef41Sopenharmony_ci    "username": "",
21221cb0ef41Sopenharmony_ci    "password": "",
21231cb0ef41Sopenharmony_ci    "host": "example.com",
21241cb0ef41Sopenharmony_ci    "hostname": "example.com",
21251cb0ef41Sopenharmony_ci    "port": "",
21261cb0ef41Sopenharmony_ci    "pathname": "/foo%C2%91%91",
21271cb0ef41Sopenharmony_ci    "search": "",
21281cb0ef41Sopenharmony_ci    "hash": ""
21291cb0ef41Sopenharmony_ci  },
21301cb0ef41Sopenharmony_ci  {
21311cb0ef41Sopenharmony_ci    "input": "http://example.com/foo%00%51",
21321cb0ef41Sopenharmony_ci    "base": null,
21331cb0ef41Sopenharmony_ci    "href": "http://example.com/foo%00%51",
21341cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21351cb0ef41Sopenharmony_ci    "protocol": "http:",
21361cb0ef41Sopenharmony_ci    "username": "",
21371cb0ef41Sopenharmony_ci    "password": "",
21381cb0ef41Sopenharmony_ci    "host": "example.com",
21391cb0ef41Sopenharmony_ci    "hostname": "example.com",
21401cb0ef41Sopenharmony_ci    "port": "",
21411cb0ef41Sopenharmony_ci    "pathname": "/foo%00%51",
21421cb0ef41Sopenharmony_ci    "search": "",
21431cb0ef41Sopenharmony_ci    "hash": ""
21441cb0ef41Sopenharmony_ci  },
21451cb0ef41Sopenharmony_ci  {
21461cb0ef41Sopenharmony_ci    "input": "http://example.com/(%28:%3A%29)",
21471cb0ef41Sopenharmony_ci    "base": null,
21481cb0ef41Sopenharmony_ci    "href": "http://example.com/(%28:%3A%29)",
21491cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21501cb0ef41Sopenharmony_ci    "protocol": "http:",
21511cb0ef41Sopenharmony_ci    "username": "",
21521cb0ef41Sopenharmony_ci    "password": "",
21531cb0ef41Sopenharmony_ci    "host": "example.com",
21541cb0ef41Sopenharmony_ci    "hostname": "example.com",
21551cb0ef41Sopenharmony_ci    "port": "",
21561cb0ef41Sopenharmony_ci    "pathname": "/(%28:%3A%29)",
21571cb0ef41Sopenharmony_ci    "search": "",
21581cb0ef41Sopenharmony_ci    "hash": ""
21591cb0ef41Sopenharmony_ci  },
21601cb0ef41Sopenharmony_ci  {
21611cb0ef41Sopenharmony_ci    "input": "http://example.com/%3A%3a%3C%3c",
21621cb0ef41Sopenharmony_ci    "base": null,
21631cb0ef41Sopenharmony_ci    "href": "http://example.com/%3A%3a%3C%3c",
21641cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21651cb0ef41Sopenharmony_ci    "protocol": "http:",
21661cb0ef41Sopenharmony_ci    "username": "",
21671cb0ef41Sopenharmony_ci    "password": "",
21681cb0ef41Sopenharmony_ci    "host": "example.com",
21691cb0ef41Sopenharmony_ci    "hostname": "example.com",
21701cb0ef41Sopenharmony_ci    "port": "",
21711cb0ef41Sopenharmony_ci    "pathname": "/%3A%3a%3C%3c",
21721cb0ef41Sopenharmony_ci    "search": "",
21731cb0ef41Sopenharmony_ci    "hash": ""
21741cb0ef41Sopenharmony_ci  },
21751cb0ef41Sopenharmony_ci  {
21761cb0ef41Sopenharmony_ci    "input": "http://example.com/foo\tbar",
21771cb0ef41Sopenharmony_ci    "base": null,
21781cb0ef41Sopenharmony_ci    "href": "http://example.com/foobar",
21791cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21801cb0ef41Sopenharmony_ci    "protocol": "http:",
21811cb0ef41Sopenharmony_ci    "username": "",
21821cb0ef41Sopenharmony_ci    "password": "",
21831cb0ef41Sopenharmony_ci    "host": "example.com",
21841cb0ef41Sopenharmony_ci    "hostname": "example.com",
21851cb0ef41Sopenharmony_ci    "port": "",
21861cb0ef41Sopenharmony_ci    "pathname": "/foobar",
21871cb0ef41Sopenharmony_ci    "search": "",
21881cb0ef41Sopenharmony_ci    "hash": ""
21891cb0ef41Sopenharmony_ci  },
21901cb0ef41Sopenharmony_ci  {
21911cb0ef41Sopenharmony_ci    "input": "http://example.com\\\\foo\\\\bar",
21921cb0ef41Sopenharmony_ci    "base": null,
21931cb0ef41Sopenharmony_ci    "href": "http://example.com//foo//bar",
21941cb0ef41Sopenharmony_ci    "origin": "http://example.com",
21951cb0ef41Sopenharmony_ci    "protocol": "http:",
21961cb0ef41Sopenharmony_ci    "username": "",
21971cb0ef41Sopenharmony_ci    "password": "",
21981cb0ef41Sopenharmony_ci    "host": "example.com",
21991cb0ef41Sopenharmony_ci    "hostname": "example.com",
22001cb0ef41Sopenharmony_ci    "port": "",
22011cb0ef41Sopenharmony_ci    "pathname": "//foo//bar",
22021cb0ef41Sopenharmony_ci    "search": "",
22031cb0ef41Sopenharmony_ci    "hash": ""
22041cb0ef41Sopenharmony_ci  },
22051cb0ef41Sopenharmony_ci  {
22061cb0ef41Sopenharmony_ci    "input": "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd",
22071cb0ef41Sopenharmony_ci    "base": null,
22081cb0ef41Sopenharmony_ci    "href": "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd",
22091cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22101cb0ef41Sopenharmony_ci    "protocol": "http:",
22111cb0ef41Sopenharmony_ci    "username": "",
22121cb0ef41Sopenharmony_ci    "password": "",
22131cb0ef41Sopenharmony_ci    "host": "example.com",
22141cb0ef41Sopenharmony_ci    "hostname": "example.com",
22151cb0ef41Sopenharmony_ci    "port": "",
22161cb0ef41Sopenharmony_ci    "pathname": "/%7Ffp3%3Eju%3Dduvgw%3Dd",
22171cb0ef41Sopenharmony_ci    "search": "",
22181cb0ef41Sopenharmony_ci    "hash": ""
22191cb0ef41Sopenharmony_ci  },
22201cb0ef41Sopenharmony_ci  {
22211cb0ef41Sopenharmony_ci    "input": "http://example.com/@asdf%40",
22221cb0ef41Sopenharmony_ci    "base": null,
22231cb0ef41Sopenharmony_ci    "href": "http://example.com/@asdf%40",
22241cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22251cb0ef41Sopenharmony_ci    "protocol": "http:",
22261cb0ef41Sopenharmony_ci    "username": "",
22271cb0ef41Sopenharmony_ci    "password": "",
22281cb0ef41Sopenharmony_ci    "host": "example.com",
22291cb0ef41Sopenharmony_ci    "hostname": "example.com",
22301cb0ef41Sopenharmony_ci    "port": "",
22311cb0ef41Sopenharmony_ci    "pathname": "/@asdf%40",
22321cb0ef41Sopenharmony_ci    "search": "",
22331cb0ef41Sopenharmony_ci    "hash": ""
22341cb0ef41Sopenharmony_ci  },
22351cb0ef41Sopenharmony_ci  {
22361cb0ef41Sopenharmony_ci    "input": "http://example.com/你好你好",
22371cb0ef41Sopenharmony_ci    "base": null,
22381cb0ef41Sopenharmony_ci    "href": "http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD",
22391cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22401cb0ef41Sopenharmony_ci    "protocol": "http:",
22411cb0ef41Sopenharmony_ci    "username": "",
22421cb0ef41Sopenharmony_ci    "password": "",
22431cb0ef41Sopenharmony_ci    "host": "example.com",
22441cb0ef41Sopenharmony_ci    "hostname": "example.com",
22451cb0ef41Sopenharmony_ci    "port": "",
22461cb0ef41Sopenharmony_ci    "pathname": "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD",
22471cb0ef41Sopenharmony_ci    "search": "",
22481cb0ef41Sopenharmony_ci    "hash": ""
22491cb0ef41Sopenharmony_ci  },
22501cb0ef41Sopenharmony_ci  {
22511cb0ef41Sopenharmony_ci    "input": "http://example.com/‥/foo",
22521cb0ef41Sopenharmony_ci    "base": null,
22531cb0ef41Sopenharmony_ci    "href": "http://example.com/%E2%80%A5/foo",
22541cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22551cb0ef41Sopenharmony_ci    "protocol": "http:",
22561cb0ef41Sopenharmony_ci    "username": "",
22571cb0ef41Sopenharmony_ci    "password": "",
22581cb0ef41Sopenharmony_ci    "host": "example.com",
22591cb0ef41Sopenharmony_ci    "hostname": "example.com",
22601cb0ef41Sopenharmony_ci    "port": "",
22611cb0ef41Sopenharmony_ci    "pathname": "/%E2%80%A5/foo",
22621cb0ef41Sopenharmony_ci    "search": "",
22631cb0ef41Sopenharmony_ci    "hash": ""
22641cb0ef41Sopenharmony_ci  },
22651cb0ef41Sopenharmony_ci  {
22661cb0ef41Sopenharmony_ci    "input": "http://example.com//foo",
22671cb0ef41Sopenharmony_ci    "base": null,
22681cb0ef41Sopenharmony_ci    "href": "http://example.com/%EF%BB%BF/foo",
22691cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22701cb0ef41Sopenharmony_ci    "protocol": "http:",
22711cb0ef41Sopenharmony_ci    "username": "",
22721cb0ef41Sopenharmony_ci    "password": "",
22731cb0ef41Sopenharmony_ci    "host": "example.com",
22741cb0ef41Sopenharmony_ci    "hostname": "example.com",
22751cb0ef41Sopenharmony_ci    "port": "",
22761cb0ef41Sopenharmony_ci    "pathname": "/%EF%BB%BF/foo",
22771cb0ef41Sopenharmony_ci    "search": "",
22781cb0ef41Sopenharmony_ci    "hash": ""
22791cb0ef41Sopenharmony_ci  },
22801cb0ef41Sopenharmony_ci  {
22811cb0ef41Sopenharmony_ci    "input": "http://example.com/‮/foo/‭/bar",
22821cb0ef41Sopenharmony_ci    "base": null,
22831cb0ef41Sopenharmony_ci    "href": "http://example.com/%E2%80%AE/foo/%E2%80%AD/bar",
22841cb0ef41Sopenharmony_ci    "origin": "http://example.com",
22851cb0ef41Sopenharmony_ci    "protocol": "http:",
22861cb0ef41Sopenharmony_ci    "username": "",
22871cb0ef41Sopenharmony_ci    "password": "",
22881cb0ef41Sopenharmony_ci    "host": "example.com",
22891cb0ef41Sopenharmony_ci    "hostname": "example.com",
22901cb0ef41Sopenharmony_ci    "port": "",
22911cb0ef41Sopenharmony_ci    "pathname": "/%E2%80%AE/foo/%E2%80%AD/bar",
22921cb0ef41Sopenharmony_ci    "search": "",
22931cb0ef41Sopenharmony_ci    "hash": ""
22941cb0ef41Sopenharmony_ci  },
22951cb0ef41Sopenharmony_ci  "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/script-tests/relative.js",
22961cb0ef41Sopenharmony_ci  {
22971cb0ef41Sopenharmony_ci    "input": "http://www.google.com/foo?bar=baz#",
22981cb0ef41Sopenharmony_ci    "base": null,
22991cb0ef41Sopenharmony_ci    "href": "http://www.google.com/foo?bar=baz#",
23001cb0ef41Sopenharmony_ci    "origin": "http://www.google.com",
23011cb0ef41Sopenharmony_ci    "protocol": "http:",
23021cb0ef41Sopenharmony_ci    "username": "",
23031cb0ef41Sopenharmony_ci    "password": "",
23041cb0ef41Sopenharmony_ci    "host": "www.google.com",
23051cb0ef41Sopenharmony_ci    "hostname": "www.google.com",
23061cb0ef41Sopenharmony_ci    "port": "",
23071cb0ef41Sopenharmony_ci    "pathname": "/foo",
23081cb0ef41Sopenharmony_ci    "search": "?bar=baz",
23091cb0ef41Sopenharmony_ci    "hash": ""
23101cb0ef41Sopenharmony_ci  },
23111cb0ef41Sopenharmony_ci  {
23121cb0ef41Sopenharmony_ci    "input": "http://www.google.com/foo?bar=baz# »",
23131cb0ef41Sopenharmony_ci    "base": null,
23141cb0ef41Sopenharmony_ci    "href": "http://www.google.com/foo?bar=baz#%20%C2%BB",
23151cb0ef41Sopenharmony_ci    "origin": "http://www.google.com",
23161cb0ef41Sopenharmony_ci    "protocol": "http:",
23171cb0ef41Sopenharmony_ci    "username": "",
23181cb0ef41Sopenharmony_ci    "password": "",
23191cb0ef41Sopenharmony_ci    "host": "www.google.com",
23201cb0ef41Sopenharmony_ci    "hostname": "www.google.com",
23211cb0ef41Sopenharmony_ci    "port": "",
23221cb0ef41Sopenharmony_ci    "pathname": "/foo",
23231cb0ef41Sopenharmony_ci    "search": "?bar=baz",
23241cb0ef41Sopenharmony_ci    "hash": "#%20%C2%BB"
23251cb0ef41Sopenharmony_ci  },
23261cb0ef41Sopenharmony_ci  {
23271cb0ef41Sopenharmony_ci    "input": "data:test# »",
23281cb0ef41Sopenharmony_ci    "base": null,
23291cb0ef41Sopenharmony_ci    "href": "data:test#%20%C2%BB",
23301cb0ef41Sopenharmony_ci    "origin": "null",
23311cb0ef41Sopenharmony_ci    "protocol": "data:",
23321cb0ef41Sopenharmony_ci    "username": "",
23331cb0ef41Sopenharmony_ci    "password": "",
23341cb0ef41Sopenharmony_ci    "host": "",
23351cb0ef41Sopenharmony_ci    "hostname": "",
23361cb0ef41Sopenharmony_ci    "port": "",
23371cb0ef41Sopenharmony_ci    "pathname": "test",
23381cb0ef41Sopenharmony_ci    "search": "",
23391cb0ef41Sopenharmony_ci    "hash": "#%20%C2%BB"
23401cb0ef41Sopenharmony_ci  },
23411cb0ef41Sopenharmony_ci  {
23421cb0ef41Sopenharmony_ci    "input": "http://www.google.com",
23431cb0ef41Sopenharmony_ci    "base": null,
23441cb0ef41Sopenharmony_ci    "href": "http://www.google.com/",
23451cb0ef41Sopenharmony_ci    "origin": "http://www.google.com",
23461cb0ef41Sopenharmony_ci    "protocol": "http:",
23471cb0ef41Sopenharmony_ci    "username": "",
23481cb0ef41Sopenharmony_ci    "password": "",
23491cb0ef41Sopenharmony_ci    "host": "www.google.com",
23501cb0ef41Sopenharmony_ci    "hostname": "www.google.com",
23511cb0ef41Sopenharmony_ci    "port": "",
23521cb0ef41Sopenharmony_ci    "pathname": "/",
23531cb0ef41Sopenharmony_ci    "search": "",
23541cb0ef41Sopenharmony_ci    "hash": ""
23551cb0ef41Sopenharmony_ci  },
23561cb0ef41Sopenharmony_ci  {
23571cb0ef41Sopenharmony_ci    "input": "http://192.0x00A80001",
23581cb0ef41Sopenharmony_ci    "base": null,
23591cb0ef41Sopenharmony_ci    "href": "http://192.168.0.1/",
23601cb0ef41Sopenharmony_ci    "origin": "http://192.168.0.1",
23611cb0ef41Sopenharmony_ci    "protocol": "http:",
23621cb0ef41Sopenharmony_ci    "username": "",
23631cb0ef41Sopenharmony_ci    "password": "",
23641cb0ef41Sopenharmony_ci    "host": "192.168.0.1",
23651cb0ef41Sopenharmony_ci    "hostname": "192.168.0.1",
23661cb0ef41Sopenharmony_ci    "port": "",
23671cb0ef41Sopenharmony_ci    "pathname": "/",
23681cb0ef41Sopenharmony_ci    "search": "",
23691cb0ef41Sopenharmony_ci    "hash": ""
23701cb0ef41Sopenharmony_ci  },
23711cb0ef41Sopenharmony_ci  {
23721cb0ef41Sopenharmony_ci    "input": "http://www/foo%2Ehtml",
23731cb0ef41Sopenharmony_ci    "base": null,
23741cb0ef41Sopenharmony_ci    "href": "http://www/foo%2Ehtml",
23751cb0ef41Sopenharmony_ci    "origin": "http://www",
23761cb0ef41Sopenharmony_ci    "protocol": "http:",
23771cb0ef41Sopenharmony_ci    "username": "",
23781cb0ef41Sopenharmony_ci    "password": "",
23791cb0ef41Sopenharmony_ci    "host": "www",
23801cb0ef41Sopenharmony_ci    "hostname": "www",
23811cb0ef41Sopenharmony_ci    "port": "",
23821cb0ef41Sopenharmony_ci    "pathname": "/foo%2Ehtml",
23831cb0ef41Sopenharmony_ci    "search": "",
23841cb0ef41Sopenharmony_ci    "hash": ""
23851cb0ef41Sopenharmony_ci  },
23861cb0ef41Sopenharmony_ci  {
23871cb0ef41Sopenharmony_ci    "input": "http://www/foo/%2E/html",
23881cb0ef41Sopenharmony_ci    "base": null,
23891cb0ef41Sopenharmony_ci    "href": "http://www/foo/html",
23901cb0ef41Sopenharmony_ci    "origin": "http://www",
23911cb0ef41Sopenharmony_ci    "protocol": "http:",
23921cb0ef41Sopenharmony_ci    "username": "",
23931cb0ef41Sopenharmony_ci    "password": "",
23941cb0ef41Sopenharmony_ci    "host": "www",
23951cb0ef41Sopenharmony_ci    "hostname": "www",
23961cb0ef41Sopenharmony_ci    "port": "",
23971cb0ef41Sopenharmony_ci    "pathname": "/foo/html",
23981cb0ef41Sopenharmony_ci    "search": "",
23991cb0ef41Sopenharmony_ci    "hash": ""
24001cb0ef41Sopenharmony_ci  },
24011cb0ef41Sopenharmony_ci  {
24021cb0ef41Sopenharmony_ci    "input": "http://user:pass@/",
24031cb0ef41Sopenharmony_ci    "base": null,
24041cb0ef41Sopenharmony_ci    "failure": true
24051cb0ef41Sopenharmony_ci  },
24061cb0ef41Sopenharmony_ci  {
24071cb0ef41Sopenharmony_ci    "input": "http://%25DOMAIN:foobar@foodomain.com/",
24081cb0ef41Sopenharmony_ci    "base": null,
24091cb0ef41Sopenharmony_ci    "href": "http://%25DOMAIN:foobar@foodomain.com/",
24101cb0ef41Sopenharmony_ci    "origin": "http://foodomain.com",
24111cb0ef41Sopenharmony_ci    "protocol": "http:",
24121cb0ef41Sopenharmony_ci    "username": "%25DOMAIN",
24131cb0ef41Sopenharmony_ci    "password": "foobar",
24141cb0ef41Sopenharmony_ci    "host": "foodomain.com",
24151cb0ef41Sopenharmony_ci    "hostname": "foodomain.com",
24161cb0ef41Sopenharmony_ci    "port": "",
24171cb0ef41Sopenharmony_ci    "pathname": "/",
24181cb0ef41Sopenharmony_ci    "search": "",
24191cb0ef41Sopenharmony_ci    "hash": ""
24201cb0ef41Sopenharmony_ci  },
24211cb0ef41Sopenharmony_ci  {
24221cb0ef41Sopenharmony_ci    "input": "http:\\\\www.google.com\\foo",
24231cb0ef41Sopenharmony_ci    "base": null,
24241cb0ef41Sopenharmony_ci    "href": "http://www.google.com/foo",
24251cb0ef41Sopenharmony_ci    "origin": "http://www.google.com",
24261cb0ef41Sopenharmony_ci    "protocol": "http:",
24271cb0ef41Sopenharmony_ci    "username": "",
24281cb0ef41Sopenharmony_ci    "password": "",
24291cb0ef41Sopenharmony_ci    "host": "www.google.com",
24301cb0ef41Sopenharmony_ci    "hostname": "www.google.com",
24311cb0ef41Sopenharmony_ci    "port": "",
24321cb0ef41Sopenharmony_ci    "pathname": "/foo",
24331cb0ef41Sopenharmony_ci    "search": "",
24341cb0ef41Sopenharmony_ci    "hash": ""
24351cb0ef41Sopenharmony_ci  },
24361cb0ef41Sopenharmony_ci  {
24371cb0ef41Sopenharmony_ci    "input": "http://foo:80/",
24381cb0ef41Sopenharmony_ci    "base": null,
24391cb0ef41Sopenharmony_ci    "href": "http://foo/",
24401cb0ef41Sopenharmony_ci    "origin": "http://foo",
24411cb0ef41Sopenharmony_ci    "protocol": "http:",
24421cb0ef41Sopenharmony_ci    "username": "",
24431cb0ef41Sopenharmony_ci    "password": "",
24441cb0ef41Sopenharmony_ci    "host": "foo",
24451cb0ef41Sopenharmony_ci    "hostname": "foo",
24461cb0ef41Sopenharmony_ci    "port": "",
24471cb0ef41Sopenharmony_ci    "pathname": "/",
24481cb0ef41Sopenharmony_ci    "search": "",
24491cb0ef41Sopenharmony_ci    "hash": ""
24501cb0ef41Sopenharmony_ci  },
24511cb0ef41Sopenharmony_ci  {
24521cb0ef41Sopenharmony_ci    "input": "http://foo:81/",
24531cb0ef41Sopenharmony_ci    "base": null,
24541cb0ef41Sopenharmony_ci    "href": "http://foo:81/",
24551cb0ef41Sopenharmony_ci    "origin": "http://foo:81",
24561cb0ef41Sopenharmony_ci    "protocol": "http:",
24571cb0ef41Sopenharmony_ci    "username": "",
24581cb0ef41Sopenharmony_ci    "password": "",
24591cb0ef41Sopenharmony_ci    "host": "foo:81",
24601cb0ef41Sopenharmony_ci    "hostname": "foo",
24611cb0ef41Sopenharmony_ci    "port": "81",
24621cb0ef41Sopenharmony_ci    "pathname": "/",
24631cb0ef41Sopenharmony_ci    "search": "",
24641cb0ef41Sopenharmony_ci    "hash": ""
24651cb0ef41Sopenharmony_ci  },
24661cb0ef41Sopenharmony_ci  {
24671cb0ef41Sopenharmony_ci    "input": "httpa://foo:80/",
24681cb0ef41Sopenharmony_ci    "base": null,
24691cb0ef41Sopenharmony_ci    "href": "httpa://foo:80/",
24701cb0ef41Sopenharmony_ci    "origin": "null",
24711cb0ef41Sopenharmony_ci    "protocol": "httpa:",
24721cb0ef41Sopenharmony_ci    "username": "",
24731cb0ef41Sopenharmony_ci    "password": "",
24741cb0ef41Sopenharmony_ci    "host": "foo:80",
24751cb0ef41Sopenharmony_ci    "hostname": "foo",
24761cb0ef41Sopenharmony_ci    "port": "80",
24771cb0ef41Sopenharmony_ci    "pathname": "/",
24781cb0ef41Sopenharmony_ci    "search": "",
24791cb0ef41Sopenharmony_ci    "hash": ""
24801cb0ef41Sopenharmony_ci  },
24811cb0ef41Sopenharmony_ci  {
24821cb0ef41Sopenharmony_ci    "input": "http://foo:-80/",
24831cb0ef41Sopenharmony_ci    "base": null,
24841cb0ef41Sopenharmony_ci    "failure": true
24851cb0ef41Sopenharmony_ci  },
24861cb0ef41Sopenharmony_ci  {
24871cb0ef41Sopenharmony_ci    "input": "https://foo:443/",
24881cb0ef41Sopenharmony_ci    "base": null,
24891cb0ef41Sopenharmony_ci    "href": "https://foo/",
24901cb0ef41Sopenharmony_ci    "origin": "https://foo",
24911cb0ef41Sopenharmony_ci    "protocol": "https:",
24921cb0ef41Sopenharmony_ci    "username": "",
24931cb0ef41Sopenharmony_ci    "password": "",
24941cb0ef41Sopenharmony_ci    "host": "foo",
24951cb0ef41Sopenharmony_ci    "hostname": "foo",
24961cb0ef41Sopenharmony_ci    "port": "",
24971cb0ef41Sopenharmony_ci    "pathname": "/",
24981cb0ef41Sopenharmony_ci    "search": "",
24991cb0ef41Sopenharmony_ci    "hash": ""
25001cb0ef41Sopenharmony_ci  },
25011cb0ef41Sopenharmony_ci  {
25021cb0ef41Sopenharmony_ci    "input": "https://foo:80/",
25031cb0ef41Sopenharmony_ci    "base": null,
25041cb0ef41Sopenharmony_ci    "href": "https://foo:80/",
25051cb0ef41Sopenharmony_ci    "origin": "https://foo:80",
25061cb0ef41Sopenharmony_ci    "protocol": "https:",
25071cb0ef41Sopenharmony_ci    "username": "",
25081cb0ef41Sopenharmony_ci    "password": "",
25091cb0ef41Sopenharmony_ci    "host": "foo:80",
25101cb0ef41Sopenharmony_ci    "hostname": "foo",
25111cb0ef41Sopenharmony_ci    "port": "80",
25121cb0ef41Sopenharmony_ci    "pathname": "/",
25131cb0ef41Sopenharmony_ci    "search": "",
25141cb0ef41Sopenharmony_ci    "hash": ""
25151cb0ef41Sopenharmony_ci  },
25161cb0ef41Sopenharmony_ci  {
25171cb0ef41Sopenharmony_ci    "input": "ftp://foo:21/",
25181cb0ef41Sopenharmony_ci    "base": null,
25191cb0ef41Sopenharmony_ci    "href": "ftp://foo/",
25201cb0ef41Sopenharmony_ci    "origin": "ftp://foo",
25211cb0ef41Sopenharmony_ci    "protocol": "ftp:",
25221cb0ef41Sopenharmony_ci    "username": "",
25231cb0ef41Sopenharmony_ci    "password": "",
25241cb0ef41Sopenharmony_ci    "host": "foo",
25251cb0ef41Sopenharmony_ci    "hostname": "foo",
25261cb0ef41Sopenharmony_ci    "port": "",
25271cb0ef41Sopenharmony_ci    "pathname": "/",
25281cb0ef41Sopenharmony_ci    "search": "",
25291cb0ef41Sopenharmony_ci    "hash": ""
25301cb0ef41Sopenharmony_ci  },
25311cb0ef41Sopenharmony_ci  {
25321cb0ef41Sopenharmony_ci    "input": "ftp://foo:80/",
25331cb0ef41Sopenharmony_ci    "base": null,
25341cb0ef41Sopenharmony_ci    "href": "ftp://foo:80/",
25351cb0ef41Sopenharmony_ci    "origin": "ftp://foo:80",
25361cb0ef41Sopenharmony_ci    "protocol": "ftp:",
25371cb0ef41Sopenharmony_ci    "username": "",
25381cb0ef41Sopenharmony_ci    "password": "",
25391cb0ef41Sopenharmony_ci    "host": "foo:80",
25401cb0ef41Sopenharmony_ci    "hostname": "foo",
25411cb0ef41Sopenharmony_ci    "port": "80",
25421cb0ef41Sopenharmony_ci    "pathname": "/",
25431cb0ef41Sopenharmony_ci    "search": "",
25441cb0ef41Sopenharmony_ci    "hash": ""
25451cb0ef41Sopenharmony_ci  },
25461cb0ef41Sopenharmony_ci  {
25471cb0ef41Sopenharmony_ci    "input": "gopher://foo:70/",
25481cb0ef41Sopenharmony_ci    "base": null,
25491cb0ef41Sopenharmony_ci    "href": "gopher://foo:70/",
25501cb0ef41Sopenharmony_ci    "origin": "null",
25511cb0ef41Sopenharmony_ci    "protocol": "gopher:",
25521cb0ef41Sopenharmony_ci    "username": "",
25531cb0ef41Sopenharmony_ci    "password": "",
25541cb0ef41Sopenharmony_ci    "host": "foo:70",
25551cb0ef41Sopenharmony_ci    "hostname": "foo",
25561cb0ef41Sopenharmony_ci    "port": "70",
25571cb0ef41Sopenharmony_ci    "pathname": "/",
25581cb0ef41Sopenharmony_ci    "search": "",
25591cb0ef41Sopenharmony_ci    "hash": ""
25601cb0ef41Sopenharmony_ci  },
25611cb0ef41Sopenharmony_ci  {
25621cb0ef41Sopenharmony_ci    "input": "gopher://foo:443/",
25631cb0ef41Sopenharmony_ci    "base": null,
25641cb0ef41Sopenharmony_ci    "href": "gopher://foo:443/",
25651cb0ef41Sopenharmony_ci    "origin": "null",
25661cb0ef41Sopenharmony_ci    "protocol": "gopher:",
25671cb0ef41Sopenharmony_ci    "username": "",
25681cb0ef41Sopenharmony_ci    "password": "",
25691cb0ef41Sopenharmony_ci    "host": "foo:443",
25701cb0ef41Sopenharmony_ci    "hostname": "foo",
25711cb0ef41Sopenharmony_ci    "port": "443",
25721cb0ef41Sopenharmony_ci    "pathname": "/",
25731cb0ef41Sopenharmony_ci    "search": "",
25741cb0ef41Sopenharmony_ci    "hash": ""
25751cb0ef41Sopenharmony_ci  },
25761cb0ef41Sopenharmony_ci  {
25771cb0ef41Sopenharmony_ci    "input": "ws://foo:80/",
25781cb0ef41Sopenharmony_ci    "base": null,
25791cb0ef41Sopenharmony_ci    "href": "ws://foo/",
25801cb0ef41Sopenharmony_ci    "origin": "ws://foo",
25811cb0ef41Sopenharmony_ci    "protocol": "ws:",
25821cb0ef41Sopenharmony_ci    "username": "",
25831cb0ef41Sopenharmony_ci    "password": "",
25841cb0ef41Sopenharmony_ci    "host": "foo",
25851cb0ef41Sopenharmony_ci    "hostname": "foo",
25861cb0ef41Sopenharmony_ci    "port": "",
25871cb0ef41Sopenharmony_ci    "pathname": "/",
25881cb0ef41Sopenharmony_ci    "search": "",
25891cb0ef41Sopenharmony_ci    "hash": ""
25901cb0ef41Sopenharmony_ci  },
25911cb0ef41Sopenharmony_ci  {
25921cb0ef41Sopenharmony_ci    "input": "ws://foo:81/",
25931cb0ef41Sopenharmony_ci    "base": null,
25941cb0ef41Sopenharmony_ci    "href": "ws://foo:81/",
25951cb0ef41Sopenharmony_ci    "origin": "ws://foo:81",
25961cb0ef41Sopenharmony_ci    "protocol": "ws:",
25971cb0ef41Sopenharmony_ci    "username": "",
25981cb0ef41Sopenharmony_ci    "password": "",
25991cb0ef41Sopenharmony_ci    "host": "foo:81",
26001cb0ef41Sopenharmony_ci    "hostname": "foo",
26011cb0ef41Sopenharmony_ci    "port": "81",
26021cb0ef41Sopenharmony_ci    "pathname": "/",
26031cb0ef41Sopenharmony_ci    "search": "",
26041cb0ef41Sopenharmony_ci    "hash": ""
26051cb0ef41Sopenharmony_ci  },
26061cb0ef41Sopenharmony_ci  {
26071cb0ef41Sopenharmony_ci    "input": "ws://foo:443/",
26081cb0ef41Sopenharmony_ci    "base": null,
26091cb0ef41Sopenharmony_ci    "href": "ws://foo:443/",
26101cb0ef41Sopenharmony_ci    "origin": "ws://foo:443",
26111cb0ef41Sopenharmony_ci    "protocol": "ws:",
26121cb0ef41Sopenharmony_ci    "username": "",
26131cb0ef41Sopenharmony_ci    "password": "",
26141cb0ef41Sopenharmony_ci    "host": "foo:443",
26151cb0ef41Sopenharmony_ci    "hostname": "foo",
26161cb0ef41Sopenharmony_ci    "port": "443",
26171cb0ef41Sopenharmony_ci    "pathname": "/",
26181cb0ef41Sopenharmony_ci    "search": "",
26191cb0ef41Sopenharmony_ci    "hash": ""
26201cb0ef41Sopenharmony_ci  },
26211cb0ef41Sopenharmony_ci  {
26221cb0ef41Sopenharmony_ci    "input": "ws://foo:815/",
26231cb0ef41Sopenharmony_ci    "base": null,
26241cb0ef41Sopenharmony_ci    "href": "ws://foo:815/",
26251cb0ef41Sopenharmony_ci    "origin": "ws://foo:815",
26261cb0ef41Sopenharmony_ci    "protocol": "ws:",
26271cb0ef41Sopenharmony_ci    "username": "",
26281cb0ef41Sopenharmony_ci    "password": "",
26291cb0ef41Sopenharmony_ci    "host": "foo:815",
26301cb0ef41Sopenharmony_ci    "hostname": "foo",
26311cb0ef41Sopenharmony_ci    "port": "815",
26321cb0ef41Sopenharmony_ci    "pathname": "/",
26331cb0ef41Sopenharmony_ci    "search": "",
26341cb0ef41Sopenharmony_ci    "hash": ""
26351cb0ef41Sopenharmony_ci  },
26361cb0ef41Sopenharmony_ci  {
26371cb0ef41Sopenharmony_ci    "input": "wss://foo:80/",
26381cb0ef41Sopenharmony_ci    "base": null,
26391cb0ef41Sopenharmony_ci    "href": "wss://foo:80/",
26401cb0ef41Sopenharmony_ci    "origin": "wss://foo:80",
26411cb0ef41Sopenharmony_ci    "protocol": "wss:",
26421cb0ef41Sopenharmony_ci    "username": "",
26431cb0ef41Sopenharmony_ci    "password": "",
26441cb0ef41Sopenharmony_ci    "host": "foo:80",
26451cb0ef41Sopenharmony_ci    "hostname": "foo",
26461cb0ef41Sopenharmony_ci    "port": "80",
26471cb0ef41Sopenharmony_ci    "pathname": "/",
26481cb0ef41Sopenharmony_ci    "search": "",
26491cb0ef41Sopenharmony_ci    "hash": ""
26501cb0ef41Sopenharmony_ci  },
26511cb0ef41Sopenharmony_ci  {
26521cb0ef41Sopenharmony_ci    "input": "wss://foo:81/",
26531cb0ef41Sopenharmony_ci    "base": null,
26541cb0ef41Sopenharmony_ci    "href": "wss://foo:81/",
26551cb0ef41Sopenharmony_ci    "origin": "wss://foo:81",
26561cb0ef41Sopenharmony_ci    "protocol": "wss:",
26571cb0ef41Sopenharmony_ci    "username": "",
26581cb0ef41Sopenharmony_ci    "password": "",
26591cb0ef41Sopenharmony_ci    "host": "foo:81",
26601cb0ef41Sopenharmony_ci    "hostname": "foo",
26611cb0ef41Sopenharmony_ci    "port": "81",
26621cb0ef41Sopenharmony_ci    "pathname": "/",
26631cb0ef41Sopenharmony_ci    "search": "",
26641cb0ef41Sopenharmony_ci    "hash": ""
26651cb0ef41Sopenharmony_ci  },
26661cb0ef41Sopenharmony_ci  {
26671cb0ef41Sopenharmony_ci    "input": "wss://foo:443/",
26681cb0ef41Sopenharmony_ci    "base": null,
26691cb0ef41Sopenharmony_ci    "href": "wss://foo/",
26701cb0ef41Sopenharmony_ci    "origin": "wss://foo",
26711cb0ef41Sopenharmony_ci    "protocol": "wss:",
26721cb0ef41Sopenharmony_ci    "username": "",
26731cb0ef41Sopenharmony_ci    "password": "",
26741cb0ef41Sopenharmony_ci    "host": "foo",
26751cb0ef41Sopenharmony_ci    "hostname": "foo",
26761cb0ef41Sopenharmony_ci    "port": "",
26771cb0ef41Sopenharmony_ci    "pathname": "/",
26781cb0ef41Sopenharmony_ci    "search": "",
26791cb0ef41Sopenharmony_ci    "hash": ""
26801cb0ef41Sopenharmony_ci  },
26811cb0ef41Sopenharmony_ci  {
26821cb0ef41Sopenharmony_ci    "input": "wss://foo:815/",
26831cb0ef41Sopenharmony_ci    "base": null,
26841cb0ef41Sopenharmony_ci    "href": "wss://foo:815/",
26851cb0ef41Sopenharmony_ci    "origin": "wss://foo:815",
26861cb0ef41Sopenharmony_ci    "protocol": "wss:",
26871cb0ef41Sopenharmony_ci    "username": "",
26881cb0ef41Sopenharmony_ci    "password": "",
26891cb0ef41Sopenharmony_ci    "host": "foo:815",
26901cb0ef41Sopenharmony_ci    "hostname": "foo",
26911cb0ef41Sopenharmony_ci    "port": "815",
26921cb0ef41Sopenharmony_ci    "pathname": "/",
26931cb0ef41Sopenharmony_ci    "search": "",
26941cb0ef41Sopenharmony_ci    "hash": ""
26951cb0ef41Sopenharmony_ci  },
26961cb0ef41Sopenharmony_ci  {
26971cb0ef41Sopenharmony_ci    "input": "http:/example.com/",
26981cb0ef41Sopenharmony_ci    "base": null,
26991cb0ef41Sopenharmony_ci    "href": "http://example.com/",
27001cb0ef41Sopenharmony_ci    "origin": "http://example.com",
27011cb0ef41Sopenharmony_ci    "protocol": "http:",
27021cb0ef41Sopenharmony_ci    "username": "",
27031cb0ef41Sopenharmony_ci    "password": "",
27041cb0ef41Sopenharmony_ci    "host": "example.com",
27051cb0ef41Sopenharmony_ci    "hostname": "example.com",
27061cb0ef41Sopenharmony_ci    "port": "",
27071cb0ef41Sopenharmony_ci    "pathname": "/",
27081cb0ef41Sopenharmony_ci    "search": "",
27091cb0ef41Sopenharmony_ci    "hash": ""
27101cb0ef41Sopenharmony_ci  },
27111cb0ef41Sopenharmony_ci  {
27121cb0ef41Sopenharmony_ci    "input": "ftp:/example.com/",
27131cb0ef41Sopenharmony_ci    "base": null,
27141cb0ef41Sopenharmony_ci    "href": "ftp://example.com/",
27151cb0ef41Sopenharmony_ci    "origin": "ftp://example.com",
27161cb0ef41Sopenharmony_ci    "protocol": "ftp:",
27171cb0ef41Sopenharmony_ci    "username": "",
27181cb0ef41Sopenharmony_ci    "password": "",
27191cb0ef41Sopenharmony_ci    "host": "example.com",
27201cb0ef41Sopenharmony_ci    "hostname": "example.com",
27211cb0ef41Sopenharmony_ci    "port": "",
27221cb0ef41Sopenharmony_ci    "pathname": "/",
27231cb0ef41Sopenharmony_ci    "search": "",
27241cb0ef41Sopenharmony_ci    "hash": ""
27251cb0ef41Sopenharmony_ci  },
27261cb0ef41Sopenharmony_ci  {
27271cb0ef41Sopenharmony_ci    "input": "https:/example.com/",
27281cb0ef41Sopenharmony_ci    "base": null,
27291cb0ef41Sopenharmony_ci    "href": "https://example.com/",
27301cb0ef41Sopenharmony_ci    "origin": "https://example.com",
27311cb0ef41Sopenharmony_ci    "protocol": "https:",
27321cb0ef41Sopenharmony_ci    "username": "",
27331cb0ef41Sopenharmony_ci    "password": "",
27341cb0ef41Sopenharmony_ci    "host": "example.com",
27351cb0ef41Sopenharmony_ci    "hostname": "example.com",
27361cb0ef41Sopenharmony_ci    "port": "",
27371cb0ef41Sopenharmony_ci    "pathname": "/",
27381cb0ef41Sopenharmony_ci    "search": "",
27391cb0ef41Sopenharmony_ci    "hash": ""
27401cb0ef41Sopenharmony_ci  },
27411cb0ef41Sopenharmony_ci  {
27421cb0ef41Sopenharmony_ci    "input": "madeupscheme:/example.com/",
27431cb0ef41Sopenharmony_ci    "base": null,
27441cb0ef41Sopenharmony_ci    "href": "madeupscheme:/example.com/",
27451cb0ef41Sopenharmony_ci    "origin": "null",
27461cb0ef41Sopenharmony_ci    "protocol": "madeupscheme:",
27471cb0ef41Sopenharmony_ci    "username": "",
27481cb0ef41Sopenharmony_ci    "password": "",
27491cb0ef41Sopenharmony_ci    "host": "",
27501cb0ef41Sopenharmony_ci    "hostname": "",
27511cb0ef41Sopenharmony_ci    "port": "",
27521cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
27531cb0ef41Sopenharmony_ci    "search": "",
27541cb0ef41Sopenharmony_ci    "hash": ""
27551cb0ef41Sopenharmony_ci  },
27561cb0ef41Sopenharmony_ci  {
27571cb0ef41Sopenharmony_ci    "input": "file:/example.com/",
27581cb0ef41Sopenharmony_ci    "base": null,
27591cb0ef41Sopenharmony_ci    "href": "file:///example.com/",
27601cb0ef41Sopenharmony_ci    "protocol": "file:",
27611cb0ef41Sopenharmony_ci    "username": "",
27621cb0ef41Sopenharmony_ci    "password": "",
27631cb0ef41Sopenharmony_ci    "host": "",
27641cb0ef41Sopenharmony_ci    "hostname": "",
27651cb0ef41Sopenharmony_ci    "port": "",
27661cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
27671cb0ef41Sopenharmony_ci    "search": "",
27681cb0ef41Sopenharmony_ci    "hash": ""
27691cb0ef41Sopenharmony_ci  },
27701cb0ef41Sopenharmony_ci  {
27711cb0ef41Sopenharmony_ci    "input": "ftps:/example.com/",
27721cb0ef41Sopenharmony_ci    "base": null,
27731cb0ef41Sopenharmony_ci    "href": "ftps:/example.com/",
27741cb0ef41Sopenharmony_ci    "origin": "null",
27751cb0ef41Sopenharmony_ci    "protocol": "ftps:",
27761cb0ef41Sopenharmony_ci    "username": "",
27771cb0ef41Sopenharmony_ci    "password": "",
27781cb0ef41Sopenharmony_ci    "host": "",
27791cb0ef41Sopenharmony_ci    "hostname": "",
27801cb0ef41Sopenharmony_ci    "port": "",
27811cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
27821cb0ef41Sopenharmony_ci    "search": "",
27831cb0ef41Sopenharmony_ci    "hash": ""
27841cb0ef41Sopenharmony_ci  },
27851cb0ef41Sopenharmony_ci  {
27861cb0ef41Sopenharmony_ci    "input": "gopher:/example.com/",
27871cb0ef41Sopenharmony_ci    "base": null,
27881cb0ef41Sopenharmony_ci    "href": "gopher:/example.com/",
27891cb0ef41Sopenharmony_ci    "origin": "null",
27901cb0ef41Sopenharmony_ci    "protocol": "gopher:",
27911cb0ef41Sopenharmony_ci    "username": "",
27921cb0ef41Sopenharmony_ci    "password": "",
27931cb0ef41Sopenharmony_ci    "host": "",
27941cb0ef41Sopenharmony_ci    "hostname": "",
27951cb0ef41Sopenharmony_ci    "port": "",
27961cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
27971cb0ef41Sopenharmony_ci    "search": "",
27981cb0ef41Sopenharmony_ci    "hash": ""
27991cb0ef41Sopenharmony_ci  },
28001cb0ef41Sopenharmony_ci  {
28011cb0ef41Sopenharmony_ci    "input": "ws:/example.com/",
28021cb0ef41Sopenharmony_ci    "base": null,
28031cb0ef41Sopenharmony_ci    "href": "ws://example.com/",
28041cb0ef41Sopenharmony_ci    "origin": "ws://example.com",
28051cb0ef41Sopenharmony_ci    "protocol": "ws:",
28061cb0ef41Sopenharmony_ci    "username": "",
28071cb0ef41Sopenharmony_ci    "password": "",
28081cb0ef41Sopenharmony_ci    "host": "example.com",
28091cb0ef41Sopenharmony_ci    "hostname": "example.com",
28101cb0ef41Sopenharmony_ci    "port": "",
28111cb0ef41Sopenharmony_ci    "pathname": "/",
28121cb0ef41Sopenharmony_ci    "search": "",
28131cb0ef41Sopenharmony_ci    "hash": ""
28141cb0ef41Sopenharmony_ci  },
28151cb0ef41Sopenharmony_ci  {
28161cb0ef41Sopenharmony_ci    "input": "wss:/example.com/",
28171cb0ef41Sopenharmony_ci    "base": null,
28181cb0ef41Sopenharmony_ci    "href": "wss://example.com/",
28191cb0ef41Sopenharmony_ci    "origin": "wss://example.com",
28201cb0ef41Sopenharmony_ci    "protocol": "wss:",
28211cb0ef41Sopenharmony_ci    "username": "",
28221cb0ef41Sopenharmony_ci    "password": "",
28231cb0ef41Sopenharmony_ci    "host": "example.com",
28241cb0ef41Sopenharmony_ci    "hostname": "example.com",
28251cb0ef41Sopenharmony_ci    "port": "",
28261cb0ef41Sopenharmony_ci    "pathname": "/",
28271cb0ef41Sopenharmony_ci    "search": "",
28281cb0ef41Sopenharmony_ci    "hash": ""
28291cb0ef41Sopenharmony_ci  },
28301cb0ef41Sopenharmony_ci  {
28311cb0ef41Sopenharmony_ci    "input": "data:/example.com/",
28321cb0ef41Sopenharmony_ci    "base": null,
28331cb0ef41Sopenharmony_ci    "href": "data:/example.com/",
28341cb0ef41Sopenharmony_ci    "origin": "null",
28351cb0ef41Sopenharmony_ci    "protocol": "data:",
28361cb0ef41Sopenharmony_ci    "username": "",
28371cb0ef41Sopenharmony_ci    "password": "",
28381cb0ef41Sopenharmony_ci    "host": "",
28391cb0ef41Sopenharmony_ci    "hostname": "",
28401cb0ef41Sopenharmony_ci    "port": "",
28411cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
28421cb0ef41Sopenharmony_ci    "search": "",
28431cb0ef41Sopenharmony_ci    "hash": ""
28441cb0ef41Sopenharmony_ci  },
28451cb0ef41Sopenharmony_ci  {
28461cb0ef41Sopenharmony_ci    "input": "javascript:/example.com/",
28471cb0ef41Sopenharmony_ci    "base": null,
28481cb0ef41Sopenharmony_ci    "href": "javascript:/example.com/",
28491cb0ef41Sopenharmony_ci    "origin": "null",
28501cb0ef41Sopenharmony_ci    "protocol": "javascript:",
28511cb0ef41Sopenharmony_ci    "username": "",
28521cb0ef41Sopenharmony_ci    "password": "",
28531cb0ef41Sopenharmony_ci    "host": "",
28541cb0ef41Sopenharmony_ci    "hostname": "",
28551cb0ef41Sopenharmony_ci    "port": "",
28561cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
28571cb0ef41Sopenharmony_ci    "search": "",
28581cb0ef41Sopenharmony_ci    "hash": ""
28591cb0ef41Sopenharmony_ci  },
28601cb0ef41Sopenharmony_ci  {
28611cb0ef41Sopenharmony_ci    "input": "mailto:/example.com/",
28621cb0ef41Sopenharmony_ci    "base": null,
28631cb0ef41Sopenharmony_ci    "href": "mailto:/example.com/",
28641cb0ef41Sopenharmony_ci    "origin": "null",
28651cb0ef41Sopenharmony_ci    "protocol": "mailto:",
28661cb0ef41Sopenharmony_ci    "username": "",
28671cb0ef41Sopenharmony_ci    "password": "",
28681cb0ef41Sopenharmony_ci    "host": "",
28691cb0ef41Sopenharmony_ci    "hostname": "",
28701cb0ef41Sopenharmony_ci    "port": "",
28711cb0ef41Sopenharmony_ci    "pathname": "/example.com/",
28721cb0ef41Sopenharmony_ci    "search": "",
28731cb0ef41Sopenharmony_ci    "hash": ""
28741cb0ef41Sopenharmony_ci  },
28751cb0ef41Sopenharmony_ci  {
28761cb0ef41Sopenharmony_ci    "input": "http:example.com/",
28771cb0ef41Sopenharmony_ci    "base": null,
28781cb0ef41Sopenharmony_ci    "href": "http://example.com/",
28791cb0ef41Sopenharmony_ci    "origin": "http://example.com",
28801cb0ef41Sopenharmony_ci    "protocol": "http:",
28811cb0ef41Sopenharmony_ci    "username": "",
28821cb0ef41Sopenharmony_ci    "password": "",
28831cb0ef41Sopenharmony_ci    "host": "example.com",
28841cb0ef41Sopenharmony_ci    "hostname": "example.com",
28851cb0ef41Sopenharmony_ci    "port": "",
28861cb0ef41Sopenharmony_ci    "pathname": "/",
28871cb0ef41Sopenharmony_ci    "search": "",
28881cb0ef41Sopenharmony_ci    "hash": ""
28891cb0ef41Sopenharmony_ci  },
28901cb0ef41Sopenharmony_ci  {
28911cb0ef41Sopenharmony_ci    "input": "ftp:example.com/",
28921cb0ef41Sopenharmony_ci    "base": null,
28931cb0ef41Sopenharmony_ci    "href": "ftp://example.com/",
28941cb0ef41Sopenharmony_ci    "origin": "ftp://example.com",
28951cb0ef41Sopenharmony_ci    "protocol": "ftp:",
28961cb0ef41Sopenharmony_ci    "username": "",
28971cb0ef41Sopenharmony_ci    "password": "",
28981cb0ef41Sopenharmony_ci    "host": "example.com",
28991cb0ef41Sopenharmony_ci    "hostname": "example.com",
29001cb0ef41Sopenharmony_ci    "port": "",
29011cb0ef41Sopenharmony_ci    "pathname": "/",
29021cb0ef41Sopenharmony_ci    "search": "",
29031cb0ef41Sopenharmony_ci    "hash": ""
29041cb0ef41Sopenharmony_ci  },
29051cb0ef41Sopenharmony_ci  {
29061cb0ef41Sopenharmony_ci    "input": "https:example.com/",
29071cb0ef41Sopenharmony_ci    "base": null,
29081cb0ef41Sopenharmony_ci    "href": "https://example.com/",
29091cb0ef41Sopenharmony_ci    "origin": "https://example.com",
29101cb0ef41Sopenharmony_ci    "protocol": "https:",
29111cb0ef41Sopenharmony_ci    "username": "",
29121cb0ef41Sopenharmony_ci    "password": "",
29131cb0ef41Sopenharmony_ci    "host": "example.com",
29141cb0ef41Sopenharmony_ci    "hostname": "example.com",
29151cb0ef41Sopenharmony_ci    "port": "",
29161cb0ef41Sopenharmony_ci    "pathname": "/",
29171cb0ef41Sopenharmony_ci    "search": "",
29181cb0ef41Sopenharmony_ci    "hash": ""
29191cb0ef41Sopenharmony_ci  },
29201cb0ef41Sopenharmony_ci  {
29211cb0ef41Sopenharmony_ci    "input": "madeupscheme:example.com/",
29221cb0ef41Sopenharmony_ci    "base": null,
29231cb0ef41Sopenharmony_ci    "href": "madeupscheme:example.com/",
29241cb0ef41Sopenharmony_ci    "origin": "null",
29251cb0ef41Sopenharmony_ci    "protocol": "madeupscheme:",
29261cb0ef41Sopenharmony_ci    "username": "",
29271cb0ef41Sopenharmony_ci    "password": "",
29281cb0ef41Sopenharmony_ci    "host": "",
29291cb0ef41Sopenharmony_ci    "hostname": "",
29301cb0ef41Sopenharmony_ci    "port": "",
29311cb0ef41Sopenharmony_ci    "pathname": "example.com/",
29321cb0ef41Sopenharmony_ci    "search": "",
29331cb0ef41Sopenharmony_ci    "hash": ""
29341cb0ef41Sopenharmony_ci  },
29351cb0ef41Sopenharmony_ci  {
29361cb0ef41Sopenharmony_ci    "input": "ftps:example.com/",
29371cb0ef41Sopenharmony_ci    "base": null,
29381cb0ef41Sopenharmony_ci    "href": "ftps:example.com/",
29391cb0ef41Sopenharmony_ci    "origin": "null",
29401cb0ef41Sopenharmony_ci    "protocol": "ftps:",
29411cb0ef41Sopenharmony_ci    "username": "",
29421cb0ef41Sopenharmony_ci    "password": "",
29431cb0ef41Sopenharmony_ci    "host": "",
29441cb0ef41Sopenharmony_ci    "hostname": "",
29451cb0ef41Sopenharmony_ci    "port": "",
29461cb0ef41Sopenharmony_ci    "pathname": "example.com/",
29471cb0ef41Sopenharmony_ci    "search": "",
29481cb0ef41Sopenharmony_ci    "hash": ""
29491cb0ef41Sopenharmony_ci  },
29501cb0ef41Sopenharmony_ci  {
29511cb0ef41Sopenharmony_ci    "input": "gopher:example.com/",
29521cb0ef41Sopenharmony_ci    "base": null,
29531cb0ef41Sopenharmony_ci    "href": "gopher:example.com/",
29541cb0ef41Sopenharmony_ci    "origin": "null",
29551cb0ef41Sopenharmony_ci    "protocol": "gopher:",
29561cb0ef41Sopenharmony_ci    "username": "",
29571cb0ef41Sopenharmony_ci    "password": "",
29581cb0ef41Sopenharmony_ci    "host": "",
29591cb0ef41Sopenharmony_ci    "hostname": "",
29601cb0ef41Sopenharmony_ci    "port": "",
29611cb0ef41Sopenharmony_ci    "pathname": "example.com/",
29621cb0ef41Sopenharmony_ci    "search": "",
29631cb0ef41Sopenharmony_ci    "hash": ""
29641cb0ef41Sopenharmony_ci  },
29651cb0ef41Sopenharmony_ci  {
29661cb0ef41Sopenharmony_ci    "input": "ws:example.com/",
29671cb0ef41Sopenharmony_ci    "base": null,
29681cb0ef41Sopenharmony_ci    "href": "ws://example.com/",
29691cb0ef41Sopenharmony_ci    "origin": "ws://example.com",
29701cb0ef41Sopenharmony_ci    "protocol": "ws:",
29711cb0ef41Sopenharmony_ci    "username": "",
29721cb0ef41Sopenharmony_ci    "password": "",
29731cb0ef41Sopenharmony_ci    "host": "example.com",
29741cb0ef41Sopenharmony_ci    "hostname": "example.com",
29751cb0ef41Sopenharmony_ci    "port": "",
29761cb0ef41Sopenharmony_ci    "pathname": "/",
29771cb0ef41Sopenharmony_ci    "search": "",
29781cb0ef41Sopenharmony_ci    "hash": ""
29791cb0ef41Sopenharmony_ci  },
29801cb0ef41Sopenharmony_ci  {
29811cb0ef41Sopenharmony_ci    "input": "wss:example.com/",
29821cb0ef41Sopenharmony_ci    "base": null,
29831cb0ef41Sopenharmony_ci    "href": "wss://example.com/",
29841cb0ef41Sopenharmony_ci    "origin": "wss://example.com",
29851cb0ef41Sopenharmony_ci    "protocol": "wss:",
29861cb0ef41Sopenharmony_ci    "username": "",
29871cb0ef41Sopenharmony_ci    "password": "",
29881cb0ef41Sopenharmony_ci    "host": "example.com",
29891cb0ef41Sopenharmony_ci    "hostname": "example.com",
29901cb0ef41Sopenharmony_ci    "port": "",
29911cb0ef41Sopenharmony_ci    "pathname": "/",
29921cb0ef41Sopenharmony_ci    "search": "",
29931cb0ef41Sopenharmony_ci    "hash": ""
29941cb0ef41Sopenharmony_ci  },
29951cb0ef41Sopenharmony_ci  {
29961cb0ef41Sopenharmony_ci    "input": "data:example.com/",
29971cb0ef41Sopenharmony_ci    "base": null,
29981cb0ef41Sopenharmony_ci    "href": "data:example.com/",
29991cb0ef41Sopenharmony_ci    "origin": "null",
30001cb0ef41Sopenharmony_ci    "protocol": "data:",
30011cb0ef41Sopenharmony_ci    "username": "",
30021cb0ef41Sopenharmony_ci    "password": "",
30031cb0ef41Sopenharmony_ci    "host": "",
30041cb0ef41Sopenharmony_ci    "hostname": "",
30051cb0ef41Sopenharmony_ci    "port": "",
30061cb0ef41Sopenharmony_ci    "pathname": "example.com/",
30071cb0ef41Sopenharmony_ci    "search": "",
30081cb0ef41Sopenharmony_ci    "hash": ""
30091cb0ef41Sopenharmony_ci  },
30101cb0ef41Sopenharmony_ci  {
30111cb0ef41Sopenharmony_ci    "input": "javascript:example.com/",
30121cb0ef41Sopenharmony_ci    "base": null,
30131cb0ef41Sopenharmony_ci    "href": "javascript:example.com/",
30141cb0ef41Sopenharmony_ci    "origin": "null",
30151cb0ef41Sopenharmony_ci    "protocol": "javascript:",
30161cb0ef41Sopenharmony_ci    "username": "",
30171cb0ef41Sopenharmony_ci    "password": "",
30181cb0ef41Sopenharmony_ci    "host": "",
30191cb0ef41Sopenharmony_ci    "hostname": "",
30201cb0ef41Sopenharmony_ci    "port": "",
30211cb0ef41Sopenharmony_ci    "pathname": "example.com/",
30221cb0ef41Sopenharmony_ci    "search": "",
30231cb0ef41Sopenharmony_ci    "hash": ""
30241cb0ef41Sopenharmony_ci  },
30251cb0ef41Sopenharmony_ci  {
30261cb0ef41Sopenharmony_ci    "input": "mailto:example.com/",
30271cb0ef41Sopenharmony_ci    "base": null,
30281cb0ef41Sopenharmony_ci    "href": "mailto:example.com/",
30291cb0ef41Sopenharmony_ci    "origin": "null",
30301cb0ef41Sopenharmony_ci    "protocol": "mailto:",
30311cb0ef41Sopenharmony_ci    "username": "",
30321cb0ef41Sopenharmony_ci    "password": "",
30331cb0ef41Sopenharmony_ci    "host": "",
30341cb0ef41Sopenharmony_ci    "hostname": "",
30351cb0ef41Sopenharmony_ci    "port": "",
30361cb0ef41Sopenharmony_ci    "pathname": "example.com/",
30371cb0ef41Sopenharmony_ci    "search": "",
30381cb0ef41Sopenharmony_ci    "hash": ""
30391cb0ef41Sopenharmony_ci  },
30401cb0ef41Sopenharmony_ci  "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/segments-userinfo-vs-host.html",
30411cb0ef41Sopenharmony_ci  {
30421cb0ef41Sopenharmony_ci    "input": "http:@www.example.com",
30431cb0ef41Sopenharmony_ci    "base": null,
30441cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
30451cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
30461cb0ef41Sopenharmony_ci    "protocol": "http:",
30471cb0ef41Sopenharmony_ci    "username": "",
30481cb0ef41Sopenharmony_ci    "password": "",
30491cb0ef41Sopenharmony_ci    "host": "www.example.com",
30501cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
30511cb0ef41Sopenharmony_ci    "port": "",
30521cb0ef41Sopenharmony_ci    "pathname": "/",
30531cb0ef41Sopenharmony_ci    "search": "",
30541cb0ef41Sopenharmony_ci    "hash": ""
30551cb0ef41Sopenharmony_ci  },
30561cb0ef41Sopenharmony_ci  {
30571cb0ef41Sopenharmony_ci    "input": "http:/@www.example.com",
30581cb0ef41Sopenharmony_ci    "base": null,
30591cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
30601cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
30611cb0ef41Sopenharmony_ci    "protocol": "http:",
30621cb0ef41Sopenharmony_ci    "username": "",
30631cb0ef41Sopenharmony_ci    "password": "",
30641cb0ef41Sopenharmony_ci    "host": "www.example.com",
30651cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
30661cb0ef41Sopenharmony_ci    "port": "",
30671cb0ef41Sopenharmony_ci    "pathname": "/",
30681cb0ef41Sopenharmony_ci    "search": "",
30691cb0ef41Sopenharmony_ci    "hash": ""
30701cb0ef41Sopenharmony_ci  },
30711cb0ef41Sopenharmony_ci  {
30721cb0ef41Sopenharmony_ci    "input": "http://@www.example.com",
30731cb0ef41Sopenharmony_ci    "base": null,
30741cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
30751cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
30761cb0ef41Sopenharmony_ci    "protocol": "http:",
30771cb0ef41Sopenharmony_ci    "username": "",
30781cb0ef41Sopenharmony_ci    "password": "",
30791cb0ef41Sopenharmony_ci    "host": "www.example.com",
30801cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
30811cb0ef41Sopenharmony_ci    "port": "",
30821cb0ef41Sopenharmony_ci    "pathname": "/",
30831cb0ef41Sopenharmony_ci    "search": "",
30841cb0ef41Sopenharmony_ci    "hash": ""
30851cb0ef41Sopenharmony_ci  },
30861cb0ef41Sopenharmony_ci  {
30871cb0ef41Sopenharmony_ci    "input": "http:a:b@www.example.com",
30881cb0ef41Sopenharmony_ci    "base": null,
30891cb0ef41Sopenharmony_ci    "href": "http://a:b@www.example.com/",
30901cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
30911cb0ef41Sopenharmony_ci    "protocol": "http:",
30921cb0ef41Sopenharmony_ci    "username": "a",
30931cb0ef41Sopenharmony_ci    "password": "b",
30941cb0ef41Sopenharmony_ci    "host": "www.example.com",
30951cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
30961cb0ef41Sopenharmony_ci    "port": "",
30971cb0ef41Sopenharmony_ci    "pathname": "/",
30981cb0ef41Sopenharmony_ci    "search": "",
30991cb0ef41Sopenharmony_ci    "hash": ""
31001cb0ef41Sopenharmony_ci  },
31011cb0ef41Sopenharmony_ci  {
31021cb0ef41Sopenharmony_ci    "input": "http:/a:b@www.example.com",
31031cb0ef41Sopenharmony_ci    "base": null,
31041cb0ef41Sopenharmony_ci    "href": "http://a:b@www.example.com/",
31051cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
31061cb0ef41Sopenharmony_ci    "protocol": "http:",
31071cb0ef41Sopenharmony_ci    "username": "a",
31081cb0ef41Sopenharmony_ci    "password": "b",
31091cb0ef41Sopenharmony_ci    "host": "www.example.com",
31101cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
31111cb0ef41Sopenharmony_ci    "port": "",
31121cb0ef41Sopenharmony_ci    "pathname": "/",
31131cb0ef41Sopenharmony_ci    "search": "",
31141cb0ef41Sopenharmony_ci    "hash": ""
31151cb0ef41Sopenharmony_ci  },
31161cb0ef41Sopenharmony_ci  {
31171cb0ef41Sopenharmony_ci    "input": "http://a:b@www.example.com",
31181cb0ef41Sopenharmony_ci    "base": null,
31191cb0ef41Sopenharmony_ci    "href": "http://a:b@www.example.com/",
31201cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
31211cb0ef41Sopenharmony_ci    "protocol": "http:",
31221cb0ef41Sopenharmony_ci    "username": "a",
31231cb0ef41Sopenharmony_ci    "password": "b",
31241cb0ef41Sopenharmony_ci    "host": "www.example.com",
31251cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
31261cb0ef41Sopenharmony_ci    "port": "",
31271cb0ef41Sopenharmony_ci    "pathname": "/",
31281cb0ef41Sopenharmony_ci    "search": "",
31291cb0ef41Sopenharmony_ci    "hash": ""
31301cb0ef41Sopenharmony_ci  },
31311cb0ef41Sopenharmony_ci  {
31321cb0ef41Sopenharmony_ci    "input": "http://@pple.com",
31331cb0ef41Sopenharmony_ci    "base": null,
31341cb0ef41Sopenharmony_ci    "href": "http://pple.com/",
31351cb0ef41Sopenharmony_ci    "origin": "http://pple.com",
31361cb0ef41Sopenharmony_ci    "protocol": "http:",
31371cb0ef41Sopenharmony_ci    "username": "",
31381cb0ef41Sopenharmony_ci    "password": "",
31391cb0ef41Sopenharmony_ci    "host": "pple.com",
31401cb0ef41Sopenharmony_ci    "hostname": "pple.com",
31411cb0ef41Sopenharmony_ci    "port": "",
31421cb0ef41Sopenharmony_ci    "pathname": "/",
31431cb0ef41Sopenharmony_ci    "search": "",
31441cb0ef41Sopenharmony_ci    "hash": ""
31451cb0ef41Sopenharmony_ci  },
31461cb0ef41Sopenharmony_ci  {
31471cb0ef41Sopenharmony_ci    "input": "http::b@www.example.com",
31481cb0ef41Sopenharmony_ci    "base": null,
31491cb0ef41Sopenharmony_ci    "href": "http://:b@www.example.com/",
31501cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
31511cb0ef41Sopenharmony_ci    "protocol": "http:",
31521cb0ef41Sopenharmony_ci    "username": "",
31531cb0ef41Sopenharmony_ci    "password": "b",
31541cb0ef41Sopenharmony_ci    "host": "www.example.com",
31551cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
31561cb0ef41Sopenharmony_ci    "port": "",
31571cb0ef41Sopenharmony_ci    "pathname": "/",
31581cb0ef41Sopenharmony_ci    "search": "",
31591cb0ef41Sopenharmony_ci    "hash": ""
31601cb0ef41Sopenharmony_ci  },
31611cb0ef41Sopenharmony_ci  {
31621cb0ef41Sopenharmony_ci    "input": "http:/:b@www.example.com",
31631cb0ef41Sopenharmony_ci    "base": null,
31641cb0ef41Sopenharmony_ci    "href": "http://:b@www.example.com/",
31651cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
31661cb0ef41Sopenharmony_ci    "protocol": "http:",
31671cb0ef41Sopenharmony_ci    "username": "",
31681cb0ef41Sopenharmony_ci    "password": "b",
31691cb0ef41Sopenharmony_ci    "host": "www.example.com",
31701cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
31711cb0ef41Sopenharmony_ci    "port": "",
31721cb0ef41Sopenharmony_ci    "pathname": "/",
31731cb0ef41Sopenharmony_ci    "search": "",
31741cb0ef41Sopenharmony_ci    "hash": ""
31751cb0ef41Sopenharmony_ci  },
31761cb0ef41Sopenharmony_ci  {
31771cb0ef41Sopenharmony_ci    "input": "http://:b@www.example.com",
31781cb0ef41Sopenharmony_ci    "base": null,
31791cb0ef41Sopenharmony_ci    "href": "http://:b@www.example.com/",
31801cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
31811cb0ef41Sopenharmony_ci    "protocol": "http:",
31821cb0ef41Sopenharmony_ci    "username": "",
31831cb0ef41Sopenharmony_ci    "password": "b",
31841cb0ef41Sopenharmony_ci    "host": "www.example.com",
31851cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
31861cb0ef41Sopenharmony_ci    "port": "",
31871cb0ef41Sopenharmony_ci    "pathname": "/",
31881cb0ef41Sopenharmony_ci    "search": "",
31891cb0ef41Sopenharmony_ci    "hash": ""
31901cb0ef41Sopenharmony_ci  },
31911cb0ef41Sopenharmony_ci  {
31921cb0ef41Sopenharmony_ci    "input": "http:/:@/www.example.com",
31931cb0ef41Sopenharmony_ci    "base": null,
31941cb0ef41Sopenharmony_ci    "failure": true,
31951cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
31961cb0ef41Sopenharmony_ci  },
31971cb0ef41Sopenharmony_ci  {
31981cb0ef41Sopenharmony_ci    "input": "http://user@/www.example.com",
31991cb0ef41Sopenharmony_ci    "base": null,
32001cb0ef41Sopenharmony_ci    "failure": true
32011cb0ef41Sopenharmony_ci  },
32021cb0ef41Sopenharmony_ci  {
32031cb0ef41Sopenharmony_ci    "input": "http:@/www.example.com",
32041cb0ef41Sopenharmony_ci    "base": null,
32051cb0ef41Sopenharmony_ci    "failure": true,
32061cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32071cb0ef41Sopenharmony_ci  },
32081cb0ef41Sopenharmony_ci  {
32091cb0ef41Sopenharmony_ci    "input": "http:/@/www.example.com",
32101cb0ef41Sopenharmony_ci    "base": null,
32111cb0ef41Sopenharmony_ci    "failure": true,
32121cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32131cb0ef41Sopenharmony_ci  },
32141cb0ef41Sopenharmony_ci  {
32151cb0ef41Sopenharmony_ci    "input": "http://@/www.example.com",
32161cb0ef41Sopenharmony_ci    "base": null,
32171cb0ef41Sopenharmony_ci    "failure": true
32181cb0ef41Sopenharmony_ci  },
32191cb0ef41Sopenharmony_ci  {
32201cb0ef41Sopenharmony_ci    "input": "https:@/www.example.com",
32211cb0ef41Sopenharmony_ci    "base": null,
32221cb0ef41Sopenharmony_ci    "failure": true,
32231cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32241cb0ef41Sopenharmony_ci  },
32251cb0ef41Sopenharmony_ci  {
32261cb0ef41Sopenharmony_ci    "input": "http:a:b@/www.example.com",
32271cb0ef41Sopenharmony_ci    "base": null,
32281cb0ef41Sopenharmony_ci    "failure": true,
32291cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32301cb0ef41Sopenharmony_ci  },
32311cb0ef41Sopenharmony_ci  {
32321cb0ef41Sopenharmony_ci    "input": "http:/a:b@/www.example.com",
32331cb0ef41Sopenharmony_ci    "base": null,
32341cb0ef41Sopenharmony_ci    "failure": true,
32351cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32361cb0ef41Sopenharmony_ci  },
32371cb0ef41Sopenharmony_ci  {
32381cb0ef41Sopenharmony_ci    "input": "http://a:b@/www.example.com",
32391cb0ef41Sopenharmony_ci    "base": null,
32401cb0ef41Sopenharmony_ci    "failure": true
32411cb0ef41Sopenharmony_ci  },
32421cb0ef41Sopenharmony_ci  {
32431cb0ef41Sopenharmony_ci    "input": "http::@/www.example.com",
32441cb0ef41Sopenharmony_ci    "base": null,
32451cb0ef41Sopenharmony_ci    "failure": true,
32461cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
32471cb0ef41Sopenharmony_ci  },
32481cb0ef41Sopenharmony_ci  {
32491cb0ef41Sopenharmony_ci    "input": "http:a:@www.example.com",
32501cb0ef41Sopenharmony_ci    "base": null,
32511cb0ef41Sopenharmony_ci    "href": "http://a@www.example.com/",
32521cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
32531cb0ef41Sopenharmony_ci    "protocol": "http:",
32541cb0ef41Sopenharmony_ci    "username": "a",
32551cb0ef41Sopenharmony_ci    "password": "",
32561cb0ef41Sopenharmony_ci    "host": "www.example.com",
32571cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
32581cb0ef41Sopenharmony_ci    "port": "",
32591cb0ef41Sopenharmony_ci    "pathname": "/",
32601cb0ef41Sopenharmony_ci    "search": "",
32611cb0ef41Sopenharmony_ci    "hash": ""
32621cb0ef41Sopenharmony_ci  },
32631cb0ef41Sopenharmony_ci  {
32641cb0ef41Sopenharmony_ci    "input": "http:/a:@www.example.com",
32651cb0ef41Sopenharmony_ci    "base": null,
32661cb0ef41Sopenharmony_ci    "href": "http://a@www.example.com/",
32671cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
32681cb0ef41Sopenharmony_ci    "protocol": "http:",
32691cb0ef41Sopenharmony_ci    "username": "a",
32701cb0ef41Sopenharmony_ci    "password": "",
32711cb0ef41Sopenharmony_ci    "host": "www.example.com",
32721cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
32731cb0ef41Sopenharmony_ci    "port": "",
32741cb0ef41Sopenharmony_ci    "pathname": "/",
32751cb0ef41Sopenharmony_ci    "search": "",
32761cb0ef41Sopenharmony_ci    "hash": ""
32771cb0ef41Sopenharmony_ci  },
32781cb0ef41Sopenharmony_ci  {
32791cb0ef41Sopenharmony_ci    "input": "http://a:@www.example.com",
32801cb0ef41Sopenharmony_ci    "base": null,
32811cb0ef41Sopenharmony_ci    "href": "http://a@www.example.com/",
32821cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
32831cb0ef41Sopenharmony_ci    "protocol": "http:",
32841cb0ef41Sopenharmony_ci    "username": "a",
32851cb0ef41Sopenharmony_ci    "password": "",
32861cb0ef41Sopenharmony_ci    "host": "www.example.com",
32871cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
32881cb0ef41Sopenharmony_ci    "port": "",
32891cb0ef41Sopenharmony_ci    "pathname": "/",
32901cb0ef41Sopenharmony_ci    "search": "",
32911cb0ef41Sopenharmony_ci    "hash": ""
32921cb0ef41Sopenharmony_ci  },
32931cb0ef41Sopenharmony_ci  {
32941cb0ef41Sopenharmony_ci    "input": "http://www.@pple.com",
32951cb0ef41Sopenharmony_ci    "base": null,
32961cb0ef41Sopenharmony_ci    "href": "http://www.@pple.com/",
32971cb0ef41Sopenharmony_ci    "origin": "http://pple.com",
32981cb0ef41Sopenharmony_ci    "protocol": "http:",
32991cb0ef41Sopenharmony_ci    "username": "www.",
33001cb0ef41Sopenharmony_ci    "password": "",
33011cb0ef41Sopenharmony_ci    "host": "pple.com",
33021cb0ef41Sopenharmony_ci    "hostname": "pple.com",
33031cb0ef41Sopenharmony_ci    "port": "",
33041cb0ef41Sopenharmony_ci    "pathname": "/",
33051cb0ef41Sopenharmony_ci    "search": "",
33061cb0ef41Sopenharmony_ci    "hash": ""
33071cb0ef41Sopenharmony_ci  },
33081cb0ef41Sopenharmony_ci  {
33091cb0ef41Sopenharmony_ci    "input": "http:@:www.example.com",
33101cb0ef41Sopenharmony_ci    "base": null,
33111cb0ef41Sopenharmony_ci    "failure": true,
33121cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
33131cb0ef41Sopenharmony_ci  },
33141cb0ef41Sopenharmony_ci  {
33151cb0ef41Sopenharmony_ci    "input": "http:/@:www.example.com",
33161cb0ef41Sopenharmony_ci    "base": null,
33171cb0ef41Sopenharmony_ci    "failure": true,
33181cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
33191cb0ef41Sopenharmony_ci  },
33201cb0ef41Sopenharmony_ci  {
33211cb0ef41Sopenharmony_ci    "input": "http://@:www.example.com",
33221cb0ef41Sopenharmony_ci    "base": null,
33231cb0ef41Sopenharmony_ci    "failure": true
33241cb0ef41Sopenharmony_ci  },
33251cb0ef41Sopenharmony_ci  {
33261cb0ef41Sopenharmony_ci    "input": "http://:@www.example.com",
33271cb0ef41Sopenharmony_ci    "base": null,
33281cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
33291cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
33301cb0ef41Sopenharmony_ci    "protocol": "http:",
33311cb0ef41Sopenharmony_ci    "username": "",
33321cb0ef41Sopenharmony_ci    "password": "",
33331cb0ef41Sopenharmony_ci    "host": "www.example.com",
33341cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
33351cb0ef41Sopenharmony_ci    "port": "",
33361cb0ef41Sopenharmony_ci    "pathname": "/",
33371cb0ef41Sopenharmony_ci    "search": "",
33381cb0ef41Sopenharmony_ci    "hash": ""
33391cb0ef41Sopenharmony_ci  },
33401cb0ef41Sopenharmony_ci  "# Others",
33411cb0ef41Sopenharmony_ci  {
33421cb0ef41Sopenharmony_ci    "input": "/",
33431cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
33441cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
33451cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
33461cb0ef41Sopenharmony_ci    "protocol": "http:",
33471cb0ef41Sopenharmony_ci    "username": "",
33481cb0ef41Sopenharmony_ci    "password": "",
33491cb0ef41Sopenharmony_ci    "host": "www.example.com",
33501cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
33511cb0ef41Sopenharmony_ci    "port": "",
33521cb0ef41Sopenharmony_ci    "pathname": "/",
33531cb0ef41Sopenharmony_ci    "search": "",
33541cb0ef41Sopenharmony_ci    "hash": ""
33551cb0ef41Sopenharmony_ci  },
33561cb0ef41Sopenharmony_ci  {
33571cb0ef41Sopenharmony_ci    "input": "/test.txt",
33581cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
33591cb0ef41Sopenharmony_ci    "href": "http://www.example.com/test.txt",
33601cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
33611cb0ef41Sopenharmony_ci    "protocol": "http:",
33621cb0ef41Sopenharmony_ci    "username": "",
33631cb0ef41Sopenharmony_ci    "password": "",
33641cb0ef41Sopenharmony_ci    "host": "www.example.com",
33651cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
33661cb0ef41Sopenharmony_ci    "port": "",
33671cb0ef41Sopenharmony_ci    "pathname": "/test.txt",
33681cb0ef41Sopenharmony_ci    "search": "",
33691cb0ef41Sopenharmony_ci    "hash": ""
33701cb0ef41Sopenharmony_ci  },
33711cb0ef41Sopenharmony_ci  {
33721cb0ef41Sopenharmony_ci    "input": ".",
33731cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
33741cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
33751cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
33761cb0ef41Sopenharmony_ci    "protocol": "http:",
33771cb0ef41Sopenharmony_ci    "username": "",
33781cb0ef41Sopenharmony_ci    "password": "",
33791cb0ef41Sopenharmony_ci    "host": "www.example.com",
33801cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
33811cb0ef41Sopenharmony_ci    "port": "",
33821cb0ef41Sopenharmony_ci    "pathname": "/",
33831cb0ef41Sopenharmony_ci    "search": "",
33841cb0ef41Sopenharmony_ci    "hash": ""
33851cb0ef41Sopenharmony_ci  },
33861cb0ef41Sopenharmony_ci  {
33871cb0ef41Sopenharmony_ci    "input": "..",
33881cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
33891cb0ef41Sopenharmony_ci    "href": "http://www.example.com/",
33901cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
33911cb0ef41Sopenharmony_ci    "protocol": "http:",
33921cb0ef41Sopenharmony_ci    "username": "",
33931cb0ef41Sopenharmony_ci    "password": "",
33941cb0ef41Sopenharmony_ci    "host": "www.example.com",
33951cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
33961cb0ef41Sopenharmony_ci    "port": "",
33971cb0ef41Sopenharmony_ci    "pathname": "/",
33981cb0ef41Sopenharmony_ci    "search": "",
33991cb0ef41Sopenharmony_ci    "hash": ""
34001cb0ef41Sopenharmony_ci  },
34011cb0ef41Sopenharmony_ci  {
34021cb0ef41Sopenharmony_ci    "input": "test.txt",
34031cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34041cb0ef41Sopenharmony_ci    "href": "http://www.example.com/test.txt",
34051cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34061cb0ef41Sopenharmony_ci    "protocol": "http:",
34071cb0ef41Sopenharmony_ci    "username": "",
34081cb0ef41Sopenharmony_ci    "password": "",
34091cb0ef41Sopenharmony_ci    "host": "www.example.com",
34101cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34111cb0ef41Sopenharmony_ci    "port": "",
34121cb0ef41Sopenharmony_ci    "pathname": "/test.txt",
34131cb0ef41Sopenharmony_ci    "search": "",
34141cb0ef41Sopenharmony_ci    "hash": ""
34151cb0ef41Sopenharmony_ci  },
34161cb0ef41Sopenharmony_ci  {
34171cb0ef41Sopenharmony_ci    "input": "./test.txt",
34181cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34191cb0ef41Sopenharmony_ci    "href": "http://www.example.com/test.txt",
34201cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34211cb0ef41Sopenharmony_ci    "protocol": "http:",
34221cb0ef41Sopenharmony_ci    "username": "",
34231cb0ef41Sopenharmony_ci    "password": "",
34241cb0ef41Sopenharmony_ci    "host": "www.example.com",
34251cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34261cb0ef41Sopenharmony_ci    "port": "",
34271cb0ef41Sopenharmony_ci    "pathname": "/test.txt",
34281cb0ef41Sopenharmony_ci    "search": "",
34291cb0ef41Sopenharmony_ci    "hash": ""
34301cb0ef41Sopenharmony_ci  },
34311cb0ef41Sopenharmony_ci  {
34321cb0ef41Sopenharmony_ci    "input": "../test.txt",
34331cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34341cb0ef41Sopenharmony_ci    "href": "http://www.example.com/test.txt",
34351cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34361cb0ef41Sopenharmony_ci    "protocol": "http:",
34371cb0ef41Sopenharmony_ci    "username": "",
34381cb0ef41Sopenharmony_ci    "password": "",
34391cb0ef41Sopenharmony_ci    "host": "www.example.com",
34401cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34411cb0ef41Sopenharmony_ci    "port": "",
34421cb0ef41Sopenharmony_ci    "pathname": "/test.txt",
34431cb0ef41Sopenharmony_ci    "search": "",
34441cb0ef41Sopenharmony_ci    "hash": ""
34451cb0ef41Sopenharmony_ci  },
34461cb0ef41Sopenharmony_ci  {
34471cb0ef41Sopenharmony_ci    "input": "../aaa/test.txt",
34481cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34491cb0ef41Sopenharmony_ci    "href": "http://www.example.com/aaa/test.txt",
34501cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34511cb0ef41Sopenharmony_ci    "protocol": "http:",
34521cb0ef41Sopenharmony_ci    "username": "",
34531cb0ef41Sopenharmony_ci    "password": "",
34541cb0ef41Sopenharmony_ci    "host": "www.example.com",
34551cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34561cb0ef41Sopenharmony_ci    "port": "",
34571cb0ef41Sopenharmony_ci    "pathname": "/aaa/test.txt",
34581cb0ef41Sopenharmony_ci    "search": "",
34591cb0ef41Sopenharmony_ci    "hash": ""
34601cb0ef41Sopenharmony_ci  },
34611cb0ef41Sopenharmony_ci  {
34621cb0ef41Sopenharmony_ci    "input": "../../test.txt",
34631cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34641cb0ef41Sopenharmony_ci    "href": "http://www.example.com/test.txt",
34651cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34661cb0ef41Sopenharmony_ci    "protocol": "http:",
34671cb0ef41Sopenharmony_ci    "username": "",
34681cb0ef41Sopenharmony_ci    "password": "",
34691cb0ef41Sopenharmony_ci    "host": "www.example.com",
34701cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34711cb0ef41Sopenharmony_ci    "port": "",
34721cb0ef41Sopenharmony_ci    "pathname": "/test.txt",
34731cb0ef41Sopenharmony_ci    "search": "",
34741cb0ef41Sopenharmony_ci    "hash": ""
34751cb0ef41Sopenharmony_ci  },
34761cb0ef41Sopenharmony_ci  {
34771cb0ef41Sopenharmony_ci    "input": "中/test.txt",
34781cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34791cb0ef41Sopenharmony_ci    "href": "http://www.example.com/%E4%B8%AD/test.txt",
34801cb0ef41Sopenharmony_ci    "origin": "http://www.example.com",
34811cb0ef41Sopenharmony_ci    "protocol": "http:",
34821cb0ef41Sopenharmony_ci    "username": "",
34831cb0ef41Sopenharmony_ci    "password": "",
34841cb0ef41Sopenharmony_ci    "host": "www.example.com",
34851cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
34861cb0ef41Sopenharmony_ci    "port": "",
34871cb0ef41Sopenharmony_ci    "pathname": "/%E4%B8%AD/test.txt",
34881cb0ef41Sopenharmony_ci    "search": "",
34891cb0ef41Sopenharmony_ci    "hash": ""
34901cb0ef41Sopenharmony_ci  },
34911cb0ef41Sopenharmony_ci  {
34921cb0ef41Sopenharmony_ci    "input": "http://www.example2.com",
34931cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
34941cb0ef41Sopenharmony_ci    "href": "http://www.example2.com/",
34951cb0ef41Sopenharmony_ci    "origin": "http://www.example2.com",
34961cb0ef41Sopenharmony_ci    "protocol": "http:",
34971cb0ef41Sopenharmony_ci    "username": "",
34981cb0ef41Sopenharmony_ci    "password": "",
34991cb0ef41Sopenharmony_ci    "host": "www.example2.com",
35001cb0ef41Sopenharmony_ci    "hostname": "www.example2.com",
35011cb0ef41Sopenharmony_ci    "port": "",
35021cb0ef41Sopenharmony_ci    "pathname": "/",
35031cb0ef41Sopenharmony_ci    "search": "",
35041cb0ef41Sopenharmony_ci    "hash": ""
35051cb0ef41Sopenharmony_ci  },
35061cb0ef41Sopenharmony_ci  {
35071cb0ef41Sopenharmony_ci    "input": "//www.example2.com",
35081cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
35091cb0ef41Sopenharmony_ci    "href": "http://www.example2.com/",
35101cb0ef41Sopenharmony_ci    "origin": "http://www.example2.com",
35111cb0ef41Sopenharmony_ci    "protocol": "http:",
35121cb0ef41Sopenharmony_ci    "username": "",
35131cb0ef41Sopenharmony_ci    "password": "",
35141cb0ef41Sopenharmony_ci    "host": "www.example2.com",
35151cb0ef41Sopenharmony_ci    "hostname": "www.example2.com",
35161cb0ef41Sopenharmony_ci    "port": "",
35171cb0ef41Sopenharmony_ci    "pathname": "/",
35181cb0ef41Sopenharmony_ci    "search": "",
35191cb0ef41Sopenharmony_ci    "hash": ""
35201cb0ef41Sopenharmony_ci  },
35211cb0ef41Sopenharmony_ci  {
35221cb0ef41Sopenharmony_ci    "input": "file:...",
35231cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
35241cb0ef41Sopenharmony_ci    "href": "file:///...",
35251cb0ef41Sopenharmony_ci    "protocol": "file:",
35261cb0ef41Sopenharmony_ci    "username": "",
35271cb0ef41Sopenharmony_ci    "password": "",
35281cb0ef41Sopenharmony_ci    "host": "",
35291cb0ef41Sopenharmony_ci    "hostname": "",
35301cb0ef41Sopenharmony_ci    "port": "",
35311cb0ef41Sopenharmony_ci    "pathname": "/...",
35321cb0ef41Sopenharmony_ci    "search": "",
35331cb0ef41Sopenharmony_ci    "hash": ""
35341cb0ef41Sopenharmony_ci  },
35351cb0ef41Sopenharmony_ci  {
35361cb0ef41Sopenharmony_ci    "input": "file:..",
35371cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
35381cb0ef41Sopenharmony_ci    "href": "file:///",
35391cb0ef41Sopenharmony_ci    "protocol": "file:",
35401cb0ef41Sopenharmony_ci    "username": "",
35411cb0ef41Sopenharmony_ci    "password": "",
35421cb0ef41Sopenharmony_ci    "host": "",
35431cb0ef41Sopenharmony_ci    "hostname": "",
35441cb0ef41Sopenharmony_ci    "port": "",
35451cb0ef41Sopenharmony_ci    "pathname": "/",
35461cb0ef41Sopenharmony_ci    "search": "",
35471cb0ef41Sopenharmony_ci    "hash": ""
35481cb0ef41Sopenharmony_ci  },
35491cb0ef41Sopenharmony_ci  {
35501cb0ef41Sopenharmony_ci    "input": "file:a",
35511cb0ef41Sopenharmony_ci    "base": "http://www.example.com/test",
35521cb0ef41Sopenharmony_ci    "href": "file:///a",
35531cb0ef41Sopenharmony_ci    "protocol": "file:",
35541cb0ef41Sopenharmony_ci    "username": "",
35551cb0ef41Sopenharmony_ci    "password": "",
35561cb0ef41Sopenharmony_ci    "host": "",
35571cb0ef41Sopenharmony_ci    "hostname": "",
35581cb0ef41Sopenharmony_ci    "port": "",
35591cb0ef41Sopenharmony_ci    "pathname": "/a",
35601cb0ef41Sopenharmony_ci    "search": "",
35611cb0ef41Sopenharmony_ci    "hash": ""
35621cb0ef41Sopenharmony_ci  },
35631cb0ef41Sopenharmony_ci  "# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/host.html",
35641cb0ef41Sopenharmony_ci  "Basic canonicalization, uppercase should be converted to lowercase",
35651cb0ef41Sopenharmony_ci  {
35661cb0ef41Sopenharmony_ci    "input": "http://ExAmPlE.CoM",
35671cb0ef41Sopenharmony_ci    "base": "http://other.com/",
35681cb0ef41Sopenharmony_ci    "href": "http://example.com/",
35691cb0ef41Sopenharmony_ci    "origin": "http://example.com",
35701cb0ef41Sopenharmony_ci    "protocol": "http:",
35711cb0ef41Sopenharmony_ci    "username": "",
35721cb0ef41Sopenharmony_ci    "password": "",
35731cb0ef41Sopenharmony_ci    "host": "example.com",
35741cb0ef41Sopenharmony_ci    "hostname": "example.com",
35751cb0ef41Sopenharmony_ci    "port": "",
35761cb0ef41Sopenharmony_ci    "pathname": "/",
35771cb0ef41Sopenharmony_ci    "search": "",
35781cb0ef41Sopenharmony_ci    "hash": ""
35791cb0ef41Sopenharmony_ci  },
35801cb0ef41Sopenharmony_ci  {
35811cb0ef41Sopenharmony_ci    "input": "http://example example.com",
35821cb0ef41Sopenharmony_ci    "base": "http://other.com/",
35831cb0ef41Sopenharmony_ci    "failure": true
35841cb0ef41Sopenharmony_ci  },
35851cb0ef41Sopenharmony_ci  {
35861cb0ef41Sopenharmony_ci    "input": "http://Goo%20 goo%7C|.com",
35871cb0ef41Sopenharmony_ci    "base": "http://other.com/",
35881cb0ef41Sopenharmony_ci    "failure": true
35891cb0ef41Sopenharmony_ci  },
35901cb0ef41Sopenharmony_ci  {
35911cb0ef41Sopenharmony_ci    "input": "http://[]",
35921cb0ef41Sopenharmony_ci    "base": "http://other.com/",
35931cb0ef41Sopenharmony_ci    "failure": true
35941cb0ef41Sopenharmony_ci  },
35951cb0ef41Sopenharmony_ci  {
35961cb0ef41Sopenharmony_ci    "input": "http://[:]",
35971cb0ef41Sopenharmony_ci    "base": "http://other.com/",
35981cb0ef41Sopenharmony_ci    "failure": true
35991cb0ef41Sopenharmony_ci  },
36001cb0ef41Sopenharmony_ci  "U+3000 is mapped to U+0020 (space) which is disallowed",
36011cb0ef41Sopenharmony_ci  {
36021cb0ef41Sopenharmony_ci    "input": "http://GOO\u00a0\u3000goo.com",
36031cb0ef41Sopenharmony_ci    "base": "http://other.com/",
36041cb0ef41Sopenharmony_ci    "failure": true
36051cb0ef41Sopenharmony_ci  },
36061cb0ef41Sopenharmony_ci  "Other types of space (no-break, zero-width, zero-width-no-break) are name-prepped away to nothing. U+200B, U+2060, and U+FEFF, are ignored",
36071cb0ef41Sopenharmony_ci  {
36081cb0ef41Sopenharmony_ci    "input": "http://GOO\u200b\u2060\ufeffgoo.com",
36091cb0ef41Sopenharmony_ci    "base": "http://other.com/",
36101cb0ef41Sopenharmony_ci    "href": "http://googoo.com/",
36111cb0ef41Sopenharmony_ci    "origin": "http://googoo.com",
36121cb0ef41Sopenharmony_ci    "protocol": "http:",
36131cb0ef41Sopenharmony_ci    "username": "",
36141cb0ef41Sopenharmony_ci    "password": "",
36151cb0ef41Sopenharmony_ci    "host": "googoo.com",
36161cb0ef41Sopenharmony_ci    "hostname": "googoo.com",
36171cb0ef41Sopenharmony_ci    "port": "",
36181cb0ef41Sopenharmony_ci    "pathname": "/",
36191cb0ef41Sopenharmony_ci    "search": "",
36201cb0ef41Sopenharmony_ci    "hash": ""
36211cb0ef41Sopenharmony_ci  },
36221cb0ef41Sopenharmony_ci  "Leading and trailing C0 control or space",
36231cb0ef41Sopenharmony_ci  {
36241cb0ef41Sopenharmony_ci    "input": "\u0000\u001b\u0004\u0012 http://example.com/\u001f \u000d ",
36251cb0ef41Sopenharmony_ci    "base": null,
36261cb0ef41Sopenharmony_ci    "href": "http://example.com/",
36271cb0ef41Sopenharmony_ci    "origin": "http://example.com",
36281cb0ef41Sopenharmony_ci    "protocol": "http:",
36291cb0ef41Sopenharmony_ci    "username": "",
36301cb0ef41Sopenharmony_ci    "password": "",
36311cb0ef41Sopenharmony_ci    "host": "example.com",
36321cb0ef41Sopenharmony_ci    "hostname": "example.com",
36331cb0ef41Sopenharmony_ci    "port": "",
36341cb0ef41Sopenharmony_ci    "pathname": "/",
36351cb0ef41Sopenharmony_ci    "search": "",
36361cb0ef41Sopenharmony_ci    "hash": ""
36371cb0ef41Sopenharmony_ci  },
36381cb0ef41Sopenharmony_ci  "Ideographic full stop (full-width period for Chinese, etc.) should be treated as a dot. U+3002 is mapped to U+002E (dot)",
36391cb0ef41Sopenharmony_ci  {
36401cb0ef41Sopenharmony_ci    "input": "http://www.foobar.com",
36411cb0ef41Sopenharmony_ci    "base": "http://other.com/",
36421cb0ef41Sopenharmony_ci    "href": "http://www.foo.bar.com/",
36431cb0ef41Sopenharmony_ci    "origin": "http://www.foo.bar.com",
36441cb0ef41Sopenharmony_ci    "protocol": "http:",
36451cb0ef41Sopenharmony_ci    "username": "",
36461cb0ef41Sopenharmony_ci    "password": "",
36471cb0ef41Sopenharmony_ci    "host": "www.foo.bar.com",
36481cb0ef41Sopenharmony_ci    "hostname": "www.foo.bar.com",
36491cb0ef41Sopenharmony_ci    "port": "",
36501cb0ef41Sopenharmony_ci    "pathname": "/",
36511cb0ef41Sopenharmony_ci    "search": "",
36521cb0ef41Sopenharmony_ci    "hash": ""
36531cb0ef41Sopenharmony_ci  },
36541cb0ef41Sopenharmony_ci  "Invalid unicode characters should fail... U+FDD0 is disallowed; %ef%b7%90 is U+FDD0",
36551cb0ef41Sopenharmony_ci  {
36561cb0ef41Sopenharmony_ci    "input": "http://\ufdd0zyx.com",
36571cb0ef41Sopenharmony_ci    "base": "http://other.com/",
36581cb0ef41Sopenharmony_ci    "failure": true
36591cb0ef41Sopenharmony_ci  },
36601cb0ef41Sopenharmony_ci  "This is the same as previous but escaped",
36611cb0ef41Sopenharmony_ci  {
36621cb0ef41Sopenharmony_ci    "input": "http://%ef%b7%90zyx.com",
36631cb0ef41Sopenharmony_ci    "base": "http://other.com/",
36641cb0ef41Sopenharmony_ci    "failure": true
36651cb0ef41Sopenharmony_ci  },
36661cb0ef41Sopenharmony_ci  "U+FFFD",
36671cb0ef41Sopenharmony_ci  {
36681cb0ef41Sopenharmony_ci    "input": "https://\ufffd",
36691cb0ef41Sopenharmony_ci    "base": null,
36701cb0ef41Sopenharmony_ci    "failure": true
36711cb0ef41Sopenharmony_ci  },
36721cb0ef41Sopenharmony_ci  {
36731cb0ef41Sopenharmony_ci    "input": "https://%EF%BF%BD",
36741cb0ef41Sopenharmony_ci    "base": null,
36751cb0ef41Sopenharmony_ci    "failure": true
36761cb0ef41Sopenharmony_ci  },
36771cb0ef41Sopenharmony_ci  {
36781cb0ef41Sopenharmony_ci    "input": "https://x/\ufffd?\ufffd#\ufffd",
36791cb0ef41Sopenharmony_ci    "base": null,
36801cb0ef41Sopenharmony_ci    "href": "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD",
36811cb0ef41Sopenharmony_ci    "origin": "https://x",
36821cb0ef41Sopenharmony_ci    "protocol": "https:",
36831cb0ef41Sopenharmony_ci    "username": "",
36841cb0ef41Sopenharmony_ci    "password": "",
36851cb0ef41Sopenharmony_ci    "host": "x",
36861cb0ef41Sopenharmony_ci    "hostname": "x",
36871cb0ef41Sopenharmony_ci    "port": "",
36881cb0ef41Sopenharmony_ci    "pathname": "/%EF%BF%BD",
36891cb0ef41Sopenharmony_ci    "search": "?%EF%BF%BD",
36901cb0ef41Sopenharmony_ci    "hash": "#%EF%BF%BD"
36911cb0ef41Sopenharmony_ci  },
36921cb0ef41Sopenharmony_ci  "Domain is ASCII, but a label is invalid IDNA",
36931cb0ef41Sopenharmony_ci  {
36941cb0ef41Sopenharmony_ci    "input": "http://a.b.c.xn--pokxncvks",
36951cb0ef41Sopenharmony_ci    "base": null,
36961cb0ef41Sopenharmony_ci    "failure": true
36971cb0ef41Sopenharmony_ci  },
36981cb0ef41Sopenharmony_ci  {
36991cb0ef41Sopenharmony_ci    "input": "http://10.0.0.xn--pokxncvks",
37001cb0ef41Sopenharmony_ci    "base": null,
37011cb0ef41Sopenharmony_ci    "failure": true
37021cb0ef41Sopenharmony_ci  },
37031cb0ef41Sopenharmony_ci  "IDNA labels should be matched case-insensitively",
37041cb0ef41Sopenharmony_ci  {
37051cb0ef41Sopenharmony_ci    "input": "http://a.b.c.XN--pokxncvks",
37061cb0ef41Sopenharmony_ci    "base": null,
37071cb0ef41Sopenharmony_ci    "failure": true
37081cb0ef41Sopenharmony_ci  },
37091cb0ef41Sopenharmony_ci  {
37101cb0ef41Sopenharmony_ci    "input": "http://a.b.c.Xn--pokxncvks",
37111cb0ef41Sopenharmony_ci    "base": null,
37121cb0ef41Sopenharmony_ci    "failure": true
37131cb0ef41Sopenharmony_ci  },
37141cb0ef41Sopenharmony_ci  {
37151cb0ef41Sopenharmony_ci    "input": "http://10.0.0.XN--pokxncvks",
37161cb0ef41Sopenharmony_ci    "base": null,
37171cb0ef41Sopenharmony_ci    "failure": true
37181cb0ef41Sopenharmony_ci  },
37191cb0ef41Sopenharmony_ci  {
37201cb0ef41Sopenharmony_ci    "input": "http://10.0.0.xN--pokxncvks",
37211cb0ef41Sopenharmony_ci    "base": null,
37221cb0ef41Sopenharmony_ci    "failure": true
37231cb0ef41Sopenharmony_ci  },
37241cb0ef41Sopenharmony_ci  "Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.",
37251cb0ef41Sopenharmony_ci  {
37261cb0ef41Sopenharmony_ci    "input": "http://Go.com",
37271cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37281cb0ef41Sopenharmony_ci    "href": "http://go.com/",
37291cb0ef41Sopenharmony_ci    "origin": "http://go.com",
37301cb0ef41Sopenharmony_ci    "protocol": "http:",
37311cb0ef41Sopenharmony_ci    "username": "",
37321cb0ef41Sopenharmony_ci    "password": "",
37331cb0ef41Sopenharmony_ci    "host": "go.com",
37341cb0ef41Sopenharmony_ci    "hostname": "go.com",
37351cb0ef41Sopenharmony_ci    "port": "",
37361cb0ef41Sopenharmony_ci    "pathname": "/",
37371cb0ef41Sopenharmony_ci    "search": "",
37381cb0ef41Sopenharmony_ci    "hash": ""
37391cb0ef41Sopenharmony_ci  },
37401cb0ef41Sopenharmony_ci  "URL spec forbids the following. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24257",
37411cb0ef41Sopenharmony_ci  {
37421cb0ef41Sopenharmony_ci    "input": "http://%41.com",
37431cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37441cb0ef41Sopenharmony_ci    "failure": true
37451cb0ef41Sopenharmony_ci  },
37461cb0ef41Sopenharmony_ci  {
37471cb0ef41Sopenharmony_ci    "input": "http://%ef%bc%85%ef%bc%94%ef%bc%91.com",
37481cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37491cb0ef41Sopenharmony_ci    "failure": true
37501cb0ef41Sopenharmony_ci  },
37511cb0ef41Sopenharmony_ci  "...%00 in fullwidth should fail (also as escaped UTF-8 input)",
37521cb0ef41Sopenharmony_ci  {
37531cb0ef41Sopenharmony_ci    "input": "http://%00.com",
37541cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37551cb0ef41Sopenharmony_ci    "failure": true
37561cb0ef41Sopenharmony_ci  },
37571cb0ef41Sopenharmony_ci  {
37581cb0ef41Sopenharmony_ci    "input": "http://%ef%bc%85%ef%bc%90%ef%bc%90.com",
37591cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37601cb0ef41Sopenharmony_ci    "failure": true
37611cb0ef41Sopenharmony_ci  },
37621cb0ef41Sopenharmony_ci  "Basic IDN support, UTF-8 and UTF-16 input should be converted to IDN",
37631cb0ef41Sopenharmony_ci  {
37641cb0ef41Sopenharmony_ci    "input": "http://你好你好",
37651cb0ef41Sopenharmony_ci    "base": "http://other.com/",
37661cb0ef41Sopenharmony_ci    "href": "http://xn--6qqa088eba/",
37671cb0ef41Sopenharmony_ci    "origin": "http://xn--6qqa088eba",
37681cb0ef41Sopenharmony_ci    "protocol": "http:",
37691cb0ef41Sopenharmony_ci    "username": "",
37701cb0ef41Sopenharmony_ci    "password": "",
37711cb0ef41Sopenharmony_ci    "host": "xn--6qqa088eba",
37721cb0ef41Sopenharmony_ci    "hostname": "xn--6qqa088eba",
37731cb0ef41Sopenharmony_ci    "port": "",
37741cb0ef41Sopenharmony_ci    "pathname": "/",
37751cb0ef41Sopenharmony_ci    "search": "",
37761cb0ef41Sopenharmony_ci    "hash": ""
37771cb0ef41Sopenharmony_ci  },
37781cb0ef41Sopenharmony_ci  {
37791cb0ef41Sopenharmony_ci    "input": "https://faß.ExAmPlE/",
37801cb0ef41Sopenharmony_ci    "base": null,
37811cb0ef41Sopenharmony_ci    "href": "https://xn--fa-hia.example/",
37821cb0ef41Sopenharmony_ci    "origin": "https://xn--fa-hia.example",
37831cb0ef41Sopenharmony_ci    "protocol": "https:",
37841cb0ef41Sopenharmony_ci    "username": "",
37851cb0ef41Sopenharmony_ci    "password": "",
37861cb0ef41Sopenharmony_ci    "host": "xn--fa-hia.example",
37871cb0ef41Sopenharmony_ci    "hostname": "xn--fa-hia.example",
37881cb0ef41Sopenharmony_ci    "port": "",
37891cb0ef41Sopenharmony_ci    "pathname": "/",
37901cb0ef41Sopenharmony_ci    "search": "",
37911cb0ef41Sopenharmony_ci    "hash": ""
37921cb0ef41Sopenharmony_ci  },
37931cb0ef41Sopenharmony_ci  {
37941cb0ef41Sopenharmony_ci    "input": "sc://faß.ExAmPlE/",
37951cb0ef41Sopenharmony_ci    "base": null,
37961cb0ef41Sopenharmony_ci    "href": "sc://fa%C3%9F.ExAmPlE/",
37971cb0ef41Sopenharmony_ci    "origin": "null",
37981cb0ef41Sopenharmony_ci    "protocol": "sc:",
37991cb0ef41Sopenharmony_ci    "username": "",
38001cb0ef41Sopenharmony_ci    "password": "",
38011cb0ef41Sopenharmony_ci    "host": "fa%C3%9F.ExAmPlE",
38021cb0ef41Sopenharmony_ci    "hostname": "fa%C3%9F.ExAmPlE",
38031cb0ef41Sopenharmony_ci    "port": "",
38041cb0ef41Sopenharmony_ci    "pathname": "/",
38051cb0ef41Sopenharmony_ci    "search": "",
38061cb0ef41Sopenharmony_ci    "hash": ""
38071cb0ef41Sopenharmony_ci  },
38081cb0ef41Sopenharmony_ci  "Invalid escaped characters should fail and the percents should be escaped. https://www.w3.org/Bugs/Public/show_bug.cgi?id=24191",
38091cb0ef41Sopenharmony_ci  {
38101cb0ef41Sopenharmony_ci    "input": "http://%zz%66%a.com",
38111cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38121cb0ef41Sopenharmony_ci    "failure": true
38131cb0ef41Sopenharmony_ci  },
38141cb0ef41Sopenharmony_ci  "If we get an invalid character that has been escaped.",
38151cb0ef41Sopenharmony_ci  {
38161cb0ef41Sopenharmony_ci    "input": "http://%25",
38171cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38181cb0ef41Sopenharmony_ci    "failure": true
38191cb0ef41Sopenharmony_ci  },
38201cb0ef41Sopenharmony_ci  {
38211cb0ef41Sopenharmony_ci    "input": "http://hello%00",
38221cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38231cb0ef41Sopenharmony_ci    "failure": true
38241cb0ef41Sopenharmony_ci  },
38251cb0ef41Sopenharmony_ci  "Escaped numbers should be treated like IP addresses if they are.",
38261cb0ef41Sopenharmony_ci  {
38271cb0ef41Sopenharmony_ci    "input": "http://%30%78%63%30%2e%30%32%35%30.01",
38281cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38291cb0ef41Sopenharmony_ci    "href": "http://192.168.0.1/",
38301cb0ef41Sopenharmony_ci    "origin": "http://192.168.0.1",
38311cb0ef41Sopenharmony_ci    "protocol": "http:",
38321cb0ef41Sopenharmony_ci    "username": "",
38331cb0ef41Sopenharmony_ci    "password": "",
38341cb0ef41Sopenharmony_ci    "host": "192.168.0.1",
38351cb0ef41Sopenharmony_ci    "hostname": "192.168.0.1",
38361cb0ef41Sopenharmony_ci    "port": "",
38371cb0ef41Sopenharmony_ci    "pathname": "/",
38381cb0ef41Sopenharmony_ci    "search": "",
38391cb0ef41Sopenharmony_ci    "hash": ""
38401cb0ef41Sopenharmony_ci  },
38411cb0ef41Sopenharmony_ci  {
38421cb0ef41Sopenharmony_ci    "input": "http://%30%78%63%30%2e%30%32%35%30.01%2e",
38431cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38441cb0ef41Sopenharmony_ci    "href": "http://192.168.0.1/",
38451cb0ef41Sopenharmony_ci    "origin": "http://192.168.0.1",
38461cb0ef41Sopenharmony_ci    "protocol": "http:",
38471cb0ef41Sopenharmony_ci    "username": "",
38481cb0ef41Sopenharmony_ci    "password": "",
38491cb0ef41Sopenharmony_ci    "host": "192.168.0.1",
38501cb0ef41Sopenharmony_ci    "hostname": "192.168.0.1",
38511cb0ef41Sopenharmony_ci    "port": "",
38521cb0ef41Sopenharmony_ci    "pathname": "/",
38531cb0ef41Sopenharmony_ci    "search": "",
38541cb0ef41Sopenharmony_ci    "hash": ""
38551cb0ef41Sopenharmony_ci  },
38561cb0ef41Sopenharmony_ci  {
38571cb0ef41Sopenharmony_ci    "input": "http://192.168.0.257",
38581cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38591cb0ef41Sopenharmony_ci    "failure": true
38601cb0ef41Sopenharmony_ci  },
38611cb0ef41Sopenharmony_ci  "Invalid escaping in hosts causes failure",
38621cb0ef41Sopenharmony_ci  {
38631cb0ef41Sopenharmony_ci    "input": "http://%3g%78%63%30%2e%30%32%35%30%2E.01",
38641cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38651cb0ef41Sopenharmony_ci    "failure": true
38661cb0ef41Sopenharmony_ci  },
38671cb0ef41Sopenharmony_ci  "A space in a host causes failure",
38681cb0ef41Sopenharmony_ci  {
38691cb0ef41Sopenharmony_ci    "input": "http://192.168.0.1 hello",
38701cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38711cb0ef41Sopenharmony_ci    "failure": true
38721cb0ef41Sopenharmony_ci  },
38731cb0ef41Sopenharmony_ci  {
38741cb0ef41Sopenharmony_ci    "input": "https://x x:12",
38751cb0ef41Sopenharmony_ci    "base": null,
38761cb0ef41Sopenharmony_ci    "failure": true
38771cb0ef41Sopenharmony_ci  },
38781cb0ef41Sopenharmony_ci  "Fullwidth and escaped UTF-8 fullwidth should still be treated as IP",
38791cb0ef41Sopenharmony_ci  {
38801cb0ef41Sopenharmony_ci    "input": "http://0Xc0.0250.01",
38811cb0ef41Sopenharmony_ci    "base": "http://other.com/",
38821cb0ef41Sopenharmony_ci    "href": "http://192.168.0.1/",
38831cb0ef41Sopenharmony_ci    "origin": "http://192.168.0.1",
38841cb0ef41Sopenharmony_ci    "protocol": "http:",
38851cb0ef41Sopenharmony_ci    "username": "",
38861cb0ef41Sopenharmony_ci    "password": "",
38871cb0ef41Sopenharmony_ci    "host": "192.168.0.1",
38881cb0ef41Sopenharmony_ci    "hostname": "192.168.0.1",
38891cb0ef41Sopenharmony_ci    "port": "",
38901cb0ef41Sopenharmony_ci    "pathname": "/",
38911cb0ef41Sopenharmony_ci    "search": "",
38921cb0ef41Sopenharmony_ci    "hash": ""
38931cb0ef41Sopenharmony_ci  },
38941cb0ef41Sopenharmony_ci  "Domains with empty labels",
38951cb0ef41Sopenharmony_ci  {
38961cb0ef41Sopenharmony_ci    "input": "http://./",
38971cb0ef41Sopenharmony_ci    "base": null,
38981cb0ef41Sopenharmony_ci    "href": "http://./",
38991cb0ef41Sopenharmony_ci    "origin": "http://.",
39001cb0ef41Sopenharmony_ci    "protocol": "http:",
39011cb0ef41Sopenharmony_ci    "username": "",
39021cb0ef41Sopenharmony_ci    "password": "",
39031cb0ef41Sopenharmony_ci    "host": ".",
39041cb0ef41Sopenharmony_ci    "hostname": ".",
39051cb0ef41Sopenharmony_ci    "port": "",
39061cb0ef41Sopenharmony_ci    "pathname": "/",
39071cb0ef41Sopenharmony_ci    "search": "",
39081cb0ef41Sopenharmony_ci    "hash": ""
39091cb0ef41Sopenharmony_ci  },
39101cb0ef41Sopenharmony_ci  {
39111cb0ef41Sopenharmony_ci    "input": "http://../",
39121cb0ef41Sopenharmony_ci    "base": null,
39131cb0ef41Sopenharmony_ci    "href": "http://../",
39141cb0ef41Sopenharmony_ci    "origin": "http://..",
39151cb0ef41Sopenharmony_ci    "protocol": "http:",
39161cb0ef41Sopenharmony_ci    "username": "",
39171cb0ef41Sopenharmony_ci    "password": "",
39181cb0ef41Sopenharmony_ci    "host": "..",
39191cb0ef41Sopenharmony_ci    "hostname": "..",
39201cb0ef41Sopenharmony_ci    "port": "",
39211cb0ef41Sopenharmony_ci    "pathname": "/",
39221cb0ef41Sopenharmony_ci    "search": "",
39231cb0ef41Sopenharmony_ci    "hash": ""
39241cb0ef41Sopenharmony_ci  },
39251cb0ef41Sopenharmony_ci  "Non-special domains with empty labels",
39261cb0ef41Sopenharmony_ci  {
39271cb0ef41Sopenharmony_ci    "input": "h://.",
39281cb0ef41Sopenharmony_ci    "base": null,
39291cb0ef41Sopenharmony_ci    "href": "h://.",
39301cb0ef41Sopenharmony_ci    "origin": "null",
39311cb0ef41Sopenharmony_ci    "protocol": "h:",
39321cb0ef41Sopenharmony_ci    "username": "",
39331cb0ef41Sopenharmony_ci    "password": "",
39341cb0ef41Sopenharmony_ci    "host": ".",
39351cb0ef41Sopenharmony_ci    "hostname": ".",
39361cb0ef41Sopenharmony_ci    "port": "",
39371cb0ef41Sopenharmony_ci    "pathname": "",
39381cb0ef41Sopenharmony_ci    "search": "",
39391cb0ef41Sopenharmony_ci    "hash": ""
39401cb0ef41Sopenharmony_ci  },
39411cb0ef41Sopenharmony_ci  "Broken IPv6",
39421cb0ef41Sopenharmony_ci  {
39431cb0ef41Sopenharmony_ci    "input": "http://[www.google.com]/",
39441cb0ef41Sopenharmony_ci    "base": null,
39451cb0ef41Sopenharmony_ci    "failure": true
39461cb0ef41Sopenharmony_ci  },
39471cb0ef41Sopenharmony_ci  {
39481cb0ef41Sopenharmony_ci    "input": "http://[google.com]",
39491cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39501cb0ef41Sopenharmony_ci    "failure": true
39511cb0ef41Sopenharmony_ci  },
39521cb0ef41Sopenharmony_ci  {
39531cb0ef41Sopenharmony_ci    "input": "http://[::1.2.3.4x]",
39541cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39551cb0ef41Sopenharmony_ci    "failure": true
39561cb0ef41Sopenharmony_ci  },
39571cb0ef41Sopenharmony_ci  {
39581cb0ef41Sopenharmony_ci    "input": "http://[::1.2.3.]",
39591cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39601cb0ef41Sopenharmony_ci    "failure": true
39611cb0ef41Sopenharmony_ci  },
39621cb0ef41Sopenharmony_ci  {
39631cb0ef41Sopenharmony_ci    "input": "http://[::1.2.]",
39641cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39651cb0ef41Sopenharmony_ci    "failure": true
39661cb0ef41Sopenharmony_ci  },
39671cb0ef41Sopenharmony_ci  {
39681cb0ef41Sopenharmony_ci    "input": "http://[::.1.2]",
39691cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39701cb0ef41Sopenharmony_ci    "failure": true
39711cb0ef41Sopenharmony_ci  },
39721cb0ef41Sopenharmony_ci  {
39731cb0ef41Sopenharmony_ci    "input": "http://[::1.]",
39741cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39751cb0ef41Sopenharmony_ci    "failure": true
39761cb0ef41Sopenharmony_ci  },
39771cb0ef41Sopenharmony_ci  {
39781cb0ef41Sopenharmony_ci    "input": "http://[::.1]",
39791cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39801cb0ef41Sopenharmony_ci    "failure": true
39811cb0ef41Sopenharmony_ci  },
39821cb0ef41Sopenharmony_ci  {
39831cb0ef41Sopenharmony_ci    "input": "http://[::%31]",
39841cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39851cb0ef41Sopenharmony_ci    "failure": true
39861cb0ef41Sopenharmony_ci  },
39871cb0ef41Sopenharmony_ci  {
39881cb0ef41Sopenharmony_ci    "input": "http://%5B::1]",
39891cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39901cb0ef41Sopenharmony_ci    "failure": true
39911cb0ef41Sopenharmony_ci  },
39921cb0ef41Sopenharmony_ci  "Misc Unicode",
39931cb0ef41Sopenharmony_ci  {
39941cb0ef41Sopenharmony_ci    "input": "http://foo:�@example.com/bar",
39951cb0ef41Sopenharmony_ci    "base": "http://other.com/",
39961cb0ef41Sopenharmony_ci    "href": "http://foo:%F0%9F%92%A9@example.com/bar",
39971cb0ef41Sopenharmony_ci    "origin": "http://example.com",
39981cb0ef41Sopenharmony_ci    "protocol": "http:",
39991cb0ef41Sopenharmony_ci    "username": "foo",
40001cb0ef41Sopenharmony_ci    "password": "%F0%9F%92%A9",
40011cb0ef41Sopenharmony_ci    "host": "example.com",
40021cb0ef41Sopenharmony_ci    "hostname": "example.com",
40031cb0ef41Sopenharmony_ci    "port": "",
40041cb0ef41Sopenharmony_ci    "pathname": "/bar",
40051cb0ef41Sopenharmony_ci    "search": "",
40061cb0ef41Sopenharmony_ci    "hash": ""
40071cb0ef41Sopenharmony_ci  },
40081cb0ef41Sopenharmony_ci  "# resolving a fragment against any scheme succeeds",
40091cb0ef41Sopenharmony_ci  {
40101cb0ef41Sopenharmony_ci    "input": "#",
40111cb0ef41Sopenharmony_ci    "base": "test:test",
40121cb0ef41Sopenharmony_ci    "href": "test:test#",
40131cb0ef41Sopenharmony_ci    "origin": "null",
40141cb0ef41Sopenharmony_ci    "protocol": "test:",
40151cb0ef41Sopenharmony_ci    "username": "",
40161cb0ef41Sopenharmony_ci    "password": "",
40171cb0ef41Sopenharmony_ci    "host": "",
40181cb0ef41Sopenharmony_ci    "hostname": "",
40191cb0ef41Sopenharmony_ci    "port": "",
40201cb0ef41Sopenharmony_ci    "pathname": "test",
40211cb0ef41Sopenharmony_ci    "search": "",
40221cb0ef41Sopenharmony_ci    "hash": ""
40231cb0ef41Sopenharmony_ci  },
40241cb0ef41Sopenharmony_ci  {
40251cb0ef41Sopenharmony_ci    "input": "#x",
40261cb0ef41Sopenharmony_ci    "base": "mailto:x@x.com",
40271cb0ef41Sopenharmony_ci    "href": "mailto:x@x.com#x",
40281cb0ef41Sopenharmony_ci    "origin": "null",
40291cb0ef41Sopenharmony_ci    "protocol": "mailto:",
40301cb0ef41Sopenharmony_ci    "username": "",
40311cb0ef41Sopenharmony_ci    "password": "",
40321cb0ef41Sopenharmony_ci    "host": "",
40331cb0ef41Sopenharmony_ci    "hostname": "",
40341cb0ef41Sopenharmony_ci    "port": "",
40351cb0ef41Sopenharmony_ci    "pathname": "x@x.com",
40361cb0ef41Sopenharmony_ci    "search": "",
40371cb0ef41Sopenharmony_ci    "hash": "#x"
40381cb0ef41Sopenharmony_ci  },
40391cb0ef41Sopenharmony_ci  {
40401cb0ef41Sopenharmony_ci    "input": "#x",
40411cb0ef41Sopenharmony_ci    "base": "data:,",
40421cb0ef41Sopenharmony_ci    "href": "data:,#x",
40431cb0ef41Sopenharmony_ci    "origin": "null",
40441cb0ef41Sopenharmony_ci    "protocol": "data:",
40451cb0ef41Sopenharmony_ci    "username": "",
40461cb0ef41Sopenharmony_ci    "password": "",
40471cb0ef41Sopenharmony_ci    "host": "",
40481cb0ef41Sopenharmony_ci    "hostname": "",
40491cb0ef41Sopenharmony_ci    "port": "",
40501cb0ef41Sopenharmony_ci    "pathname": ",",
40511cb0ef41Sopenharmony_ci    "search": "",
40521cb0ef41Sopenharmony_ci    "hash": "#x"
40531cb0ef41Sopenharmony_ci  },
40541cb0ef41Sopenharmony_ci  {
40551cb0ef41Sopenharmony_ci    "input": "#x",
40561cb0ef41Sopenharmony_ci    "base": "about:blank",
40571cb0ef41Sopenharmony_ci    "href": "about:blank#x",
40581cb0ef41Sopenharmony_ci    "origin": "null",
40591cb0ef41Sopenharmony_ci    "protocol": "about:",
40601cb0ef41Sopenharmony_ci    "username": "",
40611cb0ef41Sopenharmony_ci    "password": "",
40621cb0ef41Sopenharmony_ci    "host": "",
40631cb0ef41Sopenharmony_ci    "hostname": "",
40641cb0ef41Sopenharmony_ci    "port": "",
40651cb0ef41Sopenharmony_ci    "pathname": "blank",
40661cb0ef41Sopenharmony_ci    "search": "",
40671cb0ef41Sopenharmony_ci    "hash": "#x"
40681cb0ef41Sopenharmony_ci  },
40691cb0ef41Sopenharmony_ci  {
40701cb0ef41Sopenharmony_ci    "input": "#x:y",
40711cb0ef41Sopenharmony_ci    "base": "about:blank",
40721cb0ef41Sopenharmony_ci    "href": "about:blank#x:y",
40731cb0ef41Sopenharmony_ci    "origin": "null",
40741cb0ef41Sopenharmony_ci    "protocol": "about:",
40751cb0ef41Sopenharmony_ci    "username": "",
40761cb0ef41Sopenharmony_ci    "password": "",
40771cb0ef41Sopenharmony_ci    "host": "",
40781cb0ef41Sopenharmony_ci    "hostname": "",
40791cb0ef41Sopenharmony_ci    "port": "",
40801cb0ef41Sopenharmony_ci    "pathname": "blank",
40811cb0ef41Sopenharmony_ci    "search": "",
40821cb0ef41Sopenharmony_ci    "hash": "#x:y"
40831cb0ef41Sopenharmony_ci  },
40841cb0ef41Sopenharmony_ci  {
40851cb0ef41Sopenharmony_ci    "input": "#",
40861cb0ef41Sopenharmony_ci    "base": "test:test?test",
40871cb0ef41Sopenharmony_ci    "href": "test:test?test#",
40881cb0ef41Sopenharmony_ci    "origin": "null",
40891cb0ef41Sopenharmony_ci    "protocol": "test:",
40901cb0ef41Sopenharmony_ci    "username": "",
40911cb0ef41Sopenharmony_ci    "password": "",
40921cb0ef41Sopenharmony_ci    "host": "",
40931cb0ef41Sopenharmony_ci    "hostname": "",
40941cb0ef41Sopenharmony_ci    "port": "",
40951cb0ef41Sopenharmony_ci    "pathname": "test",
40961cb0ef41Sopenharmony_ci    "search": "?test",
40971cb0ef41Sopenharmony_ci    "hash": ""
40981cb0ef41Sopenharmony_ci  },
40991cb0ef41Sopenharmony_ci  "# multiple @ in authority state",
41001cb0ef41Sopenharmony_ci  {
41011cb0ef41Sopenharmony_ci    "input": "https://@test@test@example:800/",
41021cb0ef41Sopenharmony_ci    "base": "http://doesnotmatter/",
41031cb0ef41Sopenharmony_ci    "href": "https://%40test%40test@example:800/",
41041cb0ef41Sopenharmony_ci    "origin": "https://example:800",
41051cb0ef41Sopenharmony_ci    "protocol": "https:",
41061cb0ef41Sopenharmony_ci    "username": "%40test%40test",
41071cb0ef41Sopenharmony_ci    "password": "",
41081cb0ef41Sopenharmony_ci    "host": "example:800",
41091cb0ef41Sopenharmony_ci    "hostname": "example",
41101cb0ef41Sopenharmony_ci    "port": "800",
41111cb0ef41Sopenharmony_ci    "pathname": "/",
41121cb0ef41Sopenharmony_ci    "search": "",
41131cb0ef41Sopenharmony_ci    "hash": ""
41141cb0ef41Sopenharmony_ci  },
41151cb0ef41Sopenharmony_ci  {
41161cb0ef41Sopenharmony_ci    "input": "https://@@@example",
41171cb0ef41Sopenharmony_ci    "base": "http://doesnotmatter/",
41181cb0ef41Sopenharmony_ci    "href": "https://%40%40@example/",
41191cb0ef41Sopenharmony_ci    "origin": "https://example",
41201cb0ef41Sopenharmony_ci    "protocol": "https:",
41211cb0ef41Sopenharmony_ci    "username": "%40%40",
41221cb0ef41Sopenharmony_ci    "password": "",
41231cb0ef41Sopenharmony_ci    "host": "example",
41241cb0ef41Sopenharmony_ci    "hostname": "example",
41251cb0ef41Sopenharmony_ci    "port": "",
41261cb0ef41Sopenharmony_ci    "pathname": "/",
41271cb0ef41Sopenharmony_ci    "search": "",
41281cb0ef41Sopenharmony_ci    "hash": ""
41291cb0ef41Sopenharmony_ci  },
41301cb0ef41Sopenharmony_ci  "non-az-09 characters",
41311cb0ef41Sopenharmony_ci  {
41321cb0ef41Sopenharmony_ci    "input": "http://`{}:`{}@h/`{}?`{}",
41331cb0ef41Sopenharmony_ci    "base": "http://doesnotmatter/",
41341cb0ef41Sopenharmony_ci    "href": "http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}",
41351cb0ef41Sopenharmony_ci    "origin": "http://h",
41361cb0ef41Sopenharmony_ci    "protocol": "http:",
41371cb0ef41Sopenharmony_ci    "username": "%60%7B%7D",
41381cb0ef41Sopenharmony_ci    "password": "%60%7B%7D",
41391cb0ef41Sopenharmony_ci    "host": "h",
41401cb0ef41Sopenharmony_ci    "hostname": "h",
41411cb0ef41Sopenharmony_ci    "port": "",
41421cb0ef41Sopenharmony_ci    "pathname": "/%60%7B%7D",
41431cb0ef41Sopenharmony_ci    "search": "?`{}",
41441cb0ef41Sopenharmony_ci    "hash": ""
41451cb0ef41Sopenharmony_ci  },
41461cb0ef41Sopenharmony_ci  "byte is ' and url is special",
41471cb0ef41Sopenharmony_ci  {
41481cb0ef41Sopenharmony_ci    "input": "http://host/?'",
41491cb0ef41Sopenharmony_ci    "base": null,
41501cb0ef41Sopenharmony_ci    "href": "http://host/?%27",
41511cb0ef41Sopenharmony_ci    "origin": "http://host",
41521cb0ef41Sopenharmony_ci    "protocol": "http:",
41531cb0ef41Sopenharmony_ci    "username": "",
41541cb0ef41Sopenharmony_ci    "password": "",
41551cb0ef41Sopenharmony_ci    "host": "host",
41561cb0ef41Sopenharmony_ci    "hostname": "host",
41571cb0ef41Sopenharmony_ci    "port": "",
41581cb0ef41Sopenharmony_ci    "pathname": "/",
41591cb0ef41Sopenharmony_ci    "search": "?%27",
41601cb0ef41Sopenharmony_ci    "hash": ""
41611cb0ef41Sopenharmony_ci  },
41621cb0ef41Sopenharmony_ci  {
41631cb0ef41Sopenharmony_ci    "input": "notspecial://host/?'",
41641cb0ef41Sopenharmony_ci    "base": null,
41651cb0ef41Sopenharmony_ci    "href": "notspecial://host/?'",
41661cb0ef41Sopenharmony_ci    "origin": "null",
41671cb0ef41Sopenharmony_ci    "protocol": "notspecial:",
41681cb0ef41Sopenharmony_ci    "username": "",
41691cb0ef41Sopenharmony_ci    "password": "",
41701cb0ef41Sopenharmony_ci    "host": "host",
41711cb0ef41Sopenharmony_ci    "hostname": "host",
41721cb0ef41Sopenharmony_ci    "port": "",
41731cb0ef41Sopenharmony_ci    "pathname": "/",
41741cb0ef41Sopenharmony_ci    "search": "?'",
41751cb0ef41Sopenharmony_ci    "hash": ""
41761cb0ef41Sopenharmony_ci  },
41771cb0ef41Sopenharmony_ci  "# Credentials in base",
41781cb0ef41Sopenharmony_ci  {
41791cb0ef41Sopenharmony_ci    "input": "/some/path",
41801cb0ef41Sopenharmony_ci    "base": "http://user@example.org/smth",
41811cb0ef41Sopenharmony_ci    "href": "http://user@example.org/some/path",
41821cb0ef41Sopenharmony_ci    "origin": "http://example.org",
41831cb0ef41Sopenharmony_ci    "protocol": "http:",
41841cb0ef41Sopenharmony_ci    "username": "user",
41851cb0ef41Sopenharmony_ci    "password": "",
41861cb0ef41Sopenharmony_ci    "host": "example.org",
41871cb0ef41Sopenharmony_ci    "hostname": "example.org",
41881cb0ef41Sopenharmony_ci    "port": "",
41891cb0ef41Sopenharmony_ci    "pathname": "/some/path",
41901cb0ef41Sopenharmony_ci    "search": "",
41911cb0ef41Sopenharmony_ci    "hash": ""
41921cb0ef41Sopenharmony_ci  },
41931cb0ef41Sopenharmony_ci  {
41941cb0ef41Sopenharmony_ci    "input": "",
41951cb0ef41Sopenharmony_ci    "base": "http://user:pass@example.org:21/smth",
41961cb0ef41Sopenharmony_ci    "href": "http://user:pass@example.org:21/smth",
41971cb0ef41Sopenharmony_ci    "origin": "http://example.org:21",
41981cb0ef41Sopenharmony_ci    "protocol": "http:",
41991cb0ef41Sopenharmony_ci    "username": "user",
42001cb0ef41Sopenharmony_ci    "password": "pass",
42011cb0ef41Sopenharmony_ci    "host": "example.org:21",
42021cb0ef41Sopenharmony_ci    "hostname": "example.org",
42031cb0ef41Sopenharmony_ci    "port": "21",
42041cb0ef41Sopenharmony_ci    "pathname": "/smth",
42051cb0ef41Sopenharmony_ci    "search": "",
42061cb0ef41Sopenharmony_ci    "hash": ""
42071cb0ef41Sopenharmony_ci  },
42081cb0ef41Sopenharmony_ci  {
42091cb0ef41Sopenharmony_ci    "input": "/some/path",
42101cb0ef41Sopenharmony_ci    "base": "http://user:pass@example.org:21/smth",
42111cb0ef41Sopenharmony_ci    "href": "http://user:pass@example.org:21/some/path",
42121cb0ef41Sopenharmony_ci    "origin": "http://example.org:21",
42131cb0ef41Sopenharmony_ci    "protocol": "http:",
42141cb0ef41Sopenharmony_ci    "username": "user",
42151cb0ef41Sopenharmony_ci    "password": "pass",
42161cb0ef41Sopenharmony_ci    "host": "example.org:21",
42171cb0ef41Sopenharmony_ci    "hostname": "example.org",
42181cb0ef41Sopenharmony_ci    "port": "21",
42191cb0ef41Sopenharmony_ci    "pathname": "/some/path",
42201cb0ef41Sopenharmony_ci    "search": "",
42211cb0ef41Sopenharmony_ci    "hash": ""
42221cb0ef41Sopenharmony_ci  },
42231cb0ef41Sopenharmony_ci  "# a set of tests designed by zcorpan for relative URLs with unknown schemes",
42241cb0ef41Sopenharmony_ci  {
42251cb0ef41Sopenharmony_ci    "input": "i",
42261cb0ef41Sopenharmony_ci    "base": "sc:sd",
42271cb0ef41Sopenharmony_ci    "failure": true
42281cb0ef41Sopenharmony_ci  },
42291cb0ef41Sopenharmony_ci  {
42301cb0ef41Sopenharmony_ci    "input": "i",
42311cb0ef41Sopenharmony_ci    "base": "sc:sd/sd",
42321cb0ef41Sopenharmony_ci    "failure": true
42331cb0ef41Sopenharmony_ci  },
42341cb0ef41Sopenharmony_ci  {
42351cb0ef41Sopenharmony_ci    "input": "i",
42361cb0ef41Sopenharmony_ci    "base": "sc:/pa/pa",
42371cb0ef41Sopenharmony_ci    "href": "sc:/pa/i",
42381cb0ef41Sopenharmony_ci    "origin": "null",
42391cb0ef41Sopenharmony_ci    "protocol": "sc:",
42401cb0ef41Sopenharmony_ci    "username": "",
42411cb0ef41Sopenharmony_ci    "password": "",
42421cb0ef41Sopenharmony_ci    "host": "",
42431cb0ef41Sopenharmony_ci    "hostname": "",
42441cb0ef41Sopenharmony_ci    "port": "",
42451cb0ef41Sopenharmony_ci    "pathname": "/pa/i",
42461cb0ef41Sopenharmony_ci    "search": "",
42471cb0ef41Sopenharmony_ci    "hash": ""
42481cb0ef41Sopenharmony_ci  },
42491cb0ef41Sopenharmony_ci  {
42501cb0ef41Sopenharmony_ci    "input": "i",
42511cb0ef41Sopenharmony_ci    "base": "sc://ho/pa",
42521cb0ef41Sopenharmony_ci    "href": "sc://ho/i",
42531cb0ef41Sopenharmony_ci    "origin": "null",
42541cb0ef41Sopenharmony_ci    "protocol": "sc:",
42551cb0ef41Sopenharmony_ci    "username": "",
42561cb0ef41Sopenharmony_ci    "password": "",
42571cb0ef41Sopenharmony_ci    "host": "ho",
42581cb0ef41Sopenharmony_ci    "hostname": "ho",
42591cb0ef41Sopenharmony_ci    "port": "",
42601cb0ef41Sopenharmony_ci    "pathname": "/i",
42611cb0ef41Sopenharmony_ci    "search": "",
42621cb0ef41Sopenharmony_ci    "hash": ""
42631cb0ef41Sopenharmony_ci  },
42641cb0ef41Sopenharmony_ci  {
42651cb0ef41Sopenharmony_ci    "input": "i",
42661cb0ef41Sopenharmony_ci    "base": "sc:///pa/pa",
42671cb0ef41Sopenharmony_ci    "href": "sc:///pa/i",
42681cb0ef41Sopenharmony_ci    "origin": "null",
42691cb0ef41Sopenharmony_ci    "protocol": "sc:",
42701cb0ef41Sopenharmony_ci    "username": "",
42711cb0ef41Sopenharmony_ci    "password": "",
42721cb0ef41Sopenharmony_ci    "host": "",
42731cb0ef41Sopenharmony_ci    "hostname": "",
42741cb0ef41Sopenharmony_ci    "port": "",
42751cb0ef41Sopenharmony_ci    "pathname": "/pa/i",
42761cb0ef41Sopenharmony_ci    "search": "",
42771cb0ef41Sopenharmony_ci    "hash": ""
42781cb0ef41Sopenharmony_ci  },
42791cb0ef41Sopenharmony_ci  {
42801cb0ef41Sopenharmony_ci    "input": "../i",
42811cb0ef41Sopenharmony_ci    "base": "sc:sd",
42821cb0ef41Sopenharmony_ci    "failure": true
42831cb0ef41Sopenharmony_ci  },
42841cb0ef41Sopenharmony_ci  {
42851cb0ef41Sopenharmony_ci    "input": "../i",
42861cb0ef41Sopenharmony_ci    "base": "sc:sd/sd",
42871cb0ef41Sopenharmony_ci    "failure": true
42881cb0ef41Sopenharmony_ci  },
42891cb0ef41Sopenharmony_ci  {
42901cb0ef41Sopenharmony_ci    "input": "../i",
42911cb0ef41Sopenharmony_ci    "base": "sc:/pa/pa",
42921cb0ef41Sopenharmony_ci    "href": "sc:/i",
42931cb0ef41Sopenharmony_ci    "origin": "null",
42941cb0ef41Sopenharmony_ci    "protocol": "sc:",
42951cb0ef41Sopenharmony_ci    "username": "",
42961cb0ef41Sopenharmony_ci    "password": "",
42971cb0ef41Sopenharmony_ci    "host": "",
42981cb0ef41Sopenharmony_ci    "hostname": "",
42991cb0ef41Sopenharmony_ci    "port": "",
43001cb0ef41Sopenharmony_ci    "pathname": "/i",
43011cb0ef41Sopenharmony_ci    "search": "",
43021cb0ef41Sopenharmony_ci    "hash": ""
43031cb0ef41Sopenharmony_ci  },
43041cb0ef41Sopenharmony_ci  {
43051cb0ef41Sopenharmony_ci    "input": "../i",
43061cb0ef41Sopenharmony_ci    "base": "sc://ho/pa",
43071cb0ef41Sopenharmony_ci    "href": "sc://ho/i",
43081cb0ef41Sopenharmony_ci    "origin": "null",
43091cb0ef41Sopenharmony_ci    "protocol": "sc:",
43101cb0ef41Sopenharmony_ci    "username": "",
43111cb0ef41Sopenharmony_ci    "password": "",
43121cb0ef41Sopenharmony_ci    "host": "ho",
43131cb0ef41Sopenharmony_ci    "hostname": "ho",
43141cb0ef41Sopenharmony_ci    "port": "",
43151cb0ef41Sopenharmony_ci    "pathname": "/i",
43161cb0ef41Sopenharmony_ci    "search": "",
43171cb0ef41Sopenharmony_ci    "hash": ""
43181cb0ef41Sopenharmony_ci  },
43191cb0ef41Sopenharmony_ci  {
43201cb0ef41Sopenharmony_ci    "input": "../i",
43211cb0ef41Sopenharmony_ci    "base": "sc:///pa/pa",
43221cb0ef41Sopenharmony_ci    "href": "sc:///i",
43231cb0ef41Sopenharmony_ci    "origin": "null",
43241cb0ef41Sopenharmony_ci    "protocol": "sc:",
43251cb0ef41Sopenharmony_ci    "username": "",
43261cb0ef41Sopenharmony_ci    "password": "",
43271cb0ef41Sopenharmony_ci    "host": "",
43281cb0ef41Sopenharmony_ci    "hostname": "",
43291cb0ef41Sopenharmony_ci    "port": "",
43301cb0ef41Sopenharmony_ci    "pathname": "/i",
43311cb0ef41Sopenharmony_ci    "search": "",
43321cb0ef41Sopenharmony_ci    "hash": ""
43331cb0ef41Sopenharmony_ci  },
43341cb0ef41Sopenharmony_ci  {
43351cb0ef41Sopenharmony_ci    "input": "/i",
43361cb0ef41Sopenharmony_ci    "base": "sc:sd",
43371cb0ef41Sopenharmony_ci    "failure": true
43381cb0ef41Sopenharmony_ci  },
43391cb0ef41Sopenharmony_ci  {
43401cb0ef41Sopenharmony_ci    "input": "/i",
43411cb0ef41Sopenharmony_ci    "base": "sc:sd/sd",
43421cb0ef41Sopenharmony_ci    "failure": true
43431cb0ef41Sopenharmony_ci  },
43441cb0ef41Sopenharmony_ci  {
43451cb0ef41Sopenharmony_ci    "input": "/i",
43461cb0ef41Sopenharmony_ci    "base": "sc:/pa/pa",
43471cb0ef41Sopenharmony_ci    "href": "sc:/i",
43481cb0ef41Sopenharmony_ci    "origin": "null",
43491cb0ef41Sopenharmony_ci    "protocol": "sc:",
43501cb0ef41Sopenharmony_ci    "username": "",
43511cb0ef41Sopenharmony_ci    "password": "",
43521cb0ef41Sopenharmony_ci    "host": "",
43531cb0ef41Sopenharmony_ci    "hostname": "",
43541cb0ef41Sopenharmony_ci    "port": "",
43551cb0ef41Sopenharmony_ci    "pathname": "/i",
43561cb0ef41Sopenharmony_ci    "search": "",
43571cb0ef41Sopenharmony_ci    "hash": ""
43581cb0ef41Sopenharmony_ci  },
43591cb0ef41Sopenharmony_ci  {
43601cb0ef41Sopenharmony_ci    "input": "/i",
43611cb0ef41Sopenharmony_ci    "base": "sc://ho/pa",
43621cb0ef41Sopenharmony_ci    "href": "sc://ho/i",
43631cb0ef41Sopenharmony_ci    "origin": "null",
43641cb0ef41Sopenharmony_ci    "protocol": "sc:",
43651cb0ef41Sopenharmony_ci    "username": "",
43661cb0ef41Sopenharmony_ci    "password": "",
43671cb0ef41Sopenharmony_ci    "host": "ho",
43681cb0ef41Sopenharmony_ci    "hostname": "ho",
43691cb0ef41Sopenharmony_ci    "port": "",
43701cb0ef41Sopenharmony_ci    "pathname": "/i",
43711cb0ef41Sopenharmony_ci    "search": "",
43721cb0ef41Sopenharmony_ci    "hash": ""
43731cb0ef41Sopenharmony_ci  },
43741cb0ef41Sopenharmony_ci  {
43751cb0ef41Sopenharmony_ci    "input": "/i",
43761cb0ef41Sopenharmony_ci    "base": "sc:///pa/pa",
43771cb0ef41Sopenharmony_ci    "href": "sc:///i",
43781cb0ef41Sopenharmony_ci    "origin": "null",
43791cb0ef41Sopenharmony_ci    "protocol": "sc:",
43801cb0ef41Sopenharmony_ci    "username": "",
43811cb0ef41Sopenharmony_ci    "password": "",
43821cb0ef41Sopenharmony_ci    "host": "",
43831cb0ef41Sopenharmony_ci    "hostname": "",
43841cb0ef41Sopenharmony_ci    "port": "",
43851cb0ef41Sopenharmony_ci    "pathname": "/i",
43861cb0ef41Sopenharmony_ci    "search": "",
43871cb0ef41Sopenharmony_ci    "hash": ""
43881cb0ef41Sopenharmony_ci  },
43891cb0ef41Sopenharmony_ci  {
43901cb0ef41Sopenharmony_ci    "input": "?i",
43911cb0ef41Sopenharmony_ci    "base": "sc:sd",
43921cb0ef41Sopenharmony_ci    "failure": true
43931cb0ef41Sopenharmony_ci  },
43941cb0ef41Sopenharmony_ci  {
43951cb0ef41Sopenharmony_ci    "input": "?i",
43961cb0ef41Sopenharmony_ci    "base": "sc:sd/sd",
43971cb0ef41Sopenharmony_ci    "failure": true
43981cb0ef41Sopenharmony_ci  },
43991cb0ef41Sopenharmony_ci  {
44001cb0ef41Sopenharmony_ci    "input": "?i",
44011cb0ef41Sopenharmony_ci    "base": "sc:/pa/pa",
44021cb0ef41Sopenharmony_ci    "href": "sc:/pa/pa?i",
44031cb0ef41Sopenharmony_ci    "origin": "null",
44041cb0ef41Sopenharmony_ci    "protocol": "sc:",
44051cb0ef41Sopenharmony_ci    "username": "",
44061cb0ef41Sopenharmony_ci    "password": "",
44071cb0ef41Sopenharmony_ci    "host": "",
44081cb0ef41Sopenharmony_ci    "hostname": "",
44091cb0ef41Sopenharmony_ci    "port": "",
44101cb0ef41Sopenharmony_ci    "pathname": "/pa/pa",
44111cb0ef41Sopenharmony_ci    "search": "?i",
44121cb0ef41Sopenharmony_ci    "hash": ""
44131cb0ef41Sopenharmony_ci  },
44141cb0ef41Sopenharmony_ci  {
44151cb0ef41Sopenharmony_ci    "input": "?i",
44161cb0ef41Sopenharmony_ci    "base": "sc://ho/pa",
44171cb0ef41Sopenharmony_ci    "href": "sc://ho/pa?i",
44181cb0ef41Sopenharmony_ci    "origin": "null",
44191cb0ef41Sopenharmony_ci    "protocol": "sc:",
44201cb0ef41Sopenharmony_ci    "username": "",
44211cb0ef41Sopenharmony_ci    "password": "",
44221cb0ef41Sopenharmony_ci    "host": "ho",
44231cb0ef41Sopenharmony_ci    "hostname": "ho",
44241cb0ef41Sopenharmony_ci    "port": "",
44251cb0ef41Sopenharmony_ci    "pathname": "/pa",
44261cb0ef41Sopenharmony_ci    "search": "?i",
44271cb0ef41Sopenharmony_ci    "hash": ""
44281cb0ef41Sopenharmony_ci  },
44291cb0ef41Sopenharmony_ci  {
44301cb0ef41Sopenharmony_ci    "input": "?i",
44311cb0ef41Sopenharmony_ci    "base": "sc:///pa/pa",
44321cb0ef41Sopenharmony_ci    "href": "sc:///pa/pa?i",
44331cb0ef41Sopenharmony_ci    "origin": "null",
44341cb0ef41Sopenharmony_ci    "protocol": "sc:",
44351cb0ef41Sopenharmony_ci    "username": "",
44361cb0ef41Sopenharmony_ci    "password": "",
44371cb0ef41Sopenharmony_ci    "host": "",
44381cb0ef41Sopenharmony_ci    "hostname": "",
44391cb0ef41Sopenharmony_ci    "port": "",
44401cb0ef41Sopenharmony_ci    "pathname": "/pa/pa",
44411cb0ef41Sopenharmony_ci    "search": "?i",
44421cb0ef41Sopenharmony_ci    "hash": ""
44431cb0ef41Sopenharmony_ci  },
44441cb0ef41Sopenharmony_ci  {
44451cb0ef41Sopenharmony_ci    "input": "#i",
44461cb0ef41Sopenharmony_ci    "base": "sc:sd",
44471cb0ef41Sopenharmony_ci    "href": "sc:sd#i",
44481cb0ef41Sopenharmony_ci    "origin": "null",
44491cb0ef41Sopenharmony_ci    "protocol": "sc:",
44501cb0ef41Sopenharmony_ci    "username": "",
44511cb0ef41Sopenharmony_ci    "password": "",
44521cb0ef41Sopenharmony_ci    "host": "",
44531cb0ef41Sopenharmony_ci    "hostname": "",
44541cb0ef41Sopenharmony_ci    "port": "",
44551cb0ef41Sopenharmony_ci    "pathname": "sd",
44561cb0ef41Sopenharmony_ci    "search": "",
44571cb0ef41Sopenharmony_ci    "hash": "#i"
44581cb0ef41Sopenharmony_ci  },
44591cb0ef41Sopenharmony_ci  {
44601cb0ef41Sopenharmony_ci    "input": "#i",
44611cb0ef41Sopenharmony_ci    "base": "sc:sd/sd",
44621cb0ef41Sopenharmony_ci    "href": "sc:sd/sd#i",
44631cb0ef41Sopenharmony_ci    "origin": "null",
44641cb0ef41Sopenharmony_ci    "protocol": "sc:",
44651cb0ef41Sopenharmony_ci    "username": "",
44661cb0ef41Sopenharmony_ci    "password": "",
44671cb0ef41Sopenharmony_ci    "host": "",
44681cb0ef41Sopenharmony_ci    "hostname": "",
44691cb0ef41Sopenharmony_ci    "port": "",
44701cb0ef41Sopenharmony_ci    "pathname": "sd/sd",
44711cb0ef41Sopenharmony_ci    "search": "",
44721cb0ef41Sopenharmony_ci    "hash": "#i"
44731cb0ef41Sopenharmony_ci  },
44741cb0ef41Sopenharmony_ci  {
44751cb0ef41Sopenharmony_ci    "input": "#i",
44761cb0ef41Sopenharmony_ci    "base": "sc:/pa/pa",
44771cb0ef41Sopenharmony_ci    "href": "sc:/pa/pa#i",
44781cb0ef41Sopenharmony_ci    "origin": "null",
44791cb0ef41Sopenharmony_ci    "protocol": "sc:",
44801cb0ef41Sopenharmony_ci    "username": "",
44811cb0ef41Sopenharmony_ci    "password": "",
44821cb0ef41Sopenharmony_ci    "host": "",
44831cb0ef41Sopenharmony_ci    "hostname": "",
44841cb0ef41Sopenharmony_ci    "port": "",
44851cb0ef41Sopenharmony_ci    "pathname": "/pa/pa",
44861cb0ef41Sopenharmony_ci    "search": "",
44871cb0ef41Sopenharmony_ci    "hash": "#i"
44881cb0ef41Sopenharmony_ci  },
44891cb0ef41Sopenharmony_ci  {
44901cb0ef41Sopenharmony_ci    "input": "#i",
44911cb0ef41Sopenharmony_ci    "base": "sc://ho/pa",
44921cb0ef41Sopenharmony_ci    "href": "sc://ho/pa#i",
44931cb0ef41Sopenharmony_ci    "origin": "null",
44941cb0ef41Sopenharmony_ci    "protocol": "sc:",
44951cb0ef41Sopenharmony_ci    "username": "",
44961cb0ef41Sopenharmony_ci    "password": "",
44971cb0ef41Sopenharmony_ci    "host": "ho",
44981cb0ef41Sopenharmony_ci    "hostname": "ho",
44991cb0ef41Sopenharmony_ci    "port": "",
45001cb0ef41Sopenharmony_ci    "pathname": "/pa",
45011cb0ef41Sopenharmony_ci    "search": "",
45021cb0ef41Sopenharmony_ci    "hash": "#i"
45031cb0ef41Sopenharmony_ci  },
45041cb0ef41Sopenharmony_ci  {
45051cb0ef41Sopenharmony_ci    "input": "#i",
45061cb0ef41Sopenharmony_ci    "base": "sc:///pa/pa",
45071cb0ef41Sopenharmony_ci    "href": "sc:///pa/pa#i",
45081cb0ef41Sopenharmony_ci    "origin": "null",
45091cb0ef41Sopenharmony_ci    "protocol": "sc:",
45101cb0ef41Sopenharmony_ci    "username": "",
45111cb0ef41Sopenharmony_ci    "password": "",
45121cb0ef41Sopenharmony_ci    "host": "",
45131cb0ef41Sopenharmony_ci    "hostname": "",
45141cb0ef41Sopenharmony_ci    "port": "",
45151cb0ef41Sopenharmony_ci    "pathname": "/pa/pa",
45161cb0ef41Sopenharmony_ci    "search": "",
45171cb0ef41Sopenharmony_ci    "hash": "#i"
45181cb0ef41Sopenharmony_ci  },
45191cb0ef41Sopenharmony_ci  "# make sure that relative URL logic works on known typically non-relative schemes too",
45201cb0ef41Sopenharmony_ci  {
45211cb0ef41Sopenharmony_ci    "input": "about:/../",
45221cb0ef41Sopenharmony_ci    "base": null,
45231cb0ef41Sopenharmony_ci    "href": "about:/",
45241cb0ef41Sopenharmony_ci    "origin": "null",
45251cb0ef41Sopenharmony_ci    "protocol": "about:",
45261cb0ef41Sopenharmony_ci    "username": "",
45271cb0ef41Sopenharmony_ci    "password": "",
45281cb0ef41Sopenharmony_ci    "host": "",
45291cb0ef41Sopenharmony_ci    "hostname": "",
45301cb0ef41Sopenharmony_ci    "port": "",
45311cb0ef41Sopenharmony_ci    "pathname": "/",
45321cb0ef41Sopenharmony_ci    "search": "",
45331cb0ef41Sopenharmony_ci    "hash": ""
45341cb0ef41Sopenharmony_ci  },
45351cb0ef41Sopenharmony_ci  {
45361cb0ef41Sopenharmony_ci    "input": "data:/../",
45371cb0ef41Sopenharmony_ci    "base": null,
45381cb0ef41Sopenharmony_ci    "href": "data:/",
45391cb0ef41Sopenharmony_ci    "origin": "null",
45401cb0ef41Sopenharmony_ci    "protocol": "data:",
45411cb0ef41Sopenharmony_ci    "username": "",
45421cb0ef41Sopenharmony_ci    "password": "",
45431cb0ef41Sopenharmony_ci    "host": "",
45441cb0ef41Sopenharmony_ci    "hostname": "",
45451cb0ef41Sopenharmony_ci    "port": "",
45461cb0ef41Sopenharmony_ci    "pathname": "/",
45471cb0ef41Sopenharmony_ci    "search": "",
45481cb0ef41Sopenharmony_ci    "hash": ""
45491cb0ef41Sopenharmony_ci  },
45501cb0ef41Sopenharmony_ci  {
45511cb0ef41Sopenharmony_ci    "input": "javascript:/../",
45521cb0ef41Sopenharmony_ci    "base": null,
45531cb0ef41Sopenharmony_ci    "href": "javascript:/",
45541cb0ef41Sopenharmony_ci    "origin": "null",
45551cb0ef41Sopenharmony_ci    "protocol": "javascript:",
45561cb0ef41Sopenharmony_ci    "username": "",
45571cb0ef41Sopenharmony_ci    "password": "",
45581cb0ef41Sopenharmony_ci    "host": "",
45591cb0ef41Sopenharmony_ci    "hostname": "",
45601cb0ef41Sopenharmony_ci    "port": "",
45611cb0ef41Sopenharmony_ci    "pathname": "/",
45621cb0ef41Sopenharmony_ci    "search": "",
45631cb0ef41Sopenharmony_ci    "hash": ""
45641cb0ef41Sopenharmony_ci  },
45651cb0ef41Sopenharmony_ci  {
45661cb0ef41Sopenharmony_ci    "input": "mailto:/../",
45671cb0ef41Sopenharmony_ci    "base": null,
45681cb0ef41Sopenharmony_ci    "href": "mailto:/",
45691cb0ef41Sopenharmony_ci    "origin": "null",
45701cb0ef41Sopenharmony_ci    "protocol": "mailto:",
45711cb0ef41Sopenharmony_ci    "username": "",
45721cb0ef41Sopenharmony_ci    "password": "",
45731cb0ef41Sopenharmony_ci    "host": "",
45741cb0ef41Sopenharmony_ci    "hostname": "",
45751cb0ef41Sopenharmony_ci    "port": "",
45761cb0ef41Sopenharmony_ci    "pathname": "/",
45771cb0ef41Sopenharmony_ci    "search": "",
45781cb0ef41Sopenharmony_ci    "hash": ""
45791cb0ef41Sopenharmony_ci  },
45801cb0ef41Sopenharmony_ci  "# unknown schemes and their hosts",
45811cb0ef41Sopenharmony_ci  {
45821cb0ef41Sopenharmony_ci    "input": "sc://ñ.test/",
45831cb0ef41Sopenharmony_ci    "base": null,
45841cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1.test/",
45851cb0ef41Sopenharmony_ci    "origin": "null",
45861cb0ef41Sopenharmony_ci    "protocol": "sc:",
45871cb0ef41Sopenharmony_ci    "username": "",
45881cb0ef41Sopenharmony_ci    "password": "",
45891cb0ef41Sopenharmony_ci    "host": "%C3%B1.test",
45901cb0ef41Sopenharmony_ci    "hostname": "%C3%B1.test",
45911cb0ef41Sopenharmony_ci    "port": "",
45921cb0ef41Sopenharmony_ci    "pathname": "/",
45931cb0ef41Sopenharmony_ci    "search": "",
45941cb0ef41Sopenharmony_ci    "hash": ""
45951cb0ef41Sopenharmony_ci  },
45961cb0ef41Sopenharmony_ci  {
45971cb0ef41Sopenharmony_ci    "input": "sc://%/",
45981cb0ef41Sopenharmony_ci    "base": null,
45991cb0ef41Sopenharmony_ci    "href": "sc://%/",
46001cb0ef41Sopenharmony_ci    "protocol": "sc:",
46011cb0ef41Sopenharmony_ci    "username": "",
46021cb0ef41Sopenharmony_ci    "password": "",
46031cb0ef41Sopenharmony_ci    "host": "%",
46041cb0ef41Sopenharmony_ci    "hostname": "%",
46051cb0ef41Sopenharmony_ci    "port": "",
46061cb0ef41Sopenharmony_ci    "pathname": "/",
46071cb0ef41Sopenharmony_ci    "search": "",
46081cb0ef41Sopenharmony_ci    "hash": ""
46091cb0ef41Sopenharmony_ci  },
46101cb0ef41Sopenharmony_ci  {
46111cb0ef41Sopenharmony_ci    "input": "sc://@/",
46121cb0ef41Sopenharmony_ci    "base": null,
46131cb0ef41Sopenharmony_ci    "failure": true
46141cb0ef41Sopenharmony_ci  },
46151cb0ef41Sopenharmony_ci  {
46161cb0ef41Sopenharmony_ci    "input": "sc://te@s:t@/",
46171cb0ef41Sopenharmony_ci    "base": null,
46181cb0ef41Sopenharmony_ci    "failure": true
46191cb0ef41Sopenharmony_ci  },
46201cb0ef41Sopenharmony_ci  {
46211cb0ef41Sopenharmony_ci    "input": "sc://:/",
46221cb0ef41Sopenharmony_ci    "base": null,
46231cb0ef41Sopenharmony_ci    "failure": true
46241cb0ef41Sopenharmony_ci  },
46251cb0ef41Sopenharmony_ci  {
46261cb0ef41Sopenharmony_ci    "input": "sc://:12/",
46271cb0ef41Sopenharmony_ci    "base": null,
46281cb0ef41Sopenharmony_ci    "failure": true
46291cb0ef41Sopenharmony_ci  },
46301cb0ef41Sopenharmony_ci  {
46311cb0ef41Sopenharmony_ci    "input": "x",
46321cb0ef41Sopenharmony_ci    "base": "sc://ñ",
46331cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1/x",
46341cb0ef41Sopenharmony_ci    "origin": "null",
46351cb0ef41Sopenharmony_ci    "protocol": "sc:",
46361cb0ef41Sopenharmony_ci    "username": "",
46371cb0ef41Sopenharmony_ci    "password": "",
46381cb0ef41Sopenharmony_ci    "host": "%C3%B1",
46391cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
46401cb0ef41Sopenharmony_ci    "port": "",
46411cb0ef41Sopenharmony_ci    "pathname": "/x",
46421cb0ef41Sopenharmony_ci    "search": "",
46431cb0ef41Sopenharmony_ci    "hash": ""
46441cb0ef41Sopenharmony_ci  },
46451cb0ef41Sopenharmony_ci  "# unknown schemes and backslashes",
46461cb0ef41Sopenharmony_ci  {
46471cb0ef41Sopenharmony_ci    "input": "sc:\\../",
46481cb0ef41Sopenharmony_ci    "base": null,
46491cb0ef41Sopenharmony_ci    "href": "sc:\\../",
46501cb0ef41Sopenharmony_ci    "origin": "null",
46511cb0ef41Sopenharmony_ci    "protocol": "sc:",
46521cb0ef41Sopenharmony_ci    "username": "",
46531cb0ef41Sopenharmony_ci    "password": "",
46541cb0ef41Sopenharmony_ci    "host": "",
46551cb0ef41Sopenharmony_ci    "hostname": "",
46561cb0ef41Sopenharmony_ci    "port": "",
46571cb0ef41Sopenharmony_ci    "pathname": "\\../",
46581cb0ef41Sopenharmony_ci    "search": "",
46591cb0ef41Sopenharmony_ci    "hash": ""
46601cb0ef41Sopenharmony_ci  },
46611cb0ef41Sopenharmony_ci  "# unknown scheme with path looking like a password",
46621cb0ef41Sopenharmony_ci  {
46631cb0ef41Sopenharmony_ci    "input": "sc::a@example.net",
46641cb0ef41Sopenharmony_ci    "base": null,
46651cb0ef41Sopenharmony_ci    "href": "sc::a@example.net",
46661cb0ef41Sopenharmony_ci    "origin": "null",
46671cb0ef41Sopenharmony_ci    "protocol": "sc:",
46681cb0ef41Sopenharmony_ci    "username": "",
46691cb0ef41Sopenharmony_ci    "password": "",
46701cb0ef41Sopenharmony_ci    "host": "",
46711cb0ef41Sopenharmony_ci    "hostname": "",
46721cb0ef41Sopenharmony_ci    "port": "",
46731cb0ef41Sopenharmony_ci    "pathname": ":a@example.net",
46741cb0ef41Sopenharmony_ci    "search": "",
46751cb0ef41Sopenharmony_ci    "hash": ""
46761cb0ef41Sopenharmony_ci  },
46771cb0ef41Sopenharmony_ci  "# unknown scheme with bogus percent-encoding",
46781cb0ef41Sopenharmony_ci  {
46791cb0ef41Sopenharmony_ci    "input": "wow:%NBD",
46801cb0ef41Sopenharmony_ci    "base": null,
46811cb0ef41Sopenharmony_ci    "href": "wow:%NBD",
46821cb0ef41Sopenharmony_ci    "origin": "null",
46831cb0ef41Sopenharmony_ci    "protocol": "wow:",
46841cb0ef41Sopenharmony_ci    "username": "",
46851cb0ef41Sopenharmony_ci    "password": "",
46861cb0ef41Sopenharmony_ci    "host": "",
46871cb0ef41Sopenharmony_ci    "hostname": "",
46881cb0ef41Sopenharmony_ci    "port": "",
46891cb0ef41Sopenharmony_ci    "pathname": "%NBD",
46901cb0ef41Sopenharmony_ci    "search": "",
46911cb0ef41Sopenharmony_ci    "hash": ""
46921cb0ef41Sopenharmony_ci  },
46931cb0ef41Sopenharmony_ci  {
46941cb0ef41Sopenharmony_ci    "input": "wow:%1G",
46951cb0ef41Sopenharmony_ci    "base": null,
46961cb0ef41Sopenharmony_ci    "href": "wow:%1G",
46971cb0ef41Sopenharmony_ci    "origin": "null",
46981cb0ef41Sopenharmony_ci    "protocol": "wow:",
46991cb0ef41Sopenharmony_ci    "username": "",
47001cb0ef41Sopenharmony_ci    "password": "",
47011cb0ef41Sopenharmony_ci    "host": "",
47021cb0ef41Sopenharmony_ci    "hostname": "",
47031cb0ef41Sopenharmony_ci    "port": "",
47041cb0ef41Sopenharmony_ci    "pathname": "%1G",
47051cb0ef41Sopenharmony_ci    "search": "",
47061cb0ef41Sopenharmony_ci    "hash": ""
47071cb0ef41Sopenharmony_ci  },
47081cb0ef41Sopenharmony_ci  "# unknown scheme with non-URL characters",
47091cb0ef41Sopenharmony_ci  {
47101cb0ef41Sopenharmony_ci    "input": "wow:\uFFFF",
47111cb0ef41Sopenharmony_ci    "base": null,
47121cb0ef41Sopenharmony_ci    "href": "wow:%EF%BF%BF",
47131cb0ef41Sopenharmony_ci    "origin": "null",
47141cb0ef41Sopenharmony_ci    "protocol": "wow:",
47151cb0ef41Sopenharmony_ci    "username": "",
47161cb0ef41Sopenharmony_ci    "password": "",
47171cb0ef41Sopenharmony_ci    "host": "",
47181cb0ef41Sopenharmony_ci    "hostname": "",
47191cb0ef41Sopenharmony_ci    "port": "",
47201cb0ef41Sopenharmony_ci    "pathname": "%EF%BF%BF",
47211cb0ef41Sopenharmony_ci    "search": "",
47221cb0ef41Sopenharmony_ci    "hash": ""
47231cb0ef41Sopenharmony_ci  },
47241cb0ef41Sopenharmony_ci  {
47251cb0ef41Sopenharmony_ci    "input": "http://example.com/\uD800\uD801\uDFFE\uDFFF\uFDD0\uFDCF\uFDEF\uFDF0\uFFFE\uFFFF?\uD800\uD801\uDFFE\uDFFF\uFDD0\uFDCF\uFDEF\uFDF0\uFFFE\uFFFF",
47261cb0ef41Sopenharmony_ci    "base": null,
47271cb0ef41Sopenharmony_ci    "href": "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF",
47281cb0ef41Sopenharmony_ci    "origin": "http://example.com",
47291cb0ef41Sopenharmony_ci    "protocol": "http:",
47301cb0ef41Sopenharmony_ci    "username": "",
47311cb0ef41Sopenharmony_ci    "password": "",
47321cb0ef41Sopenharmony_ci    "host": "example.com",
47331cb0ef41Sopenharmony_ci    "hostname": "example.com",
47341cb0ef41Sopenharmony_ci    "port": "",
47351cb0ef41Sopenharmony_ci    "pathname": "/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF",
47361cb0ef41Sopenharmony_ci    "search": "?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF",
47371cb0ef41Sopenharmony_ci    "hash": ""
47381cb0ef41Sopenharmony_ci  },
47391cb0ef41Sopenharmony_ci  "Forbidden host code points",
47401cb0ef41Sopenharmony_ci  {
47411cb0ef41Sopenharmony_ci    "input": "sc://a\u0000b/",
47421cb0ef41Sopenharmony_ci    "base": null,
47431cb0ef41Sopenharmony_ci    "failure": true
47441cb0ef41Sopenharmony_ci  },
47451cb0ef41Sopenharmony_ci  {
47461cb0ef41Sopenharmony_ci    "input": "sc://a b/",
47471cb0ef41Sopenharmony_ci    "base": null,
47481cb0ef41Sopenharmony_ci    "failure": true
47491cb0ef41Sopenharmony_ci  },
47501cb0ef41Sopenharmony_ci  {
47511cb0ef41Sopenharmony_ci    "input": "sc://a<b",
47521cb0ef41Sopenharmony_ci    "base": null,
47531cb0ef41Sopenharmony_ci    "failure": true
47541cb0ef41Sopenharmony_ci  },
47551cb0ef41Sopenharmony_ci  {
47561cb0ef41Sopenharmony_ci    "input": "sc://a>b",
47571cb0ef41Sopenharmony_ci    "base": null,
47581cb0ef41Sopenharmony_ci    "failure": true
47591cb0ef41Sopenharmony_ci  },
47601cb0ef41Sopenharmony_ci  {
47611cb0ef41Sopenharmony_ci    "input": "sc://a[b/",
47621cb0ef41Sopenharmony_ci    "base": null,
47631cb0ef41Sopenharmony_ci    "failure": true
47641cb0ef41Sopenharmony_ci  },
47651cb0ef41Sopenharmony_ci  {
47661cb0ef41Sopenharmony_ci    "input": "sc://a\\b/",
47671cb0ef41Sopenharmony_ci    "base": null,
47681cb0ef41Sopenharmony_ci    "failure": true
47691cb0ef41Sopenharmony_ci  },
47701cb0ef41Sopenharmony_ci  {
47711cb0ef41Sopenharmony_ci    "input": "sc://a]b/",
47721cb0ef41Sopenharmony_ci    "base": null,
47731cb0ef41Sopenharmony_ci    "failure": true
47741cb0ef41Sopenharmony_ci  },
47751cb0ef41Sopenharmony_ci  {
47761cb0ef41Sopenharmony_ci    "input": "sc://a^b",
47771cb0ef41Sopenharmony_ci    "base": null,
47781cb0ef41Sopenharmony_ci    "failure": true
47791cb0ef41Sopenharmony_ci  },
47801cb0ef41Sopenharmony_ci  {
47811cb0ef41Sopenharmony_ci    "input": "sc://a|b/",
47821cb0ef41Sopenharmony_ci    "base": null,
47831cb0ef41Sopenharmony_ci    "failure": true
47841cb0ef41Sopenharmony_ci  },
47851cb0ef41Sopenharmony_ci  "Forbidden host codepoints: tabs and newlines are removed during preprocessing",
47861cb0ef41Sopenharmony_ci  {
47871cb0ef41Sopenharmony_ci    "input": "foo://ho\u0009st/",
47881cb0ef41Sopenharmony_ci    "base": null,
47891cb0ef41Sopenharmony_ci    "hash": "",
47901cb0ef41Sopenharmony_ci    "host": "host",
47911cb0ef41Sopenharmony_ci    "hostname": "host",
47921cb0ef41Sopenharmony_ci    "href":"foo://host/",
47931cb0ef41Sopenharmony_ci    "password": "",
47941cb0ef41Sopenharmony_ci    "pathname": "/",
47951cb0ef41Sopenharmony_ci    "port":"",
47961cb0ef41Sopenharmony_ci    "protocol": "foo:",
47971cb0ef41Sopenharmony_ci    "search": "",
47981cb0ef41Sopenharmony_ci    "username": ""
47991cb0ef41Sopenharmony_ci  },
48001cb0ef41Sopenharmony_ci  {
48011cb0ef41Sopenharmony_ci    "input": "foo://ho\u000Ast/",
48021cb0ef41Sopenharmony_ci    "base": null,
48031cb0ef41Sopenharmony_ci    "hash": "",
48041cb0ef41Sopenharmony_ci    "host": "host",
48051cb0ef41Sopenharmony_ci    "hostname": "host",
48061cb0ef41Sopenharmony_ci    "href":"foo://host/",
48071cb0ef41Sopenharmony_ci    "password": "",
48081cb0ef41Sopenharmony_ci    "pathname": "/",
48091cb0ef41Sopenharmony_ci    "port":"",
48101cb0ef41Sopenharmony_ci    "protocol": "foo:",
48111cb0ef41Sopenharmony_ci    "search": "",
48121cb0ef41Sopenharmony_ci    "username": ""
48131cb0ef41Sopenharmony_ci  },
48141cb0ef41Sopenharmony_ci  {
48151cb0ef41Sopenharmony_ci    "input": "foo://ho\u000Dst/",
48161cb0ef41Sopenharmony_ci    "base": null,
48171cb0ef41Sopenharmony_ci    "hash": "",
48181cb0ef41Sopenharmony_ci    "host": "host",
48191cb0ef41Sopenharmony_ci    "hostname": "host",
48201cb0ef41Sopenharmony_ci    "href":"foo://host/",
48211cb0ef41Sopenharmony_ci    "password": "",
48221cb0ef41Sopenharmony_ci    "pathname": "/",
48231cb0ef41Sopenharmony_ci    "port":"",
48241cb0ef41Sopenharmony_ci    "protocol": "foo:",
48251cb0ef41Sopenharmony_ci    "search": "",
48261cb0ef41Sopenharmony_ci    "username": ""
48271cb0ef41Sopenharmony_ci  },
48281cb0ef41Sopenharmony_ci  "Forbidden domain code-points",
48291cb0ef41Sopenharmony_ci  {
48301cb0ef41Sopenharmony_ci    "input": "http://a\u0000b/",
48311cb0ef41Sopenharmony_ci    "base": null,
48321cb0ef41Sopenharmony_ci    "failure": true
48331cb0ef41Sopenharmony_ci  },
48341cb0ef41Sopenharmony_ci  {
48351cb0ef41Sopenharmony_ci    "input": "http://a\u0001b/",
48361cb0ef41Sopenharmony_ci    "base": null,
48371cb0ef41Sopenharmony_ci    "failure": true
48381cb0ef41Sopenharmony_ci  },
48391cb0ef41Sopenharmony_ci  {
48401cb0ef41Sopenharmony_ci    "input": "http://a\u0002b/",
48411cb0ef41Sopenharmony_ci    "base": null,
48421cb0ef41Sopenharmony_ci    "failure": true
48431cb0ef41Sopenharmony_ci  },
48441cb0ef41Sopenharmony_ci  {
48451cb0ef41Sopenharmony_ci    "input": "http://a\u0003b/",
48461cb0ef41Sopenharmony_ci    "base": null,
48471cb0ef41Sopenharmony_ci    "failure": true
48481cb0ef41Sopenharmony_ci  },
48491cb0ef41Sopenharmony_ci  {
48501cb0ef41Sopenharmony_ci    "input": "http://a\u0004b/",
48511cb0ef41Sopenharmony_ci    "base": null,
48521cb0ef41Sopenharmony_ci    "failure": true
48531cb0ef41Sopenharmony_ci  },
48541cb0ef41Sopenharmony_ci  {
48551cb0ef41Sopenharmony_ci    "input": "http://a\u0005b/",
48561cb0ef41Sopenharmony_ci    "base": null,
48571cb0ef41Sopenharmony_ci    "failure": true
48581cb0ef41Sopenharmony_ci  },
48591cb0ef41Sopenharmony_ci  {
48601cb0ef41Sopenharmony_ci    "input": "http://a\u0006b/",
48611cb0ef41Sopenharmony_ci    "base": null,
48621cb0ef41Sopenharmony_ci    "failure": true
48631cb0ef41Sopenharmony_ci  },
48641cb0ef41Sopenharmony_ci  {
48651cb0ef41Sopenharmony_ci    "input": "http://a\u0007b/",
48661cb0ef41Sopenharmony_ci    "base": null,
48671cb0ef41Sopenharmony_ci    "failure": true
48681cb0ef41Sopenharmony_ci  },
48691cb0ef41Sopenharmony_ci  {
48701cb0ef41Sopenharmony_ci    "input": "http://a\u0008b/",
48711cb0ef41Sopenharmony_ci    "base": null,
48721cb0ef41Sopenharmony_ci    "failure": true
48731cb0ef41Sopenharmony_ci  },
48741cb0ef41Sopenharmony_ci  {
48751cb0ef41Sopenharmony_ci    "input": "http://a\u000Bb/",
48761cb0ef41Sopenharmony_ci    "base": null,
48771cb0ef41Sopenharmony_ci    "failure": true
48781cb0ef41Sopenharmony_ci  },
48791cb0ef41Sopenharmony_ci  {
48801cb0ef41Sopenharmony_ci    "input": "http://a\u000Cb/",
48811cb0ef41Sopenharmony_ci    "base": null,
48821cb0ef41Sopenharmony_ci    "failure": true
48831cb0ef41Sopenharmony_ci  },
48841cb0ef41Sopenharmony_ci  {
48851cb0ef41Sopenharmony_ci    "input": "http://a\u000Eb/",
48861cb0ef41Sopenharmony_ci    "base": null,
48871cb0ef41Sopenharmony_ci    "failure": true
48881cb0ef41Sopenharmony_ci  },
48891cb0ef41Sopenharmony_ci  {
48901cb0ef41Sopenharmony_ci    "input": "http://a\u000Fb/",
48911cb0ef41Sopenharmony_ci    "base": null,
48921cb0ef41Sopenharmony_ci    "failure": true
48931cb0ef41Sopenharmony_ci  },
48941cb0ef41Sopenharmony_ci  {
48951cb0ef41Sopenharmony_ci    "input": "http://a\u0010b/",
48961cb0ef41Sopenharmony_ci    "base": null,
48971cb0ef41Sopenharmony_ci    "failure": true
48981cb0ef41Sopenharmony_ci  },
48991cb0ef41Sopenharmony_ci  {
49001cb0ef41Sopenharmony_ci    "input": "http://a\u0011b/",
49011cb0ef41Sopenharmony_ci    "base": null,
49021cb0ef41Sopenharmony_ci    "failure": true
49031cb0ef41Sopenharmony_ci  },
49041cb0ef41Sopenharmony_ci  {
49051cb0ef41Sopenharmony_ci    "input": "http://a\u0012b/",
49061cb0ef41Sopenharmony_ci    "base": null,
49071cb0ef41Sopenharmony_ci    "failure": true
49081cb0ef41Sopenharmony_ci  },
49091cb0ef41Sopenharmony_ci  {
49101cb0ef41Sopenharmony_ci    "input": "http://a\u0013b/",
49111cb0ef41Sopenharmony_ci    "base": null,
49121cb0ef41Sopenharmony_ci    "failure": true
49131cb0ef41Sopenharmony_ci  },
49141cb0ef41Sopenharmony_ci  {
49151cb0ef41Sopenharmony_ci    "input": "http://a\u0014b/",
49161cb0ef41Sopenharmony_ci    "base": null,
49171cb0ef41Sopenharmony_ci    "failure": true
49181cb0ef41Sopenharmony_ci  },
49191cb0ef41Sopenharmony_ci  {
49201cb0ef41Sopenharmony_ci    "input": "http://a\u0015b/",
49211cb0ef41Sopenharmony_ci    "base": null,
49221cb0ef41Sopenharmony_ci    "failure": true
49231cb0ef41Sopenharmony_ci  },
49241cb0ef41Sopenharmony_ci  {
49251cb0ef41Sopenharmony_ci    "input": "http://a\u0016b/",
49261cb0ef41Sopenharmony_ci    "base": null,
49271cb0ef41Sopenharmony_ci    "failure": true
49281cb0ef41Sopenharmony_ci  },
49291cb0ef41Sopenharmony_ci  {
49301cb0ef41Sopenharmony_ci    "input": "http://a\u0017b/",
49311cb0ef41Sopenharmony_ci    "base": null,
49321cb0ef41Sopenharmony_ci    "failure": true
49331cb0ef41Sopenharmony_ci  },
49341cb0ef41Sopenharmony_ci  {
49351cb0ef41Sopenharmony_ci    "input": "http://a\u0018b/",
49361cb0ef41Sopenharmony_ci    "base": null,
49371cb0ef41Sopenharmony_ci    "failure": true
49381cb0ef41Sopenharmony_ci  },
49391cb0ef41Sopenharmony_ci  {
49401cb0ef41Sopenharmony_ci    "input": "http://a\u0019b/",
49411cb0ef41Sopenharmony_ci    "base": null,
49421cb0ef41Sopenharmony_ci    "failure": true
49431cb0ef41Sopenharmony_ci  },
49441cb0ef41Sopenharmony_ci  {
49451cb0ef41Sopenharmony_ci    "input": "http://a\u001Ab/",
49461cb0ef41Sopenharmony_ci    "base": null,
49471cb0ef41Sopenharmony_ci    "failure": true
49481cb0ef41Sopenharmony_ci  },
49491cb0ef41Sopenharmony_ci  {
49501cb0ef41Sopenharmony_ci    "input": "http://a\u001Bb/",
49511cb0ef41Sopenharmony_ci    "base": null,
49521cb0ef41Sopenharmony_ci    "failure": true
49531cb0ef41Sopenharmony_ci  },
49541cb0ef41Sopenharmony_ci  {
49551cb0ef41Sopenharmony_ci    "input": "http://a\u001Cb/",
49561cb0ef41Sopenharmony_ci    "base": null,
49571cb0ef41Sopenharmony_ci    "failure": true
49581cb0ef41Sopenharmony_ci  },
49591cb0ef41Sopenharmony_ci  {
49601cb0ef41Sopenharmony_ci    "input": "http://a\u001Db/",
49611cb0ef41Sopenharmony_ci    "base": null,
49621cb0ef41Sopenharmony_ci    "failure": true
49631cb0ef41Sopenharmony_ci  },
49641cb0ef41Sopenharmony_ci  {
49651cb0ef41Sopenharmony_ci    "input": "http://a\u001Eb/",
49661cb0ef41Sopenharmony_ci    "base": null,
49671cb0ef41Sopenharmony_ci    "failure": true
49681cb0ef41Sopenharmony_ci  },
49691cb0ef41Sopenharmony_ci  {
49701cb0ef41Sopenharmony_ci    "input": "http://a\u001Fb/",
49711cb0ef41Sopenharmony_ci    "base": null,
49721cb0ef41Sopenharmony_ci    "failure": true
49731cb0ef41Sopenharmony_ci  },
49741cb0ef41Sopenharmony_ci  {
49751cb0ef41Sopenharmony_ci    "input": "http://a b/",
49761cb0ef41Sopenharmony_ci    "base": null,
49771cb0ef41Sopenharmony_ci    "failure": true
49781cb0ef41Sopenharmony_ci  },
49791cb0ef41Sopenharmony_ci  {
49801cb0ef41Sopenharmony_ci    "input": "http://a%b/",
49811cb0ef41Sopenharmony_ci    "base": null,
49821cb0ef41Sopenharmony_ci    "failure": true
49831cb0ef41Sopenharmony_ci  },
49841cb0ef41Sopenharmony_ci  {
49851cb0ef41Sopenharmony_ci    "input": "http://a<b",
49861cb0ef41Sopenharmony_ci    "base": null,
49871cb0ef41Sopenharmony_ci    "failure": true
49881cb0ef41Sopenharmony_ci  },
49891cb0ef41Sopenharmony_ci  {
49901cb0ef41Sopenharmony_ci    "input": "http://a>b",
49911cb0ef41Sopenharmony_ci    "base": null,
49921cb0ef41Sopenharmony_ci    "failure": true
49931cb0ef41Sopenharmony_ci  },
49941cb0ef41Sopenharmony_ci  {
49951cb0ef41Sopenharmony_ci    "input": "http://a[b/",
49961cb0ef41Sopenharmony_ci    "base": null,
49971cb0ef41Sopenharmony_ci    "failure": true
49981cb0ef41Sopenharmony_ci  },
49991cb0ef41Sopenharmony_ci  {
50001cb0ef41Sopenharmony_ci    "input": "http://a]b/",
50011cb0ef41Sopenharmony_ci    "base": null,
50021cb0ef41Sopenharmony_ci    "failure": true
50031cb0ef41Sopenharmony_ci  },
50041cb0ef41Sopenharmony_ci  {
50051cb0ef41Sopenharmony_ci    "input": "http://a^b",
50061cb0ef41Sopenharmony_ci    "base": null,
50071cb0ef41Sopenharmony_ci    "failure": true
50081cb0ef41Sopenharmony_ci  },
50091cb0ef41Sopenharmony_ci  {
50101cb0ef41Sopenharmony_ci    "input": "http://a|b/",
50111cb0ef41Sopenharmony_ci    "base": null,
50121cb0ef41Sopenharmony_ci    "failure": true
50131cb0ef41Sopenharmony_ci  },
50141cb0ef41Sopenharmony_ci  {
50151cb0ef41Sopenharmony_ci    "input": "http://a\u007Fb/",
50161cb0ef41Sopenharmony_ci    "base": null,
50171cb0ef41Sopenharmony_ci    "failure": true
50181cb0ef41Sopenharmony_ci  },
50191cb0ef41Sopenharmony_ci  "Forbidden domain codepoints: tabs and newlines are removed during preprocessing",
50201cb0ef41Sopenharmony_ci  {
50211cb0ef41Sopenharmony_ci    "input": "http://ho\u0009st/",
50221cb0ef41Sopenharmony_ci    "base": null,
50231cb0ef41Sopenharmony_ci    "hash": "",
50241cb0ef41Sopenharmony_ci    "host": "host",
50251cb0ef41Sopenharmony_ci    "hostname": "host",
50261cb0ef41Sopenharmony_ci    "href":"http://host/",
50271cb0ef41Sopenharmony_ci    "password": "",
50281cb0ef41Sopenharmony_ci    "pathname": "/",
50291cb0ef41Sopenharmony_ci    "port":"",
50301cb0ef41Sopenharmony_ci    "protocol": "http:",
50311cb0ef41Sopenharmony_ci    "search": "",
50321cb0ef41Sopenharmony_ci    "username": ""
50331cb0ef41Sopenharmony_ci  },
50341cb0ef41Sopenharmony_ci  {
50351cb0ef41Sopenharmony_ci    "input": "http://ho\u000Ast/",
50361cb0ef41Sopenharmony_ci    "base": null,
50371cb0ef41Sopenharmony_ci    "hash": "",
50381cb0ef41Sopenharmony_ci    "host": "host",
50391cb0ef41Sopenharmony_ci    "hostname": "host",
50401cb0ef41Sopenharmony_ci    "href":"http://host/",
50411cb0ef41Sopenharmony_ci    "password": "",
50421cb0ef41Sopenharmony_ci    "pathname": "/",
50431cb0ef41Sopenharmony_ci    "port":"",
50441cb0ef41Sopenharmony_ci    "protocol": "http:",
50451cb0ef41Sopenharmony_ci    "search": "",
50461cb0ef41Sopenharmony_ci    "username": ""
50471cb0ef41Sopenharmony_ci  },
50481cb0ef41Sopenharmony_ci  {
50491cb0ef41Sopenharmony_ci    "input": "http://ho\u000Dst/",
50501cb0ef41Sopenharmony_ci    "base": null,
50511cb0ef41Sopenharmony_ci    "hash": "",
50521cb0ef41Sopenharmony_ci    "host": "host",
50531cb0ef41Sopenharmony_ci    "hostname": "host",
50541cb0ef41Sopenharmony_ci    "href":"http://host/",
50551cb0ef41Sopenharmony_ci    "password": "",
50561cb0ef41Sopenharmony_ci    "pathname": "/",
50571cb0ef41Sopenharmony_ci    "port":"",
50581cb0ef41Sopenharmony_ci    "protocol": "http:",
50591cb0ef41Sopenharmony_ci    "search": "",
50601cb0ef41Sopenharmony_ci    "username": ""
50611cb0ef41Sopenharmony_ci  },
50621cb0ef41Sopenharmony_ci  "Encoded forbidden domain codepoints in special URLs",
50631cb0ef41Sopenharmony_ci  {
50641cb0ef41Sopenharmony_ci    "input": "http://ho%00st/",
50651cb0ef41Sopenharmony_ci    "base": null,
50661cb0ef41Sopenharmony_ci    "failure": true
50671cb0ef41Sopenharmony_ci  },
50681cb0ef41Sopenharmony_ci  {
50691cb0ef41Sopenharmony_ci    "input": "http://ho%01st/",
50701cb0ef41Sopenharmony_ci    "base": null,
50711cb0ef41Sopenharmony_ci    "failure": true
50721cb0ef41Sopenharmony_ci  },
50731cb0ef41Sopenharmony_ci  {
50741cb0ef41Sopenharmony_ci    "input": "http://ho%02st/",
50751cb0ef41Sopenharmony_ci    "base": null,
50761cb0ef41Sopenharmony_ci    "failure": true
50771cb0ef41Sopenharmony_ci  },
50781cb0ef41Sopenharmony_ci  {
50791cb0ef41Sopenharmony_ci    "input": "http://ho%03st/",
50801cb0ef41Sopenharmony_ci    "base": null,
50811cb0ef41Sopenharmony_ci    "failure": true
50821cb0ef41Sopenharmony_ci  },
50831cb0ef41Sopenharmony_ci  {
50841cb0ef41Sopenharmony_ci    "input": "http://ho%04st/",
50851cb0ef41Sopenharmony_ci    "base": null,
50861cb0ef41Sopenharmony_ci    "failure": true
50871cb0ef41Sopenharmony_ci  },
50881cb0ef41Sopenharmony_ci  {
50891cb0ef41Sopenharmony_ci    "input": "http://ho%05st/",
50901cb0ef41Sopenharmony_ci    "base": null,
50911cb0ef41Sopenharmony_ci    "failure": true
50921cb0ef41Sopenharmony_ci  },
50931cb0ef41Sopenharmony_ci  {
50941cb0ef41Sopenharmony_ci    "input": "http://ho%06st/",
50951cb0ef41Sopenharmony_ci    "base": null,
50961cb0ef41Sopenharmony_ci    "failure": true
50971cb0ef41Sopenharmony_ci  },
50981cb0ef41Sopenharmony_ci  {
50991cb0ef41Sopenharmony_ci    "input": "http://ho%07st/",
51001cb0ef41Sopenharmony_ci    "base": null,
51011cb0ef41Sopenharmony_ci    "failure": true
51021cb0ef41Sopenharmony_ci  },
51031cb0ef41Sopenharmony_ci  {
51041cb0ef41Sopenharmony_ci    "input": "http://ho%08st/",
51051cb0ef41Sopenharmony_ci    "base": null,
51061cb0ef41Sopenharmony_ci    "failure": true
51071cb0ef41Sopenharmony_ci  },
51081cb0ef41Sopenharmony_ci  {
51091cb0ef41Sopenharmony_ci    "input": "http://ho%09st/",
51101cb0ef41Sopenharmony_ci    "base": null,
51111cb0ef41Sopenharmony_ci    "failure": true
51121cb0ef41Sopenharmony_ci  },
51131cb0ef41Sopenharmony_ci  {
51141cb0ef41Sopenharmony_ci    "input": "http://ho%0Ast/",
51151cb0ef41Sopenharmony_ci    "base": null,
51161cb0ef41Sopenharmony_ci    "failure": true
51171cb0ef41Sopenharmony_ci  },
51181cb0ef41Sopenharmony_ci  {
51191cb0ef41Sopenharmony_ci    "input": "http://ho%0Bst/",
51201cb0ef41Sopenharmony_ci    "base": null,
51211cb0ef41Sopenharmony_ci    "failure": true
51221cb0ef41Sopenharmony_ci  },
51231cb0ef41Sopenharmony_ci  {
51241cb0ef41Sopenharmony_ci    "input": "http://ho%0Cst/",
51251cb0ef41Sopenharmony_ci    "base": null,
51261cb0ef41Sopenharmony_ci    "failure": true
51271cb0ef41Sopenharmony_ci  },
51281cb0ef41Sopenharmony_ci  {
51291cb0ef41Sopenharmony_ci    "input": "http://ho%0Dst/",
51301cb0ef41Sopenharmony_ci    "base": null,
51311cb0ef41Sopenharmony_ci    "failure": true
51321cb0ef41Sopenharmony_ci  },
51331cb0ef41Sopenharmony_ci  {
51341cb0ef41Sopenharmony_ci    "input": "http://ho%0Est/",
51351cb0ef41Sopenharmony_ci    "base": null,
51361cb0ef41Sopenharmony_ci    "failure": true
51371cb0ef41Sopenharmony_ci  },
51381cb0ef41Sopenharmony_ci  {
51391cb0ef41Sopenharmony_ci    "input": "http://ho%0Fst/",
51401cb0ef41Sopenharmony_ci    "base": null,
51411cb0ef41Sopenharmony_ci    "failure": true
51421cb0ef41Sopenharmony_ci  },
51431cb0ef41Sopenharmony_ci  {
51441cb0ef41Sopenharmony_ci    "input": "http://ho%10st/",
51451cb0ef41Sopenharmony_ci    "base": null,
51461cb0ef41Sopenharmony_ci    "failure": true
51471cb0ef41Sopenharmony_ci  },
51481cb0ef41Sopenharmony_ci  {
51491cb0ef41Sopenharmony_ci    "input": "http://ho%11st/",
51501cb0ef41Sopenharmony_ci    "base": null,
51511cb0ef41Sopenharmony_ci    "failure": true
51521cb0ef41Sopenharmony_ci  },
51531cb0ef41Sopenharmony_ci  {
51541cb0ef41Sopenharmony_ci    "input": "http://ho%12st/",
51551cb0ef41Sopenharmony_ci    "base": null,
51561cb0ef41Sopenharmony_ci    "failure": true
51571cb0ef41Sopenharmony_ci  },
51581cb0ef41Sopenharmony_ci  {
51591cb0ef41Sopenharmony_ci    "input": "http://ho%13st/",
51601cb0ef41Sopenharmony_ci    "base": null,
51611cb0ef41Sopenharmony_ci    "failure": true
51621cb0ef41Sopenharmony_ci  },
51631cb0ef41Sopenharmony_ci  {
51641cb0ef41Sopenharmony_ci    "input": "http://ho%14st/",
51651cb0ef41Sopenharmony_ci    "base": null,
51661cb0ef41Sopenharmony_ci    "failure": true
51671cb0ef41Sopenharmony_ci  },
51681cb0ef41Sopenharmony_ci  {
51691cb0ef41Sopenharmony_ci    "input": "http://ho%15st/",
51701cb0ef41Sopenharmony_ci    "base": null,
51711cb0ef41Sopenharmony_ci    "failure": true
51721cb0ef41Sopenharmony_ci  },
51731cb0ef41Sopenharmony_ci  {
51741cb0ef41Sopenharmony_ci    "input": "http://ho%16st/",
51751cb0ef41Sopenharmony_ci    "base": null,
51761cb0ef41Sopenharmony_ci    "failure": true
51771cb0ef41Sopenharmony_ci  },
51781cb0ef41Sopenharmony_ci  {
51791cb0ef41Sopenharmony_ci    "input": "http://ho%17st/",
51801cb0ef41Sopenharmony_ci    "base": null,
51811cb0ef41Sopenharmony_ci    "failure": true
51821cb0ef41Sopenharmony_ci  },
51831cb0ef41Sopenharmony_ci  {
51841cb0ef41Sopenharmony_ci    "input": "http://ho%18st/",
51851cb0ef41Sopenharmony_ci    "base": null,
51861cb0ef41Sopenharmony_ci    "failure": true
51871cb0ef41Sopenharmony_ci  },
51881cb0ef41Sopenharmony_ci  {
51891cb0ef41Sopenharmony_ci    "input": "http://ho%19st/",
51901cb0ef41Sopenharmony_ci    "base": null,
51911cb0ef41Sopenharmony_ci    "failure": true
51921cb0ef41Sopenharmony_ci  },
51931cb0ef41Sopenharmony_ci  {
51941cb0ef41Sopenharmony_ci    "input": "http://ho%1Ast/",
51951cb0ef41Sopenharmony_ci    "base": null,
51961cb0ef41Sopenharmony_ci    "failure": true
51971cb0ef41Sopenharmony_ci  },
51981cb0ef41Sopenharmony_ci  {
51991cb0ef41Sopenharmony_ci    "input": "http://ho%1Bst/",
52001cb0ef41Sopenharmony_ci    "base": null,
52011cb0ef41Sopenharmony_ci    "failure": true
52021cb0ef41Sopenharmony_ci  },
52031cb0ef41Sopenharmony_ci  {
52041cb0ef41Sopenharmony_ci    "input": "http://ho%1Cst/",
52051cb0ef41Sopenharmony_ci    "base": null,
52061cb0ef41Sopenharmony_ci    "failure": true
52071cb0ef41Sopenharmony_ci  },
52081cb0ef41Sopenharmony_ci  {
52091cb0ef41Sopenharmony_ci    "input": "http://ho%1Dst/",
52101cb0ef41Sopenharmony_ci    "base": null,
52111cb0ef41Sopenharmony_ci    "failure": true
52121cb0ef41Sopenharmony_ci  },
52131cb0ef41Sopenharmony_ci  {
52141cb0ef41Sopenharmony_ci    "input": "http://ho%1Est/",
52151cb0ef41Sopenharmony_ci    "base": null,
52161cb0ef41Sopenharmony_ci    "failure": true
52171cb0ef41Sopenharmony_ci  },
52181cb0ef41Sopenharmony_ci  {
52191cb0ef41Sopenharmony_ci    "input": "http://ho%1Fst/",
52201cb0ef41Sopenharmony_ci    "base": null,
52211cb0ef41Sopenharmony_ci    "failure": true
52221cb0ef41Sopenharmony_ci  },
52231cb0ef41Sopenharmony_ci  {
52241cb0ef41Sopenharmony_ci    "input": "http://ho%20st/",
52251cb0ef41Sopenharmony_ci    "base": null,
52261cb0ef41Sopenharmony_ci    "failure": true
52271cb0ef41Sopenharmony_ci  },
52281cb0ef41Sopenharmony_ci  {
52291cb0ef41Sopenharmony_ci    "input": "http://ho%23st/",
52301cb0ef41Sopenharmony_ci    "base": null,
52311cb0ef41Sopenharmony_ci    "failure": true
52321cb0ef41Sopenharmony_ci  },
52331cb0ef41Sopenharmony_ci  {
52341cb0ef41Sopenharmony_ci    "input": "http://ho%25st/",
52351cb0ef41Sopenharmony_ci    "base": null,
52361cb0ef41Sopenharmony_ci    "failure": true
52371cb0ef41Sopenharmony_ci  },
52381cb0ef41Sopenharmony_ci  {
52391cb0ef41Sopenharmony_ci    "input": "http://ho%2Fst/",
52401cb0ef41Sopenharmony_ci    "base": null,
52411cb0ef41Sopenharmony_ci    "failure": true
52421cb0ef41Sopenharmony_ci  },
52431cb0ef41Sopenharmony_ci  {
52441cb0ef41Sopenharmony_ci    "input": "http://ho%3Ast/",
52451cb0ef41Sopenharmony_ci    "base": null,
52461cb0ef41Sopenharmony_ci    "failure": true
52471cb0ef41Sopenharmony_ci  },
52481cb0ef41Sopenharmony_ci  {
52491cb0ef41Sopenharmony_ci    "input": "http://ho%3Cst/",
52501cb0ef41Sopenharmony_ci    "base": null,
52511cb0ef41Sopenharmony_ci    "failure": true
52521cb0ef41Sopenharmony_ci  },
52531cb0ef41Sopenharmony_ci  {
52541cb0ef41Sopenharmony_ci    "input": "http://ho%3Est/",
52551cb0ef41Sopenharmony_ci    "base": null,
52561cb0ef41Sopenharmony_ci    "failure": true
52571cb0ef41Sopenharmony_ci  },
52581cb0ef41Sopenharmony_ci  {
52591cb0ef41Sopenharmony_ci    "input": "http://ho%3Fst/",
52601cb0ef41Sopenharmony_ci    "base": null,
52611cb0ef41Sopenharmony_ci    "failure": true
52621cb0ef41Sopenharmony_ci  },
52631cb0ef41Sopenharmony_ci  {
52641cb0ef41Sopenharmony_ci    "input": "http://ho%40st/",
52651cb0ef41Sopenharmony_ci    "base": null,
52661cb0ef41Sopenharmony_ci    "failure": true
52671cb0ef41Sopenharmony_ci  },
52681cb0ef41Sopenharmony_ci  {
52691cb0ef41Sopenharmony_ci    "input": "http://ho%5Bst/",
52701cb0ef41Sopenharmony_ci    "base": null,
52711cb0ef41Sopenharmony_ci    "failure": true
52721cb0ef41Sopenharmony_ci  },
52731cb0ef41Sopenharmony_ci  {
52741cb0ef41Sopenharmony_ci    "input": "http://ho%5Cst/",
52751cb0ef41Sopenharmony_ci    "base": null,
52761cb0ef41Sopenharmony_ci    "failure": true
52771cb0ef41Sopenharmony_ci  },
52781cb0ef41Sopenharmony_ci  {
52791cb0ef41Sopenharmony_ci    "input": "http://ho%5Dst/",
52801cb0ef41Sopenharmony_ci    "base": null,
52811cb0ef41Sopenharmony_ci    "failure": true
52821cb0ef41Sopenharmony_ci  },
52831cb0ef41Sopenharmony_ci  {
52841cb0ef41Sopenharmony_ci    "input": "http://ho%7Cst/",
52851cb0ef41Sopenharmony_ci    "base": null,
52861cb0ef41Sopenharmony_ci    "failure": true
52871cb0ef41Sopenharmony_ci  },
52881cb0ef41Sopenharmony_ci  {
52891cb0ef41Sopenharmony_ci    "input": "http://ho%7Fst/",
52901cb0ef41Sopenharmony_ci    "base": null,
52911cb0ef41Sopenharmony_ci    "failure": true
52921cb0ef41Sopenharmony_ci  },
52931cb0ef41Sopenharmony_ci  "Allowed host/domain code points",
52941cb0ef41Sopenharmony_ci  {
52951cb0ef41Sopenharmony_ci    "input": "http://!\"$&'()*+,-.;=_`{}~/",
52961cb0ef41Sopenharmony_ci    "base": null,
52971cb0ef41Sopenharmony_ci    "href": "http://!\"$&'()*+,-.;=_`{}~/",
52981cb0ef41Sopenharmony_ci    "origin": "http://!\"$&'()*+,-.;=_`{}~",
52991cb0ef41Sopenharmony_ci    "protocol": "http:",
53001cb0ef41Sopenharmony_ci    "username": "",
53011cb0ef41Sopenharmony_ci    "password": "",
53021cb0ef41Sopenharmony_ci    "host": "!\"$&'()*+,-.;=_`{}~",
53031cb0ef41Sopenharmony_ci    "hostname": "!\"$&'()*+,-.;=_`{}~",
53041cb0ef41Sopenharmony_ci    "port": "",
53051cb0ef41Sopenharmony_ci    "pathname": "/",
53061cb0ef41Sopenharmony_ci    "search": "",
53071cb0ef41Sopenharmony_ci    "hash": ""
53081cb0ef41Sopenharmony_ci  },
53091cb0ef41Sopenharmony_ci  {
53101cb0ef41Sopenharmony_ci    "input": "sc://\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u007F!\"$%&'()*+,-.;=_`{}~/",
53111cb0ef41Sopenharmony_ci    "base": null,
53121cb0ef41Sopenharmony_ci    "href": "sc://%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~/",
53131cb0ef41Sopenharmony_ci    "origin": "null",
53141cb0ef41Sopenharmony_ci    "protocol": "sc:",
53151cb0ef41Sopenharmony_ci    "username": "",
53161cb0ef41Sopenharmony_ci    "password": "",
53171cb0ef41Sopenharmony_ci    "host": "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~",
53181cb0ef41Sopenharmony_ci    "hostname": "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~",
53191cb0ef41Sopenharmony_ci    "port": "",
53201cb0ef41Sopenharmony_ci    "pathname": "/",
53211cb0ef41Sopenharmony_ci    "search": "",
53221cb0ef41Sopenharmony_ci    "hash": ""
53231cb0ef41Sopenharmony_ci  },
53241cb0ef41Sopenharmony_ci  "# Hosts and percent-encoding",
53251cb0ef41Sopenharmony_ci  {
53261cb0ef41Sopenharmony_ci    "input": "ftp://example.com%80/",
53271cb0ef41Sopenharmony_ci    "base": null,
53281cb0ef41Sopenharmony_ci    "failure": true
53291cb0ef41Sopenharmony_ci  },
53301cb0ef41Sopenharmony_ci  {
53311cb0ef41Sopenharmony_ci    "input": "ftp://example.com%A0/",
53321cb0ef41Sopenharmony_ci    "base": null,
53331cb0ef41Sopenharmony_ci    "failure": true
53341cb0ef41Sopenharmony_ci  },
53351cb0ef41Sopenharmony_ci  {
53361cb0ef41Sopenharmony_ci    "input": "https://example.com%80/",
53371cb0ef41Sopenharmony_ci    "base": null,
53381cb0ef41Sopenharmony_ci    "failure": true
53391cb0ef41Sopenharmony_ci  },
53401cb0ef41Sopenharmony_ci  {
53411cb0ef41Sopenharmony_ci    "input": "https://example.com%A0/",
53421cb0ef41Sopenharmony_ci    "base": null,
53431cb0ef41Sopenharmony_ci    "failure": true
53441cb0ef41Sopenharmony_ci  },
53451cb0ef41Sopenharmony_ci  {
53461cb0ef41Sopenharmony_ci    "input": "ftp://%e2%98%83",
53471cb0ef41Sopenharmony_ci    "base": null,
53481cb0ef41Sopenharmony_ci    "href": "ftp://xn--n3h/",
53491cb0ef41Sopenharmony_ci    "origin": "ftp://xn--n3h",
53501cb0ef41Sopenharmony_ci    "protocol": "ftp:",
53511cb0ef41Sopenharmony_ci    "username": "",
53521cb0ef41Sopenharmony_ci    "password": "",
53531cb0ef41Sopenharmony_ci    "host": "xn--n3h",
53541cb0ef41Sopenharmony_ci    "hostname": "xn--n3h",
53551cb0ef41Sopenharmony_ci    "port": "",
53561cb0ef41Sopenharmony_ci    "pathname": "/",
53571cb0ef41Sopenharmony_ci    "search": "",
53581cb0ef41Sopenharmony_ci    "hash": ""
53591cb0ef41Sopenharmony_ci  },
53601cb0ef41Sopenharmony_ci  {
53611cb0ef41Sopenharmony_ci    "input": "https://%e2%98%83",
53621cb0ef41Sopenharmony_ci    "base": null,
53631cb0ef41Sopenharmony_ci    "href": "https://xn--n3h/",
53641cb0ef41Sopenharmony_ci    "origin": "https://xn--n3h",
53651cb0ef41Sopenharmony_ci    "protocol": "https:",
53661cb0ef41Sopenharmony_ci    "username": "",
53671cb0ef41Sopenharmony_ci    "password": "",
53681cb0ef41Sopenharmony_ci    "host": "xn--n3h",
53691cb0ef41Sopenharmony_ci    "hostname": "xn--n3h",
53701cb0ef41Sopenharmony_ci    "port": "",
53711cb0ef41Sopenharmony_ci    "pathname": "/",
53721cb0ef41Sopenharmony_ci    "search": "",
53731cb0ef41Sopenharmony_ci    "hash": ""
53741cb0ef41Sopenharmony_ci  },
53751cb0ef41Sopenharmony_ci  "# tests from jsdom/whatwg-url designed for code coverage",
53761cb0ef41Sopenharmony_ci  {
53771cb0ef41Sopenharmony_ci    "input": "http://127.0.0.1:10100/relative_import.html",
53781cb0ef41Sopenharmony_ci    "base": null,
53791cb0ef41Sopenharmony_ci    "href": "http://127.0.0.1:10100/relative_import.html",
53801cb0ef41Sopenharmony_ci    "origin": "http://127.0.0.1:10100",
53811cb0ef41Sopenharmony_ci    "protocol": "http:",
53821cb0ef41Sopenharmony_ci    "username": "",
53831cb0ef41Sopenharmony_ci    "password": "",
53841cb0ef41Sopenharmony_ci    "host": "127.0.0.1:10100",
53851cb0ef41Sopenharmony_ci    "hostname": "127.0.0.1",
53861cb0ef41Sopenharmony_ci    "port": "10100",
53871cb0ef41Sopenharmony_ci    "pathname": "/relative_import.html",
53881cb0ef41Sopenharmony_ci    "search": "",
53891cb0ef41Sopenharmony_ci    "hash": ""
53901cb0ef41Sopenharmony_ci  },
53911cb0ef41Sopenharmony_ci  {
53921cb0ef41Sopenharmony_ci    "input": "http://facebook.com/?foo=%7B%22abc%22",
53931cb0ef41Sopenharmony_ci    "base": null,
53941cb0ef41Sopenharmony_ci    "href": "http://facebook.com/?foo=%7B%22abc%22",
53951cb0ef41Sopenharmony_ci    "origin": "http://facebook.com",
53961cb0ef41Sopenharmony_ci    "protocol": "http:",
53971cb0ef41Sopenharmony_ci    "username": "",
53981cb0ef41Sopenharmony_ci    "password": "",
53991cb0ef41Sopenharmony_ci    "host": "facebook.com",
54001cb0ef41Sopenharmony_ci    "hostname": "facebook.com",
54011cb0ef41Sopenharmony_ci    "port": "",
54021cb0ef41Sopenharmony_ci    "pathname": "/",
54031cb0ef41Sopenharmony_ci    "search": "?foo=%7B%22abc%22",
54041cb0ef41Sopenharmony_ci    "hash": ""
54051cb0ef41Sopenharmony_ci  },
54061cb0ef41Sopenharmony_ci  {
54071cb0ef41Sopenharmony_ci    "input": "https://localhost:3000/jqueryui@1.2.3",
54081cb0ef41Sopenharmony_ci    "base": null,
54091cb0ef41Sopenharmony_ci    "href": "https://localhost:3000/jqueryui@1.2.3",
54101cb0ef41Sopenharmony_ci    "origin": "https://localhost:3000",
54111cb0ef41Sopenharmony_ci    "protocol": "https:",
54121cb0ef41Sopenharmony_ci    "username": "",
54131cb0ef41Sopenharmony_ci    "password": "",
54141cb0ef41Sopenharmony_ci    "host": "localhost:3000",
54151cb0ef41Sopenharmony_ci    "hostname": "localhost",
54161cb0ef41Sopenharmony_ci    "port": "3000",
54171cb0ef41Sopenharmony_ci    "pathname": "/jqueryui@1.2.3",
54181cb0ef41Sopenharmony_ci    "search": "",
54191cb0ef41Sopenharmony_ci    "hash": ""
54201cb0ef41Sopenharmony_ci  },
54211cb0ef41Sopenharmony_ci  "# tab/LF/CR",
54221cb0ef41Sopenharmony_ci  {
54231cb0ef41Sopenharmony_ci    "input": "h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg",
54241cb0ef41Sopenharmony_ci    "base": null,
54251cb0ef41Sopenharmony_ci    "href": "http://host:9000/path?query#frag",
54261cb0ef41Sopenharmony_ci    "origin": "http://host:9000",
54271cb0ef41Sopenharmony_ci    "protocol": "http:",
54281cb0ef41Sopenharmony_ci    "username": "",
54291cb0ef41Sopenharmony_ci    "password": "",
54301cb0ef41Sopenharmony_ci    "host": "host:9000",
54311cb0ef41Sopenharmony_ci    "hostname": "host",
54321cb0ef41Sopenharmony_ci    "port": "9000",
54331cb0ef41Sopenharmony_ci    "pathname": "/path",
54341cb0ef41Sopenharmony_ci    "search": "?query",
54351cb0ef41Sopenharmony_ci    "hash": "#frag"
54361cb0ef41Sopenharmony_ci  },
54371cb0ef41Sopenharmony_ci  "# Stringification of URL.searchParams",
54381cb0ef41Sopenharmony_ci  {
54391cb0ef41Sopenharmony_ci    "input": "?a=b&c=d",
54401cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
54411cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar?a=b&c=d",
54421cb0ef41Sopenharmony_ci    "origin": "http://example.org",
54431cb0ef41Sopenharmony_ci    "protocol": "http:",
54441cb0ef41Sopenharmony_ci    "username": "",
54451cb0ef41Sopenharmony_ci    "password": "",
54461cb0ef41Sopenharmony_ci    "host": "example.org",
54471cb0ef41Sopenharmony_ci    "hostname": "example.org",
54481cb0ef41Sopenharmony_ci    "port": "",
54491cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
54501cb0ef41Sopenharmony_ci    "search": "?a=b&c=d",
54511cb0ef41Sopenharmony_ci    "searchParams": "a=b&c=d",
54521cb0ef41Sopenharmony_ci    "hash": ""
54531cb0ef41Sopenharmony_ci  },
54541cb0ef41Sopenharmony_ci  {
54551cb0ef41Sopenharmony_ci    "input": "??a=b&c=d",
54561cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
54571cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar??a=b&c=d",
54581cb0ef41Sopenharmony_ci    "origin": "http://example.org",
54591cb0ef41Sopenharmony_ci    "protocol": "http:",
54601cb0ef41Sopenharmony_ci    "username": "",
54611cb0ef41Sopenharmony_ci    "password": "",
54621cb0ef41Sopenharmony_ci    "host": "example.org",
54631cb0ef41Sopenharmony_ci    "hostname": "example.org",
54641cb0ef41Sopenharmony_ci    "port": "",
54651cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
54661cb0ef41Sopenharmony_ci    "search": "??a=b&c=d",
54671cb0ef41Sopenharmony_ci    "searchParams": "%3Fa=b&c=d",
54681cb0ef41Sopenharmony_ci    "hash": ""
54691cb0ef41Sopenharmony_ci  },
54701cb0ef41Sopenharmony_ci  "# Scheme only",
54711cb0ef41Sopenharmony_ci  {
54721cb0ef41Sopenharmony_ci    "input": "http:",
54731cb0ef41Sopenharmony_ci    "base": "http://example.org/foo/bar",
54741cb0ef41Sopenharmony_ci    "href": "http://example.org/foo/bar",
54751cb0ef41Sopenharmony_ci    "origin": "http://example.org",
54761cb0ef41Sopenharmony_ci    "protocol": "http:",
54771cb0ef41Sopenharmony_ci    "username": "",
54781cb0ef41Sopenharmony_ci    "password": "",
54791cb0ef41Sopenharmony_ci    "host": "example.org",
54801cb0ef41Sopenharmony_ci    "hostname": "example.org",
54811cb0ef41Sopenharmony_ci    "port": "",
54821cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
54831cb0ef41Sopenharmony_ci    "search": "",
54841cb0ef41Sopenharmony_ci    "searchParams": "",
54851cb0ef41Sopenharmony_ci    "hash": ""
54861cb0ef41Sopenharmony_ci  },
54871cb0ef41Sopenharmony_ci  {
54881cb0ef41Sopenharmony_ci    "input": "http:",
54891cb0ef41Sopenharmony_ci    "base": "https://example.org/foo/bar",
54901cb0ef41Sopenharmony_ci    "failure": true
54911cb0ef41Sopenharmony_ci  },
54921cb0ef41Sopenharmony_ci  {
54931cb0ef41Sopenharmony_ci    "input": "sc:",
54941cb0ef41Sopenharmony_ci    "base": "https://example.org/foo/bar",
54951cb0ef41Sopenharmony_ci    "href": "sc:",
54961cb0ef41Sopenharmony_ci    "origin": "null",
54971cb0ef41Sopenharmony_ci    "protocol": "sc:",
54981cb0ef41Sopenharmony_ci    "username": "",
54991cb0ef41Sopenharmony_ci    "password": "",
55001cb0ef41Sopenharmony_ci    "host": "",
55011cb0ef41Sopenharmony_ci    "hostname": "",
55021cb0ef41Sopenharmony_ci    "port": "",
55031cb0ef41Sopenharmony_ci    "pathname": "",
55041cb0ef41Sopenharmony_ci    "search": "",
55051cb0ef41Sopenharmony_ci    "searchParams": "",
55061cb0ef41Sopenharmony_ci    "hash": ""
55071cb0ef41Sopenharmony_ci  },
55081cb0ef41Sopenharmony_ci  "# Percent encoding of fragments",
55091cb0ef41Sopenharmony_ci  {
55101cb0ef41Sopenharmony_ci    "input": "http://foo.bar/baz?qux#foo\bbar",
55111cb0ef41Sopenharmony_ci    "base": null,
55121cb0ef41Sopenharmony_ci    "href": "http://foo.bar/baz?qux#foo%08bar",
55131cb0ef41Sopenharmony_ci    "origin": "http://foo.bar",
55141cb0ef41Sopenharmony_ci    "protocol": "http:",
55151cb0ef41Sopenharmony_ci    "username": "",
55161cb0ef41Sopenharmony_ci    "password": "",
55171cb0ef41Sopenharmony_ci    "host": "foo.bar",
55181cb0ef41Sopenharmony_ci    "hostname": "foo.bar",
55191cb0ef41Sopenharmony_ci    "port": "",
55201cb0ef41Sopenharmony_ci    "pathname": "/baz",
55211cb0ef41Sopenharmony_ci    "search": "?qux",
55221cb0ef41Sopenharmony_ci    "searchParams": "qux=",
55231cb0ef41Sopenharmony_ci    "hash": "#foo%08bar"
55241cb0ef41Sopenharmony_ci  },
55251cb0ef41Sopenharmony_ci  {
55261cb0ef41Sopenharmony_ci    "input": "http://foo.bar/baz?qux#foo\"bar",
55271cb0ef41Sopenharmony_ci    "base": null,
55281cb0ef41Sopenharmony_ci    "href": "http://foo.bar/baz?qux#foo%22bar",
55291cb0ef41Sopenharmony_ci    "origin": "http://foo.bar",
55301cb0ef41Sopenharmony_ci    "protocol": "http:",
55311cb0ef41Sopenharmony_ci    "username": "",
55321cb0ef41Sopenharmony_ci    "password": "",
55331cb0ef41Sopenharmony_ci    "host": "foo.bar",
55341cb0ef41Sopenharmony_ci    "hostname": "foo.bar",
55351cb0ef41Sopenharmony_ci    "port": "",
55361cb0ef41Sopenharmony_ci    "pathname": "/baz",
55371cb0ef41Sopenharmony_ci    "search": "?qux",
55381cb0ef41Sopenharmony_ci    "searchParams": "qux=",
55391cb0ef41Sopenharmony_ci    "hash": "#foo%22bar"
55401cb0ef41Sopenharmony_ci  },
55411cb0ef41Sopenharmony_ci  {
55421cb0ef41Sopenharmony_ci    "input": "http://foo.bar/baz?qux#foo<bar",
55431cb0ef41Sopenharmony_ci    "base": null,
55441cb0ef41Sopenharmony_ci    "href": "http://foo.bar/baz?qux#foo%3Cbar",
55451cb0ef41Sopenharmony_ci    "origin": "http://foo.bar",
55461cb0ef41Sopenharmony_ci    "protocol": "http:",
55471cb0ef41Sopenharmony_ci    "username": "",
55481cb0ef41Sopenharmony_ci    "password": "",
55491cb0ef41Sopenharmony_ci    "host": "foo.bar",
55501cb0ef41Sopenharmony_ci    "hostname": "foo.bar",
55511cb0ef41Sopenharmony_ci    "port": "",
55521cb0ef41Sopenharmony_ci    "pathname": "/baz",
55531cb0ef41Sopenharmony_ci    "search": "?qux",
55541cb0ef41Sopenharmony_ci    "searchParams": "qux=",
55551cb0ef41Sopenharmony_ci    "hash": "#foo%3Cbar"
55561cb0ef41Sopenharmony_ci  },
55571cb0ef41Sopenharmony_ci  {
55581cb0ef41Sopenharmony_ci    "input": "http://foo.bar/baz?qux#foo>bar",
55591cb0ef41Sopenharmony_ci    "base": null,
55601cb0ef41Sopenharmony_ci    "href": "http://foo.bar/baz?qux#foo%3Ebar",
55611cb0ef41Sopenharmony_ci    "origin": "http://foo.bar",
55621cb0ef41Sopenharmony_ci    "protocol": "http:",
55631cb0ef41Sopenharmony_ci    "username": "",
55641cb0ef41Sopenharmony_ci    "password": "",
55651cb0ef41Sopenharmony_ci    "host": "foo.bar",
55661cb0ef41Sopenharmony_ci    "hostname": "foo.bar",
55671cb0ef41Sopenharmony_ci    "port": "",
55681cb0ef41Sopenharmony_ci    "pathname": "/baz",
55691cb0ef41Sopenharmony_ci    "search": "?qux",
55701cb0ef41Sopenharmony_ci    "searchParams": "qux=",
55711cb0ef41Sopenharmony_ci    "hash": "#foo%3Ebar"
55721cb0ef41Sopenharmony_ci  },
55731cb0ef41Sopenharmony_ci  {
55741cb0ef41Sopenharmony_ci    "input": "http://foo.bar/baz?qux#foo`bar",
55751cb0ef41Sopenharmony_ci    "base": null,
55761cb0ef41Sopenharmony_ci    "href": "http://foo.bar/baz?qux#foo%60bar",
55771cb0ef41Sopenharmony_ci    "origin": "http://foo.bar",
55781cb0ef41Sopenharmony_ci    "protocol": "http:",
55791cb0ef41Sopenharmony_ci    "username": "",
55801cb0ef41Sopenharmony_ci    "password": "",
55811cb0ef41Sopenharmony_ci    "host": "foo.bar",
55821cb0ef41Sopenharmony_ci    "hostname": "foo.bar",
55831cb0ef41Sopenharmony_ci    "port": "",
55841cb0ef41Sopenharmony_ci    "pathname": "/baz",
55851cb0ef41Sopenharmony_ci    "search": "?qux",
55861cb0ef41Sopenharmony_ci    "searchParams": "qux=",
55871cb0ef41Sopenharmony_ci    "hash": "#foo%60bar"
55881cb0ef41Sopenharmony_ci  },
55891cb0ef41Sopenharmony_ci  "# IPv4 parsing (via https://github.com/nodejs/node/pull/10317)",
55901cb0ef41Sopenharmony_ci  {
55911cb0ef41Sopenharmony_ci    "input": "http://1.2.3.4/",
55921cb0ef41Sopenharmony_ci    "base": "http://other.com/",
55931cb0ef41Sopenharmony_ci    "href": "http://1.2.3.4/",
55941cb0ef41Sopenharmony_ci    "origin": "http://1.2.3.4",
55951cb0ef41Sopenharmony_ci    "protocol": "http:",
55961cb0ef41Sopenharmony_ci    "username": "",
55971cb0ef41Sopenharmony_ci    "password": "",
55981cb0ef41Sopenharmony_ci    "host": "1.2.3.4",
55991cb0ef41Sopenharmony_ci    "hostname": "1.2.3.4",
56001cb0ef41Sopenharmony_ci    "port": "",
56011cb0ef41Sopenharmony_ci    "pathname": "/",
56021cb0ef41Sopenharmony_ci    "search": "",
56031cb0ef41Sopenharmony_ci    "hash": ""
56041cb0ef41Sopenharmony_ci  },
56051cb0ef41Sopenharmony_ci  {
56061cb0ef41Sopenharmony_ci    "input": "http://1.2.3.4./",
56071cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56081cb0ef41Sopenharmony_ci    "href": "http://1.2.3.4/",
56091cb0ef41Sopenharmony_ci    "origin": "http://1.2.3.4",
56101cb0ef41Sopenharmony_ci    "protocol": "http:",
56111cb0ef41Sopenharmony_ci    "username": "",
56121cb0ef41Sopenharmony_ci    "password": "",
56131cb0ef41Sopenharmony_ci    "host": "1.2.3.4",
56141cb0ef41Sopenharmony_ci    "hostname": "1.2.3.4",
56151cb0ef41Sopenharmony_ci    "port": "",
56161cb0ef41Sopenharmony_ci    "pathname": "/",
56171cb0ef41Sopenharmony_ci    "search": "",
56181cb0ef41Sopenharmony_ci    "hash": ""
56191cb0ef41Sopenharmony_ci  },
56201cb0ef41Sopenharmony_ci  {
56211cb0ef41Sopenharmony_ci    "input": "http://192.168.257",
56221cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56231cb0ef41Sopenharmony_ci    "href": "http://192.168.1.1/",
56241cb0ef41Sopenharmony_ci    "origin": "http://192.168.1.1",
56251cb0ef41Sopenharmony_ci    "protocol": "http:",
56261cb0ef41Sopenharmony_ci    "username": "",
56271cb0ef41Sopenharmony_ci    "password": "",
56281cb0ef41Sopenharmony_ci    "host": "192.168.1.1",
56291cb0ef41Sopenharmony_ci    "hostname": "192.168.1.1",
56301cb0ef41Sopenharmony_ci    "port": "",
56311cb0ef41Sopenharmony_ci    "pathname": "/",
56321cb0ef41Sopenharmony_ci    "search": "",
56331cb0ef41Sopenharmony_ci    "hash": ""
56341cb0ef41Sopenharmony_ci  },
56351cb0ef41Sopenharmony_ci  {
56361cb0ef41Sopenharmony_ci    "input": "http://192.168.257.",
56371cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56381cb0ef41Sopenharmony_ci    "href": "http://192.168.1.1/",
56391cb0ef41Sopenharmony_ci    "origin": "http://192.168.1.1",
56401cb0ef41Sopenharmony_ci    "protocol": "http:",
56411cb0ef41Sopenharmony_ci    "username": "",
56421cb0ef41Sopenharmony_ci    "password": "",
56431cb0ef41Sopenharmony_ci    "host": "192.168.1.1",
56441cb0ef41Sopenharmony_ci    "hostname": "192.168.1.1",
56451cb0ef41Sopenharmony_ci    "port": "",
56461cb0ef41Sopenharmony_ci    "pathname": "/",
56471cb0ef41Sopenharmony_ci    "search": "",
56481cb0ef41Sopenharmony_ci    "hash": ""
56491cb0ef41Sopenharmony_ci  },
56501cb0ef41Sopenharmony_ci  {
56511cb0ef41Sopenharmony_ci    "input": "http://192.168.257.com",
56521cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56531cb0ef41Sopenharmony_ci    "href": "http://192.168.257.com/",
56541cb0ef41Sopenharmony_ci    "origin": "http://192.168.257.com",
56551cb0ef41Sopenharmony_ci    "protocol": "http:",
56561cb0ef41Sopenharmony_ci    "username": "",
56571cb0ef41Sopenharmony_ci    "password": "",
56581cb0ef41Sopenharmony_ci    "host": "192.168.257.com",
56591cb0ef41Sopenharmony_ci    "hostname": "192.168.257.com",
56601cb0ef41Sopenharmony_ci    "port": "",
56611cb0ef41Sopenharmony_ci    "pathname": "/",
56621cb0ef41Sopenharmony_ci    "search": "",
56631cb0ef41Sopenharmony_ci    "hash": ""
56641cb0ef41Sopenharmony_ci  },
56651cb0ef41Sopenharmony_ci  {
56661cb0ef41Sopenharmony_ci    "input": "http://256",
56671cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56681cb0ef41Sopenharmony_ci    "href": "http://0.0.1.0/",
56691cb0ef41Sopenharmony_ci    "origin": "http://0.0.1.0",
56701cb0ef41Sopenharmony_ci    "protocol": "http:",
56711cb0ef41Sopenharmony_ci    "username": "",
56721cb0ef41Sopenharmony_ci    "password": "",
56731cb0ef41Sopenharmony_ci    "host": "0.0.1.0",
56741cb0ef41Sopenharmony_ci    "hostname": "0.0.1.0",
56751cb0ef41Sopenharmony_ci    "port": "",
56761cb0ef41Sopenharmony_ci    "pathname": "/",
56771cb0ef41Sopenharmony_ci    "search": "",
56781cb0ef41Sopenharmony_ci    "hash": ""
56791cb0ef41Sopenharmony_ci  },
56801cb0ef41Sopenharmony_ci  {
56811cb0ef41Sopenharmony_ci    "input": "http://256.com",
56821cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56831cb0ef41Sopenharmony_ci    "href": "http://256.com/",
56841cb0ef41Sopenharmony_ci    "origin": "http://256.com",
56851cb0ef41Sopenharmony_ci    "protocol": "http:",
56861cb0ef41Sopenharmony_ci    "username": "",
56871cb0ef41Sopenharmony_ci    "password": "",
56881cb0ef41Sopenharmony_ci    "host": "256.com",
56891cb0ef41Sopenharmony_ci    "hostname": "256.com",
56901cb0ef41Sopenharmony_ci    "port": "",
56911cb0ef41Sopenharmony_ci    "pathname": "/",
56921cb0ef41Sopenharmony_ci    "search": "",
56931cb0ef41Sopenharmony_ci    "hash": ""
56941cb0ef41Sopenharmony_ci  },
56951cb0ef41Sopenharmony_ci  {
56961cb0ef41Sopenharmony_ci    "input": "http://999999999",
56971cb0ef41Sopenharmony_ci    "base": "http://other.com/",
56981cb0ef41Sopenharmony_ci    "href": "http://59.154.201.255/",
56991cb0ef41Sopenharmony_ci    "origin": "http://59.154.201.255",
57001cb0ef41Sopenharmony_ci    "protocol": "http:",
57011cb0ef41Sopenharmony_ci    "username": "",
57021cb0ef41Sopenharmony_ci    "password": "",
57031cb0ef41Sopenharmony_ci    "host": "59.154.201.255",
57041cb0ef41Sopenharmony_ci    "hostname": "59.154.201.255",
57051cb0ef41Sopenharmony_ci    "port": "",
57061cb0ef41Sopenharmony_ci    "pathname": "/",
57071cb0ef41Sopenharmony_ci    "search": "",
57081cb0ef41Sopenharmony_ci    "hash": ""
57091cb0ef41Sopenharmony_ci  },
57101cb0ef41Sopenharmony_ci  {
57111cb0ef41Sopenharmony_ci    "input": "http://999999999.",
57121cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57131cb0ef41Sopenharmony_ci    "href": "http://59.154.201.255/",
57141cb0ef41Sopenharmony_ci    "origin": "http://59.154.201.255",
57151cb0ef41Sopenharmony_ci    "protocol": "http:",
57161cb0ef41Sopenharmony_ci    "username": "",
57171cb0ef41Sopenharmony_ci    "password": "",
57181cb0ef41Sopenharmony_ci    "host": "59.154.201.255",
57191cb0ef41Sopenharmony_ci    "hostname": "59.154.201.255",
57201cb0ef41Sopenharmony_ci    "port": "",
57211cb0ef41Sopenharmony_ci    "pathname": "/",
57221cb0ef41Sopenharmony_ci    "search": "",
57231cb0ef41Sopenharmony_ci    "hash": ""
57241cb0ef41Sopenharmony_ci  },
57251cb0ef41Sopenharmony_ci  {
57261cb0ef41Sopenharmony_ci    "input": "http://999999999.com",
57271cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57281cb0ef41Sopenharmony_ci    "href": "http://999999999.com/",
57291cb0ef41Sopenharmony_ci    "origin": "http://999999999.com",
57301cb0ef41Sopenharmony_ci    "protocol": "http:",
57311cb0ef41Sopenharmony_ci    "username": "",
57321cb0ef41Sopenharmony_ci    "password": "",
57331cb0ef41Sopenharmony_ci    "host": "999999999.com",
57341cb0ef41Sopenharmony_ci    "hostname": "999999999.com",
57351cb0ef41Sopenharmony_ci    "port": "",
57361cb0ef41Sopenharmony_ci    "pathname": "/",
57371cb0ef41Sopenharmony_ci    "search": "",
57381cb0ef41Sopenharmony_ci    "hash": ""
57391cb0ef41Sopenharmony_ci  },
57401cb0ef41Sopenharmony_ci  {
57411cb0ef41Sopenharmony_ci    "input": "http://10000000000",
57421cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57431cb0ef41Sopenharmony_ci    "failure": true
57441cb0ef41Sopenharmony_ci  },
57451cb0ef41Sopenharmony_ci  {
57461cb0ef41Sopenharmony_ci    "input": "http://10000000000.com",
57471cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57481cb0ef41Sopenharmony_ci    "href": "http://10000000000.com/",
57491cb0ef41Sopenharmony_ci    "origin": "http://10000000000.com",
57501cb0ef41Sopenharmony_ci    "protocol": "http:",
57511cb0ef41Sopenharmony_ci    "username": "",
57521cb0ef41Sopenharmony_ci    "password": "",
57531cb0ef41Sopenharmony_ci    "host": "10000000000.com",
57541cb0ef41Sopenharmony_ci    "hostname": "10000000000.com",
57551cb0ef41Sopenharmony_ci    "port": "",
57561cb0ef41Sopenharmony_ci    "pathname": "/",
57571cb0ef41Sopenharmony_ci    "search": "",
57581cb0ef41Sopenharmony_ci    "hash": ""
57591cb0ef41Sopenharmony_ci  },
57601cb0ef41Sopenharmony_ci  {
57611cb0ef41Sopenharmony_ci    "input": "http://4294967295",
57621cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57631cb0ef41Sopenharmony_ci    "href": "http://255.255.255.255/",
57641cb0ef41Sopenharmony_ci    "origin": "http://255.255.255.255",
57651cb0ef41Sopenharmony_ci    "protocol": "http:",
57661cb0ef41Sopenharmony_ci    "username": "",
57671cb0ef41Sopenharmony_ci    "password": "",
57681cb0ef41Sopenharmony_ci    "host": "255.255.255.255",
57691cb0ef41Sopenharmony_ci    "hostname": "255.255.255.255",
57701cb0ef41Sopenharmony_ci    "port": "",
57711cb0ef41Sopenharmony_ci    "pathname": "/",
57721cb0ef41Sopenharmony_ci    "search": "",
57731cb0ef41Sopenharmony_ci    "hash": ""
57741cb0ef41Sopenharmony_ci  },
57751cb0ef41Sopenharmony_ci  {
57761cb0ef41Sopenharmony_ci    "input": "http://4294967296",
57771cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57781cb0ef41Sopenharmony_ci    "failure": true
57791cb0ef41Sopenharmony_ci  },
57801cb0ef41Sopenharmony_ci  {
57811cb0ef41Sopenharmony_ci    "input": "http://0xffffffff",
57821cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57831cb0ef41Sopenharmony_ci    "href": "http://255.255.255.255/",
57841cb0ef41Sopenharmony_ci    "origin": "http://255.255.255.255",
57851cb0ef41Sopenharmony_ci    "protocol": "http:",
57861cb0ef41Sopenharmony_ci    "username": "",
57871cb0ef41Sopenharmony_ci    "password": "",
57881cb0ef41Sopenharmony_ci    "host": "255.255.255.255",
57891cb0ef41Sopenharmony_ci    "hostname": "255.255.255.255",
57901cb0ef41Sopenharmony_ci    "port": "",
57911cb0ef41Sopenharmony_ci    "pathname": "/",
57921cb0ef41Sopenharmony_ci    "search": "",
57931cb0ef41Sopenharmony_ci    "hash": ""
57941cb0ef41Sopenharmony_ci  },
57951cb0ef41Sopenharmony_ci  {
57961cb0ef41Sopenharmony_ci    "input": "http://0xffffffff1",
57971cb0ef41Sopenharmony_ci    "base": "http://other.com/",
57981cb0ef41Sopenharmony_ci    "failure": true
57991cb0ef41Sopenharmony_ci  },
58001cb0ef41Sopenharmony_ci  {
58011cb0ef41Sopenharmony_ci    "input": "http://256.256.256.256",
58021cb0ef41Sopenharmony_ci    "base": "http://other.com/",
58031cb0ef41Sopenharmony_ci    "failure": true
58041cb0ef41Sopenharmony_ci  },
58051cb0ef41Sopenharmony_ci  {
58061cb0ef41Sopenharmony_ci    "input": "https://0x.0x.0",
58071cb0ef41Sopenharmony_ci    "base": null,
58081cb0ef41Sopenharmony_ci    "href": "https://0.0.0.0/",
58091cb0ef41Sopenharmony_ci    "origin": "https://0.0.0.0",
58101cb0ef41Sopenharmony_ci    "protocol": "https:",
58111cb0ef41Sopenharmony_ci    "username": "",
58121cb0ef41Sopenharmony_ci    "password": "",
58131cb0ef41Sopenharmony_ci    "host": "0.0.0.0",
58141cb0ef41Sopenharmony_ci    "hostname": "0.0.0.0",
58151cb0ef41Sopenharmony_ci    "port": "",
58161cb0ef41Sopenharmony_ci    "pathname": "/",
58171cb0ef41Sopenharmony_ci    "search": "",
58181cb0ef41Sopenharmony_ci    "hash": ""
58191cb0ef41Sopenharmony_ci  },
58201cb0ef41Sopenharmony_ci  "More IPv4 parsing (via https://github.com/jsdom/whatwg-url/issues/92)",
58211cb0ef41Sopenharmony_ci  {
58221cb0ef41Sopenharmony_ci    "input": "https://0x100000000/test",
58231cb0ef41Sopenharmony_ci    "base": null,
58241cb0ef41Sopenharmony_ci    "failure": true
58251cb0ef41Sopenharmony_ci  },
58261cb0ef41Sopenharmony_ci  {
58271cb0ef41Sopenharmony_ci    "input": "https://256.0.0.1/test",
58281cb0ef41Sopenharmony_ci    "base": null,
58291cb0ef41Sopenharmony_ci    "failure": true
58301cb0ef41Sopenharmony_ci  },
58311cb0ef41Sopenharmony_ci  "# file URLs containing percent-encoded Windows drive letters (shouldn't work)",
58321cb0ef41Sopenharmony_ci  {
58331cb0ef41Sopenharmony_ci    "input": "file:///C%3A/",
58341cb0ef41Sopenharmony_ci    "base": null,
58351cb0ef41Sopenharmony_ci    "href": "file:///C%3A/",
58361cb0ef41Sopenharmony_ci    "protocol": "file:",
58371cb0ef41Sopenharmony_ci    "username": "",
58381cb0ef41Sopenharmony_ci    "password": "",
58391cb0ef41Sopenharmony_ci    "host": "",
58401cb0ef41Sopenharmony_ci    "hostname": "",
58411cb0ef41Sopenharmony_ci    "port": "",
58421cb0ef41Sopenharmony_ci    "pathname": "/C%3A/",
58431cb0ef41Sopenharmony_ci    "search": "",
58441cb0ef41Sopenharmony_ci    "hash": ""
58451cb0ef41Sopenharmony_ci  },
58461cb0ef41Sopenharmony_ci  {
58471cb0ef41Sopenharmony_ci    "input": "file:///C%7C/",
58481cb0ef41Sopenharmony_ci    "base": null,
58491cb0ef41Sopenharmony_ci    "href": "file:///C%7C/",
58501cb0ef41Sopenharmony_ci    "protocol": "file:",
58511cb0ef41Sopenharmony_ci    "username": "",
58521cb0ef41Sopenharmony_ci    "password": "",
58531cb0ef41Sopenharmony_ci    "host": "",
58541cb0ef41Sopenharmony_ci    "hostname": "",
58551cb0ef41Sopenharmony_ci    "port": "",
58561cb0ef41Sopenharmony_ci    "pathname": "/C%7C/",
58571cb0ef41Sopenharmony_ci    "search": "",
58581cb0ef41Sopenharmony_ci    "hash": ""
58591cb0ef41Sopenharmony_ci  },
58601cb0ef41Sopenharmony_ci  {
58611cb0ef41Sopenharmony_ci    "input": "file://%43%3A",
58621cb0ef41Sopenharmony_ci    "base": null,
58631cb0ef41Sopenharmony_ci    "failure": true
58641cb0ef41Sopenharmony_ci  },
58651cb0ef41Sopenharmony_ci  {
58661cb0ef41Sopenharmony_ci    "input": "file://%43%7C",
58671cb0ef41Sopenharmony_ci    "base": null,
58681cb0ef41Sopenharmony_ci    "failure": true
58691cb0ef41Sopenharmony_ci  },
58701cb0ef41Sopenharmony_ci  {
58711cb0ef41Sopenharmony_ci    "input": "file://%43|",
58721cb0ef41Sopenharmony_ci    "base": null,
58731cb0ef41Sopenharmony_ci    "failure": true
58741cb0ef41Sopenharmony_ci  },
58751cb0ef41Sopenharmony_ci  {
58761cb0ef41Sopenharmony_ci    "input": "file://C%7C",
58771cb0ef41Sopenharmony_ci    "base": null,
58781cb0ef41Sopenharmony_ci    "failure": true
58791cb0ef41Sopenharmony_ci  },
58801cb0ef41Sopenharmony_ci  {
58811cb0ef41Sopenharmony_ci    "input": "file://%43%7C/",
58821cb0ef41Sopenharmony_ci    "base": null,
58831cb0ef41Sopenharmony_ci    "failure": true
58841cb0ef41Sopenharmony_ci  },
58851cb0ef41Sopenharmony_ci  {
58861cb0ef41Sopenharmony_ci    "input": "https://%43%7C/",
58871cb0ef41Sopenharmony_ci    "base": null,
58881cb0ef41Sopenharmony_ci    "failure": true
58891cb0ef41Sopenharmony_ci  },
58901cb0ef41Sopenharmony_ci  {
58911cb0ef41Sopenharmony_ci    "input": "asdf://%43|/",
58921cb0ef41Sopenharmony_ci    "base": null,
58931cb0ef41Sopenharmony_ci    "failure": true
58941cb0ef41Sopenharmony_ci  },
58951cb0ef41Sopenharmony_ci  {
58961cb0ef41Sopenharmony_ci    "input": "asdf://%43%7C/",
58971cb0ef41Sopenharmony_ci    "base": null,
58981cb0ef41Sopenharmony_ci    "href": "asdf://%43%7C/",
58991cb0ef41Sopenharmony_ci    "origin": "null",
59001cb0ef41Sopenharmony_ci    "protocol": "asdf:",
59011cb0ef41Sopenharmony_ci    "username": "",
59021cb0ef41Sopenharmony_ci    "password": "",
59031cb0ef41Sopenharmony_ci    "host": "%43%7C",
59041cb0ef41Sopenharmony_ci    "hostname": "%43%7C",
59051cb0ef41Sopenharmony_ci    "port": "",
59061cb0ef41Sopenharmony_ci    "pathname": "/",
59071cb0ef41Sopenharmony_ci    "search": "",
59081cb0ef41Sopenharmony_ci    "hash": ""
59091cb0ef41Sopenharmony_ci  },
59101cb0ef41Sopenharmony_ci  "# file URLs relative to other file URLs (via https://github.com/jsdom/whatwg-url/pull/60)",
59111cb0ef41Sopenharmony_ci  {
59121cb0ef41Sopenharmony_ci    "input": "pix/submit.gif",
59131cb0ef41Sopenharmony_ci    "base": "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html",
59141cb0ef41Sopenharmony_ci    "href": "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif",
59151cb0ef41Sopenharmony_ci    "protocol": "file:",
59161cb0ef41Sopenharmony_ci    "username": "",
59171cb0ef41Sopenharmony_ci    "password": "",
59181cb0ef41Sopenharmony_ci    "host": "",
59191cb0ef41Sopenharmony_ci    "hostname": "",
59201cb0ef41Sopenharmony_ci    "port": "",
59211cb0ef41Sopenharmony_ci    "pathname": "/C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif",
59221cb0ef41Sopenharmony_ci    "search": "",
59231cb0ef41Sopenharmony_ci    "hash": ""
59241cb0ef41Sopenharmony_ci  },
59251cb0ef41Sopenharmony_ci  {
59261cb0ef41Sopenharmony_ci    "input": "..",
59271cb0ef41Sopenharmony_ci    "base": "file:///C:/",
59281cb0ef41Sopenharmony_ci    "href": "file:///C:/",
59291cb0ef41Sopenharmony_ci    "protocol": "file:",
59301cb0ef41Sopenharmony_ci    "username": "",
59311cb0ef41Sopenharmony_ci    "password": "",
59321cb0ef41Sopenharmony_ci    "host": "",
59331cb0ef41Sopenharmony_ci    "hostname": "",
59341cb0ef41Sopenharmony_ci    "port": "",
59351cb0ef41Sopenharmony_ci    "pathname": "/C:/",
59361cb0ef41Sopenharmony_ci    "search": "",
59371cb0ef41Sopenharmony_ci    "hash": ""
59381cb0ef41Sopenharmony_ci  },
59391cb0ef41Sopenharmony_ci  {
59401cb0ef41Sopenharmony_ci    "input": "..",
59411cb0ef41Sopenharmony_ci    "base": "file:///",
59421cb0ef41Sopenharmony_ci    "href": "file:///",
59431cb0ef41Sopenharmony_ci    "protocol": "file:",
59441cb0ef41Sopenharmony_ci    "username": "",
59451cb0ef41Sopenharmony_ci    "password": "",
59461cb0ef41Sopenharmony_ci    "host": "",
59471cb0ef41Sopenharmony_ci    "hostname": "",
59481cb0ef41Sopenharmony_ci    "port": "",
59491cb0ef41Sopenharmony_ci    "pathname": "/",
59501cb0ef41Sopenharmony_ci    "search": "",
59511cb0ef41Sopenharmony_ci    "hash": ""
59521cb0ef41Sopenharmony_ci  },
59531cb0ef41Sopenharmony_ci  "# More file URL tests by zcorpan and annevk",
59541cb0ef41Sopenharmony_ci  {
59551cb0ef41Sopenharmony_ci    "input": "/",
59561cb0ef41Sopenharmony_ci    "base": "file:///C:/a/b",
59571cb0ef41Sopenharmony_ci    "href": "file:///C:/",
59581cb0ef41Sopenharmony_ci    "protocol": "file:",
59591cb0ef41Sopenharmony_ci    "username": "",
59601cb0ef41Sopenharmony_ci    "password": "",
59611cb0ef41Sopenharmony_ci    "host": "",
59621cb0ef41Sopenharmony_ci    "hostname": "",
59631cb0ef41Sopenharmony_ci    "port": "",
59641cb0ef41Sopenharmony_ci    "pathname": "/C:/",
59651cb0ef41Sopenharmony_ci    "search": "",
59661cb0ef41Sopenharmony_ci    "hash": ""
59671cb0ef41Sopenharmony_ci  },
59681cb0ef41Sopenharmony_ci  {
59691cb0ef41Sopenharmony_ci    "input": "/",
59701cb0ef41Sopenharmony_ci    "base": "file://h/C:/a/b",
59711cb0ef41Sopenharmony_ci    "href": "file://h/C:/",
59721cb0ef41Sopenharmony_ci    "protocol": "file:",
59731cb0ef41Sopenharmony_ci    "username": "",
59741cb0ef41Sopenharmony_ci    "password": "",
59751cb0ef41Sopenharmony_ci    "host": "h",
59761cb0ef41Sopenharmony_ci    "hostname": "h",
59771cb0ef41Sopenharmony_ci    "port": "",
59781cb0ef41Sopenharmony_ci    "pathname": "/C:/",
59791cb0ef41Sopenharmony_ci    "search": "",
59801cb0ef41Sopenharmony_ci    "hash": ""
59811cb0ef41Sopenharmony_ci  },
59821cb0ef41Sopenharmony_ci  {
59831cb0ef41Sopenharmony_ci    "input": "/",
59841cb0ef41Sopenharmony_ci    "base": "file://h/a/b",
59851cb0ef41Sopenharmony_ci    "href": "file://h/",
59861cb0ef41Sopenharmony_ci    "protocol": "file:",
59871cb0ef41Sopenharmony_ci    "username": "",
59881cb0ef41Sopenharmony_ci    "password": "",
59891cb0ef41Sopenharmony_ci    "host": "h",
59901cb0ef41Sopenharmony_ci    "hostname": "h",
59911cb0ef41Sopenharmony_ci    "port": "",
59921cb0ef41Sopenharmony_ci    "pathname": "/",
59931cb0ef41Sopenharmony_ci    "search": "",
59941cb0ef41Sopenharmony_ci    "hash": ""
59951cb0ef41Sopenharmony_ci  },
59961cb0ef41Sopenharmony_ci  {
59971cb0ef41Sopenharmony_ci    "input": "//d:",
59981cb0ef41Sopenharmony_ci    "base": "file:///C:/a/b",
59991cb0ef41Sopenharmony_ci    "href": "file:///d:",
60001cb0ef41Sopenharmony_ci    "protocol": "file:",
60011cb0ef41Sopenharmony_ci    "username": "",
60021cb0ef41Sopenharmony_ci    "password": "",
60031cb0ef41Sopenharmony_ci    "host": "",
60041cb0ef41Sopenharmony_ci    "hostname": "",
60051cb0ef41Sopenharmony_ci    "port": "",
60061cb0ef41Sopenharmony_ci    "pathname": "/d:",
60071cb0ef41Sopenharmony_ci    "search": "",
60081cb0ef41Sopenharmony_ci    "hash": ""
60091cb0ef41Sopenharmony_ci  },
60101cb0ef41Sopenharmony_ci  {
60111cb0ef41Sopenharmony_ci    "input": "//d:/..",
60121cb0ef41Sopenharmony_ci    "base": "file:///C:/a/b",
60131cb0ef41Sopenharmony_ci    "href": "file:///d:/",
60141cb0ef41Sopenharmony_ci    "protocol": "file:",
60151cb0ef41Sopenharmony_ci    "username": "",
60161cb0ef41Sopenharmony_ci    "password": "",
60171cb0ef41Sopenharmony_ci    "host": "",
60181cb0ef41Sopenharmony_ci    "hostname": "",
60191cb0ef41Sopenharmony_ci    "port": "",
60201cb0ef41Sopenharmony_ci    "pathname": "/d:/",
60211cb0ef41Sopenharmony_ci    "search": "",
60221cb0ef41Sopenharmony_ci    "hash": ""
60231cb0ef41Sopenharmony_ci  },
60241cb0ef41Sopenharmony_ci  {
60251cb0ef41Sopenharmony_ci    "input": "..",
60261cb0ef41Sopenharmony_ci    "base": "file:///ab:/",
60271cb0ef41Sopenharmony_ci    "href": "file:///",
60281cb0ef41Sopenharmony_ci    "protocol": "file:",
60291cb0ef41Sopenharmony_ci    "username": "",
60301cb0ef41Sopenharmony_ci    "password": "",
60311cb0ef41Sopenharmony_ci    "host": "",
60321cb0ef41Sopenharmony_ci    "hostname": "",
60331cb0ef41Sopenharmony_ci    "port": "",
60341cb0ef41Sopenharmony_ci    "pathname": "/",
60351cb0ef41Sopenharmony_ci    "search": "",
60361cb0ef41Sopenharmony_ci    "hash": ""
60371cb0ef41Sopenharmony_ci  },
60381cb0ef41Sopenharmony_ci  {
60391cb0ef41Sopenharmony_ci    "input": "..",
60401cb0ef41Sopenharmony_ci    "base": "file:///1:/",
60411cb0ef41Sopenharmony_ci    "href": "file:///",
60421cb0ef41Sopenharmony_ci    "protocol": "file:",
60431cb0ef41Sopenharmony_ci    "username": "",
60441cb0ef41Sopenharmony_ci    "password": "",
60451cb0ef41Sopenharmony_ci    "host": "",
60461cb0ef41Sopenharmony_ci    "hostname": "",
60471cb0ef41Sopenharmony_ci    "port": "",
60481cb0ef41Sopenharmony_ci    "pathname": "/",
60491cb0ef41Sopenharmony_ci    "search": "",
60501cb0ef41Sopenharmony_ci    "hash": ""
60511cb0ef41Sopenharmony_ci  },
60521cb0ef41Sopenharmony_ci  {
60531cb0ef41Sopenharmony_ci    "input": "",
60541cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
60551cb0ef41Sopenharmony_ci    "href": "file:///test?test",
60561cb0ef41Sopenharmony_ci    "protocol": "file:",
60571cb0ef41Sopenharmony_ci    "username": "",
60581cb0ef41Sopenharmony_ci    "password": "",
60591cb0ef41Sopenharmony_ci    "host": "",
60601cb0ef41Sopenharmony_ci    "hostname": "",
60611cb0ef41Sopenharmony_ci    "port": "",
60621cb0ef41Sopenharmony_ci    "pathname": "/test",
60631cb0ef41Sopenharmony_ci    "search": "?test",
60641cb0ef41Sopenharmony_ci    "hash": ""
60651cb0ef41Sopenharmony_ci  },
60661cb0ef41Sopenharmony_ci  {
60671cb0ef41Sopenharmony_ci    "input": "file:",
60681cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
60691cb0ef41Sopenharmony_ci    "href": "file:///test?test",
60701cb0ef41Sopenharmony_ci    "protocol": "file:",
60711cb0ef41Sopenharmony_ci    "username": "",
60721cb0ef41Sopenharmony_ci    "password": "",
60731cb0ef41Sopenharmony_ci    "host": "",
60741cb0ef41Sopenharmony_ci    "hostname": "",
60751cb0ef41Sopenharmony_ci    "port": "",
60761cb0ef41Sopenharmony_ci    "pathname": "/test",
60771cb0ef41Sopenharmony_ci    "search": "?test",
60781cb0ef41Sopenharmony_ci    "hash": ""
60791cb0ef41Sopenharmony_ci  },
60801cb0ef41Sopenharmony_ci  {
60811cb0ef41Sopenharmony_ci    "input": "?x",
60821cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
60831cb0ef41Sopenharmony_ci    "href": "file:///test?x",
60841cb0ef41Sopenharmony_ci    "protocol": "file:",
60851cb0ef41Sopenharmony_ci    "username": "",
60861cb0ef41Sopenharmony_ci    "password": "",
60871cb0ef41Sopenharmony_ci    "host": "",
60881cb0ef41Sopenharmony_ci    "hostname": "",
60891cb0ef41Sopenharmony_ci    "port": "",
60901cb0ef41Sopenharmony_ci    "pathname": "/test",
60911cb0ef41Sopenharmony_ci    "search": "?x",
60921cb0ef41Sopenharmony_ci    "hash": ""
60931cb0ef41Sopenharmony_ci  },
60941cb0ef41Sopenharmony_ci  {
60951cb0ef41Sopenharmony_ci    "input": "file:?x",
60961cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
60971cb0ef41Sopenharmony_ci    "href": "file:///test?x",
60981cb0ef41Sopenharmony_ci    "protocol": "file:",
60991cb0ef41Sopenharmony_ci    "username": "",
61001cb0ef41Sopenharmony_ci    "password": "",
61011cb0ef41Sopenharmony_ci    "host": "",
61021cb0ef41Sopenharmony_ci    "hostname": "",
61031cb0ef41Sopenharmony_ci    "port": "",
61041cb0ef41Sopenharmony_ci    "pathname": "/test",
61051cb0ef41Sopenharmony_ci    "search": "?x",
61061cb0ef41Sopenharmony_ci    "hash": ""
61071cb0ef41Sopenharmony_ci  },
61081cb0ef41Sopenharmony_ci  {
61091cb0ef41Sopenharmony_ci    "input": "#x",
61101cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
61111cb0ef41Sopenharmony_ci    "href": "file:///test?test#x",
61121cb0ef41Sopenharmony_ci    "protocol": "file:",
61131cb0ef41Sopenharmony_ci    "username": "",
61141cb0ef41Sopenharmony_ci    "password": "",
61151cb0ef41Sopenharmony_ci    "host": "",
61161cb0ef41Sopenharmony_ci    "hostname": "",
61171cb0ef41Sopenharmony_ci    "port": "",
61181cb0ef41Sopenharmony_ci    "pathname": "/test",
61191cb0ef41Sopenharmony_ci    "search": "?test",
61201cb0ef41Sopenharmony_ci    "hash": "#x"
61211cb0ef41Sopenharmony_ci  },
61221cb0ef41Sopenharmony_ci  {
61231cb0ef41Sopenharmony_ci    "input": "file:#x",
61241cb0ef41Sopenharmony_ci    "base": "file:///test?test#test",
61251cb0ef41Sopenharmony_ci    "href": "file:///test?test#x",
61261cb0ef41Sopenharmony_ci    "protocol": "file:",
61271cb0ef41Sopenharmony_ci    "username": "",
61281cb0ef41Sopenharmony_ci    "password": "",
61291cb0ef41Sopenharmony_ci    "host": "",
61301cb0ef41Sopenharmony_ci    "hostname": "",
61311cb0ef41Sopenharmony_ci    "port": "",
61321cb0ef41Sopenharmony_ci    "pathname": "/test",
61331cb0ef41Sopenharmony_ci    "search": "?test",
61341cb0ef41Sopenharmony_ci    "hash": "#x"
61351cb0ef41Sopenharmony_ci  },
61361cb0ef41Sopenharmony_ci  "# File URLs and many (back)slashes",
61371cb0ef41Sopenharmony_ci  {
61381cb0ef41Sopenharmony_ci    "input": "file:\\\\//",
61391cb0ef41Sopenharmony_ci    "base": null,
61401cb0ef41Sopenharmony_ci    "href": "file:////",
61411cb0ef41Sopenharmony_ci    "protocol": "file:",
61421cb0ef41Sopenharmony_ci    "username": "",
61431cb0ef41Sopenharmony_ci    "password": "",
61441cb0ef41Sopenharmony_ci    "host": "",
61451cb0ef41Sopenharmony_ci    "hostname": "",
61461cb0ef41Sopenharmony_ci    "port": "",
61471cb0ef41Sopenharmony_ci    "pathname": "//",
61481cb0ef41Sopenharmony_ci    "search": "",
61491cb0ef41Sopenharmony_ci    "hash": ""
61501cb0ef41Sopenharmony_ci  },
61511cb0ef41Sopenharmony_ci  {
61521cb0ef41Sopenharmony_ci    "input": "file:\\\\\\\\",
61531cb0ef41Sopenharmony_ci    "base": null,
61541cb0ef41Sopenharmony_ci    "href": "file:////",
61551cb0ef41Sopenharmony_ci    "protocol": "file:",
61561cb0ef41Sopenharmony_ci    "username": "",
61571cb0ef41Sopenharmony_ci    "password": "",
61581cb0ef41Sopenharmony_ci    "host": "",
61591cb0ef41Sopenharmony_ci    "hostname": "",
61601cb0ef41Sopenharmony_ci    "port": "",
61611cb0ef41Sopenharmony_ci    "pathname": "//",
61621cb0ef41Sopenharmony_ci    "search": "",
61631cb0ef41Sopenharmony_ci    "hash": ""
61641cb0ef41Sopenharmony_ci  },
61651cb0ef41Sopenharmony_ci  {
61661cb0ef41Sopenharmony_ci    "input": "file:\\\\\\\\?fox",
61671cb0ef41Sopenharmony_ci    "base": null,
61681cb0ef41Sopenharmony_ci    "href": "file:////?fox",
61691cb0ef41Sopenharmony_ci    "protocol": "file:",
61701cb0ef41Sopenharmony_ci    "username": "",
61711cb0ef41Sopenharmony_ci    "password": "",
61721cb0ef41Sopenharmony_ci    "host": "",
61731cb0ef41Sopenharmony_ci    "hostname": "",
61741cb0ef41Sopenharmony_ci    "port": "",
61751cb0ef41Sopenharmony_ci    "pathname": "//",
61761cb0ef41Sopenharmony_ci    "search": "?fox",
61771cb0ef41Sopenharmony_ci    "hash": ""
61781cb0ef41Sopenharmony_ci  },
61791cb0ef41Sopenharmony_ci  {
61801cb0ef41Sopenharmony_ci    "input": "file:\\\\\\\\#guppy",
61811cb0ef41Sopenharmony_ci    "base": null,
61821cb0ef41Sopenharmony_ci    "href": "file:////#guppy",
61831cb0ef41Sopenharmony_ci    "protocol": "file:",
61841cb0ef41Sopenharmony_ci    "username": "",
61851cb0ef41Sopenharmony_ci    "password": "",
61861cb0ef41Sopenharmony_ci    "host": "",
61871cb0ef41Sopenharmony_ci    "hostname": "",
61881cb0ef41Sopenharmony_ci    "port": "",
61891cb0ef41Sopenharmony_ci    "pathname": "//",
61901cb0ef41Sopenharmony_ci    "search": "",
61911cb0ef41Sopenharmony_ci    "hash": "#guppy"
61921cb0ef41Sopenharmony_ci  },
61931cb0ef41Sopenharmony_ci  {
61941cb0ef41Sopenharmony_ci    "input": "file://spider///",
61951cb0ef41Sopenharmony_ci    "base": null,
61961cb0ef41Sopenharmony_ci    "href": "file://spider///",
61971cb0ef41Sopenharmony_ci    "protocol": "file:",
61981cb0ef41Sopenharmony_ci    "username": "",
61991cb0ef41Sopenharmony_ci    "password": "",
62001cb0ef41Sopenharmony_ci    "host": "spider",
62011cb0ef41Sopenharmony_ci    "hostname": "spider",
62021cb0ef41Sopenharmony_ci    "port": "",
62031cb0ef41Sopenharmony_ci    "pathname": "///",
62041cb0ef41Sopenharmony_ci    "search": "",
62051cb0ef41Sopenharmony_ci    "hash": ""
62061cb0ef41Sopenharmony_ci  },
62071cb0ef41Sopenharmony_ci  {
62081cb0ef41Sopenharmony_ci    "input": "file:\\\\localhost//",
62091cb0ef41Sopenharmony_ci    "base": null,
62101cb0ef41Sopenharmony_ci    "href": "file:////",
62111cb0ef41Sopenharmony_ci    "protocol": "file:",
62121cb0ef41Sopenharmony_ci    "username": "",
62131cb0ef41Sopenharmony_ci    "password": "",
62141cb0ef41Sopenharmony_ci    "host": "",
62151cb0ef41Sopenharmony_ci    "hostname": "",
62161cb0ef41Sopenharmony_ci    "port": "",
62171cb0ef41Sopenharmony_ci    "pathname": "//",
62181cb0ef41Sopenharmony_ci    "search": "",
62191cb0ef41Sopenharmony_ci    "hash": ""
62201cb0ef41Sopenharmony_ci  },
62211cb0ef41Sopenharmony_ci  {
62221cb0ef41Sopenharmony_ci    "input": "file:///localhost//cat",
62231cb0ef41Sopenharmony_ci    "base": null,
62241cb0ef41Sopenharmony_ci    "href": "file:///localhost//cat",
62251cb0ef41Sopenharmony_ci    "protocol": "file:",
62261cb0ef41Sopenharmony_ci    "username": "",
62271cb0ef41Sopenharmony_ci    "password": "",
62281cb0ef41Sopenharmony_ci    "host": "",
62291cb0ef41Sopenharmony_ci    "hostname": "",
62301cb0ef41Sopenharmony_ci    "port": "",
62311cb0ef41Sopenharmony_ci    "pathname": "/localhost//cat",
62321cb0ef41Sopenharmony_ci    "search": "",
62331cb0ef41Sopenharmony_ci    "hash": ""
62341cb0ef41Sopenharmony_ci  },
62351cb0ef41Sopenharmony_ci  {
62361cb0ef41Sopenharmony_ci    "input": "file://\\/localhost//cat",
62371cb0ef41Sopenharmony_ci    "base": null,
62381cb0ef41Sopenharmony_ci    "href": "file:////localhost//cat",
62391cb0ef41Sopenharmony_ci    "protocol": "file:",
62401cb0ef41Sopenharmony_ci    "username": "",
62411cb0ef41Sopenharmony_ci    "password": "",
62421cb0ef41Sopenharmony_ci    "host": "",
62431cb0ef41Sopenharmony_ci    "hostname": "",
62441cb0ef41Sopenharmony_ci    "port": "",
62451cb0ef41Sopenharmony_ci    "pathname": "//localhost//cat",
62461cb0ef41Sopenharmony_ci    "search": "",
62471cb0ef41Sopenharmony_ci    "hash": ""
62481cb0ef41Sopenharmony_ci  },
62491cb0ef41Sopenharmony_ci  {
62501cb0ef41Sopenharmony_ci    "input": "file://localhost//a//../..//",
62511cb0ef41Sopenharmony_ci    "base": null,
62521cb0ef41Sopenharmony_ci    "href": "file://///",
62531cb0ef41Sopenharmony_ci    "protocol": "file:",
62541cb0ef41Sopenharmony_ci    "username": "",
62551cb0ef41Sopenharmony_ci    "password": "",
62561cb0ef41Sopenharmony_ci    "host": "",
62571cb0ef41Sopenharmony_ci    "hostname": "",
62581cb0ef41Sopenharmony_ci    "port": "",
62591cb0ef41Sopenharmony_ci    "pathname": "///",
62601cb0ef41Sopenharmony_ci    "search": "",
62611cb0ef41Sopenharmony_ci    "hash": ""
62621cb0ef41Sopenharmony_ci  },
62631cb0ef41Sopenharmony_ci  {
62641cb0ef41Sopenharmony_ci    "input": "/////mouse",
62651cb0ef41Sopenharmony_ci    "base": "file:///elephant",
62661cb0ef41Sopenharmony_ci    "href": "file://///mouse",
62671cb0ef41Sopenharmony_ci    "protocol": "file:",
62681cb0ef41Sopenharmony_ci    "username": "",
62691cb0ef41Sopenharmony_ci    "password": "",
62701cb0ef41Sopenharmony_ci    "host": "",
62711cb0ef41Sopenharmony_ci    "hostname": "",
62721cb0ef41Sopenharmony_ci    "port": "",
62731cb0ef41Sopenharmony_ci    "pathname": "///mouse",
62741cb0ef41Sopenharmony_ci    "search": "",
62751cb0ef41Sopenharmony_ci    "hash": ""
62761cb0ef41Sopenharmony_ci  },
62771cb0ef41Sopenharmony_ci  {
62781cb0ef41Sopenharmony_ci    "input": "\\//pig",
62791cb0ef41Sopenharmony_ci    "base": "file://lion/",
62801cb0ef41Sopenharmony_ci    "href": "file:///pig",
62811cb0ef41Sopenharmony_ci    "protocol": "file:",
62821cb0ef41Sopenharmony_ci    "username": "",
62831cb0ef41Sopenharmony_ci    "password": "",
62841cb0ef41Sopenharmony_ci    "host": "",
62851cb0ef41Sopenharmony_ci    "hostname": "",
62861cb0ef41Sopenharmony_ci    "port": "",
62871cb0ef41Sopenharmony_ci    "pathname": "/pig",
62881cb0ef41Sopenharmony_ci    "search": "",
62891cb0ef41Sopenharmony_ci    "hash": ""
62901cb0ef41Sopenharmony_ci  },
62911cb0ef41Sopenharmony_ci  {
62921cb0ef41Sopenharmony_ci    "input": "\\/localhost//pig",
62931cb0ef41Sopenharmony_ci    "base": "file://lion/",
62941cb0ef41Sopenharmony_ci    "href": "file:////pig",
62951cb0ef41Sopenharmony_ci    "protocol": "file:",
62961cb0ef41Sopenharmony_ci    "username": "",
62971cb0ef41Sopenharmony_ci    "password": "",
62981cb0ef41Sopenharmony_ci    "host": "",
62991cb0ef41Sopenharmony_ci    "hostname": "",
63001cb0ef41Sopenharmony_ci    "port": "",
63011cb0ef41Sopenharmony_ci    "pathname": "//pig",
63021cb0ef41Sopenharmony_ci    "search": "",
63031cb0ef41Sopenharmony_ci    "hash": ""
63041cb0ef41Sopenharmony_ci  },
63051cb0ef41Sopenharmony_ci  {
63061cb0ef41Sopenharmony_ci    "input": "//localhost//pig",
63071cb0ef41Sopenharmony_ci    "base": "file://lion/",
63081cb0ef41Sopenharmony_ci    "href": "file:////pig",
63091cb0ef41Sopenharmony_ci    "protocol": "file:",
63101cb0ef41Sopenharmony_ci    "username": "",
63111cb0ef41Sopenharmony_ci    "password": "",
63121cb0ef41Sopenharmony_ci    "host": "",
63131cb0ef41Sopenharmony_ci    "hostname": "",
63141cb0ef41Sopenharmony_ci    "port": "",
63151cb0ef41Sopenharmony_ci    "pathname": "//pig",
63161cb0ef41Sopenharmony_ci    "search": "",
63171cb0ef41Sopenharmony_ci    "hash": ""
63181cb0ef41Sopenharmony_ci  },
63191cb0ef41Sopenharmony_ci  {
63201cb0ef41Sopenharmony_ci    "input": "/..//localhost//pig",
63211cb0ef41Sopenharmony_ci    "base": "file://lion/",
63221cb0ef41Sopenharmony_ci    "href": "file://lion//localhost//pig",
63231cb0ef41Sopenharmony_ci    "protocol": "file:",
63241cb0ef41Sopenharmony_ci    "username": "",
63251cb0ef41Sopenharmony_ci    "password": "",
63261cb0ef41Sopenharmony_ci    "host": "lion",
63271cb0ef41Sopenharmony_ci    "hostname": "lion",
63281cb0ef41Sopenharmony_ci    "port": "",
63291cb0ef41Sopenharmony_ci    "pathname": "//localhost//pig",
63301cb0ef41Sopenharmony_ci    "search": "",
63311cb0ef41Sopenharmony_ci    "hash": ""
63321cb0ef41Sopenharmony_ci  },
63331cb0ef41Sopenharmony_ci  {
63341cb0ef41Sopenharmony_ci    "input": "file://",
63351cb0ef41Sopenharmony_ci    "base": "file://ape/",
63361cb0ef41Sopenharmony_ci    "href": "file:///",
63371cb0ef41Sopenharmony_ci    "protocol": "file:",
63381cb0ef41Sopenharmony_ci    "username": "",
63391cb0ef41Sopenharmony_ci    "password": "",
63401cb0ef41Sopenharmony_ci    "host": "",
63411cb0ef41Sopenharmony_ci    "hostname": "",
63421cb0ef41Sopenharmony_ci    "port": "",
63431cb0ef41Sopenharmony_ci    "pathname": "/",
63441cb0ef41Sopenharmony_ci    "search": "",
63451cb0ef41Sopenharmony_ci    "hash": ""
63461cb0ef41Sopenharmony_ci  },
63471cb0ef41Sopenharmony_ci  "# File URLs with non-empty hosts",
63481cb0ef41Sopenharmony_ci  {
63491cb0ef41Sopenharmony_ci    "input": "/rooibos",
63501cb0ef41Sopenharmony_ci    "base": "file://tea/",
63511cb0ef41Sopenharmony_ci    "href": "file://tea/rooibos",
63521cb0ef41Sopenharmony_ci    "protocol": "file:",
63531cb0ef41Sopenharmony_ci    "username": "",
63541cb0ef41Sopenharmony_ci    "password": "",
63551cb0ef41Sopenharmony_ci    "host": "tea",
63561cb0ef41Sopenharmony_ci    "hostname": "tea",
63571cb0ef41Sopenharmony_ci    "port": "",
63581cb0ef41Sopenharmony_ci    "pathname": "/rooibos",
63591cb0ef41Sopenharmony_ci    "search": "",
63601cb0ef41Sopenharmony_ci    "hash": ""
63611cb0ef41Sopenharmony_ci  },
63621cb0ef41Sopenharmony_ci  {
63631cb0ef41Sopenharmony_ci    "input": "/?chai",
63641cb0ef41Sopenharmony_ci    "base": "file://tea/",
63651cb0ef41Sopenharmony_ci    "href": "file://tea/?chai",
63661cb0ef41Sopenharmony_ci    "protocol": "file:",
63671cb0ef41Sopenharmony_ci    "username": "",
63681cb0ef41Sopenharmony_ci    "password": "",
63691cb0ef41Sopenharmony_ci    "host": "tea",
63701cb0ef41Sopenharmony_ci    "hostname": "tea",
63711cb0ef41Sopenharmony_ci    "port": "",
63721cb0ef41Sopenharmony_ci    "pathname": "/",
63731cb0ef41Sopenharmony_ci    "search": "?chai",
63741cb0ef41Sopenharmony_ci    "hash": ""
63751cb0ef41Sopenharmony_ci  },
63761cb0ef41Sopenharmony_ci  "# Windows drive letter handling with the 'file:' base URL",
63771cb0ef41Sopenharmony_ci  {
63781cb0ef41Sopenharmony_ci    "input": "C|",
63791cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
63801cb0ef41Sopenharmony_ci    "href": "file://host/C:",
63811cb0ef41Sopenharmony_ci    "protocol": "file:",
63821cb0ef41Sopenharmony_ci    "username": "",
63831cb0ef41Sopenharmony_ci    "password": "",
63841cb0ef41Sopenharmony_ci    "host": "host",
63851cb0ef41Sopenharmony_ci    "hostname": "host",
63861cb0ef41Sopenharmony_ci    "port": "",
63871cb0ef41Sopenharmony_ci    "pathname": "/C:",
63881cb0ef41Sopenharmony_ci    "search": "",
63891cb0ef41Sopenharmony_ci    "hash": ""
63901cb0ef41Sopenharmony_ci  },
63911cb0ef41Sopenharmony_ci  {
63921cb0ef41Sopenharmony_ci    "input": "C|",
63931cb0ef41Sopenharmony_ci    "base": "file://host/D:/dir1/dir2/file",
63941cb0ef41Sopenharmony_ci    "href": "file://host/C:",
63951cb0ef41Sopenharmony_ci    "protocol": "file:",
63961cb0ef41Sopenharmony_ci    "username": "",
63971cb0ef41Sopenharmony_ci    "password": "",
63981cb0ef41Sopenharmony_ci    "host": "host",
63991cb0ef41Sopenharmony_ci    "hostname": "host",
64001cb0ef41Sopenharmony_ci    "port": "",
64011cb0ef41Sopenharmony_ci    "pathname": "/C:",
64021cb0ef41Sopenharmony_ci    "search": "",
64031cb0ef41Sopenharmony_ci    "hash": ""
64041cb0ef41Sopenharmony_ci  },
64051cb0ef41Sopenharmony_ci  {
64061cb0ef41Sopenharmony_ci    "input": "C|#",
64071cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64081cb0ef41Sopenharmony_ci    "href": "file://host/C:#",
64091cb0ef41Sopenharmony_ci    "protocol": "file:",
64101cb0ef41Sopenharmony_ci    "username": "",
64111cb0ef41Sopenharmony_ci    "password": "",
64121cb0ef41Sopenharmony_ci    "host": "host",
64131cb0ef41Sopenharmony_ci    "hostname": "host",
64141cb0ef41Sopenharmony_ci    "port": "",
64151cb0ef41Sopenharmony_ci    "pathname": "/C:",
64161cb0ef41Sopenharmony_ci    "search": "",
64171cb0ef41Sopenharmony_ci    "hash": ""
64181cb0ef41Sopenharmony_ci  },
64191cb0ef41Sopenharmony_ci  {
64201cb0ef41Sopenharmony_ci    "input": "C|?",
64211cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64221cb0ef41Sopenharmony_ci    "href": "file://host/C:?",
64231cb0ef41Sopenharmony_ci    "protocol": "file:",
64241cb0ef41Sopenharmony_ci    "username": "",
64251cb0ef41Sopenharmony_ci    "password": "",
64261cb0ef41Sopenharmony_ci    "host": "host",
64271cb0ef41Sopenharmony_ci    "hostname": "host",
64281cb0ef41Sopenharmony_ci    "port": "",
64291cb0ef41Sopenharmony_ci    "pathname": "/C:",
64301cb0ef41Sopenharmony_ci    "search": "",
64311cb0ef41Sopenharmony_ci    "hash": ""
64321cb0ef41Sopenharmony_ci  },
64331cb0ef41Sopenharmony_ci  {
64341cb0ef41Sopenharmony_ci    "input": "C|/",
64351cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64361cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
64371cb0ef41Sopenharmony_ci    "protocol": "file:",
64381cb0ef41Sopenharmony_ci    "username": "",
64391cb0ef41Sopenharmony_ci    "password": "",
64401cb0ef41Sopenharmony_ci    "host": "host",
64411cb0ef41Sopenharmony_ci    "hostname": "host",
64421cb0ef41Sopenharmony_ci    "port": "",
64431cb0ef41Sopenharmony_ci    "pathname": "/C:/",
64441cb0ef41Sopenharmony_ci    "search": "",
64451cb0ef41Sopenharmony_ci    "hash": ""
64461cb0ef41Sopenharmony_ci  },
64471cb0ef41Sopenharmony_ci  {
64481cb0ef41Sopenharmony_ci    "input": "C|\n/",
64491cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64501cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
64511cb0ef41Sopenharmony_ci    "protocol": "file:",
64521cb0ef41Sopenharmony_ci    "username": "",
64531cb0ef41Sopenharmony_ci    "password": "",
64541cb0ef41Sopenharmony_ci    "host": "host",
64551cb0ef41Sopenharmony_ci    "hostname": "host",
64561cb0ef41Sopenharmony_ci    "port": "",
64571cb0ef41Sopenharmony_ci    "pathname": "/C:/",
64581cb0ef41Sopenharmony_ci    "search": "",
64591cb0ef41Sopenharmony_ci    "hash": ""
64601cb0ef41Sopenharmony_ci  },
64611cb0ef41Sopenharmony_ci  {
64621cb0ef41Sopenharmony_ci    "input": "C|\\",
64631cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64641cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
64651cb0ef41Sopenharmony_ci    "protocol": "file:",
64661cb0ef41Sopenharmony_ci    "username": "",
64671cb0ef41Sopenharmony_ci    "password": "",
64681cb0ef41Sopenharmony_ci    "host": "host",
64691cb0ef41Sopenharmony_ci    "hostname": "host",
64701cb0ef41Sopenharmony_ci    "port": "",
64711cb0ef41Sopenharmony_ci    "pathname": "/C:/",
64721cb0ef41Sopenharmony_ci    "search": "",
64731cb0ef41Sopenharmony_ci    "hash": ""
64741cb0ef41Sopenharmony_ci  },
64751cb0ef41Sopenharmony_ci  {
64761cb0ef41Sopenharmony_ci    "input": "C",
64771cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64781cb0ef41Sopenharmony_ci    "href": "file://host/dir/C",
64791cb0ef41Sopenharmony_ci    "protocol": "file:",
64801cb0ef41Sopenharmony_ci    "username": "",
64811cb0ef41Sopenharmony_ci    "password": "",
64821cb0ef41Sopenharmony_ci    "host": "host",
64831cb0ef41Sopenharmony_ci    "hostname": "host",
64841cb0ef41Sopenharmony_ci    "port": "",
64851cb0ef41Sopenharmony_ci    "pathname": "/dir/C",
64861cb0ef41Sopenharmony_ci    "search": "",
64871cb0ef41Sopenharmony_ci    "hash": ""
64881cb0ef41Sopenharmony_ci  },
64891cb0ef41Sopenharmony_ci  {
64901cb0ef41Sopenharmony_ci    "input": "C|a",
64911cb0ef41Sopenharmony_ci    "base": "file://host/dir/file",
64921cb0ef41Sopenharmony_ci    "href": "file://host/dir/C|a",
64931cb0ef41Sopenharmony_ci    "protocol": "file:",
64941cb0ef41Sopenharmony_ci    "username": "",
64951cb0ef41Sopenharmony_ci    "password": "",
64961cb0ef41Sopenharmony_ci    "host": "host",
64971cb0ef41Sopenharmony_ci    "hostname": "host",
64981cb0ef41Sopenharmony_ci    "port": "",
64991cb0ef41Sopenharmony_ci    "pathname": "/dir/C|a",
65001cb0ef41Sopenharmony_ci    "search": "",
65011cb0ef41Sopenharmony_ci    "hash": ""
65021cb0ef41Sopenharmony_ci  },
65031cb0ef41Sopenharmony_ci  "# Windows drive letter quirk in the file slash state",
65041cb0ef41Sopenharmony_ci  {
65051cb0ef41Sopenharmony_ci    "input": "/c:/foo/bar",
65061cb0ef41Sopenharmony_ci    "base": "file:///c:/baz/qux",
65071cb0ef41Sopenharmony_ci    "href": "file:///c:/foo/bar",
65081cb0ef41Sopenharmony_ci    "protocol": "file:",
65091cb0ef41Sopenharmony_ci    "username": "",
65101cb0ef41Sopenharmony_ci    "password": "",
65111cb0ef41Sopenharmony_ci    "host": "",
65121cb0ef41Sopenharmony_ci    "hostname": "",
65131cb0ef41Sopenharmony_ci    "port": "",
65141cb0ef41Sopenharmony_ci    "pathname": "/c:/foo/bar",
65151cb0ef41Sopenharmony_ci    "search": "",
65161cb0ef41Sopenharmony_ci    "hash": ""
65171cb0ef41Sopenharmony_ci  },
65181cb0ef41Sopenharmony_ci  {
65191cb0ef41Sopenharmony_ci    "input": "/c|/foo/bar",
65201cb0ef41Sopenharmony_ci    "base": "file:///c:/baz/qux",
65211cb0ef41Sopenharmony_ci    "href": "file:///c:/foo/bar",
65221cb0ef41Sopenharmony_ci    "protocol": "file:",
65231cb0ef41Sopenharmony_ci    "username": "",
65241cb0ef41Sopenharmony_ci    "password": "",
65251cb0ef41Sopenharmony_ci    "host": "",
65261cb0ef41Sopenharmony_ci    "hostname": "",
65271cb0ef41Sopenharmony_ci    "port": "",
65281cb0ef41Sopenharmony_ci    "pathname": "/c:/foo/bar",
65291cb0ef41Sopenharmony_ci    "search": "",
65301cb0ef41Sopenharmony_ci    "hash": ""
65311cb0ef41Sopenharmony_ci  },
65321cb0ef41Sopenharmony_ci  {
65331cb0ef41Sopenharmony_ci    "input": "file:\\c:\\foo\\bar",
65341cb0ef41Sopenharmony_ci    "base": "file:///c:/baz/qux",
65351cb0ef41Sopenharmony_ci    "href": "file:///c:/foo/bar",
65361cb0ef41Sopenharmony_ci    "protocol": "file:",
65371cb0ef41Sopenharmony_ci    "username": "",
65381cb0ef41Sopenharmony_ci    "password": "",
65391cb0ef41Sopenharmony_ci    "host": "",
65401cb0ef41Sopenharmony_ci    "hostname": "",
65411cb0ef41Sopenharmony_ci    "port": "",
65421cb0ef41Sopenharmony_ci    "pathname": "/c:/foo/bar",
65431cb0ef41Sopenharmony_ci    "search": "",
65441cb0ef41Sopenharmony_ci    "hash": ""
65451cb0ef41Sopenharmony_ci  },
65461cb0ef41Sopenharmony_ci  {
65471cb0ef41Sopenharmony_ci    "input": "/c:/foo/bar",
65481cb0ef41Sopenharmony_ci    "base": "file://host/path",
65491cb0ef41Sopenharmony_ci    "href": "file://host/c:/foo/bar",
65501cb0ef41Sopenharmony_ci    "protocol": "file:",
65511cb0ef41Sopenharmony_ci    "username": "",
65521cb0ef41Sopenharmony_ci    "password": "",
65531cb0ef41Sopenharmony_ci    "host": "host",
65541cb0ef41Sopenharmony_ci    "hostname": "host",
65551cb0ef41Sopenharmony_ci    "port": "",
65561cb0ef41Sopenharmony_ci    "pathname": "/c:/foo/bar",
65571cb0ef41Sopenharmony_ci    "search": "",
65581cb0ef41Sopenharmony_ci    "hash": ""
65591cb0ef41Sopenharmony_ci  },
65601cb0ef41Sopenharmony_ci  "# Do not drop the host in the presence of a drive letter",
65611cb0ef41Sopenharmony_ci  {
65621cb0ef41Sopenharmony_ci    "input": "file://example.net/C:/",
65631cb0ef41Sopenharmony_ci    "base": null,
65641cb0ef41Sopenharmony_ci    "href": "file://example.net/C:/",
65651cb0ef41Sopenharmony_ci    "protocol": "file:",
65661cb0ef41Sopenharmony_ci    "username": "",
65671cb0ef41Sopenharmony_ci    "password": "",
65681cb0ef41Sopenharmony_ci    "host": "example.net",
65691cb0ef41Sopenharmony_ci    "hostname": "example.net",
65701cb0ef41Sopenharmony_ci    "port": "",
65711cb0ef41Sopenharmony_ci    "pathname": "/C:/",
65721cb0ef41Sopenharmony_ci    "search": "",
65731cb0ef41Sopenharmony_ci    "hash": ""
65741cb0ef41Sopenharmony_ci  },
65751cb0ef41Sopenharmony_ci  {
65761cb0ef41Sopenharmony_ci    "input": "file://1.2.3.4/C:/",
65771cb0ef41Sopenharmony_ci    "base": null,
65781cb0ef41Sopenharmony_ci    "href": "file://1.2.3.4/C:/",
65791cb0ef41Sopenharmony_ci    "protocol": "file:",
65801cb0ef41Sopenharmony_ci    "username": "",
65811cb0ef41Sopenharmony_ci    "password": "",
65821cb0ef41Sopenharmony_ci    "host": "1.2.3.4",
65831cb0ef41Sopenharmony_ci    "hostname": "1.2.3.4",
65841cb0ef41Sopenharmony_ci    "port": "",
65851cb0ef41Sopenharmony_ci    "pathname": "/C:/",
65861cb0ef41Sopenharmony_ci    "search": "",
65871cb0ef41Sopenharmony_ci    "hash": ""
65881cb0ef41Sopenharmony_ci  },
65891cb0ef41Sopenharmony_ci  {
65901cb0ef41Sopenharmony_ci    "input": "file://[1::8]/C:/",
65911cb0ef41Sopenharmony_ci    "base": null,
65921cb0ef41Sopenharmony_ci    "href": "file://[1::8]/C:/",
65931cb0ef41Sopenharmony_ci    "protocol": "file:",
65941cb0ef41Sopenharmony_ci    "username": "",
65951cb0ef41Sopenharmony_ci    "password": "",
65961cb0ef41Sopenharmony_ci    "host": "[1::8]",
65971cb0ef41Sopenharmony_ci    "hostname": "[1::8]",
65981cb0ef41Sopenharmony_ci    "port": "",
65991cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66001cb0ef41Sopenharmony_ci    "search": "",
66011cb0ef41Sopenharmony_ci    "hash": ""
66021cb0ef41Sopenharmony_ci  },
66031cb0ef41Sopenharmony_ci  "# Copy the host from the base URL in the following cases",
66041cb0ef41Sopenharmony_ci  {
66051cb0ef41Sopenharmony_ci    "input": "C|/",
66061cb0ef41Sopenharmony_ci    "base": "file://host/",
66071cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
66081cb0ef41Sopenharmony_ci    "protocol": "file:",
66091cb0ef41Sopenharmony_ci    "username": "",
66101cb0ef41Sopenharmony_ci    "password": "",
66111cb0ef41Sopenharmony_ci    "host": "host",
66121cb0ef41Sopenharmony_ci    "hostname": "host",
66131cb0ef41Sopenharmony_ci    "port": "",
66141cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66151cb0ef41Sopenharmony_ci    "search": "",
66161cb0ef41Sopenharmony_ci    "hash": ""
66171cb0ef41Sopenharmony_ci  },
66181cb0ef41Sopenharmony_ci  {
66191cb0ef41Sopenharmony_ci    "input": "/C:/",
66201cb0ef41Sopenharmony_ci    "base": "file://host/",
66211cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
66221cb0ef41Sopenharmony_ci    "protocol": "file:",
66231cb0ef41Sopenharmony_ci    "username": "",
66241cb0ef41Sopenharmony_ci    "password": "",
66251cb0ef41Sopenharmony_ci    "host": "host",
66261cb0ef41Sopenharmony_ci    "hostname": "host",
66271cb0ef41Sopenharmony_ci    "port": "",
66281cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66291cb0ef41Sopenharmony_ci    "search": "",
66301cb0ef41Sopenharmony_ci    "hash": ""
66311cb0ef41Sopenharmony_ci  },
66321cb0ef41Sopenharmony_ci  {
66331cb0ef41Sopenharmony_ci    "input": "file:C:/",
66341cb0ef41Sopenharmony_ci    "base": "file://host/",
66351cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
66361cb0ef41Sopenharmony_ci    "protocol": "file:",
66371cb0ef41Sopenharmony_ci    "username": "",
66381cb0ef41Sopenharmony_ci    "password": "",
66391cb0ef41Sopenharmony_ci    "host": "host",
66401cb0ef41Sopenharmony_ci    "hostname": "host",
66411cb0ef41Sopenharmony_ci    "port": "",
66421cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66431cb0ef41Sopenharmony_ci    "search": "",
66441cb0ef41Sopenharmony_ci    "hash": ""
66451cb0ef41Sopenharmony_ci  },
66461cb0ef41Sopenharmony_ci  {
66471cb0ef41Sopenharmony_ci    "input": "file:/C:/",
66481cb0ef41Sopenharmony_ci    "base": "file://host/",
66491cb0ef41Sopenharmony_ci    "href": "file://host/C:/",
66501cb0ef41Sopenharmony_ci    "protocol": "file:",
66511cb0ef41Sopenharmony_ci    "username": "",
66521cb0ef41Sopenharmony_ci    "password": "",
66531cb0ef41Sopenharmony_ci    "host": "host",
66541cb0ef41Sopenharmony_ci    "hostname": "host",
66551cb0ef41Sopenharmony_ci    "port": "",
66561cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66571cb0ef41Sopenharmony_ci    "search": "",
66581cb0ef41Sopenharmony_ci    "hash": ""
66591cb0ef41Sopenharmony_ci  },
66601cb0ef41Sopenharmony_ci  "# Copy the empty host from the input in the following cases",
66611cb0ef41Sopenharmony_ci  {
66621cb0ef41Sopenharmony_ci    "input": "//C:/",
66631cb0ef41Sopenharmony_ci    "base": "file://host/",
66641cb0ef41Sopenharmony_ci    "href": "file:///C:/",
66651cb0ef41Sopenharmony_ci    "protocol": "file:",
66661cb0ef41Sopenharmony_ci    "username": "",
66671cb0ef41Sopenharmony_ci    "password": "",
66681cb0ef41Sopenharmony_ci    "host": "",
66691cb0ef41Sopenharmony_ci    "hostname": "",
66701cb0ef41Sopenharmony_ci    "port": "",
66711cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66721cb0ef41Sopenharmony_ci    "search": "",
66731cb0ef41Sopenharmony_ci    "hash": ""
66741cb0ef41Sopenharmony_ci  },
66751cb0ef41Sopenharmony_ci  {
66761cb0ef41Sopenharmony_ci    "input": "file://C:/",
66771cb0ef41Sopenharmony_ci    "base": "file://host/",
66781cb0ef41Sopenharmony_ci    "href": "file:///C:/",
66791cb0ef41Sopenharmony_ci    "protocol": "file:",
66801cb0ef41Sopenharmony_ci    "username": "",
66811cb0ef41Sopenharmony_ci    "password": "",
66821cb0ef41Sopenharmony_ci    "host": "",
66831cb0ef41Sopenharmony_ci    "hostname": "",
66841cb0ef41Sopenharmony_ci    "port": "",
66851cb0ef41Sopenharmony_ci    "pathname": "/C:/",
66861cb0ef41Sopenharmony_ci    "search": "",
66871cb0ef41Sopenharmony_ci    "hash": ""
66881cb0ef41Sopenharmony_ci  },
66891cb0ef41Sopenharmony_ci  {
66901cb0ef41Sopenharmony_ci    "input": "///C:/",
66911cb0ef41Sopenharmony_ci    "base": "file://host/",
66921cb0ef41Sopenharmony_ci    "href": "file:///C:/",
66931cb0ef41Sopenharmony_ci    "protocol": "file:",
66941cb0ef41Sopenharmony_ci    "username": "",
66951cb0ef41Sopenharmony_ci    "password": "",
66961cb0ef41Sopenharmony_ci    "host": "",
66971cb0ef41Sopenharmony_ci    "hostname": "",
66981cb0ef41Sopenharmony_ci    "port": "",
66991cb0ef41Sopenharmony_ci    "pathname": "/C:/",
67001cb0ef41Sopenharmony_ci    "search": "",
67011cb0ef41Sopenharmony_ci    "hash": ""
67021cb0ef41Sopenharmony_ci  },
67031cb0ef41Sopenharmony_ci  {
67041cb0ef41Sopenharmony_ci    "input": "file:///C:/",
67051cb0ef41Sopenharmony_ci    "base": "file://host/",
67061cb0ef41Sopenharmony_ci    "href": "file:///C:/",
67071cb0ef41Sopenharmony_ci    "protocol": "file:",
67081cb0ef41Sopenharmony_ci    "username": "",
67091cb0ef41Sopenharmony_ci    "password": "",
67101cb0ef41Sopenharmony_ci    "host": "",
67111cb0ef41Sopenharmony_ci    "hostname": "",
67121cb0ef41Sopenharmony_ci    "port": "",
67131cb0ef41Sopenharmony_ci    "pathname": "/C:/",
67141cb0ef41Sopenharmony_ci    "search": "",
67151cb0ef41Sopenharmony_ci    "hash": ""
67161cb0ef41Sopenharmony_ci  },
67171cb0ef41Sopenharmony_ci  "# Windows drive letter quirk (no host)",
67181cb0ef41Sopenharmony_ci  {
67191cb0ef41Sopenharmony_ci    "input": "file:/C|/",
67201cb0ef41Sopenharmony_ci    "base": null,
67211cb0ef41Sopenharmony_ci    "href": "file:///C:/",
67221cb0ef41Sopenharmony_ci    "protocol": "file:",
67231cb0ef41Sopenharmony_ci    "username": "",
67241cb0ef41Sopenharmony_ci    "password": "",
67251cb0ef41Sopenharmony_ci    "host": "",
67261cb0ef41Sopenharmony_ci    "hostname": "",
67271cb0ef41Sopenharmony_ci    "port": "",
67281cb0ef41Sopenharmony_ci    "pathname": "/C:/",
67291cb0ef41Sopenharmony_ci    "search": "",
67301cb0ef41Sopenharmony_ci    "hash": ""
67311cb0ef41Sopenharmony_ci  },
67321cb0ef41Sopenharmony_ci  {
67331cb0ef41Sopenharmony_ci    "input": "file://C|/",
67341cb0ef41Sopenharmony_ci    "base": null,
67351cb0ef41Sopenharmony_ci    "href": "file:///C:/",
67361cb0ef41Sopenharmony_ci    "protocol": "file:",
67371cb0ef41Sopenharmony_ci    "username": "",
67381cb0ef41Sopenharmony_ci    "password": "",
67391cb0ef41Sopenharmony_ci    "host": "",
67401cb0ef41Sopenharmony_ci    "hostname": "",
67411cb0ef41Sopenharmony_ci    "port": "",
67421cb0ef41Sopenharmony_ci    "pathname": "/C:/",
67431cb0ef41Sopenharmony_ci    "search": "",
67441cb0ef41Sopenharmony_ci    "hash": ""
67451cb0ef41Sopenharmony_ci  },
67461cb0ef41Sopenharmony_ci  "# file URLs without base URL by Rimas Misevičius",
67471cb0ef41Sopenharmony_ci  {
67481cb0ef41Sopenharmony_ci    "input": "file:",
67491cb0ef41Sopenharmony_ci    "base": null,
67501cb0ef41Sopenharmony_ci    "href": "file:///",
67511cb0ef41Sopenharmony_ci    "protocol": "file:",
67521cb0ef41Sopenharmony_ci    "username": "",
67531cb0ef41Sopenharmony_ci    "password": "",
67541cb0ef41Sopenharmony_ci    "host": "",
67551cb0ef41Sopenharmony_ci    "hostname": "",
67561cb0ef41Sopenharmony_ci    "port": "",
67571cb0ef41Sopenharmony_ci    "pathname": "/",
67581cb0ef41Sopenharmony_ci    "search": "",
67591cb0ef41Sopenharmony_ci    "hash": ""
67601cb0ef41Sopenharmony_ci  },
67611cb0ef41Sopenharmony_ci  {
67621cb0ef41Sopenharmony_ci    "input": "file:?q=v",
67631cb0ef41Sopenharmony_ci    "base": null,
67641cb0ef41Sopenharmony_ci    "href": "file:///?q=v",
67651cb0ef41Sopenharmony_ci    "protocol": "file:",
67661cb0ef41Sopenharmony_ci    "username": "",
67671cb0ef41Sopenharmony_ci    "password": "",
67681cb0ef41Sopenharmony_ci    "host": "",
67691cb0ef41Sopenharmony_ci    "hostname": "",
67701cb0ef41Sopenharmony_ci    "port": "",
67711cb0ef41Sopenharmony_ci    "pathname": "/",
67721cb0ef41Sopenharmony_ci    "search": "?q=v",
67731cb0ef41Sopenharmony_ci    "hash": ""
67741cb0ef41Sopenharmony_ci  },
67751cb0ef41Sopenharmony_ci  {
67761cb0ef41Sopenharmony_ci    "input": "file:#frag",
67771cb0ef41Sopenharmony_ci    "base": null,
67781cb0ef41Sopenharmony_ci    "href": "file:///#frag",
67791cb0ef41Sopenharmony_ci    "protocol": "file:",
67801cb0ef41Sopenharmony_ci    "username": "",
67811cb0ef41Sopenharmony_ci    "password": "",
67821cb0ef41Sopenharmony_ci    "host": "",
67831cb0ef41Sopenharmony_ci    "hostname": "",
67841cb0ef41Sopenharmony_ci    "port": "",
67851cb0ef41Sopenharmony_ci    "pathname": "/",
67861cb0ef41Sopenharmony_ci    "search": "",
67871cb0ef41Sopenharmony_ci    "hash": "#frag"
67881cb0ef41Sopenharmony_ci  },
67891cb0ef41Sopenharmony_ci  "# file: drive letter cases from https://crbug.com/1078698",
67901cb0ef41Sopenharmony_ci  {
67911cb0ef41Sopenharmony_ci    "input": "file:///Y:",
67921cb0ef41Sopenharmony_ci    "base": null,
67931cb0ef41Sopenharmony_ci    "href": "file:///Y:",
67941cb0ef41Sopenharmony_ci    "protocol": "file:",
67951cb0ef41Sopenharmony_ci    "username": "",
67961cb0ef41Sopenharmony_ci    "password": "",
67971cb0ef41Sopenharmony_ci    "host": "",
67981cb0ef41Sopenharmony_ci    "hostname": "",
67991cb0ef41Sopenharmony_ci    "port": "",
68001cb0ef41Sopenharmony_ci    "pathname": "/Y:",
68011cb0ef41Sopenharmony_ci    "search": "",
68021cb0ef41Sopenharmony_ci    "hash": ""
68031cb0ef41Sopenharmony_ci  },
68041cb0ef41Sopenharmony_ci  {
68051cb0ef41Sopenharmony_ci    "input": "file:///Y:/",
68061cb0ef41Sopenharmony_ci    "base": null,
68071cb0ef41Sopenharmony_ci    "href": "file:///Y:/",
68081cb0ef41Sopenharmony_ci    "protocol": "file:",
68091cb0ef41Sopenharmony_ci    "username": "",
68101cb0ef41Sopenharmony_ci    "password": "",
68111cb0ef41Sopenharmony_ci    "host": "",
68121cb0ef41Sopenharmony_ci    "hostname": "",
68131cb0ef41Sopenharmony_ci    "port": "",
68141cb0ef41Sopenharmony_ci    "pathname": "/Y:/",
68151cb0ef41Sopenharmony_ci    "search": "",
68161cb0ef41Sopenharmony_ci    "hash": ""
68171cb0ef41Sopenharmony_ci  },
68181cb0ef41Sopenharmony_ci  {
68191cb0ef41Sopenharmony_ci    "input": "file:///./Y",
68201cb0ef41Sopenharmony_ci    "base": null,
68211cb0ef41Sopenharmony_ci    "href": "file:///Y",
68221cb0ef41Sopenharmony_ci    "protocol": "file:",
68231cb0ef41Sopenharmony_ci    "username": "",
68241cb0ef41Sopenharmony_ci    "password": "",
68251cb0ef41Sopenharmony_ci    "host": "",
68261cb0ef41Sopenharmony_ci    "hostname": "",
68271cb0ef41Sopenharmony_ci    "port": "",
68281cb0ef41Sopenharmony_ci    "pathname": "/Y",
68291cb0ef41Sopenharmony_ci    "search": "",
68301cb0ef41Sopenharmony_ci    "hash": ""
68311cb0ef41Sopenharmony_ci  },
68321cb0ef41Sopenharmony_ci  {
68331cb0ef41Sopenharmony_ci    "input": "file:///./Y:",
68341cb0ef41Sopenharmony_ci    "base": null,
68351cb0ef41Sopenharmony_ci    "href": "file:///Y:",
68361cb0ef41Sopenharmony_ci    "protocol": "file:",
68371cb0ef41Sopenharmony_ci    "username": "",
68381cb0ef41Sopenharmony_ci    "password": "",
68391cb0ef41Sopenharmony_ci    "host": "",
68401cb0ef41Sopenharmony_ci    "hostname": "",
68411cb0ef41Sopenharmony_ci    "port": "",
68421cb0ef41Sopenharmony_ci    "pathname": "/Y:",
68431cb0ef41Sopenharmony_ci    "search": "",
68441cb0ef41Sopenharmony_ci    "hash": ""
68451cb0ef41Sopenharmony_ci  },
68461cb0ef41Sopenharmony_ci  {
68471cb0ef41Sopenharmony_ci    "input": "\\\\\\.\\Y:",
68481cb0ef41Sopenharmony_ci    "base": null,
68491cb0ef41Sopenharmony_ci    "failure": true,
68501cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
68511cb0ef41Sopenharmony_ci  },
68521cb0ef41Sopenharmony_ci  "# file: drive letter cases from https://crbug.com/1078698 but lowercased",
68531cb0ef41Sopenharmony_ci  {
68541cb0ef41Sopenharmony_ci    "input": "file:///y:",
68551cb0ef41Sopenharmony_ci    "base": null,
68561cb0ef41Sopenharmony_ci    "href": "file:///y:",
68571cb0ef41Sopenharmony_ci    "protocol": "file:",
68581cb0ef41Sopenharmony_ci    "username": "",
68591cb0ef41Sopenharmony_ci    "password": "",
68601cb0ef41Sopenharmony_ci    "host": "",
68611cb0ef41Sopenharmony_ci    "hostname": "",
68621cb0ef41Sopenharmony_ci    "port": "",
68631cb0ef41Sopenharmony_ci    "pathname": "/y:",
68641cb0ef41Sopenharmony_ci    "search": "",
68651cb0ef41Sopenharmony_ci    "hash": ""
68661cb0ef41Sopenharmony_ci  },
68671cb0ef41Sopenharmony_ci  {
68681cb0ef41Sopenharmony_ci    "input": "file:///y:/",
68691cb0ef41Sopenharmony_ci    "base": null,
68701cb0ef41Sopenharmony_ci    "href": "file:///y:/",
68711cb0ef41Sopenharmony_ci    "protocol": "file:",
68721cb0ef41Sopenharmony_ci    "username": "",
68731cb0ef41Sopenharmony_ci    "password": "",
68741cb0ef41Sopenharmony_ci    "host": "",
68751cb0ef41Sopenharmony_ci    "hostname": "",
68761cb0ef41Sopenharmony_ci    "port": "",
68771cb0ef41Sopenharmony_ci    "pathname": "/y:/",
68781cb0ef41Sopenharmony_ci    "search": "",
68791cb0ef41Sopenharmony_ci    "hash": ""
68801cb0ef41Sopenharmony_ci  },
68811cb0ef41Sopenharmony_ci  {
68821cb0ef41Sopenharmony_ci    "input": "file:///./y",
68831cb0ef41Sopenharmony_ci    "base": null,
68841cb0ef41Sopenharmony_ci    "href": "file:///y",
68851cb0ef41Sopenharmony_ci    "protocol": "file:",
68861cb0ef41Sopenharmony_ci    "username": "",
68871cb0ef41Sopenharmony_ci    "password": "",
68881cb0ef41Sopenharmony_ci    "host": "",
68891cb0ef41Sopenharmony_ci    "hostname": "",
68901cb0ef41Sopenharmony_ci    "port": "",
68911cb0ef41Sopenharmony_ci    "pathname": "/y",
68921cb0ef41Sopenharmony_ci    "search": "",
68931cb0ef41Sopenharmony_ci    "hash": ""
68941cb0ef41Sopenharmony_ci  },
68951cb0ef41Sopenharmony_ci  {
68961cb0ef41Sopenharmony_ci    "input": "file:///./y:",
68971cb0ef41Sopenharmony_ci    "base": null,
68981cb0ef41Sopenharmony_ci    "href": "file:///y:",
68991cb0ef41Sopenharmony_ci    "protocol": "file:",
69001cb0ef41Sopenharmony_ci    "username": "",
69011cb0ef41Sopenharmony_ci    "password": "",
69021cb0ef41Sopenharmony_ci    "host": "",
69031cb0ef41Sopenharmony_ci    "hostname": "",
69041cb0ef41Sopenharmony_ci    "port": "",
69051cb0ef41Sopenharmony_ci    "pathname": "/y:",
69061cb0ef41Sopenharmony_ci    "search": "",
69071cb0ef41Sopenharmony_ci    "hash": ""
69081cb0ef41Sopenharmony_ci  },
69091cb0ef41Sopenharmony_ci  {
69101cb0ef41Sopenharmony_ci    "input": "\\\\\\.\\y:",
69111cb0ef41Sopenharmony_ci    "base": null,
69121cb0ef41Sopenharmony_ci    "failure": true,
69131cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
69141cb0ef41Sopenharmony_ci  },
69151cb0ef41Sopenharmony_ci  "# Additional file URL tests for (https://github.com/whatwg/url/issues/405)",
69161cb0ef41Sopenharmony_ci  {
69171cb0ef41Sopenharmony_ci    "input": "file://localhost//a//../..//foo",
69181cb0ef41Sopenharmony_ci    "base": null,
69191cb0ef41Sopenharmony_ci    "href": "file://///foo",
69201cb0ef41Sopenharmony_ci    "protocol": "file:",
69211cb0ef41Sopenharmony_ci    "username": "",
69221cb0ef41Sopenharmony_ci    "password": "",
69231cb0ef41Sopenharmony_ci    "host": "",
69241cb0ef41Sopenharmony_ci    "hostname": "",
69251cb0ef41Sopenharmony_ci    "port": "",
69261cb0ef41Sopenharmony_ci    "pathname": "///foo",
69271cb0ef41Sopenharmony_ci    "search": "",
69281cb0ef41Sopenharmony_ci    "hash": ""
69291cb0ef41Sopenharmony_ci  },
69301cb0ef41Sopenharmony_ci  {
69311cb0ef41Sopenharmony_ci    "input": "file://localhost////foo",
69321cb0ef41Sopenharmony_ci    "base": null,
69331cb0ef41Sopenharmony_ci    "href": "file://////foo",
69341cb0ef41Sopenharmony_ci    "protocol": "file:",
69351cb0ef41Sopenharmony_ci    "username": "",
69361cb0ef41Sopenharmony_ci    "password": "",
69371cb0ef41Sopenharmony_ci    "host": "",
69381cb0ef41Sopenharmony_ci    "hostname": "",
69391cb0ef41Sopenharmony_ci    "port": "",
69401cb0ef41Sopenharmony_ci    "pathname": "////foo",
69411cb0ef41Sopenharmony_ci    "search": "",
69421cb0ef41Sopenharmony_ci    "hash": ""
69431cb0ef41Sopenharmony_ci  },
69441cb0ef41Sopenharmony_ci  {
69451cb0ef41Sopenharmony_ci    "input": "file:////foo",
69461cb0ef41Sopenharmony_ci    "base": null,
69471cb0ef41Sopenharmony_ci    "href": "file:////foo",
69481cb0ef41Sopenharmony_ci    "protocol": "file:",
69491cb0ef41Sopenharmony_ci    "username": "",
69501cb0ef41Sopenharmony_ci    "password": "",
69511cb0ef41Sopenharmony_ci    "host": "",
69521cb0ef41Sopenharmony_ci    "hostname": "",
69531cb0ef41Sopenharmony_ci    "port": "",
69541cb0ef41Sopenharmony_ci    "pathname": "//foo",
69551cb0ef41Sopenharmony_ci    "search": "",
69561cb0ef41Sopenharmony_ci    "hash": ""
69571cb0ef41Sopenharmony_ci  },
69581cb0ef41Sopenharmony_ci  {
69591cb0ef41Sopenharmony_ci    "input": "file:///one/two",
69601cb0ef41Sopenharmony_ci    "base": "file:///",
69611cb0ef41Sopenharmony_ci    "href": "file:///one/two",
69621cb0ef41Sopenharmony_ci    "protocol": "file:",
69631cb0ef41Sopenharmony_ci    "username": "",
69641cb0ef41Sopenharmony_ci    "password": "",
69651cb0ef41Sopenharmony_ci    "host": "",
69661cb0ef41Sopenharmony_ci    "hostname": "",
69671cb0ef41Sopenharmony_ci    "port": "",
69681cb0ef41Sopenharmony_ci    "pathname": "/one/two",
69691cb0ef41Sopenharmony_ci    "search": "",
69701cb0ef41Sopenharmony_ci    "hash": ""
69711cb0ef41Sopenharmony_ci  },
69721cb0ef41Sopenharmony_ci  {
69731cb0ef41Sopenharmony_ci    "input": "file:////one/two",
69741cb0ef41Sopenharmony_ci    "base": "file:///",
69751cb0ef41Sopenharmony_ci    "href": "file:////one/two",
69761cb0ef41Sopenharmony_ci    "protocol": "file:",
69771cb0ef41Sopenharmony_ci    "username": "",
69781cb0ef41Sopenharmony_ci    "password": "",
69791cb0ef41Sopenharmony_ci    "host": "",
69801cb0ef41Sopenharmony_ci    "hostname": "",
69811cb0ef41Sopenharmony_ci    "port": "",
69821cb0ef41Sopenharmony_ci    "pathname": "//one/two",
69831cb0ef41Sopenharmony_ci    "search": "",
69841cb0ef41Sopenharmony_ci    "hash": ""
69851cb0ef41Sopenharmony_ci  },
69861cb0ef41Sopenharmony_ci  {
69871cb0ef41Sopenharmony_ci    "input": "//one/two",
69881cb0ef41Sopenharmony_ci    "base": "file:///",
69891cb0ef41Sopenharmony_ci    "href": "file://one/two",
69901cb0ef41Sopenharmony_ci    "protocol": "file:",
69911cb0ef41Sopenharmony_ci    "username": "",
69921cb0ef41Sopenharmony_ci    "password": "",
69931cb0ef41Sopenharmony_ci    "host": "one",
69941cb0ef41Sopenharmony_ci    "hostname": "one",
69951cb0ef41Sopenharmony_ci    "port": "",
69961cb0ef41Sopenharmony_ci    "pathname": "/two",
69971cb0ef41Sopenharmony_ci    "search": "",
69981cb0ef41Sopenharmony_ci    "hash": ""
69991cb0ef41Sopenharmony_ci  },
70001cb0ef41Sopenharmony_ci  {
70011cb0ef41Sopenharmony_ci    "input": "///one/two",
70021cb0ef41Sopenharmony_ci    "base": "file:///",
70031cb0ef41Sopenharmony_ci    "href": "file:///one/two",
70041cb0ef41Sopenharmony_ci    "protocol": "file:",
70051cb0ef41Sopenharmony_ci    "username": "",
70061cb0ef41Sopenharmony_ci    "password": "",
70071cb0ef41Sopenharmony_ci    "host": "",
70081cb0ef41Sopenharmony_ci    "hostname": "",
70091cb0ef41Sopenharmony_ci    "port": "",
70101cb0ef41Sopenharmony_ci    "pathname": "/one/two",
70111cb0ef41Sopenharmony_ci    "search": "",
70121cb0ef41Sopenharmony_ci    "hash": ""
70131cb0ef41Sopenharmony_ci  },
70141cb0ef41Sopenharmony_ci  {
70151cb0ef41Sopenharmony_ci    "input": "////one/two",
70161cb0ef41Sopenharmony_ci    "base": "file:///",
70171cb0ef41Sopenharmony_ci    "href": "file:////one/two",
70181cb0ef41Sopenharmony_ci    "protocol": "file:",
70191cb0ef41Sopenharmony_ci    "username": "",
70201cb0ef41Sopenharmony_ci    "password": "",
70211cb0ef41Sopenharmony_ci    "host": "",
70221cb0ef41Sopenharmony_ci    "hostname": "",
70231cb0ef41Sopenharmony_ci    "port": "",
70241cb0ef41Sopenharmony_ci    "pathname": "//one/two",
70251cb0ef41Sopenharmony_ci    "search": "",
70261cb0ef41Sopenharmony_ci    "hash": ""
70271cb0ef41Sopenharmony_ci  },
70281cb0ef41Sopenharmony_ci  {
70291cb0ef41Sopenharmony_ci    "input": "file:///.//",
70301cb0ef41Sopenharmony_ci    "base": "file:////",
70311cb0ef41Sopenharmony_ci    "href": "file:////",
70321cb0ef41Sopenharmony_ci    "protocol": "file:",
70331cb0ef41Sopenharmony_ci    "username": "",
70341cb0ef41Sopenharmony_ci    "password": "",
70351cb0ef41Sopenharmony_ci    "host": "",
70361cb0ef41Sopenharmony_ci    "hostname": "",
70371cb0ef41Sopenharmony_ci    "port": "",
70381cb0ef41Sopenharmony_ci    "pathname": "//",
70391cb0ef41Sopenharmony_ci    "search": "",
70401cb0ef41Sopenharmony_ci    "hash": ""
70411cb0ef41Sopenharmony_ci  },
70421cb0ef41Sopenharmony_ci  "File URL tests for https://github.com/whatwg/url/issues/549",
70431cb0ef41Sopenharmony_ci  {
70441cb0ef41Sopenharmony_ci    "input": "file:.//p",
70451cb0ef41Sopenharmony_ci    "base": null,
70461cb0ef41Sopenharmony_ci    "href": "file:////p",
70471cb0ef41Sopenharmony_ci    "protocol": "file:",
70481cb0ef41Sopenharmony_ci    "username": "",
70491cb0ef41Sopenharmony_ci    "password": "",
70501cb0ef41Sopenharmony_ci    "host": "",
70511cb0ef41Sopenharmony_ci    "hostname": "",
70521cb0ef41Sopenharmony_ci    "port": "",
70531cb0ef41Sopenharmony_ci    "pathname": "//p",
70541cb0ef41Sopenharmony_ci    "search": "",
70551cb0ef41Sopenharmony_ci    "hash": ""
70561cb0ef41Sopenharmony_ci  },
70571cb0ef41Sopenharmony_ci  {
70581cb0ef41Sopenharmony_ci    "input": "file:/.//p",
70591cb0ef41Sopenharmony_ci    "base": null,
70601cb0ef41Sopenharmony_ci    "href": "file:////p",
70611cb0ef41Sopenharmony_ci    "protocol": "file:",
70621cb0ef41Sopenharmony_ci    "username": "",
70631cb0ef41Sopenharmony_ci    "password": "",
70641cb0ef41Sopenharmony_ci    "host": "",
70651cb0ef41Sopenharmony_ci    "hostname": "",
70661cb0ef41Sopenharmony_ci    "port": "",
70671cb0ef41Sopenharmony_ci    "pathname": "//p",
70681cb0ef41Sopenharmony_ci    "search": "",
70691cb0ef41Sopenharmony_ci    "hash": ""
70701cb0ef41Sopenharmony_ci  },
70711cb0ef41Sopenharmony_ci  "# IPv6 tests",
70721cb0ef41Sopenharmony_ci  {
70731cb0ef41Sopenharmony_ci    "input": "http://[1:0::]",
70741cb0ef41Sopenharmony_ci    "base": "http://example.net/",
70751cb0ef41Sopenharmony_ci    "href": "http://[1::]/",
70761cb0ef41Sopenharmony_ci    "origin": "http://[1::]",
70771cb0ef41Sopenharmony_ci    "protocol": "http:",
70781cb0ef41Sopenharmony_ci    "username": "",
70791cb0ef41Sopenharmony_ci    "password": "",
70801cb0ef41Sopenharmony_ci    "host": "[1::]",
70811cb0ef41Sopenharmony_ci    "hostname": "[1::]",
70821cb0ef41Sopenharmony_ci    "port": "",
70831cb0ef41Sopenharmony_ci    "pathname": "/",
70841cb0ef41Sopenharmony_ci    "search": "",
70851cb0ef41Sopenharmony_ci    "hash": ""
70861cb0ef41Sopenharmony_ci  },
70871cb0ef41Sopenharmony_ci  {
70881cb0ef41Sopenharmony_ci    "input": "http://[0:1:2:3:4:5:6:7:8]",
70891cb0ef41Sopenharmony_ci    "base": "http://example.net/",
70901cb0ef41Sopenharmony_ci    "failure": true
70911cb0ef41Sopenharmony_ci  },
70921cb0ef41Sopenharmony_ci  {
70931cb0ef41Sopenharmony_ci    "input": "https://[0::0::0]",
70941cb0ef41Sopenharmony_ci    "base": null,
70951cb0ef41Sopenharmony_ci    "failure": true
70961cb0ef41Sopenharmony_ci  },
70971cb0ef41Sopenharmony_ci  {
70981cb0ef41Sopenharmony_ci    "input": "https://[0:.0]",
70991cb0ef41Sopenharmony_ci    "base": null,
71001cb0ef41Sopenharmony_ci    "failure": true
71011cb0ef41Sopenharmony_ci  },
71021cb0ef41Sopenharmony_ci  {
71031cb0ef41Sopenharmony_ci    "input": "https://[0:0:]",
71041cb0ef41Sopenharmony_ci    "base": null,
71051cb0ef41Sopenharmony_ci    "failure": true
71061cb0ef41Sopenharmony_ci  },
71071cb0ef41Sopenharmony_ci  {
71081cb0ef41Sopenharmony_ci    "input": "https://[0:1:2:3:4:5:6:7.0.0.0.1]",
71091cb0ef41Sopenharmony_ci    "base": null,
71101cb0ef41Sopenharmony_ci    "failure": true
71111cb0ef41Sopenharmony_ci  },
71121cb0ef41Sopenharmony_ci  {
71131cb0ef41Sopenharmony_ci    "input": "https://[0:1.00.0.0.0]",
71141cb0ef41Sopenharmony_ci    "base": null,
71151cb0ef41Sopenharmony_ci    "failure": true
71161cb0ef41Sopenharmony_ci  },
71171cb0ef41Sopenharmony_ci  {
71181cb0ef41Sopenharmony_ci    "input": "https://[0:1.290.0.0.0]",
71191cb0ef41Sopenharmony_ci    "base": null,
71201cb0ef41Sopenharmony_ci    "failure": true
71211cb0ef41Sopenharmony_ci  },
71221cb0ef41Sopenharmony_ci  {
71231cb0ef41Sopenharmony_ci    "input": "https://[0:1.23.23]",
71241cb0ef41Sopenharmony_ci    "base": null,
71251cb0ef41Sopenharmony_ci    "failure": true
71261cb0ef41Sopenharmony_ci  },
71271cb0ef41Sopenharmony_ci  "# Empty host",
71281cb0ef41Sopenharmony_ci  {
71291cb0ef41Sopenharmony_ci    "input": "http://?",
71301cb0ef41Sopenharmony_ci    "base": null,
71311cb0ef41Sopenharmony_ci    "failure": true
71321cb0ef41Sopenharmony_ci  },
71331cb0ef41Sopenharmony_ci  {
71341cb0ef41Sopenharmony_ci    "input": "http://#",
71351cb0ef41Sopenharmony_ci    "base": null,
71361cb0ef41Sopenharmony_ci    "failure": true
71371cb0ef41Sopenharmony_ci  },
71381cb0ef41Sopenharmony_ci  "Port overflow (2^32 + 81)",
71391cb0ef41Sopenharmony_ci  {
71401cb0ef41Sopenharmony_ci    "input": "http://f:4294967377/c",
71411cb0ef41Sopenharmony_ci    "base": "http://example.org/",
71421cb0ef41Sopenharmony_ci    "failure": true
71431cb0ef41Sopenharmony_ci  },
71441cb0ef41Sopenharmony_ci  "Port overflow (2^64 + 81)",
71451cb0ef41Sopenharmony_ci  {
71461cb0ef41Sopenharmony_ci    "input": "http://f:18446744073709551697/c",
71471cb0ef41Sopenharmony_ci    "base": "http://example.org/",
71481cb0ef41Sopenharmony_ci    "failure": true
71491cb0ef41Sopenharmony_ci  },
71501cb0ef41Sopenharmony_ci  "Port overflow (2^128 + 81)",
71511cb0ef41Sopenharmony_ci  {
71521cb0ef41Sopenharmony_ci    "input": "http://f:340282366920938463463374607431768211537/c",
71531cb0ef41Sopenharmony_ci    "base": "http://example.org/",
71541cb0ef41Sopenharmony_ci    "failure": true
71551cb0ef41Sopenharmony_ci  },
71561cb0ef41Sopenharmony_ci  "# Non-special-URL path tests",
71571cb0ef41Sopenharmony_ci  {
71581cb0ef41Sopenharmony_ci    "input": "sc://ñ",
71591cb0ef41Sopenharmony_ci    "base": null,
71601cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1",
71611cb0ef41Sopenharmony_ci    "origin": "null",
71621cb0ef41Sopenharmony_ci    "protocol": "sc:",
71631cb0ef41Sopenharmony_ci    "username": "",
71641cb0ef41Sopenharmony_ci    "password": "",
71651cb0ef41Sopenharmony_ci    "host": "%C3%B1",
71661cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
71671cb0ef41Sopenharmony_ci    "port": "",
71681cb0ef41Sopenharmony_ci    "pathname": "",
71691cb0ef41Sopenharmony_ci    "search": "",
71701cb0ef41Sopenharmony_ci    "hash": ""
71711cb0ef41Sopenharmony_ci  },
71721cb0ef41Sopenharmony_ci  {
71731cb0ef41Sopenharmony_ci    "input": "sc://ñ?x",
71741cb0ef41Sopenharmony_ci    "base": null,
71751cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1?x",
71761cb0ef41Sopenharmony_ci    "origin": "null",
71771cb0ef41Sopenharmony_ci    "protocol": "sc:",
71781cb0ef41Sopenharmony_ci    "username": "",
71791cb0ef41Sopenharmony_ci    "password": "",
71801cb0ef41Sopenharmony_ci    "host": "%C3%B1",
71811cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
71821cb0ef41Sopenharmony_ci    "port": "",
71831cb0ef41Sopenharmony_ci    "pathname": "",
71841cb0ef41Sopenharmony_ci    "search": "?x",
71851cb0ef41Sopenharmony_ci    "hash": ""
71861cb0ef41Sopenharmony_ci  },
71871cb0ef41Sopenharmony_ci  {
71881cb0ef41Sopenharmony_ci    "input": "sc://ñ#x",
71891cb0ef41Sopenharmony_ci    "base": null,
71901cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1#x",
71911cb0ef41Sopenharmony_ci    "origin": "null",
71921cb0ef41Sopenharmony_ci    "protocol": "sc:",
71931cb0ef41Sopenharmony_ci    "username": "",
71941cb0ef41Sopenharmony_ci    "password": "",
71951cb0ef41Sopenharmony_ci    "host": "%C3%B1",
71961cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
71971cb0ef41Sopenharmony_ci    "port": "",
71981cb0ef41Sopenharmony_ci    "pathname": "",
71991cb0ef41Sopenharmony_ci    "search": "",
72001cb0ef41Sopenharmony_ci    "hash": "#x"
72011cb0ef41Sopenharmony_ci  },
72021cb0ef41Sopenharmony_ci  {
72031cb0ef41Sopenharmony_ci    "input": "#x",
72041cb0ef41Sopenharmony_ci    "base": "sc://ñ",
72051cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1#x",
72061cb0ef41Sopenharmony_ci    "origin": "null",
72071cb0ef41Sopenharmony_ci    "protocol": "sc:",
72081cb0ef41Sopenharmony_ci    "username": "",
72091cb0ef41Sopenharmony_ci    "password": "",
72101cb0ef41Sopenharmony_ci    "host": "%C3%B1",
72111cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
72121cb0ef41Sopenharmony_ci    "port": "",
72131cb0ef41Sopenharmony_ci    "pathname": "",
72141cb0ef41Sopenharmony_ci    "search": "",
72151cb0ef41Sopenharmony_ci    "hash": "#x"
72161cb0ef41Sopenharmony_ci  },
72171cb0ef41Sopenharmony_ci  {
72181cb0ef41Sopenharmony_ci    "input": "?x",
72191cb0ef41Sopenharmony_ci    "base": "sc://ñ",
72201cb0ef41Sopenharmony_ci    "href": "sc://%C3%B1?x",
72211cb0ef41Sopenharmony_ci    "origin": "null",
72221cb0ef41Sopenharmony_ci    "protocol": "sc:",
72231cb0ef41Sopenharmony_ci    "username": "",
72241cb0ef41Sopenharmony_ci    "password": "",
72251cb0ef41Sopenharmony_ci    "host": "%C3%B1",
72261cb0ef41Sopenharmony_ci    "hostname": "%C3%B1",
72271cb0ef41Sopenharmony_ci    "port": "",
72281cb0ef41Sopenharmony_ci    "pathname": "",
72291cb0ef41Sopenharmony_ci    "search": "?x",
72301cb0ef41Sopenharmony_ci    "hash": ""
72311cb0ef41Sopenharmony_ci  },
72321cb0ef41Sopenharmony_ci  {
72331cb0ef41Sopenharmony_ci    "input": "sc://?",
72341cb0ef41Sopenharmony_ci    "base": null,
72351cb0ef41Sopenharmony_ci    "href": "sc://?",
72361cb0ef41Sopenharmony_ci    "protocol": "sc:",
72371cb0ef41Sopenharmony_ci    "username": "",
72381cb0ef41Sopenharmony_ci    "password": "",
72391cb0ef41Sopenharmony_ci    "host": "",
72401cb0ef41Sopenharmony_ci    "hostname": "",
72411cb0ef41Sopenharmony_ci    "port": "",
72421cb0ef41Sopenharmony_ci    "pathname": "",
72431cb0ef41Sopenharmony_ci    "search": "",
72441cb0ef41Sopenharmony_ci    "hash": ""
72451cb0ef41Sopenharmony_ci  },
72461cb0ef41Sopenharmony_ci  {
72471cb0ef41Sopenharmony_ci    "input": "sc://#",
72481cb0ef41Sopenharmony_ci    "base": null,
72491cb0ef41Sopenharmony_ci    "href": "sc://#",
72501cb0ef41Sopenharmony_ci    "protocol": "sc:",
72511cb0ef41Sopenharmony_ci    "username": "",
72521cb0ef41Sopenharmony_ci    "password": "",
72531cb0ef41Sopenharmony_ci    "host": "",
72541cb0ef41Sopenharmony_ci    "hostname": "",
72551cb0ef41Sopenharmony_ci    "port": "",
72561cb0ef41Sopenharmony_ci    "pathname": "",
72571cb0ef41Sopenharmony_ci    "search": "",
72581cb0ef41Sopenharmony_ci    "hash": ""
72591cb0ef41Sopenharmony_ci  },
72601cb0ef41Sopenharmony_ci  {
72611cb0ef41Sopenharmony_ci    "input": "///",
72621cb0ef41Sopenharmony_ci    "base": "sc://x/",
72631cb0ef41Sopenharmony_ci    "href": "sc:///",
72641cb0ef41Sopenharmony_ci    "protocol": "sc:",
72651cb0ef41Sopenharmony_ci    "username": "",
72661cb0ef41Sopenharmony_ci    "password": "",
72671cb0ef41Sopenharmony_ci    "host": "",
72681cb0ef41Sopenharmony_ci    "hostname": "",
72691cb0ef41Sopenharmony_ci    "port": "",
72701cb0ef41Sopenharmony_ci    "pathname": "/",
72711cb0ef41Sopenharmony_ci    "search": "",
72721cb0ef41Sopenharmony_ci    "hash": ""
72731cb0ef41Sopenharmony_ci  },
72741cb0ef41Sopenharmony_ci  {
72751cb0ef41Sopenharmony_ci    "input": "////",
72761cb0ef41Sopenharmony_ci    "base": "sc://x/",
72771cb0ef41Sopenharmony_ci    "href": "sc:////",
72781cb0ef41Sopenharmony_ci    "protocol": "sc:",
72791cb0ef41Sopenharmony_ci    "username": "",
72801cb0ef41Sopenharmony_ci    "password": "",
72811cb0ef41Sopenharmony_ci    "host": "",
72821cb0ef41Sopenharmony_ci    "hostname": "",
72831cb0ef41Sopenharmony_ci    "port": "",
72841cb0ef41Sopenharmony_ci    "pathname": "//",
72851cb0ef41Sopenharmony_ci    "search": "",
72861cb0ef41Sopenharmony_ci    "hash": ""
72871cb0ef41Sopenharmony_ci  },
72881cb0ef41Sopenharmony_ci  {
72891cb0ef41Sopenharmony_ci    "input": "////x/",
72901cb0ef41Sopenharmony_ci    "base": "sc://x/",
72911cb0ef41Sopenharmony_ci    "href": "sc:////x/",
72921cb0ef41Sopenharmony_ci    "protocol": "sc:",
72931cb0ef41Sopenharmony_ci    "username": "",
72941cb0ef41Sopenharmony_ci    "password": "",
72951cb0ef41Sopenharmony_ci    "host": "",
72961cb0ef41Sopenharmony_ci    "hostname": "",
72971cb0ef41Sopenharmony_ci    "port": "",
72981cb0ef41Sopenharmony_ci    "pathname": "//x/",
72991cb0ef41Sopenharmony_ci    "search": "",
73001cb0ef41Sopenharmony_ci    "hash": ""
73011cb0ef41Sopenharmony_ci  },
73021cb0ef41Sopenharmony_ci  {
73031cb0ef41Sopenharmony_ci    "input": "tftp://foobar.com/someconfig;mode=netascii",
73041cb0ef41Sopenharmony_ci    "base": null,
73051cb0ef41Sopenharmony_ci    "href": "tftp://foobar.com/someconfig;mode=netascii",
73061cb0ef41Sopenharmony_ci    "origin": "null",
73071cb0ef41Sopenharmony_ci    "protocol": "tftp:",
73081cb0ef41Sopenharmony_ci    "username": "",
73091cb0ef41Sopenharmony_ci    "password": "",
73101cb0ef41Sopenharmony_ci    "host": "foobar.com",
73111cb0ef41Sopenharmony_ci    "hostname": "foobar.com",
73121cb0ef41Sopenharmony_ci    "port": "",
73131cb0ef41Sopenharmony_ci    "pathname": "/someconfig;mode=netascii",
73141cb0ef41Sopenharmony_ci    "search": "",
73151cb0ef41Sopenharmony_ci    "hash": ""
73161cb0ef41Sopenharmony_ci  },
73171cb0ef41Sopenharmony_ci  {
73181cb0ef41Sopenharmony_ci    "input": "telnet://user:pass@foobar.com:23/",
73191cb0ef41Sopenharmony_ci    "base": null,
73201cb0ef41Sopenharmony_ci    "href": "telnet://user:pass@foobar.com:23/",
73211cb0ef41Sopenharmony_ci    "origin": "null",
73221cb0ef41Sopenharmony_ci    "protocol": "telnet:",
73231cb0ef41Sopenharmony_ci    "username": "user",
73241cb0ef41Sopenharmony_ci    "password": "pass",
73251cb0ef41Sopenharmony_ci    "host": "foobar.com:23",
73261cb0ef41Sopenharmony_ci    "hostname": "foobar.com",
73271cb0ef41Sopenharmony_ci    "port": "23",
73281cb0ef41Sopenharmony_ci    "pathname": "/",
73291cb0ef41Sopenharmony_ci    "search": "",
73301cb0ef41Sopenharmony_ci    "hash": ""
73311cb0ef41Sopenharmony_ci  },
73321cb0ef41Sopenharmony_ci  {
73331cb0ef41Sopenharmony_ci    "input": "ut2004://10.10.10.10:7777/Index.ut2",
73341cb0ef41Sopenharmony_ci    "base": null,
73351cb0ef41Sopenharmony_ci    "href": "ut2004://10.10.10.10:7777/Index.ut2",
73361cb0ef41Sopenharmony_ci    "origin": "null",
73371cb0ef41Sopenharmony_ci    "protocol": "ut2004:",
73381cb0ef41Sopenharmony_ci    "username": "",
73391cb0ef41Sopenharmony_ci    "password": "",
73401cb0ef41Sopenharmony_ci    "host": "10.10.10.10:7777",
73411cb0ef41Sopenharmony_ci    "hostname": "10.10.10.10",
73421cb0ef41Sopenharmony_ci    "port": "7777",
73431cb0ef41Sopenharmony_ci    "pathname": "/Index.ut2",
73441cb0ef41Sopenharmony_ci    "search": "",
73451cb0ef41Sopenharmony_ci    "hash": ""
73461cb0ef41Sopenharmony_ci  },
73471cb0ef41Sopenharmony_ci  {
73481cb0ef41Sopenharmony_ci    "input": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz",
73491cb0ef41Sopenharmony_ci    "base": null,
73501cb0ef41Sopenharmony_ci    "href": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz",
73511cb0ef41Sopenharmony_ci    "origin": "null",
73521cb0ef41Sopenharmony_ci    "protocol": "redis:",
73531cb0ef41Sopenharmony_ci    "username": "foo",
73541cb0ef41Sopenharmony_ci    "password": "bar",
73551cb0ef41Sopenharmony_ci    "host": "somehost:6379",
73561cb0ef41Sopenharmony_ci    "hostname": "somehost",
73571cb0ef41Sopenharmony_ci    "port": "6379",
73581cb0ef41Sopenharmony_ci    "pathname": "/0",
73591cb0ef41Sopenharmony_ci    "search": "?baz=bam&qux=baz",
73601cb0ef41Sopenharmony_ci    "hash": ""
73611cb0ef41Sopenharmony_ci  },
73621cb0ef41Sopenharmony_ci  {
73631cb0ef41Sopenharmony_ci    "input": "rsync://foo@host:911/sup",
73641cb0ef41Sopenharmony_ci    "base": null,
73651cb0ef41Sopenharmony_ci    "href": "rsync://foo@host:911/sup",
73661cb0ef41Sopenharmony_ci    "origin": "null",
73671cb0ef41Sopenharmony_ci    "protocol": "rsync:",
73681cb0ef41Sopenharmony_ci    "username": "foo",
73691cb0ef41Sopenharmony_ci    "password": "",
73701cb0ef41Sopenharmony_ci    "host": "host:911",
73711cb0ef41Sopenharmony_ci    "hostname": "host",
73721cb0ef41Sopenharmony_ci    "port": "911",
73731cb0ef41Sopenharmony_ci    "pathname": "/sup",
73741cb0ef41Sopenharmony_ci    "search": "",
73751cb0ef41Sopenharmony_ci    "hash": ""
73761cb0ef41Sopenharmony_ci  },
73771cb0ef41Sopenharmony_ci  {
73781cb0ef41Sopenharmony_ci    "input": "git://github.com/foo/bar.git",
73791cb0ef41Sopenharmony_ci    "base": null,
73801cb0ef41Sopenharmony_ci    "href": "git://github.com/foo/bar.git",
73811cb0ef41Sopenharmony_ci    "origin": "null",
73821cb0ef41Sopenharmony_ci    "protocol": "git:",
73831cb0ef41Sopenharmony_ci    "username": "",
73841cb0ef41Sopenharmony_ci    "password": "",
73851cb0ef41Sopenharmony_ci    "host": "github.com",
73861cb0ef41Sopenharmony_ci    "hostname": "github.com",
73871cb0ef41Sopenharmony_ci    "port": "",
73881cb0ef41Sopenharmony_ci    "pathname": "/foo/bar.git",
73891cb0ef41Sopenharmony_ci    "search": "",
73901cb0ef41Sopenharmony_ci    "hash": ""
73911cb0ef41Sopenharmony_ci  },
73921cb0ef41Sopenharmony_ci  {
73931cb0ef41Sopenharmony_ci    "input": "irc://myserver.com:6999/channel?passwd",
73941cb0ef41Sopenharmony_ci    "base": null,
73951cb0ef41Sopenharmony_ci    "href": "irc://myserver.com:6999/channel?passwd",
73961cb0ef41Sopenharmony_ci    "origin": "null",
73971cb0ef41Sopenharmony_ci    "protocol": "irc:",
73981cb0ef41Sopenharmony_ci    "username": "",
73991cb0ef41Sopenharmony_ci    "password": "",
74001cb0ef41Sopenharmony_ci    "host": "myserver.com:6999",
74011cb0ef41Sopenharmony_ci    "hostname": "myserver.com",
74021cb0ef41Sopenharmony_ci    "port": "6999",
74031cb0ef41Sopenharmony_ci    "pathname": "/channel",
74041cb0ef41Sopenharmony_ci    "search": "?passwd",
74051cb0ef41Sopenharmony_ci    "hash": ""
74061cb0ef41Sopenharmony_ci  },
74071cb0ef41Sopenharmony_ci  {
74081cb0ef41Sopenharmony_ci    "input": "dns://fw.example.org:9999/foo.bar.org?type=TXT",
74091cb0ef41Sopenharmony_ci    "base": null,
74101cb0ef41Sopenharmony_ci    "href": "dns://fw.example.org:9999/foo.bar.org?type=TXT",
74111cb0ef41Sopenharmony_ci    "origin": "null",
74121cb0ef41Sopenharmony_ci    "protocol": "dns:",
74131cb0ef41Sopenharmony_ci    "username": "",
74141cb0ef41Sopenharmony_ci    "password": "",
74151cb0ef41Sopenharmony_ci    "host": "fw.example.org:9999",
74161cb0ef41Sopenharmony_ci    "hostname": "fw.example.org",
74171cb0ef41Sopenharmony_ci    "port": "9999",
74181cb0ef41Sopenharmony_ci    "pathname": "/foo.bar.org",
74191cb0ef41Sopenharmony_ci    "search": "?type=TXT",
74201cb0ef41Sopenharmony_ci    "hash": ""
74211cb0ef41Sopenharmony_ci  },
74221cb0ef41Sopenharmony_ci  {
74231cb0ef41Sopenharmony_ci    "input": "ldap://localhost:389/ou=People,o=JNDITutorial",
74241cb0ef41Sopenharmony_ci    "base": null,
74251cb0ef41Sopenharmony_ci    "href": "ldap://localhost:389/ou=People,o=JNDITutorial",
74261cb0ef41Sopenharmony_ci    "origin": "null",
74271cb0ef41Sopenharmony_ci    "protocol": "ldap:",
74281cb0ef41Sopenharmony_ci    "username": "",
74291cb0ef41Sopenharmony_ci    "password": "",
74301cb0ef41Sopenharmony_ci    "host": "localhost:389",
74311cb0ef41Sopenharmony_ci    "hostname": "localhost",
74321cb0ef41Sopenharmony_ci    "port": "389",
74331cb0ef41Sopenharmony_ci    "pathname": "/ou=People,o=JNDITutorial",
74341cb0ef41Sopenharmony_ci    "search": "",
74351cb0ef41Sopenharmony_ci    "hash": ""
74361cb0ef41Sopenharmony_ci  },
74371cb0ef41Sopenharmony_ci  {
74381cb0ef41Sopenharmony_ci    "input": "git+https://github.com/foo/bar",
74391cb0ef41Sopenharmony_ci    "base": null,
74401cb0ef41Sopenharmony_ci    "href": "git+https://github.com/foo/bar",
74411cb0ef41Sopenharmony_ci    "origin": "null",
74421cb0ef41Sopenharmony_ci    "protocol": "git+https:",
74431cb0ef41Sopenharmony_ci    "username": "",
74441cb0ef41Sopenharmony_ci    "password": "",
74451cb0ef41Sopenharmony_ci    "host": "github.com",
74461cb0ef41Sopenharmony_ci    "hostname": "github.com",
74471cb0ef41Sopenharmony_ci    "port": "",
74481cb0ef41Sopenharmony_ci    "pathname": "/foo/bar",
74491cb0ef41Sopenharmony_ci    "search": "",
74501cb0ef41Sopenharmony_ci    "hash": ""
74511cb0ef41Sopenharmony_ci  },
74521cb0ef41Sopenharmony_ci  {
74531cb0ef41Sopenharmony_ci    "input": "urn:ietf:rfc:2648",
74541cb0ef41Sopenharmony_ci    "base": null,
74551cb0ef41Sopenharmony_ci    "href": "urn:ietf:rfc:2648",
74561cb0ef41Sopenharmony_ci    "origin": "null",
74571cb0ef41Sopenharmony_ci    "protocol": "urn:",
74581cb0ef41Sopenharmony_ci    "username": "",
74591cb0ef41Sopenharmony_ci    "password": "",
74601cb0ef41Sopenharmony_ci    "host": "",
74611cb0ef41Sopenharmony_ci    "hostname": "",
74621cb0ef41Sopenharmony_ci    "port": "",
74631cb0ef41Sopenharmony_ci    "pathname": "ietf:rfc:2648",
74641cb0ef41Sopenharmony_ci    "search": "",
74651cb0ef41Sopenharmony_ci    "hash": ""
74661cb0ef41Sopenharmony_ci  },
74671cb0ef41Sopenharmony_ci  {
74681cb0ef41Sopenharmony_ci    "input": "tag:joe@example.org,2001:foo/bar",
74691cb0ef41Sopenharmony_ci    "base": null,
74701cb0ef41Sopenharmony_ci    "href": "tag:joe@example.org,2001:foo/bar",
74711cb0ef41Sopenharmony_ci    "origin": "null",
74721cb0ef41Sopenharmony_ci    "protocol": "tag:",
74731cb0ef41Sopenharmony_ci    "username": "",
74741cb0ef41Sopenharmony_ci    "password": "",
74751cb0ef41Sopenharmony_ci    "host": "",
74761cb0ef41Sopenharmony_ci    "hostname": "",
74771cb0ef41Sopenharmony_ci    "port": "",
74781cb0ef41Sopenharmony_ci    "pathname": "joe@example.org,2001:foo/bar",
74791cb0ef41Sopenharmony_ci    "search": "",
74801cb0ef41Sopenharmony_ci    "hash": ""
74811cb0ef41Sopenharmony_ci  },
74821cb0ef41Sopenharmony_ci  "Serialize /. in path",
74831cb0ef41Sopenharmony_ci  {
74841cb0ef41Sopenharmony_ci    "input": "non-spec:/.//",
74851cb0ef41Sopenharmony_ci    "base": null,
74861cb0ef41Sopenharmony_ci    "href": "non-spec:/.//",
74871cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
74881cb0ef41Sopenharmony_ci    "username": "",
74891cb0ef41Sopenharmony_ci    "password": "",
74901cb0ef41Sopenharmony_ci    "host": "",
74911cb0ef41Sopenharmony_ci    "hostname": "",
74921cb0ef41Sopenharmony_ci    "port": "",
74931cb0ef41Sopenharmony_ci    "pathname": "//",
74941cb0ef41Sopenharmony_ci    "search": "",
74951cb0ef41Sopenharmony_ci    "hash": ""
74961cb0ef41Sopenharmony_ci  },
74971cb0ef41Sopenharmony_ci  {
74981cb0ef41Sopenharmony_ci    "input": "non-spec:/..//",
74991cb0ef41Sopenharmony_ci    "base": null,
75001cb0ef41Sopenharmony_ci    "href": "non-spec:/.//",
75011cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75021cb0ef41Sopenharmony_ci    "username": "",
75031cb0ef41Sopenharmony_ci    "password": "",
75041cb0ef41Sopenharmony_ci    "host": "",
75051cb0ef41Sopenharmony_ci    "hostname": "",
75061cb0ef41Sopenharmony_ci    "port": "",
75071cb0ef41Sopenharmony_ci    "pathname": "//",
75081cb0ef41Sopenharmony_ci    "search": "",
75091cb0ef41Sopenharmony_ci    "hash": ""
75101cb0ef41Sopenharmony_ci  },
75111cb0ef41Sopenharmony_ci  {
75121cb0ef41Sopenharmony_ci    "input": "non-spec:/a/..//",
75131cb0ef41Sopenharmony_ci    "base": null,
75141cb0ef41Sopenharmony_ci    "href": "non-spec:/.//",
75151cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75161cb0ef41Sopenharmony_ci    "username": "",
75171cb0ef41Sopenharmony_ci    "password": "",
75181cb0ef41Sopenharmony_ci    "host": "",
75191cb0ef41Sopenharmony_ci    "hostname": "",
75201cb0ef41Sopenharmony_ci    "port": "",
75211cb0ef41Sopenharmony_ci    "pathname": "//",
75221cb0ef41Sopenharmony_ci    "search": "",
75231cb0ef41Sopenharmony_ci    "hash": ""
75241cb0ef41Sopenharmony_ci  },
75251cb0ef41Sopenharmony_ci  {
75261cb0ef41Sopenharmony_ci    "input": "non-spec:/.//path",
75271cb0ef41Sopenharmony_ci    "base": null,
75281cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75291cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75301cb0ef41Sopenharmony_ci    "username": "",
75311cb0ef41Sopenharmony_ci    "password": "",
75321cb0ef41Sopenharmony_ci    "host": "",
75331cb0ef41Sopenharmony_ci    "hostname": "",
75341cb0ef41Sopenharmony_ci    "port": "",
75351cb0ef41Sopenharmony_ci    "pathname": "//path",
75361cb0ef41Sopenharmony_ci    "search": "",
75371cb0ef41Sopenharmony_ci    "hash": ""
75381cb0ef41Sopenharmony_ci  },
75391cb0ef41Sopenharmony_ci  {
75401cb0ef41Sopenharmony_ci    "input": "non-spec:/..//path",
75411cb0ef41Sopenharmony_ci    "base": null,
75421cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75431cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75441cb0ef41Sopenharmony_ci    "username": "",
75451cb0ef41Sopenharmony_ci    "password": "",
75461cb0ef41Sopenharmony_ci    "host": "",
75471cb0ef41Sopenharmony_ci    "hostname": "",
75481cb0ef41Sopenharmony_ci    "port": "",
75491cb0ef41Sopenharmony_ci    "pathname": "//path",
75501cb0ef41Sopenharmony_ci    "search": "",
75511cb0ef41Sopenharmony_ci    "hash": ""
75521cb0ef41Sopenharmony_ci  },
75531cb0ef41Sopenharmony_ci  {
75541cb0ef41Sopenharmony_ci    "input": "non-spec:/a/..//path",
75551cb0ef41Sopenharmony_ci    "base": null,
75561cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75571cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75581cb0ef41Sopenharmony_ci    "username": "",
75591cb0ef41Sopenharmony_ci    "password": "",
75601cb0ef41Sopenharmony_ci    "host": "",
75611cb0ef41Sopenharmony_ci    "hostname": "",
75621cb0ef41Sopenharmony_ci    "port": "",
75631cb0ef41Sopenharmony_ci    "pathname": "//path",
75641cb0ef41Sopenharmony_ci    "search": "",
75651cb0ef41Sopenharmony_ci    "hash": ""
75661cb0ef41Sopenharmony_ci  },
75671cb0ef41Sopenharmony_ci  {
75681cb0ef41Sopenharmony_ci    "input": "/.//path",
75691cb0ef41Sopenharmony_ci    "base": "non-spec:/p",
75701cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75711cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75721cb0ef41Sopenharmony_ci    "username": "",
75731cb0ef41Sopenharmony_ci    "password": "",
75741cb0ef41Sopenharmony_ci    "host": "",
75751cb0ef41Sopenharmony_ci    "hostname": "",
75761cb0ef41Sopenharmony_ci    "port": "",
75771cb0ef41Sopenharmony_ci    "pathname": "//path",
75781cb0ef41Sopenharmony_ci    "search": "",
75791cb0ef41Sopenharmony_ci    "hash": ""
75801cb0ef41Sopenharmony_ci  },
75811cb0ef41Sopenharmony_ci  {
75821cb0ef41Sopenharmony_ci    "input": "/..//path",
75831cb0ef41Sopenharmony_ci    "base": "non-spec:/p",
75841cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75851cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
75861cb0ef41Sopenharmony_ci    "username": "",
75871cb0ef41Sopenharmony_ci    "password": "",
75881cb0ef41Sopenharmony_ci    "host": "",
75891cb0ef41Sopenharmony_ci    "hostname": "",
75901cb0ef41Sopenharmony_ci    "port": "",
75911cb0ef41Sopenharmony_ci    "pathname": "//path",
75921cb0ef41Sopenharmony_ci    "search": "",
75931cb0ef41Sopenharmony_ci    "hash": ""
75941cb0ef41Sopenharmony_ci  },
75951cb0ef41Sopenharmony_ci  {
75961cb0ef41Sopenharmony_ci    "input": "..//path",
75971cb0ef41Sopenharmony_ci    "base": "non-spec:/p",
75981cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
75991cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
76001cb0ef41Sopenharmony_ci    "username": "",
76011cb0ef41Sopenharmony_ci    "password": "",
76021cb0ef41Sopenharmony_ci    "host": "",
76031cb0ef41Sopenharmony_ci    "hostname": "",
76041cb0ef41Sopenharmony_ci    "port": "",
76051cb0ef41Sopenharmony_ci    "pathname": "//path",
76061cb0ef41Sopenharmony_ci    "search": "",
76071cb0ef41Sopenharmony_ci    "hash": ""
76081cb0ef41Sopenharmony_ci  },
76091cb0ef41Sopenharmony_ci  {
76101cb0ef41Sopenharmony_ci    "input": "a/..//path",
76111cb0ef41Sopenharmony_ci    "base": "non-spec:/p",
76121cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
76131cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
76141cb0ef41Sopenharmony_ci    "username": "",
76151cb0ef41Sopenharmony_ci    "password": "",
76161cb0ef41Sopenharmony_ci    "host": "",
76171cb0ef41Sopenharmony_ci    "hostname": "",
76181cb0ef41Sopenharmony_ci    "port": "",
76191cb0ef41Sopenharmony_ci    "pathname": "//path",
76201cb0ef41Sopenharmony_ci    "search": "",
76211cb0ef41Sopenharmony_ci    "hash": ""
76221cb0ef41Sopenharmony_ci  },
76231cb0ef41Sopenharmony_ci  {
76241cb0ef41Sopenharmony_ci    "input": "",
76251cb0ef41Sopenharmony_ci    "base": "non-spec:/..//p",
76261cb0ef41Sopenharmony_ci    "href": "non-spec:/.//p",
76271cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
76281cb0ef41Sopenharmony_ci    "username": "",
76291cb0ef41Sopenharmony_ci    "password": "",
76301cb0ef41Sopenharmony_ci    "host": "",
76311cb0ef41Sopenharmony_ci    "hostname": "",
76321cb0ef41Sopenharmony_ci    "port": "",
76331cb0ef41Sopenharmony_ci    "pathname": "//p",
76341cb0ef41Sopenharmony_ci    "search": "",
76351cb0ef41Sopenharmony_ci    "hash": ""
76361cb0ef41Sopenharmony_ci  },
76371cb0ef41Sopenharmony_ci  {
76381cb0ef41Sopenharmony_ci    "input": "path",
76391cb0ef41Sopenharmony_ci    "base": "non-spec:/..//p",
76401cb0ef41Sopenharmony_ci    "href": "non-spec:/.//path",
76411cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
76421cb0ef41Sopenharmony_ci    "username": "",
76431cb0ef41Sopenharmony_ci    "password": "",
76441cb0ef41Sopenharmony_ci    "host": "",
76451cb0ef41Sopenharmony_ci    "hostname": "",
76461cb0ef41Sopenharmony_ci    "port": "",
76471cb0ef41Sopenharmony_ci    "pathname": "//path",
76481cb0ef41Sopenharmony_ci    "search": "",
76491cb0ef41Sopenharmony_ci    "hash": ""
76501cb0ef41Sopenharmony_ci  },
76511cb0ef41Sopenharmony_ci  "Do not serialize /. in path",
76521cb0ef41Sopenharmony_ci  {
76531cb0ef41Sopenharmony_ci    "input": "../path",
76541cb0ef41Sopenharmony_ci    "base": "non-spec:/.//p",
76551cb0ef41Sopenharmony_ci    "href": "non-spec:/path",
76561cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
76571cb0ef41Sopenharmony_ci    "username": "",
76581cb0ef41Sopenharmony_ci    "password": "",
76591cb0ef41Sopenharmony_ci    "host": "",
76601cb0ef41Sopenharmony_ci    "hostname": "",
76611cb0ef41Sopenharmony_ci    "port": "",
76621cb0ef41Sopenharmony_ci    "pathname": "/path",
76631cb0ef41Sopenharmony_ci    "search": "",
76641cb0ef41Sopenharmony_ci    "hash": ""
76651cb0ef41Sopenharmony_ci  },
76661cb0ef41Sopenharmony_ci  "# percent encoded hosts in non-special-URLs",
76671cb0ef41Sopenharmony_ci  {
76681cb0ef41Sopenharmony_ci    "input": "non-special://%E2%80%A0/",
76691cb0ef41Sopenharmony_ci    "base": null,
76701cb0ef41Sopenharmony_ci    "href": "non-special://%E2%80%A0/",
76711cb0ef41Sopenharmony_ci    "protocol": "non-special:",
76721cb0ef41Sopenharmony_ci    "username": "",
76731cb0ef41Sopenharmony_ci    "password": "",
76741cb0ef41Sopenharmony_ci    "host": "%E2%80%A0",
76751cb0ef41Sopenharmony_ci    "hostname": "%E2%80%A0",
76761cb0ef41Sopenharmony_ci    "port": "",
76771cb0ef41Sopenharmony_ci    "pathname": "/",
76781cb0ef41Sopenharmony_ci    "search": "",
76791cb0ef41Sopenharmony_ci    "hash": ""
76801cb0ef41Sopenharmony_ci  },
76811cb0ef41Sopenharmony_ci  {
76821cb0ef41Sopenharmony_ci    "input": "non-special://H%4fSt/path",
76831cb0ef41Sopenharmony_ci    "base": null,
76841cb0ef41Sopenharmony_ci    "href": "non-special://H%4fSt/path",
76851cb0ef41Sopenharmony_ci    "protocol": "non-special:",
76861cb0ef41Sopenharmony_ci    "username": "",
76871cb0ef41Sopenharmony_ci    "password": "",
76881cb0ef41Sopenharmony_ci    "host": "H%4fSt",
76891cb0ef41Sopenharmony_ci    "hostname": "H%4fSt",
76901cb0ef41Sopenharmony_ci    "port": "",
76911cb0ef41Sopenharmony_ci    "pathname": "/path",
76921cb0ef41Sopenharmony_ci    "search": "",
76931cb0ef41Sopenharmony_ci    "hash": ""
76941cb0ef41Sopenharmony_ci  },
76951cb0ef41Sopenharmony_ci  "# IPv6 in non-special-URLs",
76961cb0ef41Sopenharmony_ci  {
76971cb0ef41Sopenharmony_ci    "input": "non-special://[1:2:0:0:5:0:0:0]/",
76981cb0ef41Sopenharmony_ci    "base": null,
76991cb0ef41Sopenharmony_ci    "href": "non-special://[1:2:0:0:5::]/",
77001cb0ef41Sopenharmony_ci    "protocol": "non-special:",
77011cb0ef41Sopenharmony_ci    "username": "",
77021cb0ef41Sopenharmony_ci    "password": "",
77031cb0ef41Sopenharmony_ci    "host": "[1:2:0:0:5::]",
77041cb0ef41Sopenharmony_ci    "hostname": "[1:2:0:0:5::]",
77051cb0ef41Sopenharmony_ci    "port": "",
77061cb0ef41Sopenharmony_ci    "pathname": "/",
77071cb0ef41Sopenharmony_ci    "search": "",
77081cb0ef41Sopenharmony_ci    "hash": ""
77091cb0ef41Sopenharmony_ci  },
77101cb0ef41Sopenharmony_ci  {
77111cb0ef41Sopenharmony_ci    "input": "non-special://[1:2:0:0:0:0:0:3]/",
77121cb0ef41Sopenharmony_ci    "base": null,
77131cb0ef41Sopenharmony_ci    "href": "non-special://[1:2::3]/",
77141cb0ef41Sopenharmony_ci    "protocol": "non-special:",
77151cb0ef41Sopenharmony_ci    "username": "",
77161cb0ef41Sopenharmony_ci    "password": "",
77171cb0ef41Sopenharmony_ci    "host": "[1:2::3]",
77181cb0ef41Sopenharmony_ci    "hostname": "[1:2::3]",
77191cb0ef41Sopenharmony_ci    "port": "",
77201cb0ef41Sopenharmony_ci    "pathname": "/",
77211cb0ef41Sopenharmony_ci    "search": "",
77221cb0ef41Sopenharmony_ci    "hash": ""
77231cb0ef41Sopenharmony_ci  },
77241cb0ef41Sopenharmony_ci  {
77251cb0ef41Sopenharmony_ci    "input": "non-special://[1:2::3]:80/",
77261cb0ef41Sopenharmony_ci    "base": null,
77271cb0ef41Sopenharmony_ci    "href": "non-special://[1:2::3]:80/",
77281cb0ef41Sopenharmony_ci    "protocol": "non-special:",
77291cb0ef41Sopenharmony_ci    "username": "",
77301cb0ef41Sopenharmony_ci    "password": "",
77311cb0ef41Sopenharmony_ci    "host": "[1:2::3]:80",
77321cb0ef41Sopenharmony_ci    "hostname": "[1:2::3]",
77331cb0ef41Sopenharmony_ci    "port": "80",
77341cb0ef41Sopenharmony_ci    "pathname": "/",
77351cb0ef41Sopenharmony_ci    "search": "",
77361cb0ef41Sopenharmony_ci    "hash": ""
77371cb0ef41Sopenharmony_ci  },
77381cb0ef41Sopenharmony_ci  {
77391cb0ef41Sopenharmony_ci    "input": "non-special://[:80/",
77401cb0ef41Sopenharmony_ci    "base": null,
77411cb0ef41Sopenharmony_ci    "failure": true
77421cb0ef41Sopenharmony_ci  },
77431cb0ef41Sopenharmony_ci  {
77441cb0ef41Sopenharmony_ci    "input": "blob:https://example.com:443/",
77451cb0ef41Sopenharmony_ci    "base": null,
77461cb0ef41Sopenharmony_ci    "href": "blob:https://example.com:443/",
77471cb0ef41Sopenharmony_ci    "origin": "https://example.com",
77481cb0ef41Sopenharmony_ci    "protocol": "blob:",
77491cb0ef41Sopenharmony_ci    "username": "",
77501cb0ef41Sopenharmony_ci    "password": "",
77511cb0ef41Sopenharmony_ci    "host": "",
77521cb0ef41Sopenharmony_ci    "hostname": "",
77531cb0ef41Sopenharmony_ci    "port": "",
77541cb0ef41Sopenharmony_ci    "pathname": "https://example.com:443/",
77551cb0ef41Sopenharmony_ci    "search": "",
77561cb0ef41Sopenharmony_ci    "hash": ""
77571cb0ef41Sopenharmony_ci  },
77581cb0ef41Sopenharmony_ci  {
77591cb0ef41Sopenharmony_ci    "input": "blob:http://example.org:88/",
77601cb0ef41Sopenharmony_ci    "base": null,
77611cb0ef41Sopenharmony_ci    "href": "blob:http://example.org:88/",
77621cb0ef41Sopenharmony_ci    "origin": "http://example.org:88",
77631cb0ef41Sopenharmony_ci    "protocol": "blob:",
77641cb0ef41Sopenharmony_ci    "username": "",
77651cb0ef41Sopenharmony_ci    "password": "",
77661cb0ef41Sopenharmony_ci    "host": "",
77671cb0ef41Sopenharmony_ci    "hostname": "",
77681cb0ef41Sopenharmony_ci    "port": "",
77691cb0ef41Sopenharmony_ci    "pathname": "http://example.org:88/",
77701cb0ef41Sopenharmony_ci    "search": "",
77711cb0ef41Sopenharmony_ci    "hash": ""
77721cb0ef41Sopenharmony_ci  },
77731cb0ef41Sopenharmony_ci  {
77741cb0ef41Sopenharmony_ci    "input": "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf",
77751cb0ef41Sopenharmony_ci    "base": null,
77761cb0ef41Sopenharmony_ci    "href": "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf",
77771cb0ef41Sopenharmony_ci    "origin": "null",
77781cb0ef41Sopenharmony_ci    "protocol": "blob:",
77791cb0ef41Sopenharmony_ci    "username": "",
77801cb0ef41Sopenharmony_ci    "password": "",
77811cb0ef41Sopenharmony_ci    "host": "",
77821cb0ef41Sopenharmony_ci    "hostname": "",
77831cb0ef41Sopenharmony_ci    "port": "",
77841cb0ef41Sopenharmony_ci    "pathname": "d3958f5c-0777-0845-9dcf-2cb28783acaf",
77851cb0ef41Sopenharmony_ci    "search": "",
77861cb0ef41Sopenharmony_ci    "hash": ""
77871cb0ef41Sopenharmony_ci  },
77881cb0ef41Sopenharmony_ci  {
77891cb0ef41Sopenharmony_ci    "input": "blob:",
77901cb0ef41Sopenharmony_ci    "base": null,
77911cb0ef41Sopenharmony_ci    "href": "blob:",
77921cb0ef41Sopenharmony_ci    "origin": "null",
77931cb0ef41Sopenharmony_ci    "protocol": "blob:",
77941cb0ef41Sopenharmony_ci    "username": "",
77951cb0ef41Sopenharmony_ci    "password": "",
77961cb0ef41Sopenharmony_ci    "host": "",
77971cb0ef41Sopenharmony_ci    "hostname": "",
77981cb0ef41Sopenharmony_ci    "port": "",
77991cb0ef41Sopenharmony_ci    "pathname": "",
78001cb0ef41Sopenharmony_ci    "search": "",
78011cb0ef41Sopenharmony_ci    "hash": ""
78021cb0ef41Sopenharmony_ci  },
78031cb0ef41Sopenharmony_ci  "blob: in blob:",
78041cb0ef41Sopenharmony_ci  {
78051cb0ef41Sopenharmony_ci    "input": "blob:blob:",
78061cb0ef41Sopenharmony_ci    "base": null,
78071cb0ef41Sopenharmony_ci    "href": "blob:blob:",
78081cb0ef41Sopenharmony_ci    "origin": "null",
78091cb0ef41Sopenharmony_ci    "protocol": "blob:",
78101cb0ef41Sopenharmony_ci    "username": "",
78111cb0ef41Sopenharmony_ci    "password": "",
78121cb0ef41Sopenharmony_ci    "host": "",
78131cb0ef41Sopenharmony_ci    "hostname": "",
78141cb0ef41Sopenharmony_ci    "port": "",
78151cb0ef41Sopenharmony_ci    "pathname": "blob:",
78161cb0ef41Sopenharmony_ci    "search": "",
78171cb0ef41Sopenharmony_ci    "hash": ""
78181cb0ef41Sopenharmony_ci  },
78191cb0ef41Sopenharmony_ci  {
78201cb0ef41Sopenharmony_ci    "input": "blob:blob:https://example.org/",
78211cb0ef41Sopenharmony_ci    "base": null,
78221cb0ef41Sopenharmony_ci    "href": "blob:blob:https://example.org/",
78231cb0ef41Sopenharmony_ci    "origin": "null",
78241cb0ef41Sopenharmony_ci    "protocol": "blob:",
78251cb0ef41Sopenharmony_ci    "username": "",
78261cb0ef41Sopenharmony_ci    "password": "",
78271cb0ef41Sopenharmony_ci    "host": "",
78281cb0ef41Sopenharmony_ci    "hostname": "",
78291cb0ef41Sopenharmony_ci    "port": "",
78301cb0ef41Sopenharmony_ci    "pathname": "blob:https://example.org/",
78311cb0ef41Sopenharmony_ci    "search": "",
78321cb0ef41Sopenharmony_ci    "hash": ""
78331cb0ef41Sopenharmony_ci  },
78341cb0ef41Sopenharmony_ci  "Non-http(s): in blob:",
78351cb0ef41Sopenharmony_ci  {
78361cb0ef41Sopenharmony_ci    "input": "blob:about:blank",
78371cb0ef41Sopenharmony_ci    "base": null,
78381cb0ef41Sopenharmony_ci    "href": "blob:about:blank",
78391cb0ef41Sopenharmony_ci    "origin": "null",
78401cb0ef41Sopenharmony_ci    "protocol": "blob:",
78411cb0ef41Sopenharmony_ci    "username": "",
78421cb0ef41Sopenharmony_ci    "password": "",
78431cb0ef41Sopenharmony_ci    "host": "",
78441cb0ef41Sopenharmony_ci    "hostname": "",
78451cb0ef41Sopenharmony_ci    "port": "",
78461cb0ef41Sopenharmony_ci    "pathname": "about:blank",
78471cb0ef41Sopenharmony_ci    "search": "",
78481cb0ef41Sopenharmony_ci    "hash": ""
78491cb0ef41Sopenharmony_ci  },
78501cb0ef41Sopenharmony_ci  {
78511cb0ef41Sopenharmony_ci    "input": "blob:file://host/path",
78521cb0ef41Sopenharmony_ci    "base": null,
78531cb0ef41Sopenharmony_ci    "href": "blob:file://host/path",
78541cb0ef41Sopenharmony_ci    "origin": "null",
78551cb0ef41Sopenharmony_ci    "protocol": "blob:",
78561cb0ef41Sopenharmony_ci    "username": "",
78571cb0ef41Sopenharmony_ci    "password": "",
78581cb0ef41Sopenharmony_ci    "host": "",
78591cb0ef41Sopenharmony_ci    "hostname": "",
78601cb0ef41Sopenharmony_ci    "port": "",
78611cb0ef41Sopenharmony_ci    "pathname": "file://host/path",
78621cb0ef41Sopenharmony_ci    "search": "",
78631cb0ef41Sopenharmony_ci    "hash": ""
78641cb0ef41Sopenharmony_ci  },
78651cb0ef41Sopenharmony_ci  {
78661cb0ef41Sopenharmony_ci    "input": "blob:ftp://host/path",
78671cb0ef41Sopenharmony_ci    "base": null,
78681cb0ef41Sopenharmony_ci    "href": "blob:ftp://host/path",
78691cb0ef41Sopenharmony_ci    "origin": "null",
78701cb0ef41Sopenharmony_ci    "protocol": "blob:",
78711cb0ef41Sopenharmony_ci    "username": "",
78721cb0ef41Sopenharmony_ci    "password": "",
78731cb0ef41Sopenharmony_ci    "host": "",
78741cb0ef41Sopenharmony_ci    "hostname": "",
78751cb0ef41Sopenharmony_ci    "port": "",
78761cb0ef41Sopenharmony_ci    "pathname": "ftp://host/path",
78771cb0ef41Sopenharmony_ci    "search": "",
78781cb0ef41Sopenharmony_ci    "hash": ""
78791cb0ef41Sopenharmony_ci  },
78801cb0ef41Sopenharmony_ci  {
78811cb0ef41Sopenharmony_ci    "input": "blob:ws://example.org/",
78821cb0ef41Sopenharmony_ci    "base": null,
78831cb0ef41Sopenharmony_ci    "href": "blob:ws://example.org/",
78841cb0ef41Sopenharmony_ci    "origin": "null",
78851cb0ef41Sopenharmony_ci    "protocol": "blob:",
78861cb0ef41Sopenharmony_ci    "username": "",
78871cb0ef41Sopenharmony_ci    "password": "",
78881cb0ef41Sopenharmony_ci    "host": "",
78891cb0ef41Sopenharmony_ci    "hostname": "",
78901cb0ef41Sopenharmony_ci    "port": "",
78911cb0ef41Sopenharmony_ci    "pathname": "ws://example.org/",
78921cb0ef41Sopenharmony_ci    "search": "",
78931cb0ef41Sopenharmony_ci    "hash": ""
78941cb0ef41Sopenharmony_ci  },
78951cb0ef41Sopenharmony_ci  {
78961cb0ef41Sopenharmony_ci    "input": "blob:wss://example.org/",
78971cb0ef41Sopenharmony_ci    "base": null,
78981cb0ef41Sopenharmony_ci    "href": "blob:wss://example.org/",
78991cb0ef41Sopenharmony_ci    "origin": "null",
79001cb0ef41Sopenharmony_ci    "protocol": "blob:",
79011cb0ef41Sopenharmony_ci    "username": "",
79021cb0ef41Sopenharmony_ci    "password": "",
79031cb0ef41Sopenharmony_ci    "host": "",
79041cb0ef41Sopenharmony_ci    "hostname": "",
79051cb0ef41Sopenharmony_ci    "port": "",
79061cb0ef41Sopenharmony_ci    "pathname": "wss://example.org/",
79071cb0ef41Sopenharmony_ci    "search": "",
79081cb0ef41Sopenharmony_ci    "hash": ""
79091cb0ef41Sopenharmony_ci  },
79101cb0ef41Sopenharmony_ci  "Percent-encoded http: in blob:",
79111cb0ef41Sopenharmony_ci  {
79121cb0ef41Sopenharmony_ci    "input": "blob:http%3a//example.org/",
79131cb0ef41Sopenharmony_ci    "base": null,
79141cb0ef41Sopenharmony_ci    "href": "blob:http%3a//example.org/",
79151cb0ef41Sopenharmony_ci    "origin": "null",
79161cb0ef41Sopenharmony_ci    "protocol": "blob:",
79171cb0ef41Sopenharmony_ci    "username": "",
79181cb0ef41Sopenharmony_ci    "password": "",
79191cb0ef41Sopenharmony_ci    "host": "",
79201cb0ef41Sopenharmony_ci    "hostname": "",
79211cb0ef41Sopenharmony_ci    "port": "",
79221cb0ef41Sopenharmony_ci    "pathname": "http%3a//example.org/",
79231cb0ef41Sopenharmony_ci    "search": "",
79241cb0ef41Sopenharmony_ci    "hash": ""
79251cb0ef41Sopenharmony_ci  },
79261cb0ef41Sopenharmony_ci  "Invalid IPv4 radix digits",
79271cb0ef41Sopenharmony_ci  {
79281cb0ef41Sopenharmony_ci    "input": "http://0x7f.0.0.0x7g",
79291cb0ef41Sopenharmony_ci    "base": null,
79301cb0ef41Sopenharmony_ci    "href": "http://0x7f.0.0.0x7g/",
79311cb0ef41Sopenharmony_ci    "protocol": "http:",
79321cb0ef41Sopenharmony_ci    "username": "",
79331cb0ef41Sopenharmony_ci    "password": "",
79341cb0ef41Sopenharmony_ci    "host": "0x7f.0.0.0x7g",
79351cb0ef41Sopenharmony_ci    "hostname": "0x7f.0.0.0x7g",
79361cb0ef41Sopenharmony_ci    "port": "",
79371cb0ef41Sopenharmony_ci    "pathname": "/",
79381cb0ef41Sopenharmony_ci    "search": "",
79391cb0ef41Sopenharmony_ci    "hash": ""
79401cb0ef41Sopenharmony_ci  },
79411cb0ef41Sopenharmony_ci  {
79421cb0ef41Sopenharmony_ci    "input": "http://0X7F.0.0.0X7G",
79431cb0ef41Sopenharmony_ci    "base": null,
79441cb0ef41Sopenharmony_ci    "href": "http://0x7f.0.0.0x7g/",
79451cb0ef41Sopenharmony_ci    "protocol": "http:",
79461cb0ef41Sopenharmony_ci    "username": "",
79471cb0ef41Sopenharmony_ci    "password": "",
79481cb0ef41Sopenharmony_ci    "host": "0x7f.0.0.0x7g",
79491cb0ef41Sopenharmony_ci    "hostname": "0x7f.0.0.0x7g",
79501cb0ef41Sopenharmony_ci    "port": "",
79511cb0ef41Sopenharmony_ci    "pathname": "/",
79521cb0ef41Sopenharmony_ci    "search": "",
79531cb0ef41Sopenharmony_ci    "hash": ""
79541cb0ef41Sopenharmony_ci  },
79551cb0ef41Sopenharmony_ci  "Invalid IPv4 portion of IPv6 address",
79561cb0ef41Sopenharmony_ci  {
79571cb0ef41Sopenharmony_ci    "input": "http://[::127.0.0.0.1]",
79581cb0ef41Sopenharmony_ci    "base": null,
79591cb0ef41Sopenharmony_ci    "failure": true
79601cb0ef41Sopenharmony_ci  },
79611cb0ef41Sopenharmony_ci  "Uncompressed IPv6 addresses with 0",
79621cb0ef41Sopenharmony_ci  {
79631cb0ef41Sopenharmony_ci    "input": "http://[0:1:0:1:0:1:0:1]",
79641cb0ef41Sopenharmony_ci    "base": null,
79651cb0ef41Sopenharmony_ci    "href": "http://[0:1:0:1:0:1:0:1]/",
79661cb0ef41Sopenharmony_ci    "protocol": "http:",
79671cb0ef41Sopenharmony_ci    "username": "",
79681cb0ef41Sopenharmony_ci    "password": "",
79691cb0ef41Sopenharmony_ci    "host": "[0:1:0:1:0:1:0:1]",
79701cb0ef41Sopenharmony_ci    "hostname": "[0:1:0:1:0:1:0:1]",
79711cb0ef41Sopenharmony_ci    "port": "",
79721cb0ef41Sopenharmony_ci    "pathname": "/",
79731cb0ef41Sopenharmony_ci    "search": "",
79741cb0ef41Sopenharmony_ci    "hash": ""
79751cb0ef41Sopenharmony_ci  },
79761cb0ef41Sopenharmony_ci  {
79771cb0ef41Sopenharmony_ci    "input": "http://[1:0:1:0:1:0:1:0]",
79781cb0ef41Sopenharmony_ci    "base": null,
79791cb0ef41Sopenharmony_ci    "href": "http://[1:0:1:0:1:0:1:0]/",
79801cb0ef41Sopenharmony_ci    "protocol": "http:",
79811cb0ef41Sopenharmony_ci    "username": "",
79821cb0ef41Sopenharmony_ci    "password": "",
79831cb0ef41Sopenharmony_ci    "host": "[1:0:1:0:1:0:1:0]",
79841cb0ef41Sopenharmony_ci    "hostname": "[1:0:1:0:1:0:1:0]",
79851cb0ef41Sopenharmony_ci    "port": "",
79861cb0ef41Sopenharmony_ci    "pathname": "/",
79871cb0ef41Sopenharmony_ci    "search": "",
79881cb0ef41Sopenharmony_ci    "hash": ""
79891cb0ef41Sopenharmony_ci  },
79901cb0ef41Sopenharmony_ci  "Percent-encoded query and fragment",
79911cb0ef41Sopenharmony_ci  {
79921cb0ef41Sopenharmony_ci    "input": "http://example.org/test?\u0022",
79931cb0ef41Sopenharmony_ci    "base": null,
79941cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%22",
79951cb0ef41Sopenharmony_ci    "protocol": "http:",
79961cb0ef41Sopenharmony_ci    "username": "",
79971cb0ef41Sopenharmony_ci    "password": "",
79981cb0ef41Sopenharmony_ci    "host": "example.org",
79991cb0ef41Sopenharmony_ci    "hostname": "example.org",
80001cb0ef41Sopenharmony_ci    "port": "",
80011cb0ef41Sopenharmony_ci    "pathname": "/test",
80021cb0ef41Sopenharmony_ci    "search": "?%22",
80031cb0ef41Sopenharmony_ci    "hash": ""
80041cb0ef41Sopenharmony_ci  },
80051cb0ef41Sopenharmony_ci  {
80061cb0ef41Sopenharmony_ci    "input": "http://example.org/test?\u0023",
80071cb0ef41Sopenharmony_ci    "base": null,
80081cb0ef41Sopenharmony_ci    "href": "http://example.org/test?#",
80091cb0ef41Sopenharmony_ci    "protocol": "http:",
80101cb0ef41Sopenharmony_ci    "username": "",
80111cb0ef41Sopenharmony_ci    "password": "",
80121cb0ef41Sopenharmony_ci    "host": "example.org",
80131cb0ef41Sopenharmony_ci    "hostname": "example.org",
80141cb0ef41Sopenharmony_ci    "port": "",
80151cb0ef41Sopenharmony_ci    "pathname": "/test",
80161cb0ef41Sopenharmony_ci    "search": "",
80171cb0ef41Sopenharmony_ci    "hash": ""
80181cb0ef41Sopenharmony_ci  },
80191cb0ef41Sopenharmony_ci  {
80201cb0ef41Sopenharmony_ci    "input": "http://example.org/test?\u003C",
80211cb0ef41Sopenharmony_ci    "base": null,
80221cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%3C",
80231cb0ef41Sopenharmony_ci    "protocol": "http:",
80241cb0ef41Sopenharmony_ci    "username": "",
80251cb0ef41Sopenharmony_ci    "password": "",
80261cb0ef41Sopenharmony_ci    "host": "example.org",
80271cb0ef41Sopenharmony_ci    "hostname": "example.org",
80281cb0ef41Sopenharmony_ci    "port": "",
80291cb0ef41Sopenharmony_ci    "pathname": "/test",
80301cb0ef41Sopenharmony_ci    "search": "?%3C",
80311cb0ef41Sopenharmony_ci    "hash": ""
80321cb0ef41Sopenharmony_ci  },
80331cb0ef41Sopenharmony_ci  {
80341cb0ef41Sopenharmony_ci    "input": "http://example.org/test?\u003E",
80351cb0ef41Sopenharmony_ci    "base": null,
80361cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%3E",
80371cb0ef41Sopenharmony_ci    "protocol": "http:",
80381cb0ef41Sopenharmony_ci    "username": "",
80391cb0ef41Sopenharmony_ci    "password": "",
80401cb0ef41Sopenharmony_ci    "host": "example.org",
80411cb0ef41Sopenharmony_ci    "hostname": "example.org",
80421cb0ef41Sopenharmony_ci    "port": "",
80431cb0ef41Sopenharmony_ci    "pathname": "/test",
80441cb0ef41Sopenharmony_ci    "search": "?%3E",
80451cb0ef41Sopenharmony_ci    "hash": ""
80461cb0ef41Sopenharmony_ci  },
80471cb0ef41Sopenharmony_ci  {
80481cb0ef41Sopenharmony_ci    "input": "http://example.org/test?\u2323",
80491cb0ef41Sopenharmony_ci    "base": null,
80501cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%E2%8C%A3",
80511cb0ef41Sopenharmony_ci    "protocol": "http:",
80521cb0ef41Sopenharmony_ci    "username": "",
80531cb0ef41Sopenharmony_ci    "password": "",
80541cb0ef41Sopenharmony_ci    "host": "example.org",
80551cb0ef41Sopenharmony_ci    "hostname": "example.org",
80561cb0ef41Sopenharmony_ci    "port": "",
80571cb0ef41Sopenharmony_ci    "pathname": "/test",
80581cb0ef41Sopenharmony_ci    "search": "?%E2%8C%A3",
80591cb0ef41Sopenharmony_ci    "hash": ""
80601cb0ef41Sopenharmony_ci  },
80611cb0ef41Sopenharmony_ci  {
80621cb0ef41Sopenharmony_ci    "input": "http://example.org/test?%23%23",
80631cb0ef41Sopenharmony_ci    "base": null,
80641cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%23%23",
80651cb0ef41Sopenharmony_ci    "protocol": "http:",
80661cb0ef41Sopenharmony_ci    "username": "",
80671cb0ef41Sopenharmony_ci    "password": "",
80681cb0ef41Sopenharmony_ci    "host": "example.org",
80691cb0ef41Sopenharmony_ci    "hostname": "example.org",
80701cb0ef41Sopenharmony_ci    "port": "",
80711cb0ef41Sopenharmony_ci    "pathname": "/test",
80721cb0ef41Sopenharmony_ci    "search": "?%23%23",
80731cb0ef41Sopenharmony_ci    "hash": ""
80741cb0ef41Sopenharmony_ci  },
80751cb0ef41Sopenharmony_ci  {
80761cb0ef41Sopenharmony_ci    "input": "http://example.org/test?%GH",
80771cb0ef41Sopenharmony_ci    "base": null,
80781cb0ef41Sopenharmony_ci    "href": "http://example.org/test?%GH",
80791cb0ef41Sopenharmony_ci    "protocol": "http:",
80801cb0ef41Sopenharmony_ci    "username": "",
80811cb0ef41Sopenharmony_ci    "password": "",
80821cb0ef41Sopenharmony_ci    "host": "example.org",
80831cb0ef41Sopenharmony_ci    "hostname": "example.org",
80841cb0ef41Sopenharmony_ci    "port": "",
80851cb0ef41Sopenharmony_ci    "pathname": "/test",
80861cb0ef41Sopenharmony_ci    "search": "?%GH",
80871cb0ef41Sopenharmony_ci    "hash": ""
80881cb0ef41Sopenharmony_ci  },
80891cb0ef41Sopenharmony_ci  {
80901cb0ef41Sopenharmony_ci    "input": "http://example.org/test?a#%EF",
80911cb0ef41Sopenharmony_ci    "base": null,
80921cb0ef41Sopenharmony_ci    "href": "http://example.org/test?a#%EF",
80931cb0ef41Sopenharmony_ci    "protocol": "http:",
80941cb0ef41Sopenharmony_ci    "username": "",
80951cb0ef41Sopenharmony_ci    "password": "",
80961cb0ef41Sopenharmony_ci    "host": "example.org",
80971cb0ef41Sopenharmony_ci    "hostname": "example.org",
80981cb0ef41Sopenharmony_ci    "port": "",
80991cb0ef41Sopenharmony_ci    "pathname": "/test",
81001cb0ef41Sopenharmony_ci    "search": "?a",
81011cb0ef41Sopenharmony_ci    "hash": "#%EF"
81021cb0ef41Sopenharmony_ci  },
81031cb0ef41Sopenharmony_ci  {
81041cb0ef41Sopenharmony_ci    "input": "http://example.org/test?a#%GH",
81051cb0ef41Sopenharmony_ci    "base": null,
81061cb0ef41Sopenharmony_ci    "href": "http://example.org/test?a#%GH",
81071cb0ef41Sopenharmony_ci    "protocol": "http:",
81081cb0ef41Sopenharmony_ci    "username": "",
81091cb0ef41Sopenharmony_ci    "password": "",
81101cb0ef41Sopenharmony_ci    "host": "example.org",
81111cb0ef41Sopenharmony_ci    "hostname": "example.org",
81121cb0ef41Sopenharmony_ci    "port": "",
81131cb0ef41Sopenharmony_ci    "pathname": "/test",
81141cb0ef41Sopenharmony_ci    "search": "?a",
81151cb0ef41Sopenharmony_ci    "hash": "#%GH"
81161cb0ef41Sopenharmony_ci  },
81171cb0ef41Sopenharmony_ci  "URLs that require a non-about:blank base. (Also serve as invalid base tests.)",
81181cb0ef41Sopenharmony_ci  {
81191cb0ef41Sopenharmony_ci    "input": "a",
81201cb0ef41Sopenharmony_ci    "base": null,
81211cb0ef41Sopenharmony_ci    "failure": true,
81221cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
81231cb0ef41Sopenharmony_ci  },
81241cb0ef41Sopenharmony_ci  {
81251cb0ef41Sopenharmony_ci    "input": "a/",
81261cb0ef41Sopenharmony_ci    "base": null,
81271cb0ef41Sopenharmony_ci    "failure": true,
81281cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
81291cb0ef41Sopenharmony_ci  },
81301cb0ef41Sopenharmony_ci  {
81311cb0ef41Sopenharmony_ci    "input": "a//",
81321cb0ef41Sopenharmony_ci    "base": null,
81331cb0ef41Sopenharmony_ci    "failure": true,
81341cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
81351cb0ef41Sopenharmony_ci  },
81361cb0ef41Sopenharmony_ci  "Bases that don't fail to parse but fail to be bases",
81371cb0ef41Sopenharmony_ci  {
81381cb0ef41Sopenharmony_ci    "input": "test-a-colon.html",
81391cb0ef41Sopenharmony_ci    "base": "a:",
81401cb0ef41Sopenharmony_ci    "failure": true
81411cb0ef41Sopenharmony_ci  },
81421cb0ef41Sopenharmony_ci  {
81431cb0ef41Sopenharmony_ci    "input": "test-a-colon-b.html",
81441cb0ef41Sopenharmony_ci    "base": "a:b",
81451cb0ef41Sopenharmony_ci    "failure": true
81461cb0ef41Sopenharmony_ci  },
81471cb0ef41Sopenharmony_ci  "Other base URL tests, that must succeed",
81481cb0ef41Sopenharmony_ci  {
81491cb0ef41Sopenharmony_ci    "input": "test-a-colon-slash.html",
81501cb0ef41Sopenharmony_ci    "base": "a:/",
81511cb0ef41Sopenharmony_ci    "href": "a:/test-a-colon-slash.html",
81521cb0ef41Sopenharmony_ci    "protocol": "a:",
81531cb0ef41Sopenharmony_ci    "username": "",
81541cb0ef41Sopenharmony_ci    "password": "",
81551cb0ef41Sopenharmony_ci    "host": "",
81561cb0ef41Sopenharmony_ci    "hostname": "",
81571cb0ef41Sopenharmony_ci    "port": "",
81581cb0ef41Sopenharmony_ci    "pathname": "/test-a-colon-slash.html",
81591cb0ef41Sopenharmony_ci    "search": "",
81601cb0ef41Sopenharmony_ci    "hash": ""
81611cb0ef41Sopenharmony_ci  },
81621cb0ef41Sopenharmony_ci  {
81631cb0ef41Sopenharmony_ci    "input": "test-a-colon-slash-slash.html",
81641cb0ef41Sopenharmony_ci    "base": "a://",
81651cb0ef41Sopenharmony_ci    "href": "a:///test-a-colon-slash-slash.html",
81661cb0ef41Sopenharmony_ci    "protocol": "a:",
81671cb0ef41Sopenharmony_ci    "username": "",
81681cb0ef41Sopenharmony_ci    "password": "",
81691cb0ef41Sopenharmony_ci    "host": "",
81701cb0ef41Sopenharmony_ci    "hostname": "",
81711cb0ef41Sopenharmony_ci    "port": "",
81721cb0ef41Sopenharmony_ci    "pathname": "/test-a-colon-slash-slash.html",
81731cb0ef41Sopenharmony_ci    "search": "",
81741cb0ef41Sopenharmony_ci    "hash": ""
81751cb0ef41Sopenharmony_ci  },
81761cb0ef41Sopenharmony_ci  {
81771cb0ef41Sopenharmony_ci    "input": "test-a-colon-slash-b.html",
81781cb0ef41Sopenharmony_ci    "base": "a:/b",
81791cb0ef41Sopenharmony_ci    "href": "a:/test-a-colon-slash-b.html",
81801cb0ef41Sopenharmony_ci    "protocol": "a:",
81811cb0ef41Sopenharmony_ci    "username": "",
81821cb0ef41Sopenharmony_ci    "password": "",
81831cb0ef41Sopenharmony_ci    "host": "",
81841cb0ef41Sopenharmony_ci    "hostname": "",
81851cb0ef41Sopenharmony_ci    "port": "",
81861cb0ef41Sopenharmony_ci    "pathname": "/test-a-colon-slash-b.html",
81871cb0ef41Sopenharmony_ci    "search": "",
81881cb0ef41Sopenharmony_ci    "hash": ""
81891cb0ef41Sopenharmony_ci  },
81901cb0ef41Sopenharmony_ci  {
81911cb0ef41Sopenharmony_ci    "input": "test-a-colon-slash-slash-b.html",
81921cb0ef41Sopenharmony_ci    "base": "a://b",
81931cb0ef41Sopenharmony_ci    "href": "a://b/test-a-colon-slash-slash-b.html",
81941cb0ef41Sopenharmony_ci    "protocol": "a:",
81951cb0ef41Sopenharmony_ci    "username": "",
81961cb0ef41Sopenharmony_ci    "password": "",
81971cb0ef41Sopenharmony_ci    "host": "b",
81981cb0ef41Sopenharmony_ci    "hostname": "b",
81991cb0ef41Sopenharmony_ci    "port": "",
82001cb0ef41Sopenharmony_ci    "pathname": "/test-a-colon-slash-slash-b.html",
82011cb0ef41Sopenharmony_ci    "search": "",
82021cb0ef41Sopenharmony_ci    "hash": ""
82031cb0ef41Sopenharmony_ci  },
82041cb0ef41Sopenharmony_ci  "Null code point in fragment",
82051cb0ef41Sopenharmony_ci  {
82061cb0ef41Sopenharmony_ci    "input": "http://example.org/test?a#b\u0000c",
82071cb0ef41Sopenharmony_ci    "base": null,
82081cb0ef41Sopenharmony_ci    "href": "http://example.org/test?a#b%00c",
82091cb0ef41Sopenharmony_ci    "protocol": "http:",
82101cb0ef41Sopenharmony_ci    "username": "",
82111cb0ef41Sopenharmony_ci    "password": "",
82121cb0ef41Sopenharmony_ci    "host": "example.org",
82131cb0ef41Sopenharmony_ci    "hostname": "example.org",
82141cb0ef41Sopenharmony_ci    "port": "",
82151cb0ef41Sopenharmony_ci    "pathname": "/test",
82161cb0ef41Sopenharmony_ci    "search": "?a",
82171cb0ef41Sopenharmony_ci    "hash": "#b%00c"
82181cb0ef41Sopenharmony_ci  },
82191cb0ef41Sopenharmony_ci  {
82201cb0ef41Sopenharmony_ci    "input": "non-spec://example.org/test?a#b\u0000c",
82211cb0ef41Sopenharmony_ci    "base": null,
82221cb0ef41Sopenharmony_ci    "href": "non-spec://example.org/test?a#b%00c",
82231cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
82241cb0ef41Sopenharmony_ci    "username": "",
82251cb0ef41Sopenharmony_ci    "password": "",
82261cb0ef41Sopenharmony_ci    "host": "example.org",
82271cb0ef41Sopenharmony_ci    "hostname": "example.org",
82281cb0ef41Sopenharmony_ci    "port": "",
82291cb0ef41Sopenharmony_ci    "pathname": "/test",
82301cb0ef41Sopenharmony_ci    "search": "?a",
82311cb0ef41Sopenharmony_ci    "hash": "#b%00c"
82321cb0ef41Sopenharmony_ci  },
82331cb0ef41Sopenharmony_ci  {
82341cb0ef41Sopenharmony_ci    "input": "non-spec:/test?a#b\u0000c",
82351cb0ef41Sopenharmony_ci    "base": null,
82361cb0ef41Sopenharmony_ci    "href": "non-spec:/test?a#b%00c",
82371cb0ef41Sopenharmony_ci    "protocol": "non-spec:",
82381cb0ef41Sopenharmony_ci    "username": "",
82391cb0ef41Sopenharmony_ci    "password": "",
82401cb0ef41Sopenharmony_ci    "host": "",
82411cb0ef41Sopenharmony_ci    "hostname": "",
82421cb0ef41Sopenharmony_ci    "port": "",
82431cb0ef41Sopenharmony_ci    "pathname": "/test",
82441cb0ef41Sopenharmony_ci    "search": "?a",
82451cb0ef41Sopenharmony_ci    "hash": "#b%00c"
82461cb0ef41Sopenharmony_ci  },
82471cb0ef41Sopenharmony_ci  "First scheme char - not allowed: https://github.com/whatwg/url/issues/464",
82481cb0ef41Sopenharmony_ci  {
82491cb0ef41Sopenharmony_ci    "input": "10.0.0.7:8080/foo.html",
82501cb0ef41Sopenharmony_ci    "base": "file:///some/dir/bar.html",
82511cb0ef41Sopenharmony_ci    "href": "file:///some/dir/10.0.0.7:8080/foo.html",
82521cb0ef41Sopenharmony_ci    "protocol": "file:",
82531cb0ef41Sopenharmony_ci    "username": "",
82541cb0ef41Sopenharmony_ci    "password": "",
82551cb0ef41Sopenharmony_ci    "host": "",
82561cb0ef41Sopenharmony_ci    "hostname": "",
82571cb0ef41Sopenharmony_ci    "port": "",
82581cb0ef41Sopenharmony_ci    "pathname": "/some/dir/10.0.0.7:8080/foo.html",
82591cb0ef41Sopenharmony_ci    "search": "",
82601cb0ef41Sopenharmony_ci    "hash": ""
82611cb0ef41Sopenharmony_ci  },
82621cb0ef41Sopenharmony_ci  "Subsequent scheme chars - not allowed",
82631cb0ef41Sopenharmony_ci  {
82641cb0ef41Sopenharmony_ci    "input": "a!@$*=/foo.html",
82651cb0ef41Sopenharmony_ci    "base": "file:///some/dir/bar.html",
82661cb0ef41Sopenharmony_ci    "href": "file:///some/dir/a!@$*=/foo.html",
82671cb0ef41Sopenharmony_ci    "protocol": "file:",
82681cb0ef41Sopenharmony_ci    "username": "",
82691cb0ef41Sopenharmony_ci    "password": "",
82701cb0ef41Sopenharmony_ci    "host": "",
82711cb0ef41Sopenharmony_ci    "hostname": "",
82721cb0ef41Sopenharmony_ci    "port": "",
82731cb0ef41Sopenharmony_ci    "pathname": "/some/dir/a!@$*=/foo.html",
82741cb0ef41Sopenharmony_ci    "search": "",
82751cb0ef41Sopenharmony_ci    "hash": ""
82761cb0ef41Sopenharmony_ci  },
82771cb0ef41Sopenharmony_ci  "First and subsequent scheme chars - allowed",
82781cb0ef41Sopenharmony_ci  {
82791cb0ef41Sopenharmony_ci    "input": "a1234567890-+.:foo/bar",
82801cb0ef41Sopenharmony_ci    "base": "http://example.com/dir/file",
82811cb0ef41Sopenharmony_ci    "href": "a1234567890-+.:foo/bar",
82821cb0ef41Sopenharmony_ci    "protocol": "a1234567890-+.:",
82831cb0ef41Sopenharmony_ci    "username": "",
82841cb0ef41Sopenharmony_ci    "password": "",
82851cb0ef41Sopenharmony_ci    "host": "",
82861cb0ef41Sopenharmony_ci    "hostname": "",
82871cb0ef41Sopenharmony_ci    "port": "",
82881cb0ef41Sopenharmony_ci    "pathname": "foo/bar",
82891cb0ef41Sopenharmony_ci    "search": "",
82901cb0ef41Sopenharmony_ci    "hash": ""
82911cb0ef41Sopenharmony_ci  },
82921cb0ef41Sopenharmony_ci  "IDNA ignored code points in file URLs hosts",
82931cb0ef41Sopenharmony_ci  {
82941cb0ef41Sopenharmony_ci    "input": "file://a\u00ADb/p",
82951cb0ef41Sopenharmony_ci    "base": null,
82961cb0ef41Sopenharmony_ci    "href": "file://ab/p",
82971cb0ef41Sopenharmony_ci    "protocol": "file:",
82981cb0ef41Sopenharmony_ci    "username": "",
82991cb0ef41Sopenharmony_ci    "password": "",
83001cb0ef41Sopenharmony_ci    "host": "ab",
83011cb0ef41Sopenharmony_ci    "hostname": "ab",
83021cb0ef41Sopenharmony_ci    "port": "",
83031cb0ef41Sopenharmony_ci    "pathname": "/p",
83041cb0ef41Sopenharmony_ci    "search": "",
83051cb0ef41Sopenharmony_ci    "hash": ""
83061cb0ef41Sopenharmony_ci  },
83071cb0ef41Sopenharmony_ci  {
83081cb0ef41Sopenharmony_ci    "input": "file://a%C2%ADb/p",
83091cb0ef41Sopenharmony_ci    "base": null,
83101cb0ef41Sopenharmony_ci    "href": "file://ab/p",
83111cb0ef41Sopenharmony_ci    "protocol": "file:",
83121cb0ef41Sopenharmony_ci    "username": "",
83131cb0ef41Sopenharmony_ci    "password": "",
83141cb0ef41Sopenharmony_ci    "host": "ab",
83151cb0ef41Sopenharmony_ci    "hostname": "ab",
83161cb0ef41Sopenharmony_ci    "port": "",
83171cb0ef41Sopenharmony_ci    "pathname": "/p",
83181cb0ef41Sopenharmony_ci    "search": "",
83191cb0ef41Sopenharmony_ci    "hash": ""
83201cb0ef41Sopenharmony_ci  },
83211cb0ef41Sopenharmony_ci  "IDNA hostnames which get mapped to 'localhost'",
83221cb0ef41Sopenharmony_ci  {
83231cb0ef41Sopenharmony_ci    "input": "file://loC������/usr/bin",
83241cb0ef41Sopenharmony_ci    "base": null,
83251cb0ef41Sopenharmony_ci    "href": "file:///usr/bin",
83261cb0ef41Sopenharmony_ci    "protocol": "file:",
83271cb0ef41Sopenharmony_ci    "username": "",
83281cb0ef41Sopenharmony_ci    "password": "",
83291cb0ef41Sopenharmony_ci    "host": "",
83301cb0ef41Sopenharmony_ci    "hostname": "",
83311cb0ef41Sopenharmony_ci    "port": "",
83321cb0ef41Sopenharmony_ci    "pathname": "/usr/bin",
83331cb0ef41Sopenharmony_ci    "search": "",
83341cb0ef41Sopenharmony_ci    "hash": ""
83351cb0ef41Sopenharmony_ci  },
83361cb0ef41Sopenharmony_ci  "Empty host after the domain to ASCII",
83371cb0ef41Sopenharmony_ci  {
83381cb0ef41Sopenharmony_ci    "input": "file://\u00ad/p",
83391cb0ef41Sopenharmony_ci    "base": null,
83401cb0ef41Sopenharmony_ci    "failure": true
83411cb0ef41Sopenharmony_ci  },
83421cb0ef41Sopenharmony_ci  {
83431cb0ef41Sopenharmony_ci    "input": "file://%C2%AD/p",
83441cb0ef41Sopenharmony_ci    "base": null,
83451cb0ef41Sopenharmony_ci    "failure": true
83461cb0ef41Sopenharmony_ci  },
83471cb0ef41Sopenharmony_ci  {
83481cb0ef41Sopenharmony_ci    "input": "file://xn--/p",
83491cb0ef41Sopenharmony_ci    "base": null,
83501cb0ef41Sopenharmony_ci    "failure": true
83511cb0ef41Sopenharmony_ci  },
83521cb0ef41Sopenharmony_ci  "https://bugzilla.mozilla.org/show_bug.cgi?id=1647058",
83531cb0ef41Sopenharmony_ci  {
83541cb0ef41Sopenharmony_ci    "input": "#link",
83551cb0ef41Sopenharmony_ci    "base": "https://example.org/##link",
83561cb0ef41Sopenharmony_ci    "href": "https://example.org/#link",
83571cb0ef41Sopenharmony_ci    "protocol": "https:",
83581cb0ef41Sopenharmony_ci    "username": "",
83591cb0ef41Sopenharmony_ci    "password": "",
83601cb0ef41Sopenharmony_ci    "host": "example.org",
83611cb0ef41Sopenharmony_ci    "hostname": "example.org",
83621cb0ef41Sopenharmony_ci    "port": "",
83631cb0ef41Sopenharmony_ci    "pathname": "/",
83641cb0ef41Sopenharmony_ci    "search": "",
83651cb0ef41Sopenharmony_ci    "hash": "#link"
83661cb0ef41Sopenharmony_ci  },
83671cb0ef41Sopenharmony_ci  "UTF-8 percent-encode of C0 control percent-encode set and supersets",
83681cb0ef41Sopenharmony_ci  {
83691cb0ef41Sopenharmony_ci    "input": "non-special:cannot-be-a-base-url-\u0000\u0001\u001F\u001E\u007E\u007F\u0080",
83701cb0ef41Sopenharmony_ci    "base": null,
83711cb0ef41Sopenharmony_ci    "hash": "",
83721cb0ef41Sopenharmony_ci    "host": "",
83731cb0ef41Sopenharmony_ci    "hostname": "",
83741cb0ef41Sopenharmony_ci    "href": "non-special:cannot-be-a-base-url-%00%01%1F%1E~%7F%C2%80",
83751cb0ef41Sopenharmony_ci    "origin": "null",
83761cb0ef41Sopenharmony_ci    "password": "",
83771cb0ef41Sopenharmony_ci    "pathname": "cannot-be-a-base-url-%00%01%1F%1E~%7F%C2%80",
83781cb0ef41Sopenharmony_ci    "port": "",
83791cb0ef41Sopenharmony_ci    "protocol": "non-special:",
83801cb0ef41Sopenharmony_ci    "search": "",
83811cb0ef41Sopenharmony_ci    "username": ""
83821cb0ef41Sopenharmony_ci  },
83831cb0ef41Sopenharmony_ci  {
83841cb0ef41Sopenharmony_ci    "input": "https://www.example.com/path{\u007Fpath.html?query'\u007F=query#fragment<\u007Ffragment",
83851cb0ef41Sopenharmony_ci    "base": null,
83861cb0ef41Sopenharmony_ci    "hash": "#fragment%3C%7Ffragment",
83871cb0ef41Sopenharmony_ci    "host": "www.example.com",
83881cb0ef41Sopenharmony_ci    "hostname": "www.example.com",
83891cb0ef41Sopenharmony_ci    "href": "https://www.example.com/path%7B%7Fpath.html?query%27%7F=query#fragment%3C%7Ffragment",
83901cb0ef41Sopenharmony_ci    "origin": "https://www.example.com",
83911cb0ef41Sopenharmony_ci    "password": "",
83921cb0ef41Sopenharmony_ci    "pathname": "/path%7B%7Fpath.html",
83931cb0ef41Sopenharmony_ci    "port": "",
83941cb0ef41Sopenharmony_ci    "protocol": "https:",
83951cb0ef41Sopenharmony_ci    "search": "?query%27%7F=query",
83961cb0ef41Sopenharmony_ci    "username": ""
83971cb0ef41Sopenharmony_ci  },
83981cb0ef41Sopenharmony_ci  {
83991cb0ef41Sopenharmony_ci    "input": "https://user:pass[\u007F@foo/bar",
84001cb0ef41Sopenharmony_ci    "base": "http://example.org",
84011cb0ef41Sopenharmony_ci    "hash": "",
84021cb0ef41Sopenharmony_ci    "host": "foo",
84031cb0ef41Sopenharmony_ci    "hostname": "foo",
84041cb0ef41Sopenharmony_ci    "href": "https://user:pass%5B%7F@foo/bar",
84051cb0ef41Sopenharmony_ci    "origin": "https://foo",
84061cb0ef41Sopenharmony_ci    "password": "pass%5B%7F",
84071cb0ef41Sopenharmony_ci    "pathname": "/bar",
84081cb0ef41Sopenharmony_ci    "port": "",
84091cb0ef41Sopenharmony_ci    "protocol": "https:",
84101cb0ef41Sopenharmony_ci    "search": "",
84111cb0ef41Sopenharmony_ci    "username": "user"
84121cb0ef41Sopenharmony_ci  },
84131cb0ef41Sopenharmony_ci  "Tests for the distinct percent-encode sets",
84141cb0ef41Sopenharmony_ci  {
84151cb0ef41Sopenharmony_ci    "input": "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/",
84161cb0ef41Sopenharmony_ci    "base": null,
84171cb0ef41Sopenharmony_ci    "hash": "",
84181cb0ef41Sopenharmony_ci    "host": "host",
84191cb0ef41Sopenharmony_ci    "hostname": "host",
84201cb0ef41Sopenharmony_ci    "href": "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/",
84211cb0ef41Sopenharmony_ci    "origin": "null",
84221cb0ef41Sopenharmony_ci    "password": "",
84231cb0ef41Sopenharmony_ci    "pathname": "/",
84241cb0ef41Sopenharmony_ci    "port":"",
84251cb0ef41Sopenharmony_ci    "protocol": "foo:",
84261cb0ef41Sopenharmony_ci    "search": "",
84271cb0ef41Sopenharmony_ci    "username": "%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~"
84281cb0ef41Sopenharmony_ci  },
84291cb0ef41Sopenharmony_ci  {
84301cb0ef41Sopenharmony_ci    "input": "wss:// !\"$%&'()*+,-.;<=>@[]^_`{|}~@host/",
84311cb0ef41Sopenharmony_ci    "base": null,
84321cb0ef41Sopenharmony_ci    "hash": "",
84331cb0ef41Sopenharmony_ci    "host": "host",
84341cb0ef41Sopenharmony_ci    "hostname": "host",
84351cb0ef41Sopenharmony_ci    "href": "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/",
84361cb0ef41Sopenharmony_ci    "origin": "wss://host",
84371cb0ef41Sopenharmony_ci    "password": "",
84381cb0ef41Sopenharmony_ci    "pathname": "/",
84391cb0ef41Sopenharmony_ci    "port":"",
84401cb0ef41Sopenharmony_ci    "protocol": "wss:",
84411cb0ef41Sopenharmony_ci    "search": "",
84421cb0ef41Sopenharmony_ci    "username": "%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~"
84431cb0ef41Sopenharmony_ci  },
84441cb0ef41Sopenharmony_ci  {
84451cb0ef41Sopenharmony_ci    "input": "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/",
84461cb0ef41Sopenharmony_ci    "base": null,
84471cb0ef41Sopenharmony_ci    "hash": "",
84481cb0ef41Sopenharmony_ci    "host": "host",
84491cb0ef41Sopenharmony_ci    "hostname": "host",
84501cb0ef41Sopenharmony_ci    "href": "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/",
84511cb0ef41Sopenharmony_ci    "origin": "null",
84521cb0ef41Sopenharmony_ci    "password": "%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~",
84531cb0ef41Sopenharmony_ci    "pathname": "/",
84541cb0ef41Sopenharmony_ci    "port":"",
84551cb0ef41Sopenharmony_ci    "protocol": "foo:",
84561cb0ef41Sopenharmony_ci    "search": "",
84571cb0ef41Sopenharmony_ci    "username": "joe"
84581cb0ef41Sopenharmony_ci  },
84591cb0ef41Sopenharmony_ci  {
84601cb0ef41Sopenharmony_ci    "input": "wss://joe: !\"$%&'()*+,-.:;<=>@[]^_`{|}~@host/",
84611cb0ef41Sopenharmony_ci    "base": null,
84621cb0ef41Sopenharmony_ci    "hash": "",
84631cb0ef41Sopenharmony_ci    "host": "host",
84641cb0ef41Sopenharmony_ci    "hostname": "host",
84651cb0ef41Sopenharmony_ci    "href": "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/",
84661cb0ef41Sopenharmony_ci    "origin": "wss://host",
84671cb0ef41Sopenharmony_ci    "password": "%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~",
84681cb0ef41Sopenharmony_ci    "pathname": "/",
84691cb0ef41Sopenharmony_ci    "port":"",
84701cb0ef41Sopenharmony_ci    "protocol": "wss:",
84711cb0ef41Sopenharmony_ci    "search": "",
84721cb0ef41Sopenharmony_ci    "username": "joe"
84731cb0ef41Sopenharmony_ci  },
84741cb0ef41Sopenharmony_ci  {
84751cb0ef41Sopenharmony_ci    "input": "foo://!\"$%&'()*+,-.;=_`{}~/",
84761cb0ef41Sopenharmony_ci    "base": null,
84771cb0ef41Sopenharmony_ci    "hash": "",
84781cb0ef41Sopenharmony_ci    "host": "!\"$%&'()*+,-.;=_`{}~",
84791cb0ef41Sopenharmony_ci    "hostname": "!\"$%&'()*+,-.;=_`{}~",
84801cb0ef41Sopenharmony_ci    "href":"foo://!\"$%&'()*+,-.;=_`{}~/",
84811cb0ef41Sopenharmony_ci    "origin": "null",
84821cb0ef41Sopenharmony_ci    "password": "",
84831cb0ef41Sopenharmony_ci    "pathname": "/",
84841cb0ef41Sopenharmony_ci    "port":"",
84851cb0ef41Sopenharmony_ci    "protocol": "foo:",
84861cb0ef41Sopenharmony_ci    "search": "",
84871cb0ef41Sopenharmony_ci    "username": ""
84881cb0ef41Sopenharmony_ci  },
84891cb0ef41Sopenharmony_ci  {
84901cb0ef41Sopenharmony_ci    "input": "wss://!\"$&'()*+,-.;=_`{}~/",
84911cb0ef41Sopenharmony_ci    "base": null,
84921cb0ef41Sopenharmony_ci    "hash": "",
84931cb0ef41Sopenharmony_ci    "host": "!\"$&'()*+,-.;=_`{}~",
84941cb0ef41Sopenharmony_ci    "hostname": "!\"$&'()*+,-.;=_`{}~",
84951cb0ef41Sopenharmony_ci    "href":"wss://!\"$&'()*+,-.;=_`{}~/",
84961cb0ef41Sopenharmony_ci    "origin": "wss://!\"$&'()*+,-.;=_`{}~",
84971cb0ef41Sopenharmony_ci    "password": "",
84981cb0ef41Sopenharmony_ci    "pathname": "/",
84991cb0ef41Sopenharmony_ci    "port":"",
85001cb0ef41Sopenharmony_ci    "protocol": "wss:",
85011cb0ef41Sopenharmony_ci    "search": "",
85021cb0ef41Sopenharmony_ci    "username": ""
85031cb0ef41Sopenharmony_ci  },
85041cb0ef41Sopenharmony_ci  {
85051cb0ef41Sopenharmony_ci    "input": "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~",
85061cb0ef41Sopenharmony_ci    "base": null,
85071cb0ef41Sopenharmony_ci    "hash": "",
85081cb0ef41Sopenharmony_ci    "host": "host",
85091cb0ef41Sopenharmony_ci    "hostname": "host",
85101cb0ef41Sopenharmony_ci    "href": "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~",
85111cb0ef41Sopenharmony_ci    "origin": "null",
85121cb0ef41Sopenharmony_ci    "password": "",
85131cb0ef41Sopenharmony_ci    "pathname": "/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~",
85141cb0ef41Sopenharmony_ci    "port":"",
85151cb0ef41Sopenharmony_ci    "protocol": "foo:",
85161cb0ef41Sopenharmony_ci    "search": "",
85171cb0ef41Sopenharmony_ci    "username": ""
85181cb0ef41Sopenharmony_ci  },
85191cb0ef41Sopenharmony_ci  {
85201cb0ef41Sopenharmony_ci    "input": "wss://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~",
85211cb0ef41Sopenharmony_ci    "base": null,
85221cb0ef41Sopenharmony_ci    "hash": "",
85231cb0ef41Sopenharmony_ci    "host": "host",
85241cb0ef41Sopenharmony_ci    "hostname": "host",
85251cb0ef41Sopenharmony_ci    "href": "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~",
85261cb0ef41Sopenharmony_ci    "origin": "wss://host",
85271cb0ef41Sopenharmony_ci    "password": "",
85281cb0ef41Sopenharmony_ci    "pathname": "/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~",
85291cb0ef41Sopenharmony_ci    "port":"",
85301cb0ef41Sopenharmony_ci    "protocol": "wss:",
85311cb0ef41Sopenharmony_ci    "search": "",
85321cb0ef41Sopenharmony_ci    "username": ""
85331cb0ef41Sopenharmony_ci  },
85341cb0ef41Sopenharmony_ci  {
85351cb0ef41Sopenharmony_ci    "input": "foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
85361cb0ef41Sopenharmony_ci    "base": null,
85371cb0ef41Sopenharmony_ci    "hash": "",
85381cb0ef41Sopenharmony_ci    "host": "host",
85391cb0ef41Sopenharmony_ci    "hostname": "host",
85401cb0ef41Sopenharmony_ci    "href": "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~",
85411cb0ef41Sopenharmony_ci    "origin": "null",
85421cb0ef41Sopenharmony_ci    "password": "",
85431cb0ef41Sopenharmony_ci    "pathname": "/dir/",
85441cb0ef41Sopenharmony_ci    "port":"",
85451cb0ef41Sopenharmony_ci    "protocol": "foo:",
85461cb0ef41Sopenharmony_ci    "search": "?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~",
85471cb0ef41Sopenharmony_ci    "username": ""
85481cb0ef41Sopenharmony_ci  },
85491cb0ef41Sopenharmony_ci  {
85501cb0ef41Sopenharmony_ci    "input": "wss://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
85511cb0ef41Sopenharmony_ci    "base": null,
85521cb0ef41Sopenharmony_ci    "hash": "",
85531cb0ef41Sopenharmony_ci    "host": "host",
85541cb0ef41Sopenharmony_ci    "hostname": "host",
85551cb0ef41Sopenharmony_ci    "href": "wss://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~",
85561cb0ef41Sopenharmony_ci    "origin": "wss://host",
85571cb0ef41Sopenharmony_ci    "password": "",
85581cb0ef41Sopenharmony_ci    "pathname": "/dir/",
85591cb0ef41Sopenharmony_ci    "port":"",
85601cb0ef41Sopenharmony_ci    "protocol": "wss:",
85611cb0ef41Sopenharmony_ci    "search": "?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~",
85621cb0ef41Sopenharmony_ci    "username": ""
85631cb0ef41Sopenharmony_ci  },
85641cb0ef41Sopenharmony_ci  {
85651cb0ef41Sopenharmony_ci    "input": "foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
85661cb0ef41Sopenharmony_ci    "base": null,
85671cb0ef41Sopenharmony_ci    "hash": "#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~",
85681cb0ef41Sopenharmony_ci    "host": "host",
85691cb0ef41Sopenharmony_ci    "hostname": "host",
85701cb0ef41Sopenharmony_ci    "href": "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~",
85711cb0ef41Sopenharmony_ci    "origin": "null",
85721cb0ef41Sopenharmony_ci    "password": "",
85731cb0ef41Sopenharmony_ci    "pathname": "/dir/",
85741cb0ef41Sopenharmony_ci    "port":"",
85751cb0ef41Sopenharmony_ci    "protocol": "foo:",
85761cb0ef41Sopenharmony_ci    "search": "",
85771cb0ef41Sopenharmony_ci    "username": ""
85781cb0ef41Sopenharmony_ci  },
85791cb0ef41Sopenharmony_ci  {
85801cb0ef41Sopenharmony_ci    "input": "wss://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
85811cb0ef41Sopenharmony_ci    "base": null,
85821cb0ef41Sopenharmony_ci    "hash": "#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~",
85831cb0ef41Sopenharmony_ci    "host": "host",
85841cb0ef41Sopenharmony_ci    "hostname": "host",
85851cb0ef41Sopenharmony_ci    "href": "wss://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~",
85861cb0ef41Sopenharmony_ci    "origin": "wss://host",
85871cb0ef41Sopenharmony_ci    "password": "",
85881cb0ef41Sopenharmony_ci    "pathname": "/dir/",
85891cb0ef41Sopenharmony_ci    "port":"",
85901cb0ef41Sopenharmony_ci    "protocol": "wss:",
85911cb0ef41Sopenharmony_ci    "search": "",
85921cb0ef41Sopenharmony_ci    "username": ""
85931cb0ef41Sopenharmony_ci  },
85941cb0ef41Sopenharmony_ci  "Ensure that input schemes are not ignored when resolving non-special URLs",
85951cb0ef41Sopenharmony_ci  {
85961cb0ef41Sopenharmony_ci    "input": "abc:rootless",
85971cb0ef41Sopenharmony_ci    "base": "abc://host/path",
85981cb0ef41Sopenharmony_ci    "hash": "",
85991cb0ef41Sopenharmony_ci    "host": "",
86001cb0ef41Sopenharmony_ci    "hostname": "",
86011cb0ef41Sopenharmony_ci    "href":"abc:rootless",
86021cb0ef41Sopenharmony_ci    "password": "",
86031cb0ef41Sopenharmony_ci    "pathname": "rootless",
86041cb0ef41Sopenharmony_ci    "port":"",
86051cb0ef41Sopenharmony_ci    "protocol": "abc:",
86061cb0ef41Sopenharmony_ci    "search": "",
86071cb0ef41Sopenharmony_ci    "username": ""
86081cb0ef41Sopenharmony_ci  },
86091cb0ef41Sopenharmony_ci  {
86101cb0ef41Sopenharmony_ci    "input": "abc:rootless",
86111cb0ef41Sopenharmony_ci    "base": "abc:/path",
86121cb0ef41Sopenharmony_ci    "hash": "",
86131cb0ef41Sopenharmony_ci    "host": "",
86141cb0ef41Sopenharmony_ci    "hostname": "",
86151cb0ef41Sopenharmony_ci    "href":"abc:rootless",
86161cb0ef41Sopenharmony_ci    "password": "",
86171cb0ef41Sopenharmony_ci    "pathname": "rootless",
86181cb0ef41Sopenharmony_ci    "port":"",
86191cb0ef41Sopenharmony_ci    "protocol": "abc:",
86201cb0ef41Sopenharmony_ci    "search": "",
86211cb0ef41Sopenharmony_ci    "username": ""
86221cb0ef41Sopenharmony_ci  },
86231cb0ef41Sopenharmony_ci  {
86241cb0ef41Sopenharmony_ci    "input": "abc:rootless",
86251cb0ef41Sopenharmony_ci    "base": "abc:path",
86261cb0ef41Sopenharmony_ci    "hash": "",
86271cb0ef41Sopenharmony_ci    "host": "",
86281cb0ef41Sopenharmony_ci    "hostname": "",
86291cb0ef41Sopenharmony_ci    "href":"abc:rootless",
86301cb0ef41Sopenharmony_ci    "password": "",
86311cb0ef41Sopenharmony_ci    "pathname": "rootless",
86321cb0ef41Sopenharmony_ci    "port":"",
86331cb0ef41Sopenharmony_ci    "protocol": "abc:",
86341cb0ef41Sopenharmony_ci    "search": "",
86351cb0ef41Sopenharmony_ci    "username": ""
86361cb0ef41Sopenharmony_ci  },
86371cb0ef41Sopenharmony_ci  {
86381cb0ef41Sopenharmony_ci    "input": "abc:/rooted",
86391cb0ef41Sopenharmony_ci    "base": "abc://host/path",
86401cb0ef41Sopenharmony_ci    "hash": "",
86411cb0ef41Sopenharmony_ci    "host": "",
86421cb0ef41Sopenharmony_ci    "hostname": "",
86431cb0ef41Sopenharmony_ci    "href":"abc:/rooted",
86441cb0ef41Sopenharmony_ci    "password": "",
86451cb0ef41Sopenharmony_ci    "pathname": "/rooted",
86461cb0ef41Sopenharmony_ci    "port":"",
86471cb0ef41Sopenharmony_ci    "protocol": "abc:",
86481cb0ef41Sopenharmony_ci    "search": "",
86491cb0ef41Sopenharmony_ci    "username": ""
86501cb0ef41Sopenharmony_ci  },
86511cb0ef41Sopenharmony_ci  "Empty query and fragment with blank should throw an error",
86521cb0ef41Sopenharmony_ci  {
86531cb0ef41Sopenharmony_ci    "input": "#",
86541cb0ef41Sopenharmony_ci    "base": null,
86551cb0ef41Sopenharmony_ci    "failure": true,
86561cb0ef41Sopenharmony_ci    "relativeTo": "any-base"
86571cb0ef41Sopenharmony_ci  },
86581cb0ef41Sopenharmony_ci  {
86591cb0ef41Sopenharmony_ci    "input": "?",
86601cb0ef41Sopenharmony_ci    "base": null,
86611cb0ef41Sopenharmony_ci    "failure": true,
86621cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
86631cb0ef41Sopenharmony_ci  },
86641cb0ef41Sopenharmony_ci  "Last component looks like a number, but not valid IPv4",
86651cb0ef41Sopenharmony_ci  {
86661cb0ef41Sopenharmony_ci    "input": "http://1.2.3.4.5",
86671cb0ef41Sopenharmony_ci    "base": "http://other.com/",
86681cb0ef41Sopenharmony_ci    "failure": true
86691cb0ef41Sopenharmony_ci  },
86701cb0ef41Sopenharmony_ci  {
86711cb0ef41Sopenharmony_ci    "input": "http://1.2.3.4.5.",
86721cb0ef41Sopenharmony_ci    "base": "http://other.com/",
86731cb0ef41Sopenharmony_ci    "failure": true
86741cb0ef41Sopenharmony_ci  },
86751cb0ef41Sopenharmony_ci  {
86761cb0ef41Sopenharmony_ci    "input": "http://0..0x300/",
86771cb0ef41Sopenharmony_ci    "base": null,
86781cb0ef41Sopenharmony_ci    "failure": true
86791cb0ef41Sopenharmony_ci  },
86801cb0ef41Sopenharmony_ci  {
86811cb0ef41Sopenharmony_ci    "input": "http://0..0x300./",
86821cb0ef41Sopenharmony_ci    "base": null,
86831cb0ef41Sopenharmony_ci    "failure": true
86841cb0ef41Sopenharmony_ci  },
86851cb0ef41Sopenharmony_ci  {
86861cb0ef41Sopenharmony_ci    "input": "http://256.256.256.256.256",
86871cb0ef41Sopenharmony_ci    "base": "http://other.com/",
86881cb0ef41Sopenharmony_ci    "failure": true
86891cb0ef41Sopenharmony_ci  },
86901cb0ef41Sopenharmony_ci  {
86911cb0ef41Sopenharmony_ci    "input": "http://256.256.256.256.256.",
86921cb0ef41Sopenharmony_ci    "base": "http://other.com/",
86931cb0ef41Sopenharmony_ci    "failure": true
86941cb0ef41Sopenharmony_ci  },
86951cb0ef41Sopenharmony_ci  {
86961cb0ef41Sopenharmony_ci    "input": "http://1.2.3.08",
86971cb0ef41Sopenharmony_ci    "base": null,
86981cb0ef41Sopenharmony_ci    "failure": true
86991cb0ef41Sopenharmony_ci  },
87001cb0ef41Sopenharmony_ci  {
87011cb0ef41Sopenharmony_ci    "input": "http://1.2.3.08.",
87021cb0ef41Sopenharmony_ci    "base": null,
87031cb0ef41Sopenharmony_ci    "failure": true
87041cb0ef41Sopenharmony_ci  },
87051cb0ef41Sopenharmony_ci  {
87061cb0ef41Sopenharmony_ci    "input": "http://1.2.3.09",
87071cb0ef41Sopenharmony_ci    "base": null,
87081cb0ef41Sopenharmony_ci    "failure": true
87091cb0ef41Sopenharmony_ci  },
87101cb0ef41Sopenharmony_ci  {
87111cb0ef41Sopenharmony_ci    "input": "http://09.2.3.4",
87121cb0ef41Sopenharmony_ci    "base": null,
87131cb0ef41Sopenharmony_ci    "failure": true
87141cb0ef41Sopenharmony_ci  },
87151cb0ef41Sopenharmony_ci  {
87161cb0ef41Sopenharmony_ci    "input": "http://09.2.3.4.",
87171cb0ef41Sopenharmony_ci    "base": null,
87181cb0ef41Sopenharmony_ci    "failure": true
87191cb0ef41Sopenharmony_ci  },
87201cb0ef41Sopenharmony_ci  {
87211cb0ef41Sopenharmony_ci    "input": "http://01.2.3.4.5",
87221cb0ef41Sopenharmony_ci    "base": null,
87231cb0ef41Sopenharmony_ci    "failure": true
87241cb0ef41Sopenharmony_ci  },
87251cb0ef41Sopenharmony_ci  {
87261cb0ef41Sopenharmony_ci    "input": "http://01.2.3.4.5.",
87271cb0ef41Sopenharmony_ci    "base": null,
87281cb0ef41Sopenharmony_ci    "failure": true
87291cb0ef41Sopenharmony_ci  },
87301cb0ef41Sopenharmony_ci  {
87311cb0ef41Sopenharmony_ci    "input": "http://0x100.2.3.4",
87321cb0ef41Sopenharmony_ci    "base": null,
87331cb0ef41Sopenharmony_ci    "failure": true
87341cb0ef41Sopenharmony_ci  },
87351cb0ef41Sopenharmony_ci  {
87361cb0ef41Sopenharmony_ci    "input": "http://0x100.2.3.4.",
87371cb0ef41Sopenharmony_ci    "base": null,
87381cb0ef41Sopenharmony_ci    "failure": true
87391cb0ef41Sopenharmony_ci  },
87401cb0ef41Sopenharmony_ci  {
87411cb0ef41Sopenharmony_ci    "input": "http://0x1.2.3.4.5",
87421cb0ef41Sopenharmony_ci    "base": null,
87431cb0ef41Sopenharmony_ci    "failure": true
87441cb0ef41Sopenharmony_ci  },
87451cb0ef41Sopenharmony_ci  {
87461cb0ef41Sopenharmony_ci    "input": "http://0x1.2.3.4.5.",
87471cb0ef41Sopenharmony_ci    "base": null,
87481cb0ef41Sopenharmony_ci    "failure": true
87491cb0ef41Sopenharmony_ci  },
87501cb0ef41Sopenharmony_ci  {
87511cb0ef41Sopenharmony_ci    "input": "http://foo.1.2.3.4",
87521cb0ef41Sopenharmony_ci    "base": null,
87531cb0ef41Sopenharmony_ci    "failure": true
87541cb0ef41Sopenharmony_ci  },
87551cb0ef41Sopenharmony_ci  {
87561cb0ef41Sopenharmony_ci    "input": "http://foo.1.2.3.4.",
87571cb0ef41Sopenharmony_ci    "base": null,
87581cb0ef41Sopenharmony_ci    "failure": true
87591cb0ef41Sopenharmony_ci  },
87601cb0ef41Sopenharmony_ci  {
87611cb0ef41Sopenharmony_ci    "input": "http://foo.2.3.4",
87621cb0ef41Sopenharmony_ci    "base": null,
87631cb0ef41Sopenharmony_ci    "failure": true
87641cb0ef41Sopenharmony_ci  },
87651cb0ef41Sopenharmony_ci  {
87661cb0ef41Sopenharmony_ci    "input": "http://foo.2.3.4.",
87671cb0ef41Sopenharmony_ci    "base": null,
87681cb0ef41Sopenharmony_ci    "failure": true
87691cb0ef41Sopenharmony_ci  },
87701cb0ef41Sopenharmony_ci  {
87711cb0ef41Sopenharmony_ci    "input": "http://foo.09",
87721cb0ef41Sopenharmony_ci    "base": null,
87731cb0ef41Sopenharmony_ci    "failure": true
87741cb0ef41Sopenharmony_ci  },
87751cb0ef41Sopenharmony_ci  {
87761cb0ef41Sopenharmony_ci    "input": "http://foo.09.",
87771cb0ef41Sopenharmony_ci    "base": null,
87781cb0ef41Sopenharmony_ci    "failure": true
87791cb0ef41Sopenharmony_ci  },
87801cb0ef41Sopenharmony_ci  {
87811cb0ef41Sopenharmony_ci    "input": "http://foo.0x4",
87821cb0ef41Sopenharmony_ci    "base": null,
87831cb0ef41Sopenharmony_ci    "failure": true
87841cb0ef41Sopenharmony_ci  },
87851cb0ef41Sopenharmony_ci  {
87861cb0ef41Sopenharmony_ci    "input": "http://foo.0x4.",
87871cb0ef41Sopenharmony_ci    "base": null,
87881cb0ef41Sopenharmony_ci    "failure": true
87891cb0ef41Sopenharmony_ci  },
87901cb0ef41Sopenharmony_ci  {
87911cb0ef41Sopenharmony_ci    "input": "http://foo.09..",
87921cb0ef41Sopenharmony_ci    "base": null,
87931cb0ef41Sopenharmony_ci    "hash": "",
87941cb0ef41Sopenharmony_ci    "host": "foo.09..",
87951cb0ef41Sopenharmony_ci    "hostname": "foo.09..",
87961cb0ef41Sopenharmony_ci    "href":"http://foo.09../",
87971cb0ef41Sopenharmony_ci    "password": "",
87981cb0ef41Sopenharmony_ci    "pathname": "/",
87991cb0ef41Sopenharmony_ci    "port":"",
88001cb0ef41Sopenharmony_ci    "protocol": "http:",
88011cb0ef41Sopenharmony_ci    "search": "",
88021cb0ef41Sopenharmony_ci    "username": ""
88031cb0ef41Sopenharmony_ci  },
88041cb0ef41Sopenharmony_ci  {
88051cb0ef41Sopenharmony_ci    "input": "http://0999999999999999999/",
88061cb0ef41Sopenharmony_ci    "base": null,
88071cb0ef41Sopenharmony_ci    "failure": true
88081cb0ef41Sopenharmony_ci  },
88091cb0ef41Sopenharmony_ci  {
88101cb0ef41Sopenharmony_ci    "input": "http://foo.0x",
88111cb0ef41Sopenharmony_ci    "base": null,
88121cb0ef41Sopenharmony_ci    "failure": true
88131cb0ef41Sopenharmony_ci  },
88141cb0ef41Sopenharmony_ci  {
88151cb0ef41Sopenharmony_ci    "input": "http://foo.0XFfFfFfFfFfFfFfFfFfAcE123",
88161cb0ef41Sopenharmony_ci    "base": null,
88171cb0ef41Sopenharmony_ci    "failure": true
88181cb0ef41Sopenharmony_ci  },
88191cb0ef41Sopenharmony_ci  {
88201cb0ef41Sopenharmony_ci    "input": "http://�.123/",
88211cb0ef41Sopenharmony_ci    "base": null,
88221cb0ef41Sopenharmony_ci    "failure": true
88231cb0ef41Sopenharmony_ci  },
88241cb0ef41Sopenharmony_ci  "U+0000 and U+FFFF in various places",
88251cb0ef41Sopenharmony_ci  {
88261cb0ef41Sopenharmony_ci    "input": "https://\u0000y",
88271cb0ef41Sopenharmony_ci    "base": null,
88281cb0ef41Sopenharmony_ci    "failure": true
88291cb0ef41Sopenharmony_ci  },
88301cb0ef41Sopenharmony_ci  {
88311cb0ef41Sopenharmony_ci    "input": "https://x/\u0000y",
88321cb0ef41Sopenharmony_ci    "base": null,
88331cb0ef41Sopenharmony_ci    "hash": "",
88341cb0ef41Sopenharmony_ci    "host": "x",
88351cb0ef41Sopenharmony_ci    "hostname": "x",
88361cb0ef41Sopenharmony_ci    "href": "https://x/%00y",
88371cb0ef41Sopenharmony_ci    "password": "",
88381cb0ef41Sopenharmony_ci    "pathname": "/%00y",
88391cb0ef41Sopenharmony_ci    "port": "",
88401cb0ef41Sopenharmony_ci    "protocol": "https:",
88411cb0ef41Sopenharmony_ci    "search": "",
88421cb0ef41Sopenharmony_ci    "username": ""
88431cb0ef41Sopenharmony_ci  },
88441cb0ef41Sopenharmony_ci  {
88451cb0ef41Sopenharmony_ci    "input": "https://x/?\u0000y",
88461cb0ef41Sopenharmony_ci    "base": null,
88471cb0ef41Sopenharmony_ci    "hash": "",
88481cb0ef41Sopenharmony_ci    "host": "x",
88491cb0ef41Sopenharmony_ci    "hostname": "x",
88501cb0ef41Sopenharmony_ci    "href": "https://x/?%00y",
88511cb0ef41Sopenharmony_ci    "password": "",
88521cb0ef41Sopenharmony_ci    "pathname": "/",
88531cb0ef41Sopenharmony_ci    "port": "",
88541cb0ef41Sopenharmony_ci    "protocol": "https:",
88551cb0ef41Sopenharmony_ci    "search": "?%00y",
88561cb0ef41Sopenharmony_ci    "username": ""
88571cb0ef41Sopenharmony_ci  },
88581cb0ef41Sopenharmony_ci  {
88591cb0ef41Sopenharmony_ci    "input": "https://x/?#\u0000y",
88601cb0ef41Sopenharmony_ci    "base": null,
88611cb0ef41Sopenharmony_ci    "hash": "#%00y",
88621cb0ef41Sopenharmony_ci    "host": "x",
88631cb0ef41Sopenharmony_ci    "hostname": "x",
88641cb0ef41Sopenharmony_ci    "href": "https://x/?#%00y",
88651cb0ef41Sopenharmony_ci    "password": "",
88661cb0ef41Sopenharmony_ci    "pathname": "/",
88671cb0ef41Sopenharmony_ci    "port": "",
88681cb0ef41Sopenharmony_ci    "protocol": "https:",
88691cb0ef41Sopenharmony_ci    "search": "",
88701cb0ef41Sopenharmony_ci    "username": ""
88711cb0ef41Sopenharmony_ci  },
88721cb0ef41Sopenharmony_ci  {
88731cb0ef41Sopenharmony_ci    "input": "https://\uFFFFy",
88741cb0ef41Sopenharmony_ci    "base": null,
88751cb0ef41Sopenharmony_ci    "failure": true
88761cb0ef41Sopenharmony_ci  },
88771cb0ef41Sopenharmony_ci  {
88781cb0ef41Sopenharmony_ci    "input": "https://x/\uFFFFy",
88791cb0ef41Sopenharmony_ci    "base": null,
88801cb0ef41Sopenharmony_ci    "hash": "",
88811cb0ef41Sopenharmony_ci    "host": "x",
88821cb0ef41Sopenharmony_ci    "hostname": "x",
88831cb0ef41Sopenharmony_ci    "href": "https://x/%EF%BF%BFy",
88841cb0ef41Sopenharmony_ci    "password": "",
88851cb0ef41Sopenharmony_ci    "pathname": "/%EF%BF%BFy",
88861cb0ef41Sopenharmony_ci    "port": "",
88871cb0ef41Sopenharmony_ci    "protocol": "https:",
88881cb0ef41Sopenharmony_ci    "search": "",
88891cb0ef41Sopenharmony_ci    "username": ""
88901cb0ef41Sopenharmony_ci  },
88911cb0ef41Sopenharmony_ci  {
88921cb0ef41Sopenharmony_ci    "input": "https://x/?\uFFFFy",
88931cb0ef41Sopenharmony_ci    "base": null,
88941cb0ef41Sopenharmony_ci    "hash": "",
88951cb0ef41Sopenharmony_ci    "host": "x",
88961cb0ef41Sopenharmony_ci    "hostname": "x",
88971cb0ef41Sopenharmony_ci    "href": "https://x/?%EF%BF%BFy",
88981cb0ef41Sopenharmony_ci    "password": "",
88991cb0ef41Sopenharmony_ci    "pathname": "/",
89001cb0ef41Sopenharmony_ci    "port": "",
89011cb0ef41Sopenharmony_ci    "protocol": "https:",
89021cb0ef41Sopenharmony_ci    "search": "?%EF%BF%BFy",
89031cb0ef41Sopenharmony_ci    "username": ""
89041cb0ef41Sopenharmony_ci  },
89051cb0ef41Sopenharmony_ci  {
89061cb0ef41Sopenharmony_ci    "input": "https://x/?#\uFFFFy",
89071cb0ef41Sopenharmony_ci    "base": null,
89081cb0ef41Sopenharmony_ci    "hash": "#%EF%BF%BFy",
89091cb0ef41Sopenharmony_ci    "host": "x",
89101cb0ef41Sopenharmony_ci    "hostname": "x",
89111cb0ef41Sopenharmony_ci    "href": "https://x/?#%EF%BF%BFy",
89121cb0ef41Sopenharmony_ci    "password": "",
89131cb0ef41Sopenharmony_ci    "pathname": "/",
89141cb0ef41Sopenharmony_ci    "port": "",
89151cb0ef41Sopenharmony_ci    "protocol": "https:",
89161cb0ef41Sopenharmony_ci    "search": "",
89171cb0ef41Sopenharmony_ci    "username": ""
89181cb0ef41Sopenharmony_ci  },
89191cb0ef41Sopenharmony_ci  {
89201cb0ef41Sopenharmony_ci    "input": "non-special:\u0000y",
89211cb0ef41Sopenharmony_ci    "base": null,
89221cb0ef41Sopenharmony_ci    "hash": "",
89231cb0ef41Sopenharmony_ci    "host": "",
89241cb0ef41Sopenharmony_ci    "hostname": "",
89251cb0ef41Sopenharmony_ci    "href": "non-special:%00y",
89261cb0ef41Sopenharmony_ci    "password": "",
89271cb0ef41Sopenharmony_ci    "pathname": "%00y",
89281cb0ef41Sopenharmony_ci    "port": "",
89291cb0ef41Sopenharmony_ci    "protocol": "non-special:",
89301cb0ef41Sopenharmony_ci    "search": "",
89311cb0ef41Sopenharmony_ci    "username": ""
89321cb0ef41Sopenharmony_ci  },
89331cb0ef41Sopenharmony_ci  {
89341cb0ef41Sopenharmony_ci    "input": "non-special:x/\u0000y",
89351cb0ef41Sopenharmony_ci    "base": null,
89361cb0ef41Sopenharmony_ci    "hash": "",
89371cb0ef41Sopenharmony_ci    "host": "",
89381cb0ef41Sopenharmony_ci    "hostname": "",
89391cb0ef41Sopenharmony_ci    "href": "non-special:x/%00y",
89401cb0ef41Sopenharmony_ci    "password": "",
89411cb0ef41Sopenharmony_ci    "pathname": "x/%00y",
89421cb0ef41Sopenharmony_ci    "port": "",
89431cb0ef41Sopenharmony_ci    "protocol": "non-special:",
89441cb0ef41Sopenharmony_ci    "search": "",
89451cb0ef41Sopenharmony_ci    "username": ""
89461cb0ef41Sopenharmony_ci  },
89471cb0ef41Sopenharmony_ci  {
89481cb0ef41Sopenharmony_ci    "input": "non-special:x/?\u0000y",
89491cb0ef41Sopenharmony_ci    "base": null,
89501cb0ef41Sopenharmony_ci    "hash": "",
89511cb0ef41Sopenharmony_ci    "host": "",
89521cb0ef41Sopenharmony_ci    "hostname": "",
89531cb0ef41Sopenharmony_ci    "href": "non-special:x/?%00y",
89541cb0ef41Sopenharmony_ci    "password": "",
89551cb0ef41Sopenharmony_ci    "pathname": "x/",
89561cb0ef41Sopenharmony_ci    "port": "",
89571cb0ef41Sopenharmony_ci    "protocol": "non-special:",
89581cb0ef41Sopenharmony_ci    "search": "?%00y",
89591cb0ef41Sopenharmony_ci    "username": ""
89601cb0ef41Sopenharmony_ci  },
89611cb0ef41Sopenharmony_ci  {
89621cb0ef41Sopenharmony_ci    "input": "non-special:x/?#\u0000y",
89631cb0ef41Sopenharmony_ci    "base": null,
89641cb0ef41Sopenharmony_ci    "hash": "#%00y",
89651cb0ef41Sopenharmony_ci    "host": "",
89661cb0ef41Sopenharmony_ci    "hostname": "",
89671cb0ef41Sopenharmony_ci    "href": "non-special:x/?#%00y",
89681cb0ef41Sopenharmony_ci    "password": "",
89691cb0ef41Sopenharmony_ci    "pathname": "x/",
89701cb0ef41Sopenharmony_ci    "port": "",
89711cb0ef41Sopenharmony_ci    "protocol": "non-special:",
89721cb0ef41Sopenharmony_ci    "search": "",
89731cb0ef41Sopenharmony_ci    "username": ""
89741cb0ef41Sopenharmony_ci  },
89751cb0ef41Sopenharmony_ci  {
89761cb0ef41Sopenharmony_ci    "input": "non-special:\uFFFFy",
89771cb0ef41Sopenharmony_ci    "base": null,
89781cb0ef41Sopenharmony_ci    "hash": "",
89791cb0ef41Sopenharmony_ci    "host": "",
89801cb0ef41Sopenharmony_ci    "hostname": "",
89811cb0ef41Sopenharmony_ci    "href": "non-special:%EF%BF%BFy",
89821cb0ef41Sopenharmony_ci    "password": "",
89831cb0ef41Sopenharmony_ci    "pathname": "%EF%BF%BFy",
89841cb0ef41Sopenharmony_ci    "port": "",
89851cb0ef41Sopenharmony_ci    "protocol": "non-special:",
89861cb0ef41Sopenharmony_ci    "search": "",
89871cb0ef41Sopenharmony_ci    "username": ""
89881cb0ef41Sopenharmony_ci  },
89891cb0ef41Sopenharmony_ci  {
89901cb0ef41Sopenharmony_ci    "input": "non-special:x/\uFFFFy",
89911cb0ef41Sopenharmony_ci    "base": null,
89921cb0ef41Sopenharmony_ci    "hash": "",
89931cb0ef41Sopenharmony_ci    "host": "",
89941cb0ef41Sopenharmony_ci    "hostname": "",
89951cb0ef41Sopenharmony_ci    "href": "non-special:x/%EF%BF%BFy",
89961cb0ef41Sopenharmony_ci    "password": "",
89971cb0ef41Sopenharmony_ci    "pathname": "x/%EF%BF%BFy",
89981cb0ef41Sopenharmony_ci    "port": "",
89991cb0ef41Sopenharmony_ci    "protocol": "non-special:",
90001cb0ef41Sopenharmony_ci    "search": "",
90011cb0ef41Sopenharmony_ci    "username": ""
90021cb0ef41Sopenharmony_ci  },
90031cb0ef41Sopenharmony_ci  {
90041cb0ef41Sopenharmony_ci    "input": "non-special:x/?\uFFFFy",
90051cb0ef41Sopenharmony_ci    "base": null,
90061cb0ef41Sopenharmony_ci    "hash": "",
90071cb0ef41Sopenharmony_ci    "host": "",
90081cb0ef41Sopenharmony_ci    "hostname": "",
90091cb0ef41Sopenharmony_ci    "href": "non-special:x/?%EF%BF%BFy",
90101cb0ef41Sopenharmony_ci    "password": "",
90111cb0ef41Sopenharmony_ci    "pathname": "x/",
90121cb0ef41Sopenharmony_ci    "port": "",
90131cb0ef41Sopenharmony_ci    "protocol": "non-special:",
90141cb0ef41Sopenharmony_ci    "search": "?%EF%BF%BFy",
90151cb0ef41Sopenharmony_ci    "username": ""
90161cb0ef41Sopenharmony_ci  },
90171cb0ef41Sopenharmony_ci  {
90181cb0ef41Sopenharmony_ci    "input": "non-special:x/?#\uFFFFy",
90191cb0ef41Sopenharmony_ci    "base": null,
90201cb0ef41Sopenharmony_ci    "hash": "#%EF%BF%BFy",
90211cb0ef41Sopenharmony_ci    "host": "",
90221cb0ef41Sopenharmony_ci    "hostname": "",
90231cb0ef41Sopenharmony_ci    "href": "non-special:x/?#%EF%BF%BFy",
90241cb0ef41Sopenharmony_ci    "password": "",
90251cb0ef41Sopenharmony_ci    "pathname": "x/",
90261cb0ef41Sopenharmony_ci    "port": "",
90271cb0ef41Sopenharmony_ci    "protocol": "non-special:",
90281cb0ef41Sopenharmony_ci    "search": "",
90291cb0ef41Sopenharmony_ci    "username": ""
90301cb0ef41Sopenharmony_ci  },
90311cb0ef41Sopenharmony_ci  {
90321cb0ef41Sopenharmony_ci    "input": "",
90331cb0ef41Sopenharmony_ci    "base": null,
90341cb0ef41Sopenharmony_ci    "failure": true,
90351cb0ef41Sopenharmony_ci    "relativeTo": "non-opaque-path-base"
90361cb0ef41Sopenharmony_ci  },
90371cb0ef41Sopenharmony_ci  {
90381cb0ef41Sopenharmony_ci    "input": "https://example.com/\"quoted\"",
90391cb0ef41Sopenharmony_ci    "base": null,
90401cb0ef41Sopenharmony_ci    "hash": "",
90411cb0ef41Sopenharmony_ci    "host": "example.com",
90421cb0ef41Sopenharmony_ci    "hostname": "example.com",
90431cb0ef41Sopenharmony_ci    "href": "https://example.com/%22quoted%22",
90441cb0ef41Sopenharmony_ci    "origin": "https://example.com",
90451cb0ef41Sopenharmony_ci    "password": "",
90461cb0ef41Sopenharmony_ci    "pathname": "/%22quoted%22",
90471cb0ef41Sopenharmony_ci    "port": "",
90481cb0ef41Sopenharmony_ci    "protocol": "https:",
90491cb0ef41Sopenharmony_ci    "search": "",
90501cb0ef41Sopenharmony_ci    "username": ""
90511cb0ef41Sopenharmony_ci  },
90521cb0ef41Sopenharmony_ci  {
90531cb0ef41Sopenharmony_ci    "input": "https://a%C2%ADb/",
90541cb0ef41Sopenharmony_ci    "base": null,
90551cb0ef41Sopenharmony_ci    "hash": "",
90561cb0ef41Sopenharmony_ci    "host": "ab",
90571cb0ef41Sopenharmony_ci    "hostname": "ab",
90581cb0ef41Sopenharmony_ci    "href": "https://ab/",
90591cb0ef41Sopenharmony_ci    "origin": "https://ab",
90601cb0ef41Sopenharmony_ci    "password": "",
90611cb0ef41Sopenharmony_ci    "pathname": "/",
90621cb0ef41Sopenharmony_ci    "port": "",
90631cb0ef41Sopenharmony_ci    "protocol": "https:",
90641cb0ef41Sopenharmony_ci    "search": "",
90651cb0ef41Sopenharmony_ci    "username": ""
90661cb0ef41Sopenharmony_ci  },
90671cb0ef41Sopenharmony_ci  {
90681cb0ef41Sopenharmony_ci    "comment": "Empty host after domain to ASCII",
90691cb0ef41Sopenharmony_ci    "input": "https://\u00AD/",
90701cb0ef41Sopenharmony_ci    "base": null,
90711cb0ef41Sopenharmony_ci    "failure": true
90721cb0ef41Sopenharmony_ci  },
90731cb0ef41Sopenharmony_ci  {
90741cb0ef41Sopenharmony_ci    "input": "https://%C2%AD/",
90751cb0ef41Sopenharmony_ci    "base": null,
90761cb0ef41Sopenharmony_ci    "failure": true
90771cb0ef41Sopenharmony_ci  },
90781cb0ef41Sopenharmony_ci  {
90791cb0ef41Sopenharmony_ci    "input": "https://xn--/",
90801cb0ef41Sopenharmony_ci    "base": null,
90811cb0ef41Sopenharmony_ci    "failure": true
90821cb0ef41Sopenharmony_ci  },
90831cb0ef41Sopenharmony_ci  "Non-special schemes that some implementations might incorrectly treat as special",
90841cb0ef41Sopenharmony_ci  {
90851cb0ef41Sopenharmony_ci    "input": "data://example.com:8080/pathname?search#hash",
90861cb0ef41Sopenharmony_ci    "base": null,
90871cb0ef41Sopenharmony_ci    "href": "data://example.com:8080/pathname?search#hash",
90881cb0ef41Sopenharmony_ci    "origin": "null",
90891cb0ef41Sopenharmony_ci    "protocol": "data:",
90901cb0ef41Sopenharmony_ci    "username": "",
90911cb0ef41Sopenharmony_ci    "password": "",
90921cb0ef41Sopenharmony_ci    "host": "example.com:8080",
90931cb0ef41Sopenharmony_ci    "hostname": "example.com",
90941cb0ef41Sopenharmony_ci    "port": "8080",
90951cb0ef41Sopenharmony_ci    "pathname": "/pathname",
90961cb0ef41Sopenharmony_ci    "search": "?search",
90971cb0ef41Sopenharmony_ci    "hash": "#hash"
90981cb0ef41Sopenharmony_ci  },
90991cb0ef41Sopenharmony_ci  {
91001cb0ef41Sopenharmony_ci    "input": "data:///test",
91011cb0ef41Sopenharmony_ci    "base": null,
91021cb0ef41Sopenharmony_ci    "href": "data:///test",
91031cb0ef41Sopenharmony_ci    "origin": "null",
91041cb0ef41Sopenharmony_ci    "protocol": "data:",
91051cb0ef41Sopenharmony_ci    "username": "",
91061cb0ef41Sopenharmony_ci    "password": "",
91071cb0ef41Sopenharmony_ci    "host": "",
91081cb0ef41Sopenharmony_ci    "hostname": "",
91091cb0ef41Sopenharmony_ci    "port": "",
91101cb0ef41Sopenharmony_ci    "pathname": "/test",
91111cb0ef41Sopenharmony_ci    "search": "",
91121cb0ef41Sopenharmony_ci    "hash": ""
91131cb0ef41Sopenharmony_ci  },
91141cb0ef41Sopenharmony_ci  {
91151cb0ef41Sopenharmony_ci    "input": "data://test/a/../b",
91161cb0ef41Sopenharmony_ci    "base": null,
91171cb0ef41Sopenharmony_ci    "href": "data://test/b",
91181cb0ef41Sopenharmony_ci    "origin": "null",
91191cb0ef41Sopenharmony_ci    "protocol": "data:",
91201cb0ef41Sopenharmony_ci    "username": "",
91211cb0ef41Sopenharmony_ci    "password": "",
91221cb0ef41Sopenharmony_ci    "host": "test",
91231cb0ef41Sopenharmony_ci    "hostname": "test",
91241cb0ef41Sopenharmony_ci    "port": "",
91251cb0ef41Sopenharmony_ci    "pathname": "/b",
91261cb0ef41Sopenharmony_ci    "search": "",
91271cb0ef41Sopenharmony_ci    "hash": ""
91281cb0ef41Sopenharmony_ci  },
91291cb0ef41Sopenharmony_ci  {
91301cb0ef41Sopenharmony_ci    "input": "data://:443",
91311cb0ef41Sopenharmony_ci    "base": null,
91321cb0ef41Sopenharmony_ci    "failure": true
91331cb0ef41Sopenharmony_ci  },
91341cb0ef41Sopenharmony_ci  {
91351cb0ef41Sopenharmony_ci    "input": "data://test:test",
91361cb0ef41Sopenharmony_ci    "base": null,
91371cb0ef41Sopenharmony_ci    "failure": true
91381cb0ef41Sopenharmony_ci  },
91391cb0ef41Sopenharmony_ci  {
91401cb0ef41Sopenharmony_ci    "input": "data://[:1]",
91411cb0ef41Sopenharmony_ci    "base": null,
91421cb0ef41Sopenharmony_ci    "failure": true
91431cb0ef41Sopenharmony_ci  },
91441cb0ef41Sopenharmony_ci  {
91451cb0ef41Sopenharmony_ci    "input": "javascript://example.com:8080/pathname?search#hash",
91461cb0ef41Sopenharmony_ci    "base": null,
91471cb0ef41Sopenharmony_ci    "href": "javascript://example.com:8080/pathname?search#hash",
91481cb0ef41Sopenharmony_ci    "origin": "null",
91491cb0ef41Sopenharmony_ci    "protocol": "javascript:",
91501cb0ef41Sopenharmony_ci    "username": "",
91511cb0ef41Sopenharmony_ci    "password": "",
91521cb0ef41Sopenharmony_ci    "host": "example.com:8080",
91531cb0ef41Sopenharmony_ci    "hostname": "example.com",
91541cb0ef41Sopenharmony_ci    "port": "8080",
91551cb0ef41Sopenharmony_ci    "pathname": "/pathname",
91561cb0ef41Sopenharmony_ci    "search": "?search",
91571cb0ef41Sopenharmony_ci    "hash": "#hash"
91581cb0ef41Sopenharmony_ci  },
91591cb0ef41Sopenharmony_ci  {
91601cb0ef41Sopenharmony_ci    "input": "javascript:///test",
91611cb0ef41Sopenharmony_ci    "base": null,
91621cb0ef41Sopenharmony_ci    "href": "javascript:///test",
91631cb0ef41Sopenharmony_ci    "origin": "null",
91641cb0ef41Sopenharmony_ci    "protocol": "javascript:",
91651cb0ef41Sopenharmony_ci    "username": "",
91661cb0ef41Sopenharmony_ci    "password": "",
91671cb0ef41Sopenharmony_ci    "host": "",
91681cb0ef41Sopenharmony_ci    "hostname": "",
91691cb0ef41Sopenharmony_ci    "port": "",
91701cb0ef41Sopenharmony_ci    "pathname": "/test",
91711cb0ef41Sopenharmony_ci    "search": "",
91721cb0ef41Sopenharmony_ci    "hash": ""
91731cb0ef41Sopenharmony_ci  },
91741cb0ef41Sopenharmony_ci  {
91751cb0ef41Sopenharmony_ci    "input": "javascript://test/a/../b",
91761cb0ef41Sopenharmony_ci    "base": null,
91771cb0ef41Sopenharmony_ci    "href": "javascript://test/b",
91781cb0ef41Sopenharmony_ci    "origin": "null",
91791cb0ef41Sopenharmony_ci    "protocol": "javascript:",
91801cb0ef41Sopenharmony_ci    "username": "",
91811cb0ef41Sopenharmony_ci    "password": "",
91821cb0ef41Sopenharmony_ci    "host": "test",
91831cb0ef41Sopenharmony_ci    "hostname": "test",
91841cb0ef41Sopenharmony_ci    "port": "",
91851cb0ef41Sopenharmony_ci    "pathname": "/b",
91861cb0ef41Sopenharmony_ci    "search": "",
91871cb0ef41Sopenharmony_ci    "hash": ""
91881cb0ef41Sopenharmony_ci  },
91891cb0ef41Sopenharmony_ci  {
91901cb0ef41Sopenharmony_ci    "input": "javascript://:443",
91911cb0ef41Sopenharmony_ci    "base": null,
91921cb0ef41Sopenharmony_ci    "failure": true
91931cb0ef41Sopenharmony_ci  },
91941cb0ef41Sopenharmony_ci  {
91951cb0ef41Sopenharmony_ci    "input": "javascript://test:test",
91961cb0ef41Sopenharmony_ci    "base": null,
91971cb0ef41Sopenharmony_ci    "failure": true
91981cb0ef41Sopenharmony_ci  },
91991cb0ef41Sopenharmony_ci  {
92001cb0ef41Sopenharmony_ci    "input": "javascript://[:1]",
92011cb0ef41Sopenharmony_ci    "base": null,
92021cb0ef41Sopenharmony_ci    "failure": true
92031cb0ef41Sopenharmony_ci  },
92041cb0ef41Sopenharmony_ci  {
92051cb0ef41Sopenharmony_ci    "input": "mailto://example.com:8080/pathname?search#hash",
92061cb0ef41Sopenharmony_ci    "base": null,
92071cb0ef41Sopenharmony_ci    "href": "mailto://example.com:8080/pathname?search#hash",
92081cb0ef41Sopenharmony_ci    "origin": "null",
92091cb0ef41Sopenharmony_ci    "protocol": "mailto:",
92101cb0ef41Sopenharmony_ci    "username": "",
92111cb0ef41Sopenharmony_ci    "password": "",
92121cb0ef41Sopenharmony_ci    "host": "example.com:8080",
92131cb0ef41Sopenharmony_ci    "hostname": "example.com",
92141cb0ef41Sopenharmony_ci    "port": "8080",
92151cb0ef41Sopenharmony_ci    "pathname": "/pathname",
92161cb0ef41Sopenharmony_ci    "search": "?search",
92171cb0ef41Sopenharmony_ci    "hash": "#hash"
92181cb0ef41Sopenharmony_ci  },
92191cb0ef41Sopenharmony_ci  {
92201cb0ef41Sopenharmony_ci    "input": "mailto:///test",
92211cb0ef41Sopenharmony_ci    "base": null,
92221cb0ef41Sopenharmony_ci    "href": "mailto:///test",
92231cb0ef41Sopenharmony_ci    "origin": "null",
92241cb0ef41Sopenharmony_ci    "protocol": "mailto:",
92251cb0ef41Sopenharmony_ci    "username": "",
92261cb0ef41Sopenharmony_ci    "password": "",
92271cb0ef41Sopenharmony_ci    "host": "",
92281cb0ef41Sopenharmony_ci    "hostname": "",
92291cb0ef41Sopenharmony_ci    "port": "",
92301cb0ef41Sopenharmony_ci    "pathname": "/test",
92311cb0ef41Sopenharmony_ci    "search": "",
92321cb0ef41Sopenharmony_ci    "hash": ""
92331cb0ef41Sopenharmony_ci  },
92341cb0ef41Sopenharmony_ci  {
92351cb0ef41Sopenharmony_ci    "input": "mailto://test/a/../b",
92361cb0ef41Sopenharmony_ci    "base": null,
92371cb0ef41Sopenharmony_ci    "href": "mailto://test/b",
92381cb0ef41Sopenharmony_ci    "origin": "null",
92391cb0ef41Sopenharmony_ci    "protocol": "mailto:",
92401cb0ef41Sopenharmony_ci    "username": "",
92411cb0ef41Sopenharmony_ci    "password": "",
92421cb0ef41Sopenharmony_ci    "host": "test",
92431cb0ef41Sopenharmony_ci    "hostname": "test",
92441cb0ef41Sopenharmony_ci    "port": "",
92451cb0ef41Sopenharmony_ci    "pathname": "/b",
92461cb0ef41Sopenharmony_ci    "search": "",
92471cb0ef41Sopenharmony_ci    "hash": ""
92481cb0ef41Sopenharmony_ci  },
92491cb0ef41Sopenharmony_ci  {
92501cb0ef41Sopenharmony_ci    "input": "mailto://:443",
92511cb0ef41Sopenharmony_ci    "base": null,
92521cb0ef41Sopenharmony_ci    "failure": true
92531cb0ef41Sopenharmony_ci  },
92541cb0ef41Sopenharmony_ci  {
92551cb0ef41Sopenharmony_ci    "input": "mailto://test:test",
92561cb0ef41Sopenharmony_ci    "base": null,
92571cb0ef41Sopenharmony_ci    "failure": true
92581cb0ef41Sopenharmony_ci  },
92591cb0ef41Sopenharmony_ci  {
92601cb0ef41Sopenharmony_ci    "input": "mailto://[:1]",
92611cb0ef41Sopenharmony_ci    "base": null,
92621cb0ef41Sopenharmony_ci    "failure": true
92631cb0ef41Sopenharmony_ci  },
92641cb0ef41Sopenharmony_ci  {
92651cb0ef41Sopenharmony_ci    "input": "intent://example.com:8080/pathname?search#hash",
92661cb0ef41Sopenharmony_ci    "base": null,
92671cb0ef41Sopenharmony_ci    "href": "intent://example.com:8080/pathname?search#hash",
92681cb0ef41Sopenharmony_ci    "origin": "null",
92691cb0ef41Sopenharmony_ci    "protocol": "intent:",
92701cb0ef41Sopenharmony_ci    "username": "",
92711cb0ef41Sopenharmony_ci    "password": "",
92721cb0ef41Sopenharmony_ci    "host": "example.com:8080",
92731cb0ef41Sopenharmony_ci    "hostname": "example.com",
92741cb0ef41Sopenharmony_ci    "port": "8080",
92751cb0ef41Sopenharmony_ci    "pathname": "/pathname",
92761cb0ef41Sopenharmony_ci    "search": "?search",
92771cb0ef41Sopenharmony_ci    "hash": "#hash"
92781cb0ef41Sopenharmony_ci  },
92791cb0ef41Sopenharmony_ci  {
92801cb0ef41Sopenharmony_ci    "input": "intent:///test",
92811cb0ef41Sopenharmony_ci    "base": null,
92821cb0ef41Sopenharmony_ci    "href": "intent:///test",
92831cb0ef41Sopenharmony_ci    "origin": "null",
92841cb0ef41Sopenharmony_ci    "protocol": "intent:",
92851cb0ef41Sopenharmony_ci    "username": "",
92861cb0ef41Sopenharmony_ci    "password": "",
92871cb0ef41Sopenharmony_ci    "host": "",
92881cb0ef41Sopenharmony_ci    "hostname": "",
92891cb0ef41Sopenharmony_ci    "port": "",
92901cb0ef41Sopenharmony_ci    "pathname": "/test",
92911cb0ef41Sopenharmony_ci    "search": "",
92921cb0ef41Sopenharmony_ci    "hash": ""
92931cb0ef41Sopenharmony_ci  },
92941cb0ef41Sopenharmony_ci  {
92951cb0ef41Sopenharmony_ci    "input": "intent://test/a/../b",
92961cb0ef41Sopenharmony_ci    "base": null,
92971cb0ef41Sopenharmony_ci    "href": "intent://test/b",
92981cb0ef41Sopenharmony_ci    "origin": "null",
92991cb0ef41Sopenharmony_ci    "protocol": "intent:",
93001cb0ef41Sopenharmony_ci    "username": "",
93011cb0ef41Sopenharmony_ci    "password": "",
93021cb0ef41Sopenharmony_ci    "host": "test",
93031cb0ef41Sopenharmony_ci    "hostname": "test",
93041cb0ef41Sopenharmony_ci    "port": "",
93051cb0ef41Sopenharmony_ci    "pathname": "/b",
93061cb0ef41Sopenharmony_ci    "search": "",
93071cb0ef41Sopenharmony_ci    "hash": ""
93081cb0ef41Sopenharmony_ci  },
93091cb0ef41Sopenharmony_ci  {
93101cb0ef41Sopenharmony_ci    "input": "intent://:443",
93111cb0ef41Sopenharmony_ci    "base": null,
93121cb0ef41Sopenharmony_ci    "failure": true
93131cb0ef41Sopenharmony_ci  },
93141cb0ef41Sopenharmony_ci  {
93151cb0ef41Sopenharmony_ci    "input": "intent://test:test",
93161cb0ef41Sopenharmony_ci    "base": null,
93171cb0ef41Sopenharmony_ci    "failure": true
93181cb0ef41Sopenharmony_ci  },
93191cb0ef41Sopenharmony_ci  {
93201cb0ef41Sopenharmony_ci    "input": "intent://[:1]",
93211cb0ef41Sopenharmony_ci    "base": null,
93221cb0ef41Sopenharmony_ci    "failure": true
93231cb0ef41Sopenharmony_ci  },
93241cb0ef41Sopenharmony_ci  {
93251cb0ef41Sopenharmony_ci    "input": "urn://example.com:8080/pathname?search#hash",
93261cb0ef41Sopenharmony_ci    "base": null,
93271cb0ef41Sopenharmony_ci    "href": "urn://example.com:8080/pathname?search#hash",
93281cb0ef41Sopenharmony_ci    "origin": "null",
93291cb0ef41Sopenharmony_ci    "protocol": "urn:",
93301cb0ef41Sopenharmony_ci    "username": "",
93311cb0ef41Sopenharmony_ci    "password": "",
93321cb0ef41Sopenharmony_ci    "host": "example.com:8080",
93331cb0ef41Sopenharmony_ci    "hostname": "example.com",
93341cb0ef41Sopenharmony_ci    "port": "8080",
93351cb0ef41Sopenharmony_ci    "pathname": "/pathname",
93361cb0ef41Sopenharmony_ci    "search": "?search",
93371cb0ef41Sopenharmony_ci    "hash": "#hash"
93381cb0ef41Sopenharmony_ci  },
93391cb0ef41Sopenharmony_ci  {
93401cb0ef41Sopenharmony_ci    "input": "urn:///test",
93411cb0ef41Sopenharmony_ci    "base": null,
93421cb0ef41Sopenharmony_ci    "href": "urn:///test",
93431cb0ef41Sopenharmony_ci    "origin": "null",
93441cb0ef41Sopenharmony_ci    "protocol": "urn:",
93451cb0ef41Sopenharmony_ci    "username": "",
93461cb0ef41Sopenharmony_ci    "password": "",
93471cb0ef41Sopenharmony_ci    "host": "",
93481cb0ef41Sopenharmony_ci    "hostname": "",
93491cb0ef41Sopenharmony_ci    "port": "",
93501cb0ef41Sopenharmony_ci    "pathname": "/test",
93511cb0ef41Sopenharmony_ci    "search": "",
93521cb0ef41Sopenharmony_ci    "hash": ""
93531cb0ef41Sopenharmony_ci  },
93541cb0ef41Sopenharmony_ci  {
93551cb0ef41Sopenharmony_ci    "input": "urn://test/a/../b",
93561cb0ef41Sopenharmony_ci    "base": null,
93571cb0ef41Sopenharmony_ci    "href": "urn://test/b",
93581cb0ef41Sopenharmony_ci    "origin": "null",
93591cb0ef41Sopenharmony_ci    "protocol": "urn:",
93601cb0ef41Sopenharmony_ci    "username": "",
93611cb0ef41Sopenharmony_ci    "password": "",
93621cb0ef41Sopenharmony_ci    "host": "test",
93631cb0ef41Sopenharmony_ci    "hostname": "test",
93641cb0ef41Sopenharmony_ci    "port": "",
93651cb0ef41Sopenharmony_ci    "pathname": "/b",
93661cb0ef41Sopenharmony_ci    "search": "",
93671cb0ef41Sopenharmony_ci    "hash": ""
93681cb0ef41Sopenharmony_ci  },
93691cb0ef41Sopenharmony_ci  {
93701cb0ef41Sopenharmony_ci    "input": "urn://:443",
93711cb0ef41Sopenharmony_ci    "base": null,
93721cb0ef41Sopenharmony_ci    "failure": true
93731cb0ef41Sopenharmony_ci  },
93741cb0ef41Sopenharmony_ci  {
93751cb0ef41Sopenharmony_ci    "input": "urn://test:test",
93761cb0ef41Sopenharmony_ci    "base": null,
93771cb0ef41Sopenharmony_ci    "failure": true
93781cb0ef41Sopenharmony_ci  },
93791cb0ef41Sopenharmony_ci  {
93801cb0ef41Sopenharmony_ci    "input": "urn://[:1]",
93811cb0ef41Sopenharmony_ci    "base": null,
93821cb0ef41Sopenharmony_ci    "failure": true
93831cb0ef41Sopenharmony_ci  },
93841cb0ef41Sopenharmony_ci  {
93851cb0ef41Sopenharmony_ci    "input": "turn://example.com:8080/pathname?search#hash",
93861cb0ef41Sopenharmony_ci    "base": null,
93871cb0ef41Sopenharmony_ci    "href": "turn://example.com:8080/pathname?search#hash",
93881cb0ef41Sopenharmony_ci    "origin": "null",
93891cb0ef41Sopenharmony_ci    "protocol": "turn:",
93901cb0ef41Sopenharmony_ci    "username": "",
93911cb0ef41Sopenharmony_ci    "password": "",
93921cb0ef41Sopenharmony_ci    "host": "example.com:8080",
93931cb0ef41Sopenharmony_ci    "hostname": "example.com",
93941cb0ef41Sopenharmony_ci    "port": "8080",
93951cb0ef41Sopenharmony_ci    "pathname": "/pathname",
93961cb0ef41Sopenharmony_ci    "search": "?search",
93971cb0ef41Sopenharmony_ci    "hash": "#hash"
93981cb0ef41Sopenharmony_ci  },
93991cb0ef41Sopenharmony_ci  {
94001cb0ef41Sopenharmony_ci    "input": "turn:///test",
94011cb0ef41Sopenharmony_ci    "base": null,
94021cb0ef41Sopenharmony_ci    "href": "turn:///test",
94031cb0ef41Sopenharmony_ci    "origin": "null",
94041cb0ef41Sopenharmony_ci    "protocol": "turn:",
94051cb0ef41Sopenharmony_ci    "username": "",
94061cb0ef41Sopenharmony_ci    "password": "",
94071cb0ef41Sopenharmony_ci    "host": "",
94081cb0ef41Sopenharmony_ci    "hostname": "",
94091cb0ef41Sopenharmony_ci    "port": "",
94101cb0ef41Sopenharmony_ci    "pathname": "/test",
94111cb0ef41Sopenharmony_ci    "search": "",
94121cb0ef41Sopenharmony_ci    "hash": ""
94131cb0ef41Sopenharmony_ci  },
94141cb0ef41Sopenharmony_ci  {
94151cb0ef41Sopenharmony_ci    "input": "turn://test/a/../b",
94161cb0ef41Sopenharmony_ci    "base": null,
94171cb0ef41Sopenharmony_ci    "href": "turn://test/b",
94181cb0ef41Sopenharmony_ci    "origin": "null",
94191cb0ef41Sopenharmony_ci    "protocol": "turn:",
94201cb0ef41Sopenharmony_ci    "username": "",
94211cb0ef41Sopenharmony_ci    "password": "",
94221cb0ef41Sopenharmony_ci    "host": "test",
94231cb0ef41Sopenharmony_ci    "hostname": "test",
94241cb0ef41Sopenharmony_ci    "port": "",
94251cb0ef41Sopenharmony_ci    "pathname": "/b",
94261cb0ef41Sopenharmony_ci    "search": "",
94271cb0ef41Sopenharmony_ci    "hash": ""
94281cb0ef41Sopenharmony_ci  },
94291cb0ef41Sopenharmony_ci  {
94301cb0ef41Sopenharmony_ci    "input": "turn://:443",
94311cb0ef41Sopenharmony_ci    "base": null,
94321cb0ef41Sopenharmony_ci    "failure": true
94331cb0ef41Sopenharmony_ci  },
94341cb0ef41Sopenharmony_ci  {
94351cb0ef41Sopenharmony_ci    "input": "turn://test:test",
94361cb0ef41Sopenharmony_ci    "base": null,
94371cb0ef41Sopenharmony_ci    "failure": true
94381cb0ef41Sopenharmony_ci  },
94391cb0ef41Sopenharmony_ci  {
94401cb0ef41Sopenharmony_ci    "input": "turn://[:1]",
94411cb0ef41Sopenharmony_ci    "base": null,
94421cb0ef41Sopenharmony_ci    "failure": true
94431cb0ef41Sopenharmony_ci  },
94441cb0ef41Sopenharmony_ci  {
94451cb0ef41Sopenharmony_ci    "input": "stun://example.com:8080/pathname?search#hash",
94461cb0ef41Sopenharmony_ci    "base": null,
94471cb0ef41Sopenharmony_ci    "href": "stun://example.com:8080/pathname?search#hash",
94481cb0ef41Sopenharmony_ci    "origin": "null",
94491cb0ef41Sopenharmony_ci    "protocol": "stun:",
94501cb0ef41Sopenharmony_ci    "username": "",
94511cb0ef41Sopenharmony_ci    "password": "",
94521cb0ef41Sopenharmony_ci    "host": "example.com:8080",
94531cb0ef41Sopenharmony_ci    "hostname": "example.com",
94541cb0ef41Sopenharmony_ci    "port": "8080",
94551cb0ef41Sopenharmony_ci    "pathname": "/pathname",
94561cb0ef41Sopenharmony_ci    "search": "?search",
94571cb0ef41Sopenharmony_ci    "hash": "#hash"
94581cb0ef41Sopenharmony_ci  },
94591cb0ef41Sopenharmony_ci  {
94601cb0ef41Sopenharmony_ci    "input": "stun:///test",
94611cb0ef41Sopenharmony_ci    "base": null,
94621cb0ef41Sopenharmony_ci    "href": "stun:///test",
94631cb0ef41Sopenharmony_ci    "origin": "null",
94641cb0ef41Sopenharmony_ci    "protocol": "stun:",
94651cb0ef41Sopenharmony_ci    "username": "",
94661cb0ef41Sopenharmony_ci    "password": "",
94671cb0ef41Sopenharmony_ci    "host": "",
94681cb0ef41Sopenharmony_ci    "hostname": "",
94691cb0ef41Sopenharmony_ci    "port": "",
94701cb0ef41Sopenharmony_ci    "pathname": "/test",
94711cb0ef41Sopenharmony_ci    "search": "",
94721cb0ef41Sopenharmony_ci    "hash": ""
94731cb0ef41Sopenharmony_ci  },
94741cb0ef41Sopenharmony_ci  {
94751cb0ef41Sopenharmony_ci    "input": "stun://test/a/../b",
94761cb0ef41Sopenharmony_ci    "base": null,
94771cb0ef41Sopenharmony_ci    "href": "stun://test/b",
94781cb0ef41Sopenharmony_ci    "origin": "null",
94791cb0ef41Sopenharmony_ci    "protocol": "stun:",
94801cb0ef41Sopenharmony_ci    "username": "",
94811cb0ef41Sopenharmony_ci    "password": "",
94821cb0ef41Sopenharmony_ci    "host": "test",
94831cb0ef41Sopenharmony_ci    "hostname": "test",
94841cb0ef41Sopenharmony_ci    "port": "",
94851cb0ef41Sopenharmony_ci    "pathname": "/b",
94861cb0ef41Sopenharmony_ci    "search": "",
94871cb0ef41Sopenharmony_ci    "hash": ""
94881cb0ef41Sopenharmony_ci  },
94891cb0ef41Sopenharmony_ci  {
94901cb0ef41Sopenharmony_ci    "input": "stun://:443",
94911cb0ef41Sopenharmony_ci    "base": null,
94921cb0ef41Sopenharmony_ci    "failure": true
94931cb0ef41Sopenharmony_ci  },
94941cb0ef41Sopenharmony_ci  {
94951cb0ef41Sopenharmony_ci    "input": "stun://test:test",
94961cb0ef41Sopenharmony_ci    "base": null,
94971cb0ef41Sopenharmony_ci    "failure": true
94981cb0ef41Sopenharmony_ci  },
94991cb0ef41Sopenharmony_ci  {
95001cb0ef41Sopenharmony_ci    "input": "stun://[:1]",
95011cb0ef41Sopenharmony_ci    "base": null,
95021cb0ef41Sopenharmony_ci    "failure": true
95031cb0ef41Sopenharmony_ci  },
95041cb0ef41Sopenharmony_ci  {
95051cb0ef41Sopenharmony_ci    "input": "w://x:0",
95061cb0ef41Sopenharmony_ci    "base": null,
95071cb0ef41Sopenharmony_ci    "href": "w://x:0",
95081cb0ef41Sopenharmony_ci    "origin": "null",
95091cb0ef41Sopenharmony_ci    "protocol": "w:",
95101cb0ef41Sopenharmony_ci    "username": "",
95111cb0ef41Sopenharmony_ci    "password": "",
95121cb0ef41Sopenharmony_ci    "host": "x:0",
95131cb0ef41Sopenharmony_ci    "hostname": "x",
95141cb0ef41Sopenharmony_ci    "port": "0",
95151cb0ef41Sopenharmony_ci    "pathname": "",
95161cb0ef41Sopenharmony_ci    "search": "",
95171cb0ef41Sopenharmony_ci    "hash": ""
95181cb0ef41Sopenharmony_ci  },
95191cb0ef41Sopenharmony_ci  {
95201cb0ef41Sopenharmony_ci    "input": "west://x:0",
95211cb0ef41Sopenharmony_ci    "base": null,
95221cb0ef41Sopenharmony_ci    "href": "west://x:0",
95231cb0ef41Sopenharmony_ci    "origin": "null",
95241cb0ef41Sopenharmony_ci    "protocol": "west:",
95251cb0ef41Sopenharmony_ci    "username": "",
95261cb0ef41Sopenharmony_ci    "password": "",
95271cb0ef41Sopenharmony_ci    "host": "x:0",
95281cb0ef41Sopenharmony_ci    "hostname": "x",
95291cb0ef41Sopenharmony_ci    "port": "0",
95301cb0ef41Sopenharmony_ci    "pathname": "",
95311cb0ef41Sopenharmony_ci    "search": "",
95321cb0ef41Sopenharmony_ci    "hash": ""
95331cb0ef41Sopenharmony_ci  }
95341cb0ef41Sopenharmony_ci]
9535