<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>11284</bug_id>
          
          <creation_ts>2006-10-13 13:34:44 -0700</creation_ts>
          <short_desc>navigator.onLine not implemented</short_desc>
          <delta_ts>2009-12-11 00:19:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Waylonis">waylonis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bedney</cc>
    
    <cc>erik.arvidsson</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>53318</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Waylonis">waylonis</who>
    <bug_when>2006-10-13 13:34:44 -0700</bug_when>
    <thetext>The onLine property of the navigator object returns undefined.  In Firefox, it returns true or false, depending on the reachability of the network.  I suggest using the SCNetworkCheckReachabilityXXX routines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53174</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-15 02:32:09 -0700</bug_when>
    <thetext>SCNetworkCheckReachabilityXXX routines take a target name/address - which one should we test against? For example, should navigator.onLine be true when the only active interface is loopback (e.g. testing with a locally installed Apache)?

Personally, I&apos;ve always found the Netscape/Firefox &quot;Offline mode&quot; confusing, but maybe I&apos;m missing some important use case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53186</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-10-15 03:24:14 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; SCNetworkCheckReachabilityXXX routines take a target name/address - which one
&gt; should we test against?

I would assume that a script is most likely to be interested in whether the domain it&apos;s coming from is reachable, so I&apos;d use that domain (when applicable).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52397</commentid>
    <comment_count>3</comment_count>
      <attachid>11121</attachid>
    <who name="Dan Waylonis">waylonis</who>
    <bug_when>2006-10-16 16:57:12 -0700</bug_when>
    <thetext>Created attachment 11121
Add support for navigator.{onLine,cpuClass}

This patch adds support for navigator.{onLine,cpuClass} properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52376</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-10-17 09:12:11 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I would assume that a script is most likely to be interested in whether the
&gt; domain it&apos;s coming from is reachable, so I&apos;d use that domain (when applicable).

As far as I understand what Firefox does, it is something different - just a flag indicating that the browser is in &quot;offline mode&quot; (and it&apos;s put in this mode manually).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52353</commentid>
    <comment_count>5</comment_count>
    <who name="Erik Arvidsson">erik.arvidsson</who>
    <bug_when>2006-10-17 11:16:03 -0700</bug_when>
    <thetext>Both IE and Firefox has a menu item to manually set the browser offline. The navigator.onLine reflect that state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75847</commentid>
    <comment_count>6</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2008-03-30 12:52:45 -0700</bug_when>
    <thetext>I can confirm that this property is not implemented in Webkit (at least not on &quot;AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13&quot;).

Can someone mark this as New?

Since it has been awhile since this bug has been poked, I&apos;ll add a bit of detail here. Feel free to comment if you find these statements inaccurate. More detail can be found here:

http://developer.mozilla.org/en/docs/Online/Offline_Events

To summarize, IE and Firefox implemented this property awhile back (IE has had it since 4.0!). It was originally meant to only indicate whether the user has chosen via a menu item or some other GUI element to &apos;go offline&apos;.

In FF 2.0, this property is also set to true or false depending on whether the actual network connection is up or down. This capability is being brought to IE8, as detailed towards the bottom of this article:

http://msdn2.microsoft.com/en-us/library/cc304129(VS.85).aspx

Also, FF 3.0 and IE8 will be implementing the &apos;online&apos; and &apos;offline&apos; events (in IE8, you&apos;ll use &apos;ononline=&apos; and &apos;onoffline=&apos; and in FF you can use those or addEventListener()). These events are detailed in the two articles given above. Should we open a new bug asking that those events be implemented for Webkit too??

Either way, at a minimum &apos;navigator.onLine&apos; should be fixed. Its been around for a while and is becoming more important with the advent of more Web stuff &apos;going offline&apos;.

Comments or suggestions??

Cheers,

- Bill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75851</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-03-30 13:21:44 -0700</bug_when>
    <thetext>In order to make any progress on this, we should find out what Firefox and IE 8 actually do. 

Mozilla documentation says: &quot;Additionally, this property should update whenever a browser is no longer capable of connecting to the network.&quot; MS documentation says the same. Technically, this does not make much sense, as a browsers can always connect to some networks - at least, the loopback (127.0.0.1) one. This is not just a semantic game - consider a browser that is inside an intranet without any access to the wider Internet. A check such as one made in the attached patch (whether www.webkit.org is reachable) would not make any sense for it. Often, there are several active networks at once (e.g. loopback + intranet + a GPRS link to the outer word + a dummy network created by VMWare or Parallels). What&apos;s a browser to do?

