<?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>110930</bug_id>
          
          <creation_ts>2013-02-26 17:05:07 -0800</creation_ts>
          <short_desc>[chromium] Events can&apos;t be triggered on MediaStreamTrack</short_desc>
          <delta_ts>2013-02-28 20:39:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Li Yin">li.yin</reporter>
          <assigned_to name="Li Yin">li.yin</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jochen</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842538</commentid>
    <comment_count>0</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-26 17:05:07 -0800</bug_when>
    <thetext>When MediaStreamTrack.enabled is changed, event handler can&apos;t be triggered in the browser.
The same problem is also occurred when LocalMediaStream.stop is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842569</commentid>
    <comment_count>1</comment_count>
      <attachid>190405</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-26 17:58:40 -0800</bug_when>
    <thetext>Created attachment 190405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842767</commentid>
    <comment_count>2</comment_count>
      <attachid>190405</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-27 00:21:29 -0800</bug_when>
    <thetext>Comment on attachment 190405
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        When MediaStreamTrack.enabled is changed, event handler can&apos;t be triggered
&gt; +        in the browser.The same problem is also occurred when LocalMediaStream.stop
&gt; +        is called.

Would you also add a spec link here?

&gt; Source/WebCore/ChangeLog:14
&gt; +        No new tests because the followed tests have covered it already.
&gt; +        fast/mediastream/MediaStreamTrack.html
&gt; +        fast/mediastream/LocalMediaStream-onended.html

I expected some change in these test results, because the patch is changing the behavior. Why no changes in test results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842779</commentid>
    <comment_count>3</comment_count>
      <attachid>190405</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 00:34:10 -0800</bug_when>
    <thetext>Comment on attachment 190405
Patch

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

&gt; Source/WebCore/platform/mediastream/chromium/MediaStreamCenterChromium.cpp:80
&gt; +            component-&gt;source()-&gt;setReadyState(MediaStreamSource::ReadyStateLive);

This is the wrong behaviour completely.

A track has two things which decides if media flows through it:

1) If its underlying source is live or not
and
2) if the tracks enables state is true or not.

This patch connects these two states into one which is very wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842785</commentid>
    <comment_count>4</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 00:36:28 -0800</bug_when>
    <thetext>http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842801</commentid>
    <comment_count>5</comment_count>
      <attachid>190405</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-27 00:50:30 -0800</bug_when>
    <thetext>Comment on attachment 190405
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/chromium/MediaStreamCenterChromium.cpp:80
&gt;&gt; +            component-&gt;source()-&gt;setReadyState(MediaStreamSource::ReadyStateLive);
&gt; 
&gt; This is the wrong behaviour completely.
&gt; 
&gt; A track has two things which decides if media flows through it:
&gt; 
&gt; 1) If its underlying source is live or not
&gt; and
&gt; 2) if the tracks enables state is true or not.
&gt; 
&gt; This patch connects these two states into one which is very wrong.

DumpRenderTree does it like this as well.
I will delete the related implementations in DumpRenderTree.(Such as function didEnableMediaStreamTrack in MockWebMediaStreamCenter.cpp)
And the state of component has been checked already in MediaStreamTeack.cpp. Do you think it is necessary to check the state of source?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842812</commentid>
    <comment_count>6</comment_count>
      <attachid>190463</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-27 01:02:17 -0800</bug_when>
    <thetext>Created attachment 190463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842825</commentid>
    <comment_count>7</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 01:14:48 -0800</bug_when>
    <thetext>What I am saying is that your patch is wrong according to the standard.

Unfortunately for technical reasons we have not been able to make DumpRenderTree behave like a proper client. Today the DRT mocks are there just so that as much as possible of the code can be tested.

We&apos;ll get to that later when chromium switches to content_shell instead of DRT; then we&apos;ll start to use as much of the real code as possible. Maybe even doing the full monty and using a local server like WebSockets. But for now DRT and some LayoutTests are just there for exercising WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842903</commentid>
    <comment_count>8</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-27 03:38:54 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; What I am saying is that your patch is wrong according to the standard.
