<?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>87337</bug_id>
          
          <creation_ts>2012-05-23 20:30:35 -0700</creation_ts>
          <short_desc>[Blackberry] WebKit&apos;s fullscreen mode needs to notify page client.</short_desc>
          <delta_ts>2012-10-04 14:37:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris.Guan">logingx</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mfeil</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>632367</commentid>
    <comment_count>0</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-23 20:30:35 -0700</bug_when>
    <thetext>No fullscreen video widget has been made available by the Browser chrome, or It is not a video element. The webkitRequestFullScreen Javascript call is often made on a div element. we would call client&apos;s full screen APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632428</commentid>
    <comment_count>1</comment_count>
      <attachid>143732</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-23 22:36:14 -0700</bug_when>
    <thetext>Created attachment 143732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632741</commentid>
    <comment_count>2</comment_count>
      <attachid>143732</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-24 07:01:28 -0700</bug_when>
    <thetext>Comment on attachment 143732
Patch

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

Some suggestions:

&gt; Source/WebKit/blackberry/ChangeLog:9
&gt; +        chrom or it is not a video element. The webkitRequestFullScreen Javascript 

chrom*

period should be a comma

&gt; Source/WebKit/blackberry/Api/WebPageClient.h:239
&gt; +    virtual int fullscreenStart(const char* contextName = 0, Platform::Graphics::Window* = 0, unsigned x = 0, unsigned y = 0, unsigned width = 0, unsigned height = 0) = 0;

is not it clear to add another method with parameters? adding 6 default values seems too much to me.

Then we can name one deprecatedFullScreenStart, and keep using the other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632745</commentid>
    <comment_count>3</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-24 07:07:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 143732 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143732&amp;action=review
&gt; 
&gt; Some suggestions:
&gt; 
&gt; &gt; Source/WebKit/blackberry/ChangeLog:9
&gt; &gt; +        chrom or it is not a video element. The webkitRequestFullScreen Javascript 
&gt; 
&gt; chrom*
&gt; 
&gt; period should be a comma
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPageClient.h:239
&gt; &gt; +    virtual int fullscreenStart(const char* contextName = 0, Platform::Graphics::Window* = 0, unsigned x = 0, unsigned y = 0, unsigned width = 0, unsigned height = 0) = 0;
&gt; 
&gt; is not it clear to add another method with parameters? adding 6 default values seems too much to me.
&gt; 
&gt; Then we can name one deprecatedFullScreenStart, and keep using the other.

Thanks, Antonio, I will fix them next patch, but we have some secure and UX issues now, I cancelled reveiew first, see internal PR for more please. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632746</commentid>
    <comment_count>4</comment_count>
      <attachid>143732</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-24 07:10:54 -0700</bug_when>
    <thetext>Comment on attachment 143732
Patch

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

Looks good, but could be improved more.

&gt; Source/WebKit/blackberry/ChangeLog:9
&gt; +        chrom or it is not a video element. The webkitRequestFullScreen Javascript 

chrome

&gt; Source/WebKit/blackberry/ChangeLog:11
&gt; +        to enter or exit full screen mode.

You probably want to reword the ChangeLog a bit:

Cover the case where no no fullscreen video widget has been made available by the Browser Chrome, or it is not a video element. In this case we call client&apos;s full screen APIs to enter or exit full screen mode.

&gt; Source/WebKit/blackberry/Api/WebPageClient.h:239
&gt; +    virtual int fullscreenStart(const char* contextName = 0, Platform::Graphics::Window* = 0, unsigned x = 0, unsigned y = 0, unsigned width = 0, unsigned height = 0) = 0;

Do we care for the parameters at all if they are not handed over? Or is there some other place not in this patch that states these parameters?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632754</commentid>
    <comment_count>5</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-24 07:17:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 143732 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143732&amp;action=review
&gt; 
&gt; Looks good, but could be improved more.
&gt; 
&gt; &gt; Source/WebKit/blackberry/ChangeLog:9
&gt; &gt; +        chrom or it is not a video element. The webkitRequestFullScreen Javascript 
&gt; 
&gt; chrome
&gt; 
&gt; &gt; Source/WebKit/blackberry/ChangeLog:11
&gt; &gt; +        to enter or exit full screen mode.
&gt; 
&gt; You probably want to reword the ChangeLog a bit:
&gt; 
&gt; Cover the case where no no fullscreen video widget has been made available by the Browser Chrome, or it is not a video element. In this case we call client&apos;s full screen APIs to enter or exit full screen mode.
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPageClient.h:239
&gt; &gt; +    virtual int fullscreenStart(const char* contextName = 0, Platform::Graphics::Window* = 0, unsigned x = 0, unsigned y = 0, unsigned width = 0, unsigned height = 0) = 0;
&gt; 
&gt; Do we care for the parameters at all if they are not handed over? Or is there some other place not in this patch that states these parameters?