As for onoffline/ononline events - are they supposed to fire when the user gets on or off VPN, for example? Some network destinations become reachable or not depending on VPN status, obviously, so this is something a Web application needs to be informed of, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75854</commentid>
    <comment_count>8</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2008-03-30 13:41:01 -0700</bug_when>
    <thetext>Alexey -

Thanks for the quick reply. I will volunteer to test FF 3.0 and IE 8b1 to let you know what they actually do, but here is my opinion:

Given my mindset as a &apos;strict client side&apos; developer, I would tend to have a &apos;strict&apos; interpretation of this property.

That is, if the network is inaccessible from script (i.e. posting a form or using XHR with &apos;http://&apos; URLs or trying to set the &apos;.src&apos; attribute of an &lt;img&gt; tag dynamically, etc. etc.) and those operations are failing, I would consider the browser to be &apos;offline&apos;.

Therefore, if the browser can &apos;talk to a web server&apos;, whether it is running on my localhost box, my local Intranet, a VPN, some weird thing like VMWare/Parallels shared networking, etc. etc. then I would consider the browser to be &apos;online&apos;. Otherwise, it is &apos;offline&apos;.

Therefore, like you, I find this patch to be woefully inadequate. To me, this is something that a chunk of C code that&apos;s talking to Webkit&apos;s networking layer needs to test (as in, &apos;gee I lost my network link&apos;).

I will have those test results for you later today.

Cheers,

- Bill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75900</commentid>
    <comment_count>9</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2008-03-30 21:51:59 -0700</bug_when>
    <thetext>Alexey -

So, as promised, I did some testing. Unfortunately, as per usual, there is no consistency.

I have a page that alert()s the value of navigator.onLine (note the spelling - its *exactly* that capitalization in both FF and IE). My environment is XP SP2.

Note here when I say &apos;the browser is in &quot;online&quot; or &quot;offline&quot; mode&apos; what I mean by that is that the user has selected the Work Offline menu item (which is present in both FF and IE - but curiously missing in Safari... hmmm...)

Here are the results:

FF 2.0.0.12:

1. When the browser is in online mode and the network is active, the property is true. In my mind this is correct.

2. When the browser is in offline mode and the network is active, the property is false. In my mind this is correct.

3. When the browser is in online mode, but the network adaptor has been disabled by using the Windows Control Panel &quot;Network Adaptors&quot; panel, the property is still true. In my mind, this is incorrect and it tells me that the part of the referenced article on Firefox where they said that &quot;Network status autodetection was implemented in Firefox 2&quot; is not telling the truth (or maybe there&apos;s a bug ;-) ).

FF 3.0

1. When the browser is in online mode and the network is active, the property is true. In my mind this is correct.

2. When the browser is in offline mode and the network is active, the property is false. In my mind this is correct.

3. When the browser is in online mode, but the network adaptor has been disabled by using the Windows Control Panel &quot;Network Adaptors&quot; panel, the property is false (yay!). In my mind this is correct and tell me indeed that &quot;Network status autodetection was implemented in Firefox *3*&quot;

IE8beta1:

1. When the browser is in online mode and the network is active, the property is true. In my mind this is correct.

2. When the browser is in offline mode and the network is active, the property is false. In my mind this is correct.

3. When the browser is in online mode, but the network adaptor has been disabled by using the Windows Control Panel &quot;Network Adaptors&quot; panel, the property is still true. In my mind, this is incorrect and it tells me that there&apos;s a bug in IE8. I have, in fact, just reported this as a bug to the IE team, so we&apos;ll see if they agree.

IMHO, Safari should follow the FF 3.0 behavior above.

Let me know if there is further information or testing I can do for you.

Cheers,

- Bill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75902</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-03-30 23:26:51 -0700</bug_when>
    <thetext>&gt; 3. When the browser is in online mode, but the network adaptor &lt;...&gt;

My main concern is that there is no &quot;the&quot; network adaptor - there are many network adaptors. Which one should we look at? This is not a rare situation that can be ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75924</commentid>
    <comment_count>11</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2008-03-31 03:27:11 -0700</bug_when>
    <thetext>Alexey -

My initial response would be &apos;all of them&apos;.