&gt; 
&gt; Unfortunately for technical reasons we have not been able to make DumpRenderTree behave like a proper client. Today the DRT mocks are there just so that as much as possible of the code can be tested.
&gt; 
&gt; We&apos;ll get to that later when chromium switches to content_shell instead of DRT; then we&apos;ll start to use as much of the real code as possible. Maybe even doing the full monty and using a local server like WebSockets. But for now DRT and some LayoutTests are just there for exercising WebKit.

If that is true, when onmute, onunmue, onended event handle will be triggered?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842907</commentid>
    <comment_count>9</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 03:45:45 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; 
&gt; If that is true, when onmute, onunmue, onended event handle will be triggered?

We are working on it but no ETA yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842935</commentid>
    <comment_count>10</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-27 04:21:49 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; 
&gt; &gt; If that is true, when onmute, onunmue, onended event handle will be triggered?
&gt; 
&gt; We are working on it but no ETA yet.

It isn&apos;t introduced in the Spec, and could you please give some clarifications why the tests MediaStreamTrack.html and LocalMediaStream-onended.html are not reasonbable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842963</commentid>
    <comment_count>11</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 05:32:57 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; 
&gt; &gt; &gt; If that is true, when onmute, onunmue, onended event handle will be triggered?
&gt; &gt; 
&gt; &gt; We are working on it but no ETA yet.
&gt; 
&gt; It isn&apos;t introduced in the Spec, and could you please give some clarifications why the tests MediaStreamTrack.html and LocalMediaStream-onended.html are not reasonbable?

Don&apos;t really understand what you are mean. 

First here&apos;s some snippets from the spec that explicitly states that the behavior you added in this patch is wrong, please carefully read the description for the live state:

&quot;When a MediaStreamTrack object is created, its readyState is either live or muted, depending on the state of the track’s underlying media source. For example, a track in a LocalMediaStream, created with getUserMedia(), must initially have its readyState attribute set to live.&quot;

MediaStreamTrack::readyState:

&quot;live: The track is active (the track’s underlying media source is making a best-effort attempt to provide data in real time). The output of a track in the live state can be switched on and off with the enabled attribute.&quot;
&quot;muted: The track is muted (the track’s underlying media source is temporarily unable to provide data).&quot;
&quot;ended: The track has ended (the track’s underlying media source is no longer providing data, and will never provide more data for this track).&quot;

Secondly when I said that we are working on it I mean that the WebRTC team in chrome is working on enabling the MediaStreamTrack readyState for the chrome browser.

Thirdly not all LayoutTests are &quot;wrong&quot; in the sense that they don&apos;t implement realistic use cases; but if the choice have been between &quot;not testable&quot; and &quot;unrealistic usage but properly exercises the API&quot; we have chosen the latter for the time being.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842966</commentid>
    <comment_count>12</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-27 05:34:43 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Don&apos;t really understand what you are mean. 
&gt; 

Sorry, I meant to write &quot;Don&apos;t really understand what you mean.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843791</commentid>
    <comment_count>13</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-27 23:38:32 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &quot;ended: The track has ended (the track’s underlying media source is no longer providing data, and will never provide more data for this track).&quot;

Thanks for your detailed clarification.
You are right, MediaStreamTrack.enable can&apos;t control the readyState is &quot;mute&quot; or &quot;unmute&quot;, I had a wrong understanding. Thanks for your correcting.

And from the 4.7 Event summary chapter of spec, ended event handler should be triggered, when stop() is called.
If that is true, the modification in my patch about MediaStreamCenterChromium::didStopLocalMediaStream should be correct.