Thanks, Rob. I should cancel r? earlier. see internal PR for more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637109</commentid>
    <comment_count>6</comment_count>
      <attachid>144780</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-30 04:46:16 -0700</bug_when>
    <thetext>Created attachment 144780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637112</commentid>
    <comment_count>7</comment_count>
      <attachid>144780</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-30 04:50:10 -0700</bug_when>
    <thetext>Comment on attachment 144780
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6061
&gt; +    // Search for a video element in this document.
&gt; +    Document* document = frame-&gt;document();
&gt; +    for (Node* node = document-&gt;firstChild(); node; node = node-&gt;traverseNextNode(document)) {
&gt; +        if (!node-&gt;isElementNode())
&gt; +            continue;
&gt; +        if (node-&gt;hasTagName(HTMLNames::videoTag))
&gt; +            return true;
&gt; +    }
&gt; +
&gt; +    // Do the same for the nested frames.
&gt; +    for (Frame* child = frame-&gt;tree()-&gt;firstChild(); child; child = child-&gt;tree()-&gt;nextSibling()) {
&gt; +        if (containsVideoTags(child))
&gt; +            return true;

that can be VERY slow. r- due to that.

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6082
&gt; +#if ENABLE(VIDEO)

can you have #fullscreen_api enabled and #video disabled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637126</commentid>
    <comment_count>8</comment_count>
      <attachid>144786</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-30 05:22:32 -0700</bug_when>
    <thetext>Created attachment 144786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637131</commentid>
    <comment_count>9</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-30 05:33:33 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 144780 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144780&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:6061
&gt; &gt; +    // Search for a video element in this document.
&gt; &gt; +    Document* document = frame-&gt;document();
&gt; &gt; +    for (Node* node = document-&gt;firstChild(); node; node = node-&gt;traverseNextNode(document)) {
&gt; &gt; +        if (!node-&gt;isElementNode())
&gt; &gt; +            continue;
&gt; &gt; +        if (node-&gt;hasTagName(HTMLNames::videoTag))
&gt; &gt; +            return true;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    // Do the same for the nested frames.
&gt; &gt; +    for (Frame* child = frame-&gt;tree()-&gt;firstChild(); child; child = child-&gt;tree()-&gt;nextSibling()) {
&gt; &gt; +        if (containsVideoTags(child))
&gt; &gt; +            return true;
&gt; 
&gt; that can be VERY slow. r- due to that.
yes, I think so. we do not need to check frame probably, Thanks.
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:6082
&gt; &gt; +#if ENABLE(VIDEO)
&gt; 
&gt; can you have #fullscreen_api enabled and #video disabled?
I think it is possible, fullscreen_api is for all elements. But for some secure concerns, we only apply fullscreen mode to video tags or those elements containing video tags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637534</commentid>
    <comment_count>10</comment_count>
      <attachid>144786</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-30 12:25:51 -0700</bug_when>
    <thetext>Comment on attachment 144786
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:5487
&gt; +        static_cast&lt;Element*&gt;(d-&gt;m_fullscreenVideoNode.get())-&gt;document()-&gt;webkitCancelFullScreen();

This line is not correct. The m_fullscreenVideoNode is only used by the enterFullScreenForNode path (when fullScreenVideoCapable is true). So it will always be zero here. Was this code path tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637945</commentid>
    <comment_count>11</comment_count>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-30 19:46:42 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 144786 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=144786&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/Api/WebPage.cpp:5487
&gt; &gt; +        static_cast&lt;Element*&gt;(d-&gt;m_fullscreenVideoNode.get())-&gt;document()-&gt;webkitCancelFullScreen();
&gt; 
&gt; This line is not correct. The m_fullscreenVideoNode is only used by the enterFullScreenForNode path (when fullScreenVideoCapable is true). So it will always be zero here. Was this code path tested?

Max, I reuse m_fullscreenVideoNode in this patch, I assigned/cleared the node in enter/exitFullScreenForElement functions. Chrome should not call &quot;notifyFullScreenVideoExited&quot; when it is not in full screen mode, should it? Yes, anyway, I should have null pointer check or Assert. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638013</commentid>
    <comment_count>12</comment_count>
      <attachid>144992</attachid>
    <who name="Chris.Guan">logingx</who>
    <bug_when>2012-05-30 22:46:53 -0700</bug_when>
    <thetext>Created attachment 144992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638241</commentid>
    <comment_count>13</comment_count>
      <attachid>144992</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-31 04:52:28 -0700</bug_when>
    <thetext>Comment on attachment 144992
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6048
&gt; +// TODO: We should remove this helper class when we decide to support all elements.

use FIXME

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6061
&gt; +    // TODO: We should not check video tag when we decide to support all elements.

ditto

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6062
&gt; +    if (!element || (!element-&gt;hasTagName(HTMLNames::videoTag) &amp;&amp; !containsVideoTags(element)))

why do you need containsVideoTags al all? is not checking for ::videoTag enough, since you have the element?

if it can be removed, lets do it. it is still slow...

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:6085
&gt; +    // TODO: We should not check video tag when we decide to support all elements.

fixme

&gt; Source/WebKit/blackberry/Api/WebPageClient.h:235
&gt;      virtual int fullscreenStart(const char* contextName, Platform::Graphics::Window*, unsigned x, unsigned y, unsigned width, unsigned height) = 0;

I would add a comment saying that this method is deprecated.

in fact I would add comments deprecating the whole old codepath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638479</commentid>
    <comment_count>14</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-31 09:06:01 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Max, I reuse m_fullscreenVideoNode in this patch, I assigned/cleared the node in enter/exitFullScreenForElement functions. Chrome should not call &quot;notifyFullScreenVideoExited&quot; when it is not in full screen mode, should it? Yes, anyway, I should have null pointer check or Assert. Thanks.

I didn&apos;t notice your reuse of m_fullscreenVideoNode, sorry. In that case just doing a null pointer check is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638487</commentid>
    <comment_count>15</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-05-31 09:14:28 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; why do you need containsVideoTags at all? is not checking for ::videoTag enough, since you have the element?

The &quot;contains&quot; check is needed because the element will often be a container like a DIV. In fact that is one of the main points of PR158257 which this webkit bug is designed to address.

&gt; I would add a comment saying that this method is deprecated.
&gt; in fact I would add comments deprecating the whole old codepath.

The previous fullscreen codepath is not deprecated yet. It needs to be maintained to support AIR and native fullscreen widgets in general. Once AIR is no longer supported in BlackBerry OS we can revisit this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638528</commentid>
    <comment_count>16</comment_count>
      <attachid>144992</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-05-31 10:16:11 -0700</bug_when>
    <thetext>Comment on attachment 144992
Patch

s/todo/fixme won&apos;t hold it from landing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638550</commentid>
    <comment_count>17</comment_count>
      <attachid>144992</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 10:33:55 -0700</bug_when>
    <thetext>Comment on attachment 144992
Patch

Clearing flags on attachment: 144992

Committed r119119: &lt;http://trac.webkit.org/changeset/119119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638551</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 10:34:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735023</commentid>
    <comment_count>19</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2012-10-04 14:37:41 -0700</bug_when>
    <thetext>This patch has broken fullscreen video for AIR and WebWorks apps on some sites like YouTube. I am investigating a fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143732</attachid>
            <date>2012-05-23 22:36:14 -0700</date>
            <delta_ts>2012-05-30 04:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87337-20120524133610.patch</filename>
            <type>text/plain</type>
            <size>3290</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBjMTVhMmY2ZDBlNDgzNDc4ZWMyNmE2ZjJiZGJiN2Q1OTIyOGJhZGZhLi5mZjNhMzczM2Q5
ODRmNDAyYzJjZjAzZTg5OTI4NThjMTU4MzVmYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNS0yMyAgQ2hyaXMgR3VhbiAgPGNocmlzLmd1
YW5AdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja2JlcnJ5XSBuZWVkIGNhbGwg
ZnVsbHNjcmVlbiBBUElzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODczMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXaGVuIG5vIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGhhcyBiZWVuIG1hZGUgYXZh
aWxhYmxlIGJ5IHRoZSBCcm93c2VyCisgICAgICAgIGNocm9tIG9yIGl0IGlzIG5vdCBhIHZpZGVv
IGVsZW1lbnQuIFRoZSB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiBKYXZhc2NyaXB0IAorICAgICAg
ICBjYWxsIGlzIG9mdGVuIG1hZGUgb24gYSBkaXYgZWxlbWVudC4gV2Ugd291bGQgY2FsbCBjbGll
bnQncyBmdWxsIHNjcmVlbiBBUElzCisgICAgICAgIHRvIGVudGVyIG9yIGV4aXQgZnVsbCBzY3Jl
ZW4gbW9kZS4KKworICAgICAgICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudCk6CisKIDIwMTItMDUtMjMgIEdlbmV2aWV2ZSBNYWsgIDxnbWFrQHJpbS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIG1pbmltdW0gYW5kIG1heGltdW0gc2Nyb2xsIHBvc2l0aW9uIGFzIHRo
ZXkgYXJlIG5vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5o
CmluZGV4IDJhZTk3M2ZkZDg5YzFhYzcxZGI4YWI0MGQzNWU4OTQyNjE3ZmZkNTQuLjdhMjRjY2Fi
N2NjZDYwNGYyZjZhMDUxZWJmZjJmODQwMDVmZTY5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCkBAIC0yMzUsNyArMjM1LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBkb3dubG9hZEFsbG93ZWQoY29uc3QgY2hhciogdXJsKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFBsYXRmb3JtOjpGaWx0ZXJTdHJlYW0q
LCBjb25zdCBXZWJTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKSA9IDA7CiAKLSAgICB2aXJ0dWFs
IGludCBmdWxsc2NyZWVuU3RhcnQoY29uc3QgY2hhciogY29udGV4dE5hbWUsIFBsYXRmb3JtOjpH
cmFwaGljczo6V2luZG93KiwgdW5zaWduZWQgeCwgdW5zaWduZWQgeSwgdW5zaWduZWQgd2lkdGgs
IHVuc2lnbmVkIGhlaWdodCkgPSAwOworICAgIC8vIFNvbWUgQnJvd3NlciBDaHJvbWVzIGRvIG5v
dCBjYXJlIHRoZXNlIHBhcmFtZXRlcnMsIHNvIGFkZCB0aGUgZGVmYXVsdCB2YWx1ZXMgdG8gdGhl
bS4KKyAgICB2aXJ0dWFsIGludCBmdWxsc2NyZWVuU3RhcnQoY29uc3QgY2hhciogY29udGV4dE5h
bWUgPSAwLCBQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogPSAwLCB1bnNpZ25lZCB4ID0gMCwg
dW5zaWduZWQgeSA9IDAsIHVuc2lnbmVkIHdpZHRoID0gMCwgdW5zaWduZWQgaGVpZ2h0ID0gMCkg
PSAwOwogCiAgICAgdmlydHVhbCBpbnQgZnVsbHNjcmVlblN0b3AoKSA9IDA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBkMjM0MDg3OWQ5NjM3MTBhZjdlMDQxMGEy
YjY2Y2M1NWRhM2QyNjBkLi40NjdlMmNhMDU3NGUxOWUyNDMxNDdmM2ViMmQ2NjYxNWZhNjJkZDgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC03MzgsNiArNzM4LDcg
QEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQKICAgICAgICAgLy8gY2hyb21lLCBvciB0aGlzIGlz
IG5vdCBhIHZpZGVvIGVsZW1lbnQuIFRoZSB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbgogICAgICAg
ICAvLyBKYXZhc2NyaXB0IGNhbGwgaXMgb2Z0ZW4gbWFkZSBvbiBhIGRpdiBlbGVtZW50LgogICAg
ICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxkIGhpZGUgdGhlIGJyb3dzZXIncyBjaHJvbWUg
aWYgd2Ugd2FudGVkIHRvLgorICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5jbGllbnQoKS0+ZnVs
bHNjcmVlblN0YXJ0KCk7CiAgICAgfQogICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERp
ZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CiB9CkBAIC03NTEsNiArNzUyLDcg
QEAgdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGlz
IGlzIHdoZXJlIHdlIHdvdWxkIHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKICAgICAgICAg
Ly8gaWYgaGlkZGVuIGFib3ZlLgorICAgICAgICBtX3dlYlBhZ2VQcml2YXRlLT5jbGllbnQoKS0+
ZnVsbHNjcmVlblN0b3AoKTsKICAgICB9CiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0
RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144780</attachid>
            <date>2012-05-30 04:46:16 -0700</date>
            <delta_ts>2012-05-30 05:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87337-20120530194613.patch</filename>
            <type>text/plain</type>
            <size>10508</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxMzUxOTEzZDlkOWI4OWQ3NmI0ZjNhYTI5ZTk2YWI2ZWQ4MDAxOGYzLi5kMjNhNDM4MDQ4
NmJhODllN2E4MTcxMjI5YTk4OGY5ZjhiYTkwOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wNS0zMCAgQ2hyaXMgR3VhbiAgPGNocmlzLmd1
YW5AdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja2JlcnJ5XSBXZWJLaXQncyBm
dWxsc2NyZWVuIG1vZGUgbmVlZHMgdG8gbm90aWZ5IHBhZ2UgY2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODczMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlICJmdWxsU2NyZWVuVmlkZW9D
YXBhYmxlIiBpbiB3ZWJwYWdlUHJpdmF0ZSB0byBtYWtlIGNvZGUKKyAgICAgICAgY2xlYW4gZm9y
ICJmdWxsU2NyZWVuRm9yRWxlbWVudC9Ob2RlIiBvZiBDaHJvbWVDbGllbnRCbGFja2JlcnJ5LAor
ICAgICAgICBBbGwgVmlkZW8gY2hlY2tzIGFuZCBjb2RlIHBhdGggc2VsZWN0aW9ucyBhcmUgaW4g
d2VicGFnZVByaXZhdGUgbm93LgorICAgICAgICBGb3Igc29tZSBVWCBhbmQgc2VjdXJlIHJlYXNv
bnMsIHdlIGNvdWxkIG5vdCBhcHBseSBmdWxsc2NyZWVuIGNhcGFjaXR5CisgICAgICAgIGZvciBh
bGwgZWxlbWVudHMsIFNvIHdlIHVzZSBjbGllbnQncyBmdWxsc2NyZWVuU3RhcnQvU3RvcCBvbmx5
IGZvcgorICAgICAgICB0aG9zZSB2aWRlbyBlbGVtZW50cyBhbmQgdGhvc2UgZWxlbWVudHMgY29u
dGFpbmluZyB2aWRlbyB0YWdzLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dCk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4
aXRlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0Ojpj
b250YWluc1ZpZGVvVGFncyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAg
ICAgICogQXBpL1dlYlBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KToKKwogMjAxMi0wNS0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBbUXRdIFNldCBXZWJDb3JlIGltYWdlZGVjb2RlcnMgYXMgZGVmYXVs
dCBhbmQgYWRkIGZhbGxiYWNrIHRvIFFJbWFnZURlY29kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDZkYWQ4ZGRhMWU3ZWFlNGUwNjlkY2I4NmUwNWI1Y2Fk
NzliZDY1MDIuLjRkMmU5OWM3YTdiNmRkOGMzMzhlZjczYmVjZWJmNTc3MDRlMTdiNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMTU5LDggKzE1OSw4IEBA
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0jaW5jbHVkZSAi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHckNvbnRleHQuaCIKKyNpbmNs
dWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0yMjU5LDcgKzIyNTksNyBAQCBQbGF0Zm9ybTo6V2Vi
Q29udGV4dCBXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVn
eSBzdHJhdGVneQogICAgIH0KIAogICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpIHsKLSAgICAg
ICAgVGV4dCogY3VyVGV4dCA9IHN0YXRpY19jYXN0PFRleHQqPihub2RlLmdldCgpKTsKKyAgICAg
ICAgVGV4dCogY3VyVGV4dCA9IHRvVGV4dChub2RlLmdldCgpKTsKICAgICAgICAgaWYgKCFjdXJU
ZXh0LT53aG9sZVRleHQoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250ZXh0LnNldFRleHQo
Y3VyVGV4dC0+d2hvbGVUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQpAQCAtNTQ3OSw4ICs1
NDc5LDE0IEBAIHZvaWQgV2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVkKGJvb2wg
ZG9uZSkKIHsKICAgICBVTlVTRURfUEFSQU0oZG9uZSk7CiAjaWYgRU5BQkxFKFZJREVPKQotICAg
IGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVk
aWFFbGVtZW50Kj4oZC0+bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgpKSkKLSAgICAgICAgbWVk
aWFFbGVtZW50LT5leGl0RnVsbHNjcmVlbigpOworICAgIGlmIChkLT5tX3dlYlNldHRpbmdzLT5m
dWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihkLT5tX2Z1bGxz
Y3JlZW5WaWRlb05vZGUuZ2V0KCkpKQorICAgICAgICAgICAgbWVkaWFFbGVtZW50LT5leGl0RnVs
bHNjcmVlbigpOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
ICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZC0+bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgp
KS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworI2VuZGlmCisgICAgfQog
I2VuZGlmCiB9CiAKQEAgLTYwMzMsNiArNjAzOSw4NyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpl
eGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQorLy8gVE9ETzogV2Ugc2hvdWxkIHJlbW92ZSB0aGVzZSB0d28gaGVs
cGVyIGNsYXNzZXMgd2hlbiB3ZSBkZWNpZGUgdG8gc3VwcG9ydCBhbGwgZWxlbWVudHMuCitzdGF0
aWMgYm9vbCBjb250YWluc1ZpZGVvVGFncyhGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFmcmFt
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gU2VhcmNoIGZvciBhIHZpZGVvIGVs
ZW1lbnQgaW4gdGhpcyBkb2N1bWVudC4KKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKTsKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBkb2N1bWVudC0+Zmlyc3RDaGlsZCgp
OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShkb2N1bWVudCkpIHsKKyAgICAg
ICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBEbyB0aGUgc2FtZSBmb3IgdGhlIG5l
c3RlZCBmcmFtZXMuCisgICAgZm9yIChGcmFtZSogY2hpbGQgPSBmcmFtZS0+dHJlZSgpLT5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpIHsK
KyAgICAgICAgaWYgKGNvbnRhaW5zVmlkZW9UYWdzKGNoaWxkKSkKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGNvbnRh
aW5zVmlkZW9UYWdzKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZm9yIChOb2RlKiBub2RlID0g
ZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9k
ZShlbGVtZW50KSkgeworICAgICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OnZpZGVvVGFnKQorICAgICAgICAgICB8fCAobm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpCisg
ICAgICAgICAgICAgICAmJiBjb250YWluc1ZpZGVvVGFncyhzdGF0aWNfY2FzdDxjb25zdCBIVE1M
RnJhbWVPd25lckVsZW1lbnQqPihub2RlKS0+Y29udGVudEZyYW1lKCkpKSkgeworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIC8vIFRPRE86IFdlIHNob3VsZCBu
b3QgY2hlY2sgdmlkZW8gdGFnIHdoZW4gd2UgZGVjaWRlIHRvIHN1cHBvcnQgYWxsIGVsZW1lbnRz
LgorICAgIGlmICghZWxlbWVudCB8fCAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2
aWRlb1RhZykgJiYgIWNvbnRhaW5zVmlkZW9UYWdzKGVsZW1lbnQpKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKKyAg
ICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8g
d2lkZ2V0IGl0IHdhbnRzIHRvCisgICAgICAgIC8vIHVzZSwgYW5kIHRoaXMgaXMgYSB2aWRlbyBl
bGVtZW50LiBUaGUgb25seSByZWFzb24gdGhhdAorICAgICAgICAvLyB3ZWJraXRXaWxsRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudCgpIGFuZAorICAgICAgICAvLyB3ZWJraXREaWRFbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KCkgYXJlIHN0aWxsIGNhbGxlZCBpbiB0aGlzIGNhc2UKKyAgICAgICAg
Ly8gaXMgc28gdGhhdCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKSBnZXRzIGNhbGxlZCBsYXRl
ci4KKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICAvLyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2
YWlsYWJsZSBieSB0aGUgQnJvd3NlcgorICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90
IGEgdmlkZW8gZWxlbWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCisgICAgICAgIC8v
IEphdmFzY3JpcHQgY2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCisgICAgICAg
IC8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgaGlkZSB0aGUgYnJvd3NlcidzIGNocm9tZSBpZiB3
ZSB3YW50ZWQgdG8uCisgICAgICAgIGNsaWVudCgpLT5mdWxsc2NyZWVuU3RhcnQoKTsKKyAgICAg
ICAgbV9mdWxsc2NyZWVuVmlkZW9Ob2RlID0gZWxlbWVudDsKKyAgICB9CisjZW5kaWYKK30KKwor
dm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVs
ZW1lbnQpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIC8vIFRPRE86IFdlIHNob3VsZCBub3Qg
Y2hlY2sgdmlkZW8gdGFnIHdoZW4gd2UgZGVjaWRlIHRvIHN1cHBvcnQgYWxsIGVsZW1lbnRzLgor
ICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVv
VGFnKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVu
VmlkZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMg
b3duIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0LgorICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5v
ZGUoZWxlbWVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB3ZSB3
b3VsZCByZXN0b3JlIHRoZSBicm93c2VyJ3MgY2hyb21lCisgICAgICAgIC8vIGlmIGhpZGRlbiBh
Ym92ZS4KKyAgICAgICAgY2xpZW50KCktPmZ1bGxzY3JlZW5TdG9wKCk7CisgICAgICAgIG1fZnVs
bHNjcmVlblZpZGVvTm9kZSA9IDA7CisgICAgfQorI2VuZGlmCit9CisjZW5kaWYKKwogdm9pZCBX
ZWJQYWdlUHJpdmF0ZTo6ZGlkQ2hhbmdlU2V0dGluZ3MoV2ViU2V0dGluZ3MqIHdlYlNldHRpbmdz
KQogewogICAgIFNldHRpbmdzKiBjb3JlU2V0dGluZ3MgPSBtX3BhZ2UtPnNldHRpbmdzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCmluZGV4IGI4OTU0
MGY1NmY1Y2ZhMWZiMmM0YzI3ZTE3NTIxMzNkYjM1YWYzMGYuLjhlZTEwMjg1MjM3Yzg2OGRmNjhi
ZWFkYjU4OTE4YTM2OTg5ZTIzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZUNsaWVudC5oCkBAIC0yMzEsNiArMjMxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBkb3dubG9hZEFsbG93ZWQoY29uc3QgY2hhciogdXJsKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRvd25sb2FkUmVxdWVzdGVkKFBsYXRmb3JtOjpGaWx0ZXJTdHJlYW0qLCBjb25zdCBXZWJT
dHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGludCBmdWxsc2Ny
ZWVuU3RhcnQoKSA9IDA7CiAgICAgdmlydHVhbCBpbnQgZnVsbHNjcmVlblN0YXJ0KGNvbnN0IGNo
YXIqIGNvbnRleHROYW1lLCBQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyosIHVuc2lnbmVkIHgs
IHVuc2lnbmVkIHksIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpID0gMDsKIAogICAg
IHZpcnR1YWwgaW50IGZ1bGxzY3JlZW5TdG9wKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggYThiMWExYTA1MjBlNjdjYmQ5ZDUwYTE1ZTYyNjI2ZTYx
MjBjZDQ3MC4uNDE5Y2U1MDA4YjM3MWI0NWYxMTJmYzU4YjBjMjdiMjdhZmEwMDMzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC00MCw2ICs0MCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dG9maWxsTWFuYWdlcjsKIGNsYXNzIERPTVdyYXBw
ZXJXb3JsZDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeTsKIGNsYXNzIEphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnk7CkBAIC0xODksNiArMTkwLDEwIEBAIHB1YmxpYzoKICAg
ICAvLyBDYWxsZWQgZnJvbSB3aXRoaW4gV2ViS2l0IHZpYSBDaHJvbWVDbGllbnRCbGFja0JlcnJ5
LgogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CiAgICAg
dm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOworI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29y
ZTo6RWxlbWVudCopOworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKTsKKyNlbmRpZgogICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCBvdmVyZmxvd0V4Y2VlZHNDb250ZW50c1NpemUo
KSB7IG1fb3ZlcmZsb3dFeGNlZWRzQ29udGVudHNTaXplID0gdHJ1ZTsgfQogICAgIHZvaWQgbGF5
b3V0RmluaXNoZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBh
MmQ2YjRjMzM1YWRkNjdjMjY2ZWM5ZjlhMjk0YTgyNDllYTU0YmI1Li40MTk5NjM5ZDRhODRhYzc2
YTkyMThkOWViYTE4YTRhMjcxMTU1ZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVy
cnkuY3BwCkBAIC03MjcsMzIgKzcyNywxNCBAQCBib29sIENocm9tZUNsaWVudEJsYWNrQmVycnk6
OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudAogdm9p
ZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Ci0gICAgaWYgKHN1cHBvcnRz
RnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCkgJiYgbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0
aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpKSB7Ci0gICAgICAgIC8vIFRoZSBCcm93c2Vy
IGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBpdCB3YW50cyB0bwot
ICAgICAgICAvLyB1c2UsIGFuZCB0aGlzIGlzIGEgdmlkZW8gZWxlbWVudC4gVGhlIG9ubHkgcmVh
c29uIHRoYXQKLSAgICAgICAgLy8gd2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
KSBhbmQKLSAgICAgICAgLy8gd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGFy
ZSBzdGlsbCBjYWxsZWQgaW4gdGhpcyBjYXNlCi0gICAgICAgIC8vIGlzIHNvIHRoYXQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KCkgZ2V0cyBjYWxsZWQgbGF0ZXIuCi0gICAgICAgIGVudGVyRnVs
bHNjcmVlbkZvck5vZGUoZWxlbWVudCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gTm8gZnVs
bHNjcmVlbiB2aWRlbyB3aWRnZXQgaGFzIGJlZW4gbWFkZSBhdmFpbGFibGUgYnkgdGhlIEJyb3dz
ZXIKLSAgICAgICAgLy8gY2hyb21lLCBvciB0aGlzIGlzIG5vdCBhIHZpZGVvIGVsZW1lbnQuIFRo
ZSB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbgotICAgICAgICAvLyBKYXZhc2NyaXB0IGNhbGwgaXMg
b2Z0ZW4gbWFkZSBvbiBhIGRpdiBlbGVtZW50LgotICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdl
IHdvdWxkIGhpZGUgdGhlIGJyb3dzZXIncyBjaHJvbWUgaWYgd2Ugd2FudGVkIHRvLgotICAgIH0K
KyAgICBtX3dlYlBhZ2VQcml2YXRlLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQp
OwogICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoZWxlbWVudCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVt
ZW50KTsKLSAgICBpZiAoc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KSAmJiBtX3dl
YlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsK
LSAgICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlk
ZW8gd2lkZ2V0LgotICAgICAgICBleGl0RnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCByZXN0b3JlIHRoZSBi
cm93c2VyJ3MgY2hyb21lCi0gICAgICAgIC8vIGlmIGhpZGRlbiBhYm92ZS4KLSAgICB9CisgICAg
bV93ZWJQYWdlUHJpdmF0ZS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwogICAg
IGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChl
bGVtZW50KTsKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144786</attachid>
            <date>2012-05-30 05:22:32 -0700</date>
            <delta_ts>2012-05-30 22:46:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87337-20120530202229.patch</filename>
            <type>text/plain</type>
            <size>9610</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAxMzUxOTEzZDlkOWI4OWQ3NmI0ZjNhYTI5ZTk2YWI2ZWQ4MDAxOGYzLi5kMjNhNDM4MDQ4
NmJhODllN2E4MTcxMjI5YTk4OGY5ZjhiYTkwOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wNS0zMCAgQ2hyaXMgR3VhbiAgPGNocmlzLmd1
YW5AdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja2JlcnJ5XSBXZWJLaXQncyBm
dWxsc2NyZWVuIG1vZGUgbmVlZHMgdG8gbm90aWZ5IHBhZ2UgY2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODczMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlICJmdWxsU2NyZWVuVmlkZW9D
YXBhYmxlIiBpbiB3ZWJwYWdlUHJpdmF0ZSB0byBtYWtlIGNvZGUKKyAgICAgICAgY2xlYW4gZm9y
ICJmdWxsU2NyZWVuRm9yRWxlbWVudC9Ob2RlIiBvZiBDaHJvbWVDbGllbnRCbGFja2JlcnJ5LAor
ICAgICAgICBBbGwgVmlkZW8gY2hlY2tzIGFuZCBjb2RlIHBhdGggc2VsZWN0aW9ucyBhcmUgaW4g
d2VicGFnZVByaXZhdGUgbm93LgorICAgICAgICBGb3Igc29tZSBVWCBhbmQgc2VjdXJlIHJlYXNv
bnMsIHdlIGNvdWxkIG5vdCBhcHBseSBmdWxsc2NyZWVuIGNhcGFjaXR5CisgICAgICAgIGZvciBh
bGwgZWxlbWVudHMsIFNvIHdlIHVzZSBjbGllbnQncyBmdWxsc2NyZWVuU3RhcnQvU3RvcCBvbmx5
IGZvcgorICAgICAgICB0aG9zZSB2aWRlbyBlbGVtZW50cyBhbmQgdGhvc2UgZWxlbWVudHMgY29u
dGFpbmluZyB2aWRlbyB0YWdzLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dCk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4
aXRlZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0Ojpj
b250YWluc1ZpZGVvVGFncyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQ
cml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAg
ICAgICogQXBpL1dlYlBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KToKKwogMjAxMi0wNS0zMCAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBbUXRdIFNldCBXZWJDb3JlIGltYWdlZGVjb2RlcnMgYXMgZGVmYXVs
dCBhbmQgYWRkIGZhbGxiYWNrIHRvIFFJbWFnZURlY29kZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IDZkYWQ4ZGRhMWU3ZWFlNGUwNjlkY2I4NmUwNWI1Y2Fk
NzliZDY1MDIuLmY3NzcyZmRmNjBkODBjNTU5MzgyMWY3MTg2OTk3OWQ1Njc0ODk3YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtMTU5LDggKzE1OSw4IEBA
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0jaW5jbHVkZSAi
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJHckNvbnRleHQuaCIKKyNpbmNs
dWRlICJTaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0yMjU5LDcgKzIyNTksNyBAQCBQbGF0Zm9ybTo6V2Vi
Q29udGV4dCBXZWJQYWdlUHJpdmF0ZTo6d2ViQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVn
eSBzdHJhdGVneQogICAgIH0KIAogICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpIHsKLSAgICAg
ICAgVGV4dCogY3VyVGV4dCA9IHN0YXRpY19jYXN0PFRleHQqPihub2RlLmdldCgpKTsKKyAgICAg
ICAgVGV4dCogY3VyVGV4dCA9IHRvVGV4dChub2RlLmdldCgpKTsKICAgICAgICAgaWYgKCFjdXJU
ZXh0LT53aG9sZVRleHQoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250ZXh0LnNldFRleHQo
Y3VyVGV4dC0+d2hvbGVUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQpAQCAtNTQ3OSw4ICs1
NDc5LDE0IEBAIHZvaWQgV2ViUGFnZTo6bm90aWZ5RnVsbFNjcmVlblZpZGVvRXhpdGVkKGJvb2wg
ZG9uZSkKIHsKICAgICBVTlVTRURfUEFSQU0oZG9uZSk7CiAjaWYgRU5BQkxFKFZJREVPKQotICAg
IGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVk
aWFFbGVtZW50Kj4oZC0+bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgpKSkKLSAgICAgICAgbWVk
aWFFbGVtZW50LT5leGl0RnVsbHNjcmVlbigpOworICAgIGlmIChkLT5tX3dlYlNldHRpbmdzLT5m
dWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihkLT5tX2Z1bGxz
Y3JlZW5WaWRlb05vZGUuZ2V0KCkpKQorICAgICAgICAgICAgbWVkaWFFbGVtZW50LT5leGl0RnVs
bHNjcmVlbigpOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
ICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oZC0+bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgp
KS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworI2VuZGlmCisgICAgfQog
I2VuZGlmCiB9CiAKQEAgLTYwMzMsNiArNjAzOSw2MCBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpl
eGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQorLy8gVE9ETzogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIGhlbHBlciBj
bGFzcyB3aGVuIHdlIGRlY2lkZSB0byBzdXBwb3J0IGFsbCBlbGVtZW50cy4KK3N0YXRpYyBib29s
IGNvbnRhaW5zVmlkZW9UYWdzKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZm9yIChOb2RlKiBu
b2RlID0gZWxlbWVudC0+Zmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VO
ZXh0Tm9kZShlbGVtZW50KSkgeworICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnZpZGVvVGFnKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViUGFnZVByaXZhdGU6OmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgLy8gVE9E
TzogV2Ugc2hvdWxkIG5vdCBjaGVjayB2aWRlbyB0YWcgd2hlbiB3ZSBkZWNpZGUgdG8gc3VwcG9y
dCBhbGwgZWxlbWVudHMuCisgICAgaWYgKCFlbGVtZW50IHx8ICghZWxlbWVudC0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiAhY29udGFpbnNWaWRlb1RhZ3MoZWxlbWVudCkpKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0Nh
cGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVs
bHNjcmVlbiB2aWRlbyB3aWRnZXQgaXQgd2FudHMgdG8KKyAgICAgICAgLy8gdXNlLCBhbmQgdGhp
cyBpcyBhIHZpZGVvIGVsZW1lbnQuIFRoZSBvbmx5IHJlYXNvbiB0aGF0CisgICAgICAgIC8vIHdl
YmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCkgYW5kCisgICAgICAgIC8vIHdlYmtp
dERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKSBhcmUgc3RpbGwgY2FsbGVkIGluIHRoaXMg
Y2FzZQorICAgICAgICAvLyBpcyBzbyB0aGF0IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGdl
dHMgY2FsbGVkIGxhdGVyLgorICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5vIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGhh
cyBiZWVuIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBCcm93c2VyCisgICAgICAgIC8vIGNocm9tZSwg
b3IgdGhpcyBpcyBub3QgYSB2aWRlbyBlbGVtZW50LiBUaGUgd2Via2l0UmVxdWVzdEZ1bGxTY3Jl
ZW4KKyAgICAgICAgLy8gSmF2YXNjcmlwdCBjYWxsIGlzIG9mdGVuIG1hZGUgb24gYSBkaXYgZWxl
bWVudC4KKyAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB3ZSB3b3VsZCBoaWRlIHRoZSBicm93c2Vy
J3MgY2hyb21lIGlmIHdlIHdhbnRlZCB0by4KKyAgICAgICAgY2xpZW50KCktPmZ1bGxzY3JlZW5T
dGFydCgpOworICAgICAgICBtX2Z1bGxzY3JlZW5WaWRlb05vZGUgPSBlbGVtZW50OworICAgIH0K
KyNlbmRpZgorfQorCit2b2lkIFdlYlBhZ2VQcml2YXRlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgLy8gVE9ETzog
V2Ugc2hvdWxkIG5vdCBjaGVjayB2aWRlbyB0YWcgd2hlbiB3ZSBkZWNpZGUgdG8gc3VwcG9ydCBh
bGwgZWxlbWVudHMuCisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6dmlkZW9UYWcpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fd2ViU2V0dGlu
Z3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSkgeworICAgICAgICAvLyBUaGUgQnJvd3NlciBj
aHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCisgICAgICAgIGV4aXRG
dWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlz
IGlzIHdoZXJlIHdlIHdvdWxkIHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKKyAgICAgICAg
Ly8gaWYgaGlkZGVuIGFib3ZlLgorICAgICAgICBjbGllbnQoKS0+ZnVsbHNjcmVlblN0b3AoKTsK
KyAgICAgICAgbV9mdWxsc2NyZWVuVmlkZW9Ob2RlID0gMDsKKyAgICB9CisjZW5kaWYKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlBhZ2VQcml2YXRlOjpkaWRDaGFuZ2VTZXR0aW5ncyhXZWJTZXR0aW5n
cyogd2ViU2V0dGluZ3MpCiB7CiAgICAgU2V0dGluZ3MqIGNvcmVTZXR0aW5ncyA9IG1fcGFnZS0+
c2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50
LmgKaW5kZXggYjg5NTQwZjU2ZjVjZmExZmIyYzRjMjdlMTc1MjEzM2RiMzVhZjMwZi4uOGVlMTAy
ODUyMzdjODY4ZGY2OGJlYWRiNTg5MThhMzY5ODllMjM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKQEAgLTIzMSw2ICsyMzEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGRvd25sb2FkQWxsb3dlZChjb25zdCBjaGFyKiB1cmwpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUGxhdGZvcm06OkZpbHRlclN0cmVh
bSosIGNvbnN0IFdlYlN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpID0gMDsKIAorICAgIHZpcnR1
YWwgaW50IGZ1bGxzY3JlZW5TdGFydCgpID0gMDsKICAgICB2aXJ0dWFsIGludCBmdWxsc2NyZWVu
U3RhcnQoY29uc3QgY2hhciogY29udGV4dE5hbWUsIFBsYXRmb3JtOjpHcmFwaGljczo6V2luZG93
KiwgdW5zaWduZWQgeCwgdW5zaWduZWQgeSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdo
dCkgPSAwOwogCiAgICAgdmlydHVhbCBpbnQgZnVsbHNjcmVlblN0b3AoKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBhOGIxYTFhMDUyMGU2N2NiZDlk
NTBhMTVlNjI2MjZlNjEyMGNkNDcwLi40MTljZTUwMDhiMzcxYjQ1ZjExMmZjNThiMGMyN2IyN2Fm
YTAwMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Vf
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTQw
LDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXV0b2ZpbGxNYW5hZ2VyOwog
Y2xhc3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRnJhbWU7CiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5
OwogY2xhc3MgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTsKQEAgLTE4OSw2ICsxOTAsMTAg
QEAgcHVibGljOgogICAgIC8vIENhbGxlZCBmcm9tIHdpdGhpbiBXZWJLaXQgdmlhIENocm9tZUNs
aWVudEJsYWNrQmVycnkuCiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6
Ok5vZGUqKTsKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7
CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworI2VuZGlmCiAgICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIG92ZXJmbG93RXhjZWVk
c0NvbnRlbnRzU2l6ZSgpIHsgbV9vdmVyZmxvd0V4Y2VlZHNDb250ZW50c1NpemUgPSB0cnVlOyB9
CiAgICAgdm9pZCBsYXlvdXRGaW5pc2hlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVy
cnkuY3BwCmluZGV4IGEyZDZiNGMzMzVhZGQ2N2MyNjZlYzlmOWEyOTRhODI0OWVhNTRiYjUuLjQx
OTk2MzlkNGE4NGFjNzZhOTIxOGQ5ZWJhMThhNGEyNzExNTVlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTcyNywzMiArNzI3LDE0IEBAIGJvb2wgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3Jl
OjpFbGVtZW50CiB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBlbGVtZW50LT5kb2N1
bWVudCgpLT53ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKLSAg
ICBpZiAoc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KSAmJiBtX3dlYlBhZ2VQcml2
YXRlLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKLSAgICAgICAg
Ly8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0
IGl0IHdhbnRzIHRvCi0gICAgICAgIC8vIHVzZSwgYW5kIHRoaXMgaXMgYSB2aWRlbyBlbGVtZW50
LiBUaGUgb25seSByZWFzb24gdGhhdAotICAgICAgICAvLyB3ZWJraXRXaWxsRW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudCgpIGFuZAotICAgICAgICAvLyB3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KCkgYXJlIHN0aWxsIGNhbGxlZCBpbiB0aGlzIGNhc2UKLSAgICAgICAgLy8gaXMg
c28gdGhhdCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKSBnZXRzIGNhbGxlZCBsYXRlci4KLSAg
ICAgICAgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKLSAgICB9IGVsc2UgewotICAg
ICAgICAvLyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVlbiBtYWRlIGF2YWlsYWJs
ZSBieSB0aGUgQnJvd3NlcgotICAgICAgICAvLyBjaHJvbWUsIG9yIHRoaXMgaXMgbm90IGEgdmlk
ZW8gZWxlbWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCi0gICAgICAgIC8vIEphdmFz
Y3JpcHQgY2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQuCi0gICAgICAgIC8vIFRo
aXMgaXMgd2hlcmUgd2Ugd291bGQgaGlkZSB0aGUgYnJvd3NlcidzIGNocm9tZSBpZiB3ZSB3YW50
ZWQgdG8uCi0gICAgfQorICAgIG1fd2ViUGFnZVByaXZhdGUtPmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoZWxlbWVudCk7CiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRCbGFj
a0JlcnJ5OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKIHsKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOwotICAgIGlmIChzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVs
ZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRl
b0NhcGFibGUoKSkgewotICAgICAgICAvLyBUaGUgQnJvd3NlciBjaHJvbWUgaGFzIGl0cyBvd24g
ZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQuCi0gICAgICAgIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShl
bGVtZW50KTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxk
IHJlc3RvcmUgdGhlIGJyb3dzZXIncyBjaHJvbWUKLSAgICAgICAgLy8gaWYgaGlkZGVuIGFib3Zl
LgotICAgIH0KKyAgICBtX3dlYlBhZ2VQcml2YXRlLT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
ZWxlbWVudCk7CiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144992</attachid>
            <date>2012-05-30 22:46:53 -0700</date>
            <delta_ts>2012-05-31 10:33:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87337-20120531134650.patch</filename>
            <type>text/plain</type>
            <size>9657</size>
            <attacher name="Chris.Guan">logingx</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBmZGRjOTVmNDkyZWQ2ZmE3NWUzYmI5NzJkYjQzOGYwNmI5MGMwNTRmLi4xOGZmYTU2OGE2
OTYyYWQ3YmUwOGE0ODFlMmZiMmQxNjEzM2ZjZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0wNS0zMCAgQ2hyaXMgR3VhbiAgPGNocmlzLmd1
YW5AdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja2JlcnJ5XSBXZWJLaXQncyBm
dWxsc2NyZWVuIG1vZGUgbmVlZHMgdG8gbm90aWZ5IHBhZ2UgY2xpZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODczMzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlICJmdWxsU2NyZWVuVmlkZW9D
YXBhYmxlIiBpbnRvIHdlYnBhZ2VQcml2YXRlIHRvIG1ha2UgY29kZQorICAgICAgICBjbGVhbiBm
b3IgImZ1bGxTY3JlZW5Gb3JFbGVtZW50L05vZGUiIG9mIGNyb21lQ2xpZW50QmxhY2tiZXJyeSwK
KyAgICAgICAgQWxsIFZpZGVvIGNoZWNrcyBhbmQgY29kZSBwYXRoIHNlbGVjdGlvbnMgYXJlIGlu
IHdlYnBhZ2VQcml2YXRlIG5vdy4KKyAgICAgICAgRm9yIHNvbWUgVVggYW5kIHNlY3VyZSByZWFz
b25zLCB3ZSBjb3VsZCBub3QgYXBwbHkgZnVsbHNjcmVlbiBjYXBhY2l0eQorICAgICAgICBmb3Ig
YWxsIGVsZW1lbnRzLCBTbyB3ZSB1c2UgY2xpZW50J3MgZnVsbHNjcmVlblN0YXJ0L1N0b3Agb25s
eSBmb3IKKyAgICAgICAgdGhvc2UgdmlkZW8gZWxlbWVudHMgYW5kIHRob3NlIGVsZW1lbnRzIGNv
bnRhaW5pbmcgdmlkZW8gdGFncy4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OndlYkNvbnRleHQpOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpub3RpZnlGdWxsU2NyZWVuVmlkZW9F
eGl0ZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6
Y29udGFpbnNWaWRlb1RhZ3MpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAg
ICAgICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudCk6CisKIDIwMTItMDUtMzAgIEtvbnJhZCBQaWFzY2lrICA8a3BpYXNjaWtAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGFuIEFjY2VsZXJhdGVkIENvbXBvc2l0
aW5nIGxheWVyIGZvciBXZWIgSW5zcGVjdG9yIERPTSBoaWdobGlnaHQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCA1NmQ5YWU3YTVlNzNlOWE1ZjY5NWUyNDUy
YTY4Yzc3OWZiNzhkMzk4Li4wZGJkZGIxZmRlMGJmZDUyNzdiYWQ5NGMwZWUxYjBkNWQxMDM0YWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTE2MCw4ICsx
NjAsOCBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotI2lu
Y2x1ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiR3JDb250ZXh0Lmgi
CisjaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpAQCAtMjI2MCw3ICsyMjYwLDcgQEAgUGxhdGZv
cm06OldlYkNvbnRleHQgV2ViUGFnZVByaXZhdGU6OndlYkNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9u
U3RyYXRlZ3kgc3RyYXRlZ3kKICAgICB9CiAKICAgICBpZiAobm9kZS0+aXNUZXh0Tm9kZSgpKSB7
Ci0gICAgICAgIFRleHQqIGN1clRleHQgPSBzdGF0aWNfY2FzdDxUZXh0Kj4obm9kZS5nZXQoKSk7
CisgICAgICAgIFRleHQqIGN1clRleHQgPSB0b1RleHQobm9kZS5nZXQoKSk7CiAgICAgICAgIGlm
ICghY3VyVGV4dC0+d2hvbGVUZXh0KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGV4dC5z
ZXRUZXh0KGN1clRleHQtPndob2xlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KQEAgLTU0
ODIsOCArNTQ4MiwxNSBAQCB2b2lkIFdlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4aXRl
ZChib29sIGRvbmUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGRvbmUpOwogI2lmIEVOQUJMRShWSURF
TykKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gc3RhdGljX2Nhc3Q8
SFRNTE1lZGlhRWxlbWVudCo+KGQtPm1fZnVsbHNjcmVlblZpZGVvTm9kZS5nZXQoKSkpCi0gICAg
ICAgIG1lZGlhRWxlbWVudC0+ZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICBpZiAoZC0+bV93ZWJTZXR0
aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgpKSB7CisgICAgICAgIGlmIChIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4oZC0+
bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgpKSkKKyAgICAgICAgICAgIG1lZGlhRWxlbWVudC0+
ZXhpdEZ1bGxzY3JlZW4oKTsKKyAgICB9IGVsc2UgeworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKKyAgICAgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
ZC0+bV9mdWxsc2NyZWVuVmlkZW9Ob2RlLmdldCgpKSkKKyAgICAgICAgICAgIGVsZW1lbnQtPmRv
Y3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyNlbmRpZgorICAgIH0KICNlbmRp
ZgogfQogCkBAIC02MDM3LDYgKzYwNDQsNjAgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1
bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKKy8vIFRPRE86IFdlIHNob3VsZCByZW1vdmUgdGhpcyBoZWxwZXIgY2xhc3Mg
d2hlbiB3ZSBkZWNpZGUgdG8gc3VwcG9ydCBhbGwgZWxlbWVudHMuCitzdGF0aWMgYm9vbCBjb250
YWluc1ZpZGVvVGFncyhFbGVtZW50KiBlbGVtZW50KQoreworICAgIGZvciAoTm9kZSogbm9kZSA9
IGVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5v
ZGUoZWxlbWVudCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2
aWRlb1RhZykpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIC8vIFRPRE86IFdl
IHNob3VsZCBub3QgY2hlY2sgdmlkZW8gdGFnIHdoZW4gd2UgZGVjaWRlIHRvIHN1cHBvcnQgYWxs
IGVsZW1lbnRzLgorICAgIGlmICghZWxlbWVudCB8fCAoIWVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp2aWRlb1RhZykgJiYgIWNvbnRhaW5zVmlkZW9UYWdzKGVsZW1lbnQpKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmIChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxl
KCkpIHsKKyAgICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3Jl
ZW4gdmlkZW8gd2lkZ2V0IGl0IHdhbnRzIHRvCisgICAgICAgIC8vIHVzZSwgYW5kIHRoaXMgaXMg
YSB2aWRlbyBlbGVtZW50LiBUaGUgb25seSByZWFzb24gdGhhdAorICAgICAgICAvLyB3ZWJraXRX
aWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGFuZAorICAgICAgICAvLyB3ZWJraXREaWRF
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCkgYXJlIHN0aWxsIGNhbGxlZCBpbiB0aGlzIGNhc2UK
KyAgICAgICAgLy8gaXMgc28gdGhhdCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKSBnZXRzIGNh
bGxlZCBsYXRlci4KKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShlbGVtZW50KTsKKyAg
ICB9IGVsc2UgeworICAgICAgICAvLyBObyBmdWxsc2NyZWVuIHZpZGVvIHdpZGdldCBoYXMgYmVl
biBtYWRlIGF2YWlsYWJsZSBieSB0aGUgQnJvd3NlcgorICAgICAgICAvLyBjaHJvbWUsIG9yIHRo
aXMgaXMgbm90IGEgdmlkZW8gZWxlbWVudC4gVGhlIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuCisg
ICAgICAgIC8vIEphdmFzY3JpcHQgY2FsbCBpcyBvZnRlbiBtYWRlIG9uIGEgZGl2IGVsZW1lbnQu
CisgICAgICAgIC8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgaGlkZSB0aGUgYnJvd3NlcidzIGNo
cm9tZSBpZiB3ZSB3YW50ZWQgdG8uCisgICAgICAgIGNsaWVudCgpLT5mdWxsc2NyZWVuU3RhcnQo
KTsKKyAgICAgICAgbV9mdWxsc2NyZWVuVmlkZW9Ob2RlID0gZWxlbWVudDsKKyAgICB9CisjZW5k
aWYKK30KKwordm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIC8vIFRPRE86IFdlIHNo
b3VsZCBub3QgY2hlY2sgdmlkZW8gdGFnIHdoZW4gd2UgZGVjaWRlIHRvIHN1cHBvcnQgYWxsIGVs
ZW1lbnRzLgorICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnZpZGVvVGFnKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX3dlYlNldHRpbmdzLT5m
dWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkpIHsKKyAgICAgICAgLy8gVGhlIEJyb3dzZXIgY2hyb21l
IGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0LgorICAgICAgICBleGl0RnVsbHNj
cmVlbkZvck5vZGUoZWxlbWVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBpcyB3
aGVyZSB3ZSB3b3VsZCByZXN0b3JlIHRoZSBicm93c2VyJ3MgY2hyb21lCisgICAgICAgIC8vIGlm
IGhpZGRlbiBhYm92ZS4KKyAgICAgICAgY2xpZW50KCktPmZ1bGxzY3JlZW5TdG9wKCk7CisgICAg
ICAgIG1fZnVsbHNjcmVlblZpZGVvTm9kZSA9IDA7CisgICAgfQorI2VuZGlmCit9CisjZW5kaWYK
Kwogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6ZGlkQ2hhbmdlU2V0dGluZ3MoV2ViU2V0dGluZ3MqIHdl
YlNldHRpbmdzKQogewogICAgIFNldHRpbmdzKiBjb3JlU2V0dGluZ3MgPSBtX3BhZ2UtPnNldHRp
bmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCmlu
ZGV4IGI4OTU0MGY1NmY1Y2ZhMWZiMmM0YzI3ZTE3NTIxMzNkYjM1YWYzMGYuLjhlZTEwMjg1MjM3
Yzg2OGRmNjhiZWFkYjU4OTE4YTM2OTg5ZTIzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oCkBAIC0yMzEsNiArMjMxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBkb3dubG9hZEFsbG93ZWQoY29uc3QgY2hhciogdXJsKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFBsYXRmb3JtOjpGaWx0ZXJTdHJlYW0qLCBj
b25zdCBXZWJTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGlu
dCBmdWxsc2NyZWVuU3RhcnQoKSA9IDA7CiAgICAgdmlydHVhbCBpbnQgZnVsbHNjcmVlblN0YXJ0
KGNvbnN0IGNoYXIqIGNvbnRleHROYW1lLCBQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyosIHVu
c2lnbmVkIHgsIHVuc2lnbmVkIHksIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpID0g
MDsKIAogICAgIHZpcnR1YWwgaW50IGZ1bGxzY3JlZW5TdG9wKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggMGIyYjE4NGVjMmFkODU3OWUxNmE5ZDZk
NTAyNTM1NWI3MmY3OWVhYi4uNzNkZjhjYmRiNjdkMzA2MzRjNTY4NmNlZGVhNTY0MTc3NzNkOWJh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCkBAIC00MSw2ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1dG9maWxsTWFuYWdlcjsKIGNsYXNz
IERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKIGNsYXNz
IEZyYW1lOwogY2xhc3MgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeTsKIGNs
YXNzIEdyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5OwpAQCAtMTkxLDYgKzE5MiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gQ2FsbGVkIGZyb20gd2l0aGluIFdlYktpdCB2aWEgQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS4KICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwog
ICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKKyNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50Kik7CisjZW5kaWYKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgb3ZlcmZsb3dFeGNlZWRzQ29udGVudHNT
aXplKCkgeyBtX292ZXJmbG93RXhjZWVkc0NvbnRlbnRzU2l6ZSA9IHRydWU7IH0KICAgICB2b2lk
IGxheW91dEZpbmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5k
ZXggYTJkNmI0YzMzNWFkZDY3YzI2NmVjOWY5YTI5NGE4MjQ5ZWE1NGJiNS4uNDE5OTYzOWQ0YTg0
YWM3NmE5MjE4ZDllYmExOGE0YTI3MTE1NWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFj
a0JlcnJ5LmNwcApAQCAtNzI3LDMyICs3MjcsMTQgQEAgYm9vbCBDaHJvbWVDbGllbnRCbGFja0Jl
cnJ5OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQK
IHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChX
ZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQogewogICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPndl
YmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwotICAgIGlmIChzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpICYmIG1fd2ViUGFnZVByaXZhdGUtPm1fd2Vi
U2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSkgewotICAgICAgICAvLyBUaGUgQnJv
d3NlciBjaHJvbWUgaGFzIGl0cyBvd24gZnVsbHNjcmVlbiB2aWRlbyB3aWRnZXQgaXQgd2FudHMg
dG8KLSAgICAgICAgLy8gdXNlLCBhbmQgdGhpcyBpcyBhIHZpZGVvIGVsZW1lbnQuIFRoZSBvbmx5
IHJlYXNvbiB0aGF0Ci0gICAgICAgIC8vIHdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KCkgYW5kCi0gICAgICAgIC8vIHdlYmtpdERpZEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
KSBhcmUgc3RpbGwgY2FsbGVkIGluIHRoaXMgY2FzZQotICAgICAgICAvLyBpcyBzbyB0aGF0IGV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgpIGdldHMgY2FsbGVkIGxhdGVyLgotICAgICAgICBlbnRl
ckZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIE5v
IGZ1bGxzY3JlZW4gdmlkZW8gd2lkZ2V0IGhhcyBiZWVuIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBC
cm93c2VyCi0gICAgICAgIC8vIGNocm9tZSwgb3IgdGhpcyBpcyBub3QgYSB2aWRlbyBlbGVtZW50
LiBUaGUgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4KLSAgICAgICAgLy8gSmF2YXNjcmlwdCBjYWxs
IGlzIG9mdGVuIG1hZGUgb24gYSBkaXYgZWxlbWVudC4KLSAgICAgICAgLy8gVGhpcyBpcyB3aGVy
ZSB3ZSB3b3VsZCBoaWRlIHRoZSBicm93c2VyJ3MgY2hyb21lIGlmIHdlIHdhbnRlZCB0by4KLSAg
ICB9CisgICAgbV93ZWJQYWdlUHJpdmF0ZS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVt
ZW50KTsKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOwogfQogCiB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQogewogICAg
IGVsZW1lbnQtPmRvY3VtZW50KCktPndlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
ZWxlbWVudCk7Ci0gICAgaWYgKHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoZWxlbWVudCkgJiYg
bV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+ZnVsbFNjcmVlblZpZGVvQ2FwYWJsZSgp
KSB7Ci0gICAgICAgIC8vIFRoZSBCcm93c2VyIGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2NyZWVu
IHZpZGVvIHdpZGdldC4KLSAgICAgICAgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgd2hlcmUgd2Ugd291bGQgcmVzdG9yZSB0
aGUgYnJvd3NlcidzIGNocm9tZQotICAgICAgICAvLyBpZiBoaWRkZW4gYWJvdmUuCi0gICAgfQor
ICAgIG1fd2ViUGFnZVByaXZhdGUtPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsK
ICAgICBlbGVtZW50LT5kb2N1bWVudCgpLT53ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoZWxlbWVudCk7CiB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>