More information on the IE8 situation - it looks as if the dynamic updating of the navigator.onLine property based on network connectivity situation and not just user preference and the 2 new events that get fired are only supported on Vista, which is why I wasn&apos;t seeing them. I&apos;ve let the IE guys know what I think of that, but whether that does any good I don&apos;t know.

Cheers,

- Bill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80328</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-14 00:34:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/5931742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80459</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-05-14 22:10:36 -0700</bug_when>
    <thetext>Some kind of support for this landed in &lt;http://trac.webkit.org/projects/webkit/changeset/33457&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96682</commentid>
    <comment_count>14</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2008-10-25 14:53:34 -0700</bug_when>
    <thetext>Folks -

It appears like this is broken on Webkit / Mac as of webkit build 37790. As the network interface is brought down and up, the navigator.onLine property doesn&apos;t change nor do the &apos;online&apos; or &apos;offline&apos; events fire. At one point, I&apos;m almost certain that this worked, but it doesn&apos;t anymore.

Also, it doesn&apos;t appear like this functionality ever worked on Webkit / PC. I&apos;m running build 37819 on that platform (on Windows XP) and none of this functionality works there either.

As per my earlier comment above, this functionality only worked for Vista in IE8b1, but at my behest the IE8 team fixed it so that these things do work on IE8b2 for XP.

Should we reopen this bug for both of these issues, or should we just reopen it for the Mac and I&apos;ll open a new bug for the PC?

Thanks!!

Cheers,

- Bill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108711</commentid>
    <comment_count>15</comment_count>
    <who name="William J. Edney">bedney</who>
    <bug_when>2009-02-06 13:56:56 -0800</bug_when>
    <thetext>This functionality continues to be completely broken for Webkit v40663 on Mac
and Windows and Chrome up through 2.0.160.0.

The Mozilla guys have put up a new set of pages describing the functionality
here:

https://developer.mozilla.org/En/Online_and_offline_events

This has a link to a test page there that confirms the bustage.

Can we please reopen this bug?

Thanks!

Cheers,

- Bill

P.S. I have filed this bug with the Chromium team for that browser:

http://code.google.com/p/chromium/issues/detail?id=7469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170653</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-11 00:19:53 -0800</bug_when>
    <thetext>&gt; This functionality continues to be completely broken for Webkit v40663 on Mac
&gt; and Windows and Chrome up through 2.0.160.0.

Chances are that it&apos;s working as specified (it certainly did for me last time I checked). Please see bug 32327 for some examples where the behavior gets confusing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11121</attachid>
            <date>2006-10-16 16:57:12 -0700</date>
            <delta_ts>2006-10-16 16:57:12 -0700</delta_ts>
            <desc>Add support for navigator.{onLine,cpuClass}</desc>
            <filename>bug-11284.diff</filename>
            <type>text/plain</type>
            <size>10680</size>
            <attacher name="Dan Waylonis">waylonis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNzA3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDYtMTAtMTYgIHdheWxvbmlzICA8d2F5bG9uaXNAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIEFkZCBjcHVDbGFzcyBhbmQgb25MaW5lIG5hdmlnYXRvciBwcm9wZXJ0aWVzLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL2tqc19uYXZpZ2F0b3IuY3BwOgorICAgICAgICAoS0pTOjpOYXZpZ2F0b3I6OmdldFZh
bHVlUHJvcGVydHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19uYXZpZ2F0b3IuaDoKKyAg
ICAgICAgKEtKUzo6TmF2aWdhdG9yOjopOgorCiAyMDA2LTEwLTE2ICBBZGFtIFJvYmVuICA8YXJv
YmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huLgpJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3MDcwKQorKysg
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTE1NjYsNiArMTU2Niw5IEBACiAJCTkzRjE5QjE2MDgyNDVFNTkwMDFFOUFCQyAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29y
ZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5
M0YxOUIxODA4MjQ1RTU5MDAxRTlBQkMgLyogbGlieHNsdC5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MDYzMzA3MDczMUE3NzIwMERCMUZE
MSAvKiBsaWJ4c2x0LmR5bGliICovOyB9OworCQk5QkQ4M0M5RDBBRTQ0OUU5MDAyMTAyQzAgLyog
U3lzdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUJEODNDOUIwQUU0NDlFOTAwMjEwMkMwIC8qIFN5c3RlbUluZm8uaCAqLzsgfTsKKwkJOUJE
ODNDOUUwQUU0NDlFOTAwMjEwMkMwIC8qIFN5c3RlbUluZm9NYWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJEODNDOUMwQUU0NDlFOTAwMjEwMkMw
IC8qIFN5c3RlbUluZm9NYWMuY3BwICovOyB9OworCQk5QkQ4M0RCQjBBRTQ0RDhFMDAyMTAyQzAg
LyogU3lzdGVtQ29uZmlndXJhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkQ4M0RCQTBBRTQ0RDhFMDAyMTAyQzAgLyogU3lz
dGVtQ29uZmlndXJhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCUE3NUU5NkUwMEFDMTM2NkYwMEVF
MEFGOSAvKiBTVkdSb290SW5saW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzVFOTZERTBBQzEzNjZGMDBFRTBBRjkgLyogU1ZHUm9vdElubGlu
ZUJveC5oICovOyB9OwogCQlBNzVFOTZFMTBBQzEzNjZGMDBFRTBBRjkgLyogU1ZHUm9vdElubGlu
ZUJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzVFOTZERjBBQzEzNjZGMDBFRTBBRjkgLyogU1ZHUm9vdElubGluZUJveC5jcHAgKi87IH07CiAJ
CUE3NjM4QThCMDk5NThFQTUwMDA3RTE0RiAvKiBXS0Rpc3BsYWNlbWVudE1hcEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2MzhBODkwOTk1
OEVBNTAwMDdFMTRGIC8qIFdLRGlzcGxhY2VtZW50TWFwRmlsdGVyLmggKi87IH07CkBAIC00MzQ4
LDYgKzQzNTEsOSBAQAogCQk5M0Y4QjMwNjBBMzAwRkVBMDBGNjFBQjggLyogQ29kZUdlbmVyYXRv
ckpTLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JK
Uy5wbTsgcGF0aCA9IC4uL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0Y4QjMwNzBBMzAwRkVBMDBGNjFBQjggLyogZ2VuZXJhdGUtYmlu
ZGluZ3MucGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBuYW1lID0gImdlbmVyYXRlLWJp
bmRpbmdzLnBsIjsgcGF0aCA9ICJzY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOEIzMDgwQTMwMEZFQTAwRjYxQUI4IC8qIElETFN0
cnVjdHVyZS5wbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IG5hbWUgPSBJRExTdHJ1Y3R1
cmUucG07IHBhdGggPSBzY3JpcHRzL0lETFN0cnVjdHVyZS5wbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUJEODNDOUIwQUU0NDlFOTAwMjEwMkMwIC8qIFN5c3RlbUluZm8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QkQ4M0M5QzBBRTQ0OUU5MDAyMTAyQzAgLyogU3lzdGVtSW5mb01h
Yy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTeXN0ZW1JbmZvTWFj
LmNwcDsgcGF0aCA9IHBsYXRmb3JtL1N5c3RlbUluZm9NYWMuY3BwOyBzb3VyY2VUcmVlID0gU09V
UkNFX1JPT1Q7IH07CisJCTlCRDgzREJBMEFFNDREOEUwMDIxMDJDMCAvKiBTeXN0ZW1Db25maWd1
cmF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU3lzdGVtQ29uZmlndXJhdGlvbi5m
cmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TeXN0ZW1Db25maWd1
cmF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQTc1RTk2
REUwQUMxMzY2RjAwRUUwQUY5IC8qIFNWR1Jvb3RJbmxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHUm9vdElubGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzVFOTZERjBBQzEzNjZGMDBFRTBBRjkgLyogU1ZHUm9vdElubGluZUJveC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdSb290SW5saW5lQm94
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2MzhBODkwOTk1OEVBNTAwMDdF
MTRGIC8qIFdLRGlzcGxhY2VtZW50TWFwRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0Rpc3BsYWNlbWVudE1hcEZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTcyNiw2ICs1NzMyLDcgQEAKIAkJCQlERDc2M0JCMjA5OTJDMkM5MDA3NDBC
OEUgLyogbGlieG1sMi5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTkzNzI1NjEwMEE2MTU2
NDIwMEIwNTNCOSAvKiBsaWJzcWxpdGUzLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMUNG
QUUzMjMwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywK
KwkJCQk5QkQ4M0RCQjBBRTQ0RDhFMDAyMTAyQzAgLyogU3lzdGVtQ29uZmlndXJhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU3NzEsNiArNTc3OCw3IEBACiAJCTA4NjdENjlB
RkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5QkQ4M0RCQTBBRTQ0RDhFMDAyMTAyQzAgLyogU3lzdGVt
Q29uZmlndXJhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJRjVDMjg2OTMwMjg0NkRDRDAxODYzNUNB
IC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovLAogCQkJCUY1QzI4Njk0MDI4NDZE
Q0QwMTg2MzVDQSAvKiBDYXJib24uZnJhbWV3b3JrICovLAogCQkJCUY1QzI4Njk1MDI4NDZEQ0Qw
MTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8sCkBAIC02MzU3LDYgKzYzNjUsNyBAQAogCQkJ
CTg0QjJCMjRGMDU2QkYxNUYwMEQyQjc3MSAvKiBTU0xLZXlHZW5lcmF0b3JNYWMubW0gKi8sCiAJ
CQkJOTNCMEZEODgwQTc1OUJFRDAwODBBRDQ0IC8qIFN0cmluZ0ltcGxNYWMubW0gKi8sCiAJCQkJ
OTNCMEZEODkwQTc1OUJFRDAwODBBRDQ0IC8qIFN0cmluZ01hYy5tbSAqLywKKwkJCQk5QkQ4M0M5
QzBBRTQ0OUU5MDAyMTAyQzAgLyogU3lzdGVtSW5mb01hYy5jcHAgKi8sCiAJCQkJNjU4MkExNTUw
OTk5OUQ2RDAwQkVFQjZEIC8qIFN5c3RlbVRpbWVNYWMuY3BwICovLAogCQkJCTkzNTIwNzFCMDlC
RDNCQkIwMEYyMDM4RCAvKiBUZXh0Qm91bmRhcmllcy5tbSAqLywKIAkJCQlGNTg3ODUxMjAyREUz
NzU5MDFFQTQxMjIgLyogVGV4dEZpZWxkTWFjLm1tICovLApAQCAtODUzMSw2ICs4NTQwLDcgQEAK
IAkJCQk5MzEyNkY2MDA5RDdBNzM2MDA4RDk2MjYgLyogU3RyaW5nSGFzaC5oICovLAogCQkJCTkz
Q0Q0RkRDMDk5NUY5RUEwMDdFQ0M5NyAvKiBTdHJpbmdJbXBsLmNwcCAqLywKIAkJCQk5M0NENEZE
RDA5OTVGOUVBMDA3RUNDOTcgLyogU3RyaW5nSW1wbC5oICovLAorCQkJCTlCRDgzQzlCMEFFNDQ5
RTkwMDIxMDJDMCAvKiBTeXN0ZW1JbmZvLmggKi8sCiAJCQkJOTNFNjJEOTkwOTg1RjQxNjAwRTFC
NUUzIC8qIFN5c3RlbVRpbWUuaCAqLywKIAkJCQk5MzUyMDcxODA5QkQzQkE1MDBGMjAzOEQgLyog
VGV4dEJvdW5kYXJpZXMuaCAqLywKIAkJCQk5MzJDQTdDNDBBQUEyMEQyMDBBRDFGQUQgLyogVGV4
dENvZGVjTGF0aW4xLmNwcCAqLywKQEAgLTEwNDEzLDYgKzEwNDIzLDcgQEAKIAkJCQkwNjY4RTE4
QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTYz
QTlBNzBBREY0MDk0MDAwRUQyQ0QgLyogTG9hZGVyTlNVUkxSZXF1ZXN0RXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTg0MzY4NjBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVMb2FkUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUJEODNDOUQwQUU0NDlFOTAwMjEwMkMwIC8qIFN5c3Rl
bUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTE2NDIsNiArMTE2NTMsNyBAQAogCQkJCTA2NjhF
MThBMEFERDk2MjQwMDQxMjhFMCAvKiBQb3B1cE1lbnUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDY2OEUxOTAwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTY1NjNBOUE4MEFERjQwOTQwMDBFRDJDRCAvKiBMb2FkZXJOU1VSTFJlcXVlc3RFeHRy
YXMubSBpbiBTb3VyY2VzICovLAorCQkJCTlCRDgzQzlFMEFFNDQ5RTkwMDIxMDJDMCAvKiBTeXN0
ZW1JbmZvTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9r
anNfbmF2aWdhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19u
YXZpZ2F0b3IuY3BwCShyZXZpc2lvbiAxNzA3MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X25hdmlnYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiUGx1Z0luSW5mb1N0
b3JlLmgiCisjaW5jbHVkZSAiU3lzdGVtSW5mby5oIgogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBQ
TEFURk9STShQUEMpCiAjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNQUEMi
CkBAIC0xMzEsNyArMTMyLDcgQEAgaW50IEtKUzo6UGx1Z2luQmFzZTo6bV9wbHVnSW5DYWNoZVJl
ZkNvdQogCiBjb25zdCBDbGFzc0luZm8gTmF2aWdhdG9yOjppbmZvID0geyAiTmF2aWdhdG9yIiwg
MCwgJk5hdmlnYXRvclRhYmxlLCAwIH07CiAvKgotQGJlZ2luIE5hdmlnYXRvclRhYmxlIDEzCitA
YmVnaW4gTmF2aWdhdG9yVGFibGUgMTUKICAgYXBwQ29kZU5hbWUgICBOYXZpZ2F0b3I6OkFwcENv
ZGVOYW1lICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGFwcE5hbWUgICAgICAgTmF2aWdhdG9yOjpB
cHBOYW1lICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBhcHBWZXJzaW9uICAgIE5hdmlnYXRv
cjo6QXBwVmVyc2lvbiAgIERvbnREZWxldGV8UmVhZE9ubHkKQEAgLTE0Niw2ICsxNDcsOCBAQCBj
b25zdCBDbGFzc0luZm8gTmF2aWdhdG9yOjppbmZvID0geyAiTmF2CiAgIHZlbmRvclN1YiAgICAg
TmF2aWdhdG9yOjpWZW5kb3JTdWIgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBjb29raWVFbmFi
bGVkIE5hdmlnYXRvcjo6Q29va2llRW5hYmxlZCBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGphdmFF
bmFibGVkICAgTmF2aWdhdG9yOjpKYXZhRW5hYmxlZCAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCisg
IGNwdUNsYXNzICAgICAgTmF2aWdhdG9yOjpDUFVDbGFzcyAgICAgRG9udERlbGV0ZXxSZWFkT25s
eQorICBvbkxpbmUgICAgICAgIE5hdmlnYXRvcjo6T25MaW5lICAgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKIEBlbmQKICovCiBLSlNfSU1QTEVNRU5UX1BST1RPRlVOQyhOYXZpZ2F0b3JGdW5jKQpA
QCAtMTkyLDYgKzE5NSwxMCBAQCBKU1ZhbHVlICpOYXZpZ2F0b3I6OmdldFZhbHVlUHJvcGVydHko
RXhlCiAgICAgcmV0dXJuIG5ldyBNaW1lVHlwZXMoZXhlYyk7CiAgIGNhc2UgQ29va2llRW5hYmxl
ZDoKICAgICByZXR1cm4ganNCb29sZWFuKGNvb2tpZXNFbmFibGVkKCkpOworICBjYXNlIENQVUNs
YXNzOgorICAgIHJldHVybiBqc1N0cmluZyhjcHVDbGFzcygpKTsKKyAgY2FzZSBPbkxpbmU6Cisg
ICAgcmV0dXJuIGpzQm9vbGVhbihvbkxpbmUoKSk7CiAgIH0KICAgcmV0dXJuIDA7CiB9CkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19uYXZpZ2F0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19uYXZpZ2F0b3IuaAkocmV2aXNpb24gMTcwNzApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL2tqc19uYXZpZ2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xh
c3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIGluZm87CiAgICAgZW51bSB7IEFwcENvZGVOYW1lLCBBcHBOYW1lLCBBcHBWZXJzaW9uLCBM
YW5ndWFnZSwgVXNlckFnZW50LCBQbGF0Zm9ybSwKLSAgICAgICAgICAgX1BsdWdpbnMsIF9NaW1l
VHlwZXMsIFByb2R1Y3QsIFByb2R1Y3RTdWIsIFZlbmRvciwgVmVuZG9yU3ViLCBDb29raWVFbmFi
bGVkLCBKYXZhRW5hYmxlZCB9OworICAgICAgICAgICBfUGx1Z2lucywgX01pbWVUeXBlcywgUHJv
ZHVjdCwgUHJvZHVjdFN1YiwgVmVuZG9yLCBWZW5kb3JTdWIsIENvb2tpZUVuYWJsZWQsIEphdmFF
bmFibGVkLAorICAgICAgICAgICBDUFVDbGFzcywgT25MaW5lIH07CiAgICAgV2ViQ29yZTo6RnJh
bWUgKmZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQogICBwcml2YXRlOgogICAgIFdl
YkNvcmU6OkZyYW1lICptX2ZyYW1lOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1JbmZv
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1JbmZvLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL1N5c3RlbUluZm8uaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNiBAQAorI2lmbmRlZiBTWVNURU1fSU5GT19ICisjZGVmaW5lIFNZU1RFTV9JTkZPX0gK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgIGNsYXNzIFN0cmluZzsKKyAgCisgIC8vIFJldHVy
biB0aGUgQ1BVIHR5cGUgYXMgYSBzdHJpbmcgKGUuZy4sICJQUEMiIG9yICJ4ODYiKQorICBTdHJp
bmcgY3B1Q2xhc3Modm9pZCk7CisgIAorICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
bmV0d29yayBhdmFpbGFibGl0eQorICBib29sIG9uTGluZSh2b2lkKTsKKyAgCit9CisKKyNlbmRp
ZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1JbmZvTWFjLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL1N5c3RlbUluZm9NYWMuY3BwCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9TeXN0ZW1JbmZvTWFjLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
NyBAQAorI2ltcG9ydCA8bWFjaC9tYWNoaW5lLmg+CisKKyNpbXBvcnQgPHN5cy90eXBlcy5oPgor
I2ltcG9ydCA8c3lzL3N5c2N0bC5oPgorCisjaW1wb3J0IDxTeXN0ZW1Db25maWd1cmF0aW9uL1ND
TmV0d29yay5oPgorCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlN5c3RlbUluZm8uaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAKK1N0cmluZyBjcHVDbGFzcyh2b2lkKQoreworICAgIHVpbnQz
Ml90IHR5cGUsIHN1YnR5cGU7CisgICAgc2l6ZV90IGxlbiA9IHNpemVvZih0eXBlKTsKKyAgICBj
b25zdCBjaGFyICpyZXN1bHQgPSAidW5rbm93biI7CisgICAgCisgICAgbGVuID0gc2l6ZW9mKHR5
cGUpOworICAgIHN5c2N0bGJ5bmFtZSgiaHcuY3B1dHlwZSIsICZ0eXBlLCAmbGVuLCBOVUxMLCAw
KTsKKyAgICBsZW4gPSBzaXplb2Yoc3VidHlwZSk7CisgICAgc3lzY3RsYnluYW1lKCJody5jcHVz
dWJ0eXBlIiwgJnN1YnR5cGUsICZsZW4sIE5VTEwsIDApOworICAgIAorICAgIGlmICh0eXBlID09
IENQVV9UWVBFX1BPV0VSUEMpCisgICAgICByZXN1bHQgPSAiUFBDIjsKKyAgICAKKyAgICBpZiAo
dHlwZSA9PSBDUFVfVFlQRV9JMzg2KQorICAgICAgcmVzdWx0ID0gIng4NiI7CisgICAgCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKyAgCisvLyBSZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgbmV0
d29yayBhdmFpbGFibGl0eQorYm9vbCBvbkxpbmUodm9pZCkKK3sKKyAgICBTQ05ldHdvcmtDb25u
ZWN0aW9uRmxhZ3MgZmxhZ3M7CisgICAgY29uc3QgY2hhciAqc2VydmVyTmFtZSA9ICJ3d3cud2Vi
a2l0Lm9yZyI7CisgICAgCisgICAgaWYgKFNDTmV0d29ya0NoZWNrUmVhY2hhYmlsaXR5QnlOYW1l
KHNlcnZlck5hbWUsICZmbGFncykpCisgICAgeworICAgICAgICAvLyBEb24ndCBjb25zaWRlciBh
IGRpYWx1cCBhIGNvbm5lY3Rpb24KKyAgICAgICAgaWYgKGZsYWdzICYga1NDTmV0d29ya0ZsYWdz
Q29ubmVjdGlvblJlcXVpcmVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgCisg
ICAgICAgIC8vIElmIHlvdSBjYW4ndCBnZXQgdG8gdGhlIG5ldHdvcmsuLi4KKyAgICAgICAgaWYg
KCEoZmxhZ3MgJiBrU0NOZXR3b3JrRmxhZ3NSZWFjaGFibGUpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>