Do you think so?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843980</commentid>
    <comment_count>14</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-28 04:27:57 -0800</bug_when>
    <thetext>(In reply to comment #13) 
&gt; And from the 4.7 Event summary chapter of spec, ended event handler should be triggered, when stop() is called.
&gt; If that is true, the modification in my patch about MediaStreamCenterChromium::didStopLocalMediaStream should be correct.
&gt; 
&gt; Do you think so?

Yeah, this does seem right. Since the LocalMediaStream has a strong reference to its sources all tracks based on these sources should be ended:

&quot;The concept with strong and weak references to media sources allows the web application to derive new MediaStream objects from LocalMediaStream objects (created via getUserMedia()) and still be able to revoke all given permissions with LocalMediaStream.stop().&quot;

Feel free to update the patch to just include this and please add a link to the standard in the change log.
http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844012</commentid>
    <comment_count>15</comment_count>
      <attachid>190711</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-28 05:40:53 -0800</bug_when>
    <thetext>Created attachment 190711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844013</commentid>
    <comment_count>16</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-28 05:43:14 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13) 
&gt; Feel free to update the patch to just include this and please add a link to the standard in the change log.
&gt; http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack

Thanks for your comments. The patch has been updated, please have a look again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844014</commentid>
    <comment_count>17</comment_count>
      <attachid>190711</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-02-28 05:47:23 -0800</bug_when>
    <thetext>Comment on attachment 190711
Patch

LGTM but I am not an reviewer so you need someone to give you the R+. Thanks for working with me to improve the code!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844022</commentid>
    <comment_count>18</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-28 06:05:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 190405 [details])
&gt; Would you also add a spec link here?

Done.

&gt; I expected some change in these test results, because the patch is changing the behavior. Why no changes in test results?

For ended event, DRT and Browser used different code path, DRT did the correct thing, ended event was triggered when stop was called.
I changed browser code, let its behavior be correct like what DRT is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844633</commentid>
    <comment_count>19</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-02-28 17:01:31 -0800</bug_when>
    <thetext>Hi Kentaro,
Could you please review the patch? Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844719</commentid>
    <comment_count>20</comment_count>
      <attachid>190711</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-28 19:10:17 -0800</bug_when>
    <thetext>Comment on attachment 190711
Patch

r+ing based on tommy&apos;s LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844760</commentid>
    <comment_count>21</comment_count>
      <attachid>190711</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 20:39:52 -0800</bug_when>
    <thetext>Comment on attachment 190711
Patch

Clearing flags on attachment: 190711

Committed r144410: &lt;http://trac.webkit.org/changeset/144410&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844761</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-28 20:39:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190405</attachid>
            <date>2013-02-26 17:58:40 -0800</date>
            <delta_ts>2013-02-27 01:02:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110930-20130227095452.patch</filename>
            <type>text/plain</type>
            <size>3045</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI1NjhhZDMyMjk2NDBm
M2Q2YjAwYTU4ZGI3ZTU2ODllN2NmMmYzNy4uYzM5MTQ3NGZmYThlMThhNTY0YTQxOTA2MmM4MzIz
M2ZiZTRhMWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTI2ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gRXZlbnRzIGNhbid0
IGJlIHRyaWdnZXJlZCBvbiBNZWRpYVN0cmVhbVRyYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIE1lZGlhU3RyZWFtVHJhY2suZW5hYmxlZCBp
cyBjaGFuZ2VkLCBldmVudCBoYW5kbGVyIGNhbid0IGJlIHRyaWdnZXJlZAorICAgICAgICBpbiB0
aGUgYnJvd3Nlci5UaGUgc2FtZSBwcm9ibGVtIGlzIGFsc28gb2NjdXJyZWQgd2hlbiBMb2NhbE1l
ZGlhU3RyZWFtLnN0b3AKKyAgICAgICAgaXMgY2FsbGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBiZWNhdXNlIHRoZSBmb2xsb3dlZCB0ZXN0cyBoYXZlIGNvdmVyZWQgaXQgYWxyZWFkeS4KKyAg
ICAgICAgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmh0bWwKKyAgICAgICAgZmFz
dC9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLW9uZW5kZWQuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRTZXRN
ZWRpYVN0cmVhbVRyYWNrRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNl
bnRlckNocm9taXVtOjpkaWRTdG9wTG9jYWxNZWRpYVN0cmVhbSk6CisKIDIwMTMtMDItMjYgIEpv
c2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IEFk
ZCB0ZW1wb3JhcnkgZGlhZ25vc3RpYyBjb2RlIHRvIElEQlJlcXVlc3QucmVzdWx0IGdldHRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
TWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNwcAppbmRleCBi
NjY1NTdkMDlkZGM4NTdlZDM1YzIzY2FiZGI5ZGUwNDYzNjdhZmVkLi4yNTllNTI3MzNjNjk4NGJm
MzY3ODA5NTU4NjZkNGVjNTk1OGI2YmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0
cmVhbUNlbnRlckNocm9taXVtLmNwcApAQCAtNzUsMTAgKzc1LDEzIEBAIHZvaWQgTWVkaWFTdHJl
YW1DZW50ZXJDaHJvbWl1bTo6cXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVNvCiB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06OmRpZFNldE1lZGlhU3Ry
ZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFtLCAgTWVkaWFTdHJl
YW1Db21wb25lbnQqIGNvbXBvbmVudCkKIHsKICAgICBpZiAobV9wcml2YXRlKSB7Ci0gICAgICAg
IGlmIChjb21wb25lbnQtPmVuYWJsZWQoKSkKKyAgICAgICAgaWYgKGNvbXBvbmVudC0+ZW5hYmxl
ZCgpKSB7CiAgICAgICAgICAgICBtX3ByaXZhdGUtPmRpZEVuYWJsZU1lZGlhU3RyZWFtVHJhY2so
c3RyZWFtLCBjb21wb25lbnQpOwotICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wb25lbnQt
PnNvdXJjZSgpLT5zZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlTGl2
ZSk7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX3ByaXZhdGUtPmRpZERpc2FibGVN
ZWRpYVN0cmVhbVRyYWNrKHN0cmVhbSwgY29tcG9uZW50KTsKKyAgICAgICAgICAgIGNvbXBvbmVu
dC0+c291cmNlKCktPnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVN
dXRlZCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTk0LDggKzk3LDEzIEBAIGJvb2wgTWVk
aWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0
cmVhbURlc2NyaXB0b3IqCiAKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkU3Rv
cExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBzdHJlYW0pCiB7Ci0gICAg
aWYgKG1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlKSB7CiAgICAgICAgIG1fcHJpdmF0ZS0+
ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHN0cmVhbS0+bnVtYmVyT2ZBdWRpb0NvbXBvbmVudHMoKTsgaSsrKQorICAgICAg
ICAgICAgc3RyZWFtLT5hdWRpb0NvbXBvbmVudChpKS0+c291cmNlKCktPnNldFJlYWR5U3RhdGUo
TWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZCk7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBzdHJlYW0tPm51bWJlck9mVmlkZW9Db21wb25lbnRzKCk7IGkrKykKKyAg
ICAgICAgICAgIHN0cmVhbS0+dmlkZW9Db21wb25lbnQoaSktPnNvdXJjZSgpLT5zZXRSZWFkeVN0
YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5kZWQpOworICAgIH0KIH0KIAogdm9p
ZCBNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRpYVN0
cmVhbURlc2NyaXB0b3IqIHN0cmVhbSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190463</attachid>
            <date>2013-02-27 01:02:17 -0800</date>
            <delta_ts>2013-02-28 05:40:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110930-20130227165829.patch</filename>
            <type>text/plain</type>
            <size>5780</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI1NjhhZDMyMjk2NDBm
M2Q2YjAwYTU4ZGI3ZTU2ODllN2NmMmYzNy4uNDBhMzRmODk1OTMwMWJlZDIxMzgxZmI1Mzc4YTE5
MjZmNjVjOWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTI3ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gRXZlbnRzIGNhbid0
IGJlIHRyaWdnZXJlZCBvbiBNZWRpYVN0cmVhbVRyYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIE1lZGlhU3RyZWFtVHJhY2suZW5hYmxlZCBp
cyBjaGFuZ2VkLCBldmVudCBoYW5kbGVyIGNhbid0IGJlIHRyaWdnZXJlZAorICAgICAgICBpbiB0
aGUgYnJvd3Nlci5UaGUgc2FtZSBwcm9ibGVtIGlzIGFsc28gb2NjdXJyZWQgd2hlbiBMb2NhbE1l
ZGlhU3RyZWFtLnN0b3AKKyAgICAgICAgaXMgY2FsbGVkLgorICAgICAgICBTcGVjOiBodHRwOi8v
ZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3IvZ2V0dXNlcm1lZGlhLmh0bWwjbWVkaWFzdHJl
YW10cmFjaworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZSBmb2xsb3dlZCB0ZXN0
cyBoYXZlIGNvdmVyZWQgaXQgYWxyZWFkeS4KKyAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmh0bWwKKyAgICAgICAgZmFzdC9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3Ry
ZWFtLW9uZW5kZWQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRTdG9wTG9jYWxN
ZWRpYVN0cmVhbSk6CisKIDIwMTMtMDItMjYgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IEFkZCB0ZW1wb3JhcnkgZGlhZ25vc3RpYyBjb2Rl
IHRvIElEQlJlcXVlc3QucmVzdWx0IGdldHRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0
cmVhbUNlbnRlckNocm9taXVtLmNwcAppbmRleCBiNjY1NTdkMDlkZGM4NTdlZDM1YzIzY2FiZGI5
ZGUwNDYzNjdhZmVkLi4yNTllNTI3MzNjNjk4NGJmMzY3ODA5NTU4NjZkNGVjNTk1OGI2YmRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9N
ZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNwcApAQCAt
NzUsMTAgKzc1LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6cXVlcnlNZWRp
YVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvCiB2b2lkIE1lZGlhU3RyZWFt
Q2VudGVyQ2hyb21pdW06OmRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFt
RGVzY3JpcHRvciogc3RyZWFtLCAgTWVkaWFTdHJlYW1Db21wb25lbnQqIGNvbXBvbmVudCkKIHsK
ICAgICBpZiAobV9wcml2YXRlKSB7Ci0gICAgICAgIGlmIChjb21wb25lbnQtPmVuYWJsZWQoKSkK
KyAgICAgICAgaWYgKGNvbXBvbmVudC0+ZW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBtX3ByaXZh
dGUtPmRpZEVuYWJsZU1lZGlhU3RyZWFtVHJhY2soc3RyZWFtLCBjb21wb25lbnQpOwotICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjb21wb25lbnQtPnNvdXJjZSgpLT5zZXRSZWFkeVN0YXRlKE1l
ZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlTGl2ZSk7CisgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBtX3ByaXZhdGUtPmRpZERpc2FibGVNZWRpYVN0cmVhbVRyYWNrKHN0cmVhbSwgY29t
cG9uZW50KTsKKyAgICAgICAgICAgIGNvbXBvbmVudC0+c291cmNlKCktPnNldFJlYWR5U3RhdGUo
TWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVNdXRlZCk7CisgICAgICAgIH0KICAgICB9CiB9
CiAKQEAgLTk0LDggKzk3LDEzIEBAIGJvb2wgTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlk
UmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqCiAKIHZvaWQgTWVk
aWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJl
YW1EZXNjcmlwdG9yKiBzdHJlYW0pCiB7Ci0gICAgaWYgKG1fcHJpdmF0ZSkKKyAgICBpZiAobV9w
cml2YXRlKSB7CiAgICAgICAgIG1fcHJpdmF0ZS0+ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oc3Ry
ZWFtKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0cmVhbS0+bnVtYmVyT2ZB
dWRpb0NvbXBvbmVudHMoKTsgaSsrKQorICAgICAgICAgICAgc3RyZWFtLT5hdWRpb0NvbXBvbmVu
dChpKS0+c291cmNlKCktPnNldFJlYWR5U3RhdGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3Rh
dGVFbmRlZCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdHJlYW0tPm51bWJl
ck9mVmlkZW9Db21wb25lbnRzKCk7IGkrKykKKyAgICAgICAgICAgIHN0cmVhbS0+dmlkZW9Db21w
b25lbnQoaSktPnNvdXJjZSgpLT5zZXRSZWFkeVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFk
eVN0YXRlRW5kZWQpOworICAgIH0KIH0KIAogdm9pZCBNZWRpYVN0cmVhbUNlbnRlckNocm9taXVt
OjpkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqIHN0cmVhbSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YzY5MzY0
MjUyNmRlZjU0OWY3ZTE2YmE0ODdiMmI0MTZiNjcyODRlLi45NjQ4YmQ4ODFjY2IwOTdjNTZiOWZl
ZmEzNTI4NDAwZDZiYWRhMmZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMjcgIExpIFlpbiAgPGxpLnlp
bkBpbnRlbC5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBFdmVudHMgY2FuJ3QgYmUgdHJpZ2dl
cmVkIG9uIE1lZGlhU3RyZWFtVHJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMDkzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
TW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Ok1v
Y2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkRW5hYmxlTWVkaWFTdHJlYW1UcmFjayk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZERpc2FibGVN
ZWRpYVN0cmVhbVRyYWNrKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Ok1vY2tXZWJNZWRpYVN0
cmVhbUNlbnRlcjo6ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0pOgorCiAyMDEzLTAyLTI2ICBEaXJr
IFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmUt
ZW5hYmxlIHRoZSBmaXhlZCB2ZXJzaW9uIG9mIGZyZWV0eXBlIG9uIGxpbnV4CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViTWVk
aWFTdHJlYW1DZW50ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmNwcAppbmRleCA4YTMyYzc2MWU0MzJk
ZDdhOTFmOGIwODM4YzMxYWFhMTQ5MTk0OGUxLi5iNGM5ODZhY2RiZTBiNDJiNWE0YmEwMDE0NjQw
MzM2MWY1NTk1ZjRkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9Nb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJNZWRpYVN0cmVhbUNl
bnRlci5jcHAKQEAgLTU3LDEyICs1NywxMCBAQCB2b2lkIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRl
cjo6cXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoY29uc3QgV2ViTWVkaWFTdHJlYW1Tb3VyYwogCiB2
b2lkIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkRW5hYmxlTWVkaWFTdHJlYW1UcmFjayhj
b25zdCBXZWJNZWRpYVN0cmVhbSYsIGNvbnN0IFdlYk1lZGlhU3RyZWFtVHJhY2smIGNvbXBvbmVu
dCkKIHsKLSAgICBjb21wb25lbnQuc291cmNlKCkuc2V0UmVhZHlTdGF0ZShXZWJNZWRpYVN0cmVh
bVNvdXJjZTo6UmVhZHlTdGF0ZUxpdmUpOwogfQogCiB2b2lkIE1vY2tXZWJNZWRpYVN0cmVhbUNl
bnRlcjo6ZGlkRGlzYWJsZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFTdHJlYW0mLCBj
b25zdCBXZWJNZWRpYVN0cmVhbVRyYWNrJiBjb21wb25lbnQpCiB7Ci0gICAgY29tcG9uZW50LnNv
dXJjZSgpLnNldFJlYWR5U3RhdGUoV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVNdXRl
ZCk7CiB9CiAKIGJvb2wgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRBZGRNZWRpYVN0cmVh
bVRyYWNrKGNvbnN0IFdlYk1lZGlhU3RyZWFtJiwgY29uc3QgV2ViTWVkaWFTdHJlYW1UcmFjayYp
CkBAIC03NywxNSArNzUsNiBAQCBib29sIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkUmVt
b3ZlTWVkaWFTdHJlYW1UcmFjayhjb25zdCBXZWJNZWRpYVN0cmVhbSYsCiAKIHZvaWQgTW9ja1dl
Yk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRTdG9wTG9jYWxNZWRpYVN0cmVhbShjb25zdCBXZWJNZWRp
YVN0cmVhbSYgc3RyZWFtKQogewotICAgIFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiBh
dWRpb0NvbXBvbmVudHM7Ci0gICAgc3RyZWFtLmF1ZGlvU291cmNlcyhhdWRpb0NvbXBvbmVudHMp
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXVkaW9Db21wb25lbnRzLnNpemUoKTsgKytp
KQotICAgICAgICBhdWRpb0NvbXBvbmVudHNbaV0uc291cmNlKCkuc2V0UmVhZHlTdGF0ZShXZWJN
ZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZUVuZGVkKTsKLQotICAgIFdlYlZlY3RvcjxXZWJN
ZWRpYVN0cmVhbVRyYWNrPiB2aWRlb0NvbXBvbmVudHM7Ci0gICAgc3RyZWFtLnZpZGVvU291cmNl
cyh2aWRlb0NvbXBvbmVudHMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmlkZW9Db21w
b25lbnRzLnNpemUoKTsgKytpKQotICAgICAgICB2aWRlb0NvbXBvbmVudHNbaV0uc291cmNlKCku
c2V0UmVhZHlTdGF0ZShXZWJNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZUVuZGVkKTsKIH0K
IAogY2xhc3MgTW9ja1dlYkF1ZGlvRGVzdGluYXRpb25Db25zdW1lciA6IHB1YmxpYyBXZWJBdWRp
b0Rlc3RpbmF0aW9uQ29uc3VtZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190711</attachid>
            <date>2013-02-28 05:40:53 -0800</date>
            <delta_ts>2013-02-28 20:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110930-20130228213705.patch</filename>
            <type>text/plain</type>
            <size>4149</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY3NGM5YzVhYjI2M2Q2
NmEyMGI4ZGNkMDc4ZThhZDIyZjQ0YmIwZS4uMDA3MWE2YTdiYTU5OWE1NTgwYWNmMWMwYmZkNDZj
ZjMyNzNmZDhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTI4ICBMaSBZ
aW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gRXZlbnRzIGNhbid0
IGJlIHRyaWdnZXJlZCBvbiBNZWRpYVN0cmVhbVRyYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA5MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjOiBodHRwOi8vZGV2LnczLm9yZy8yMDExL3dl
YnJ0Yy9lZGl0b3IvZ2V0dXNlcm1lZGlhLmh0bWwjbWVkaWFzdHJlYW10cmFjaworICAgICAgICBl
bmRlZCBldmVudCBoYW5kbGVyIHNob3VsZCBiZSB0cmlnZ2VyZWQsIHdoZW4gc3RvcCgpIGlzIGNh
bGxlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGUgdGVzdCBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaHRtbAorICAgICAgICBoYWQgY292ZXJlZCBpdCBhbHJl
YWR5LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJl
YW1DZW50ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRl
ckNocm9taXVtOjpkaWRTdG9wTG9jYWxNZWRpYVN0cmVhbSk6CisKIDIwMTMtMDItMjggIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogY2xhc3MgY29uc29sZS1mb3JtYXR0ZWQtc3RyaW5nIHJlbmFtZWQgdG8gY29uc29sZS1mb3Jt
YXR0ZWQtID8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5j
cHAKaW5kZXggYjY2NTU3ZDA5ZGRjODU3ZWQzNWMyM2NhYmRiOWRlMDQ2MzY3YWZlZC4uYTRjMzY0
YTVhNTlmNDdmMzJkMTA4N2NmOTliZjM5MDM3NDQ1MmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAKQEAgLTk0LDggKzk0LDEzIEBAIGJvb2wg
TWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRp
YVN0cmVhbURlc2NyaXB0b3IqCiAKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlk
U3RvcExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBzdHJlYW0pCiB7Ci0g
ICAgaWYgKG1fcHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlKSB7CiAgICAgICAgIG1fcHJpdmF0
ZS0+ZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHN0cmVhbS0+bnVtYmVyT2ZBdWRpb0NvbXBvbmVudHMoKTsgaSsrKQorICAg
ICAgICAgICAgc3RyZWFtLT5hdWRpb0NvbXBvbmVudChpKS0+c291cmNlKCktPnNldFJlYWR5U3Rh
dGUoTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZCk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzdHJlYW0tPm51bWJlck9mVmlkZW9Db21wb25lbnRzKCk7IGkrKykK
KyAgICAgICAgICAgIHN0cmVhbS0+dmlkZW9Db21wb25lbnQoaSktPnNvdXJjZSgpLT5zZXRSZWFk
eVN0YXRlKE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5kZWQpOworICAgIH0KIH0KIAog
dm9pZCBNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRp
YVN0cmVhbURlc2NyaXB0b3IqIHN0cmVhbSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MjRhNTUwYTU0MGY1YTZjNmQ2NDQ3ZjljYjc2ZmIwNWQw
MDg3YjVkLi4yZjEzM2E2NGFmNTkwZTc2Y2JiNDkwMjNjMDQyYzA2ODNiN2NiNjIzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTMtMDItMjggIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5jb20+CisKKyAgICAgICAgW2No
cm9taXVtXSBFdmVudHMgY2FuJ3QgYmUgdHJpZ2dlcmVkIG9uIE1lZGlhU3RyZWFtVHJhY2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbGF0ZWQgY29k
ZSB3YXMgbW92ZWQgdG8gTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6ZGlkU3RvcExvY2FsTWVk
aWFTdHJlYW0KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpNb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXI6OmRpZFN0b3BMb2NhbE1lZGlhU3RyZWFtKToKKwog
MjAxMy0wMi0yOCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXVtXVFJdIFdUUiBjYW5ub3QgbG9hZCBpbmplY3RlZCBidW5k
bGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9Nb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4
IDhhMzJjNzYxZTQzMmRkN2E5MWY4YjA4MzhjMzFhYWExNDkxOTQ4ZTEuLjZjZWE3MGZmYWJjNzlm
MzA1NWE2OGU3Y2VjYzYwMmJhYWYwOGU0MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvTW9ja1dl
Yk1lZGlhU3RyZWFtQ2VudGVyLmNwcApAQCAtNzcsMTUgKzc3LDYgQEAgYm9vbCBNb2NrV2ViTWVk
aWFTdHJlYW1DZW50ZXI6OmRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFT
dHJlYW0mLAogCiB2b2lkIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcjo6ZGlkU3RvcExvY2FsTWVk
aWFTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW0mIHN0cmVhbSkKIHsKLSAgICBXZWJWZWN0b3I8
V2ViTWVkaWFTdHJlYW1UcmFjaz4gYXVkaW9Db21wb25lbnRzOwotICAgIHN0cmVhbS5hdWRpb1Nv
dXJjZXMoYXVkaW9Db21wb25lbnRzKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF1ZGlv
Q29tcG9uZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgYXVkaW9Db21wb25lbnRzW2ldLnNvdXJj
ZSgpLnNldFJlYWR5U3RhdGUoV2ViTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZCk7
Ci0KLSAgICBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1UcmFjaz4gdmlkZW9Db21wb25lbnRzOwot
ICAgIHN0cmVhbS52aWRlb1NvdXJjZXModmlkZW9Db21wb25lbnRzKTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHZpZGVvQ29tcG9uZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgdmlkZW9D
b21wb25lbnRzW2ldLnNvdXJjZSgpLnNldFJlYWR5U3RhdGUoV2ViTWVkaWFTdHJlYW1Tb3VyY2U6
OlJlYWR5U3RhdGVFbmRlZCk7CiB9CiAKIGNsYXNzIE1vY2tXZWJBdWRpb0Rlc3RpbmF0aW9uQ29u
c3VtZXIgOiBwdWJsaWMgV2ViQXVkaW9EZXN0aW5hdGlvbkNvbnN1bWVyIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>