<?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>80519</bug_id>
          
          <creation_ts>2012-03-07 10:17:23 -0800</creation_ts>
          <short_desc>[BlackBerry] Set ResourceRequest TargetType in WebPagePrivate::load()</short_desc>
          <delta_ts>2012-04-02 14:15:45 -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>
          <dependson>80713</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Lyon Chen">liachen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>572989</commentid>
    <comment_count>0</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 10:17:23 -0800</bug_when>
    <thetext>Right now the TargetType of ResourceRequest for main load is not set, set them in WebPagePrivate::load().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572997</commentid>
    <comment_count>1</comment_count>
      <attachid>130644</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 10:27:16 -0800</bug_when>
    <thetext>Created attachment 130644
Patch for 80519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573035</commentid>
    <comment_count>2</comment_count>
      <attachid>130653</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 11:20:17 -0800</bug_when>
    <thetext>Created attachment 130653
Updated patch to set correct target type for WebKit internal loads too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573054</commentid>
    <comment_count>3</comment_count>
      <attachid>130653</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-03-07 11:33:20 -0800</bug_when>
    <thetext>Comment on attachment 130653
Updated patch to set correct target type for WebKit internal loads too.

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1223
&gt; +#if PLATFORM(BLACKBERRY)
&gt; +    Frame* loadframe = targetFrame ? targetFrame : frame();
&gt; +    if (loadframe-&gt;page()-&gt;mainFrame() == loadframe)
&gt; +        request.setTargetType(ResourceRequest::TargetIsMainFrame);
&gt; +    else
&gt; +        request.setTargetType(ResourceRequest::TargetIsSubframe);
&gt; +#endif
&gt; +

Is there any way we can set this somewhere other than FrameLoader, preferably somewhere that doesn&apos;t require an #if PLATFORM()? chromium, e.g., does this in its FrameLoaderClientImpl::dispatchWillSendRequest().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573096</commentid>
    <comment_count>4</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-07 12:00:53 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Is there any way we can set this somewhere other than FrameLoader, preferably somewhere that doesn&apos;t require an #if PLATFORM()? chromium, e.g., does this in its FrameLoaderClientImpl::dispatchWillSendRequest().

We do this too right now.  This patch should remove the existing code from dispatchWillSendRequest as well as adding it to FrameLoader.  (If we decide it&apos;s a good idea at all.)

The problem is then we have to be very careful not to check the targetType before it&apos;s actually set, such as from dispatchDecidePolicyForResponse.  Which can be done, but arranging things so we don&apos;t have to be that vigilant is good defensive programming.

I&apos;m not happy with the ifdef myself - we should make another try to find a better solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573110</commentid>
    <comment_count>5</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 12:23:37 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; Is there any way we can set this somewhere other than FrameLoader, preferably somewhere that doesn&apos;t require an #if PLATFORM()? chromium, e.g., does this in its FrameLoaderClientImpl::dispatchWillSendRequest().

The problem is FrameLoaderClientImpl::dispatchWillSendRequest() is too late a place to set target type. FrameLoaderClient::dispatchDecidePolicyForNavigationAction() could check the target type too, and it is called before dispatchWillSendRequest().

We can avoid check target type in dispatchDecidePolicyForNavigationAction(), or any other places before dispatchWillSendRequest() is called, but it will create a implicit situation that you need to know when the target type is set, not just assuming it is always right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573113</commentid>
    <comment_count>6</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 12:26:15 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; The problem is then we have to be very careful not to check the targetType before it&apos;s actually set, such as from dispatchDecidePolicyForResponse.  Which can be done, but arranging things so we don&apos;t have to be that vigilant is good defensive programming.

Yeah, the problem is, if we put these code elsewhere, not the places the ResourceRequest is created, we create the situation we need to know when the target type is set and trustable, not sure it is worth to pay this to avoid the #if PLATFORM stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573123</commentid>
    <comment_count>7</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-07 12:37:13 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; Is there any way we can set this somewhere other than FrameLoader, preferably somewhere that doesn&apos;t require an #if PLATFORM()? chromium, e.g., does this in its FrameLoaderClientImpl::dispatchWillSendRequest().
&gt; 
&gt; The problem is FrameLoaderClientImpl::dispatchWillSendRequest() is too late a place to set target type. FrameLoaderClient::dispatchDecidePolicyForNavigationAction() could check the target type too, and it is called before dispatchWillSendRequest().

can we have asserts to make sure no one is calling it at too late moment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573125</commentid>
    <comment_count>8</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-07 12:37:46 -0800</bug_when>
    <thetext>Nate, any suggestion based on the above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573141</commentid>
    <comment_count>9</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 12:51:20 -0800</bug_when>
    <thetext>(In reply to comment #7)

&gt; can we have asserts to make sure no one is calling it at too late moment?

Actually we have assertion in upstream code now. It is just we check the target type in dispatchDecidePolicyForNavigationAction() and other policy methods. We need to re-implement them if we want to avoid the #ifdef thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573143</commentid>
    <comment_count>10</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-03-07 12:52:37 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Nate, any suggestion based on the above?

Both ifdefs and new code in FrameLoader are good to avoid when possible, so I just wanted to make sure other alternatives had been considered. :)

I&apos;m not immediately seeing a good alternative, so I won&apos;t fight this as written (though it&apos;d be great if a FIXME were included).

It might be good to give abarth a chance to comment, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573151</commentid>
    <comment_count>11</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 13:03:56 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; It might be good to give abarth a chance to comment, too.

Thanks, pinged abarth on #webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573385</commentid>
    <comment_count>12</comment_count>
      <attachid>130653</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-07 17:09:32 -0800</bug_when>
    <thetext>Comment on attachment 130653
Updated patch to set correct target type for WebKit internal loads too.

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

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1223
&gt;&gt; +#if PLATFORM(BLACKBERRY)
&gt;&gt; +    Frame* loadframe = targetFrame ? targetFrame : frame();
&gt;&gt; +    if (loadframe-&gt;page()-&gt;mainFrame() == loadframe)
&gt;&gt; +        request.setTargetType(ResourceRequest::TargetIsMainFrame);
&gt;&gt; +    else
&gt;&gt; +        request.setTargetType(ResourceRequest::TargetIsSubframe);
&gt;&gt; +#endif
&gt;&gt; +
&gt; 
&gt; Is there any way we can set this somewhere other than FrameLoader, preferably somewhere that doesn&apos;t require an #if PLATFORM()? chromium, e.g., does this in its FrameLoaderClientImpl::dispatchWillSendRequest().

We don&apos;t want to have PLATFORM-specific ifdefs in FrameLoader.   We have a few of them, but they are mostly sadness.  The Chromium port uses TargetType.  How does it avoid needing this code here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573423</commentid>
    <comment_count>13</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-03-07 17:52:12 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; We don&apos;t want to have PLATFORM-specific ifdefs in FrameLoader.   We have a few of them, but they are mostly sadness.  The Chromium port uses TargetType.  How does it avoid needing this code here?

I think the Chromium port has the same design flaw, but happens to have not tried to read TargetType in any methods that are called before dispatchWillSendRequest to it hasn&apos;t hit them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573439</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-07 18:06:47 -0800</bug_when>
    <thetext>Wouldn&apos;t this code then be needed for PLATFORM(CHROMIUM) as well?  I&apos;ve added jochen to the CC list since he understands TargetType better than I do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573478</commentid>
    <comment_count>15</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-07 19:00:31 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Wouldn&apos;t this code then be needed for PLATFORM(CHROMIUM) as well?  I&apos;ve added jochen to the CC list since he understands TargetType better than I do.

Yes, I think logically CHROMIUM need this code as well to make the TargetType always correct, but I am not sure how ResourceRequest::TargetType is used in Chromium, so not sure whether Chromium needs it here in real world.

But the way Chromium does it, setting TargetType in FrameLoaderClient::dispatchWillSendRequest(), leaves a gap when the target type has a default value, and in this gap, FrameLoadClient::dispatchDecidePolicyForXXX() is called, if the FrameLoaderClient decides to check TargetType in these methods, there will be a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573778</commentid>
    <comment_count>16</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-08 05:24:14 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Wouldn&apos;t this code then be needed for PLATFORM(CHROMIUM) as well?  I&apos;ve added jochen to the CC list since he understands TargetType better than I do.
&gt; 
&gt; Yes, I think logically CHROMIUM need this code as well to make the TargetType always correct, but I am not sure how ResourceRequest::TargetType is used in Chromium, so not sure whether Chromium needs it here in real world.
&gt; 
&gt; But the way Chromium does it, setting TargetType in FrameLoaderClient::dispatchWillSendRequest(), leaves a gap when the target type has a default value, and in this gap, FrameLoadClient::dispatchDecidePolicyForXXX() is called, if the FrameLoaderClient decides to check TargetType in these methods, there will be a problem.

In the chromium port, the target type is not set correctly in lots of different places. However, I think the correct solution to this problem is to move TargetType out of ResourceRequest, and have all calls that pass a ResourceRequest around in loader/ also take a TargetType parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573800</commentid>
    <comment_count>17</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 06:34:49 -0800</bug_when>
    <thetext>(In reply to comment #16)

&gt; In the chromium port, the target type is not set correctly in lots of different places. However, I think the correct solution to this problem is to move TargetType out of ResourceRequest, and have all calls that pass a ResourceRequest around in loader/ also take a TargetType parameter.

The problem in moving TargetType out of ResourceRequest is, where we can save the TargetType info if the load is postponed or re-scheduled?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573802</commentid>
    <comment_count>18</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-08 06:49:07 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; 
&gt; &gt; In the chromium port, the target type is not set correctly in lots of different places. However, I think the correct solution to this problem is to move TargetType out of ResourceRequest, and have all calls that pass a ResourceRequest around in loader/ also take a TargetType parameter.
&gt; 
&gt; The problem in moving TargetType out of ResourceRequest is, where we can save the TargetType info if the load is postponed or re-scheduled?

the embedder should link the target type to the ResourceRequest in willSendRequest

For chromium, I added ResourceRequest::ExtraData (http://trac.webkit.org/browser/trunk/Source/WebCore/platform/network/chromium/ResourceRequest.h#L63) to carry arbitrary additional information in an ResourceRequest. 

In willSendRequest, the TargetType is put into a class deriving from ExtraData and stashed into the ResourceRequest. Now when the ResourceRequest later is passed to our resource loader, it can retrieve the target type from there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573806</commentid>
    <comment_count>19</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 06:59:09 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; the embedder should link the target type to the ResourceRequest in willSendRequest
&gt; 
&gt; For chromium, I added ResourceRequest::ExtraData (http://trac.webkit.org/browser/trunk/Source/WebCore/platform/network/chromium/ResourceRequest.h#L63) to carry arbitrary additional information in an ResourceRequest. 
&gt; 
&gt; In willSendRequest, the TargetType is put into a class deriving from ExtraData and stashed into the ResourceRequest. Now when the ResourceRequest later is passed to our resource loader, it can retrieve the target type from there.

Yeah, the ExtraData class solves the issue of saving TargetType, but still when the TargetType is decided is still an issue, and I feel it is too late to decide in willSendRequest() as it is called after the policy decision stage, at which stage, it seems to me, it is proper to check the TargetType info before deciding the policy for that particular loading.

If the TargetType is still decided in FrameLoader::loadURL(), then whether make it part of ResourceRequest or as an parameter, we still need platform #ifdef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573809</commentid>
    <comment_count>20</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-08 07:02:21 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; If the TargetType is still decided in FrameLoader::loadURL(), then whether make it part of ResourceRequest or as an parameter, we still need platform #ifdef.

The reason that it&apos;s behind a #ifdef is that TargetType should not be defined in platform/

If we move the definition to loader/, we can just enable this behavior for all ports. In fact, the more ports start to have out-of-process network stacks, the more will need this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573813</commentid>
    <comment_count>21</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 07:09:11 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; The reason that it&apos;s behind a #ifdef is that TargetType should not be defined in platform/
&gt; 
&gt; If we move the definition to loader/, we can just enable this behavior for all ports. In fact, the more ports start to have out-of-process network stacks, the more will need this feature.

Thanks for the info! So the solution can be a common ResourceRequestBase (which will have TargetType info) in loader, and every platform still have their own ResourceRequest (which inherits ResourceRequestBase) for their own platform specific stuff?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573814</commentid>
    <comment_count>22</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-08 07:13:15 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; The reason that it&apos;s behind a #ifdef is that TargetType should not be defined in platform/
&gt; &gt; 
&gt; &gt; If we move the definition to loader/, we can just enable this behavior for all ports. In fact, the more ports start to have out-of-process network stacks, the more will need this feature.
&gt; 
&gt; Thanks for the info! So the solution can be a common ResourceRequestBase (which will have TargetType info) in loader, and every platform still have their own ResourceRequest (which inherits ResourceRequestBase) for their own platform specific stuff?

I think there are two options:

(1) have a class in loader/ that wraps a ResourceRequest (similar to FrameLoadRequest) - however, failing to come up with a good name for such a class, this hasn&apos;t happened yet

(2) don&apos;t touch ResourceRequest at all, and just define TargetType as a standalone enum and pass it along with the ResourceRequest everywhere an ResourceRequest is passed around in loader/ - I think that&apos;s the more likely option right now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573815</commentid>
    <comment_count>23</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-03-08 07:14:02 -0800</bug_when>
    <thetext>See also https://bugs.webkit.org/show_bug.cgi?id=65855</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574069</commentid>
    <comment_count>24</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 12:18:48 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; See also https://bugs.webkit.org/show_bug.cgi?id=65855

Thanks for the link, now I have a better understanding of the whole situation. How about add 2 more methods to FrameLoaderClient?


    void addExtraFieldsToSubresourceRequest(ResourceRequest&amp; request, CachedResource::Type type);
    void addExtraFieldsToMainResourceRequest(ResourceRequest&amp; request, FrameLoadType type);

And then we can do whatever our own portal like to the ResourceRequest, without all these platfrom #ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574073</commentid>
    <comment_count>25</comment_count>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-03-08 12:21:58 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; Thanks for the link, now I have a better understanding of the whole situation. How about add 2 more methods to FrameLoaderClient?
&gt; 
&gt; 
&gt;     void addExtraFieldsToSubresourceRequest(ResourceRequest&amp; request, CachedResource::Type type);
&gt;     void addExtraFieldsToMainResourceRequest(ResourceRequest&amp; request, FrameLoadType type);
&gt; 
&gt; And then we can do whatever our own portal like to the ResourceRequest, without all these platfrom #ifdefs.

Sorry I forgot to mention: and calling them in FrameLoader::addExtraFieldsToSubresourceRequest() and FrameLoader::addExtraFieldsToMainResourceRequest().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593521</commentid>
    <comment_count>26</comment_count>
      <attachid>135118</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-04-02 09:18:01 -0700</bug_when>
    <thetext>Created attachment 135118
Updated patch based on review.

Based on the review comments, and comments of bug https://bugs.webkit.org/show_bug.cgi?id=80713, update the patch to limit the change to BlackBerry port files, and only change the ResourceRequest in dispatchWillSendRequest(), at the same time also adjust the TargetType of platform NetworkRequest for dispatchDecidePolicyForNavigationAction() and decidePolicyForExternalLoad().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593664</commentid>
    <comment_count>27</comment_count>
      <attachid>135150</attachid>
    <who name="Lyon Chen">liachen</who>
    <bug_when>2012-04-02 12:05:54 -0700</bug_when>
    <thetext>Created attachment 135150
Fix compile error and some minor coding style fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593674</commentid>
    <comment_count>28</comment_count>
      <attachid>135150</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-02 12:20:07 -0700</bug_when>
    <thetext>Comment on attachment 135150
Fix compile error and some minor coding style fix.

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593831</commentid>
    <comment_count>29</comment_count>
      <attachid>135150</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 14:15:39 -0700</bug_when>
    <thetext>Comment on attachment 135150
Fix compile error and some minor coding style fix.

Clearing flags on attachment: 135150

Committed r112940: &lt;http://trac.webkit.org/changeset/112940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593832</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 14:15:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130644</attachid>
            <date>2012-03-07 10:27:16 -0800</date>
            <delta_ts>2012-03-07 11:20:17 -0800</delta_ts>
            <desc>Patch for 80519</desc>
            <filename>80519.patch</filename>
            <type>text/plain</type>
            <size>1301</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGQ0YjFhNmUuLjU3
ZThlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTA5
LDYgKzUwOSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmxvYWQoY29uc3QgY2hhciogdXJsLCBj
b25zdCBjaGFyKiBuZXR3b3JrVG9rZW4sIGNvbnN0IGNoYXIqCiAgICAgaWYgKGlzSW5pdGlhbCB8
fCBtdXN0SGFuZGxlSW50ZXJuYWxseSkKICAgICAgICAgcmVxdWVzdC5zZXRNdXN0SGFuZGxlSW50
ZXJuYWxseSh0cnVlKTsKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QobWV0aG9kKTsKKyAgICBy
ZXF1ZXN0LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc01haW5GcmFtZSk7
CiAgICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeSh0b1dlYkNvcmVDYWNoZVBvbGljeShjYWNoZVBv
bGljeSkpOwogICAgIGlmIChvdmVycmlkZUNvbnRlbnRUeXBlKQogICAgICAgICByZXF1ZXN0LnNl
dE92ZXJyaWRlQ29udGVudFR5cGUob3ZlcnJpZGVDb250ZW50VHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwppbmRleCA3Yjk5MzI5Li4yMDM5Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wNyAgTGlhbmdodWkgQ2hlbiAg
PGxpYWNoZW5AcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gU2V0IFJlc291cmNlUmVx
dWVzdCBUYXJnZXRUeXBlIGluIFdlYlBhZ2VQcml2YXRlOjpsb2FkKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNTE5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpsb2FkKToKKwogMjAxMi0w
My0wNiAgTGlhbmdodWkgQ2hlbiAgPGxpYWNoZW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gU2V0IGNvcnJlY3QgUmVzb3VyY2VSZXF1ZXN0IHRhcmdldCB0eXBlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130653</attachid>
            <date>2012-03-07 11:20:17 -0800</date>
            <delta_ts>2012-04-02 09:18:01 -0700</delta_ts>
            <desc>Updated patch to set correct target type for WebKit internal loads too.</desc>
            <filename>80519-2.patch</filename>
            <type>text/plain</type>
            <size>3108</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NmQ3ZTU2Li43Y2I5OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMDMtMDcgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFNldCBSZXNvdXJjZVJlcXVlc3QgVGFyZ2V0VHlwZSBpbiBXZWJQYWdl
UHJpdmF0ZTo6bG9hZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDUxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5lZWQgdG8gc2V0IHRoZSByaWdodCB0YXJnZXQgdHlwZSBmb3IgUmVzb3VyY2VSZXF1
ZXN0IGhlcmUgdG8gbWFrZSB0aGUgcmlnaHQKKyAgICAgICAgbmF2aWdhdGlvbiBwb2xpY3kgZGVj
aXNpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBibGFja2JlcnJ5IHBvcnQgaXMgc3RpbGwg
dXBzdHJlYW1pbmcuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorCiAyMDEyLTAzLTA3ICBBcnVuIFBh
dG9sZSAgPGJtZjgzNEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgSFRNTFRyYWNrRWxlbWVudC5p
ZGwgZG9lc24ndCBoYXZlIGRlZmF1bHQgYXR0cmlidXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggNjc3NmFkNy4uYWUyMjVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCkBAIC0xMjEzLDYgKzEyMTMsMTQgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
bG9hZFVSTChjb25zdCBLVVJMJiBuZXdVUkwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGNvbnN0
IFN0cmkKIAogICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uKHJlcXVlc3QsIG5ld0xvYWRUeXBl
LCBpc0Zvcm1TdWJtaXNzaW9uLCBldmVudCk7CiAKKyNpZiBQTEFURk9STShCTEFDS0JFUlJZKQor
ICAgIEZyYW1lKiBsb2FkZnJhbWUgPSB0YXJnZXRGcmFtZSA/IHRhcmdldEZyYW1lIDogZnJhbWUo
KTsKKyAgICBpZiAobG9hZGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IGxvYWRmcmFtZSkK
KyAgICAgICAgcmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNN
YWluRnJhbWUpOworICAgIGVsc2UKKyAgICAgICAgcmVxdWVzdC5zZXRUYXJnZXRUeXBlKFJlc291
cmNlUmVxdWVzdDo6VGFyZ2V0SXNTdWJmcmFtZSk7CisjZW5kaWYKKwogICAgIGlmICghdGFyZ2V0
RnJhbWUgJiYgIWZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgcG9saWN5Q2hlY2tlcigp
LT5jaGVja05ld1dpbmRvd1BvbGljeShhY3Rpb24sIEZyYW1lTG9hZGVyOjpjYWxsQ29udGludWVM
b2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksCiAgICAgICAgICAgICByZXF1ZXN0LCBmb3JtU3RhdGUu
cmVsZWFzZSgpLCBmcmFtZU5hbWUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAKaW5kZXggZDRiMWE2ZS4uNTdlOGU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01MDksNiArNTA5LDcgQEAgdm9pZCBXZWJQYWdlUHJp
dmF0ZTo6bG9hZChjb25zdCBjaGFyKiB1cmwsIGNvbnN0IGNoYXIqIG5ldHdvcmtUb2tlbiwgY29u
c3QgY2hhcioKICAgICBpZiAoaXNJbml0aWFsIHx8IG11c3RIYW5kbGVJbnRlcm5hbGx5KQogICAg
ICAgICByZXF1ZXN0LnNldE11c3RIYW5kbGVJbnRlcm5hbGx5KHRydWUpOwogICAgIHJlcXVlc3Qu
c2V0SFRUUE1ldGhvZChtZXRob2QpOworICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShSZXNvdXJj
ZVJlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lKTsKICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5
KHRvV2ViQ29yZUNhY2hlUG9saWN5KGNhY2hlUG9saWN5KSk7CiAgICAgaWYgKG92ZXJyaWRlQ29u
dGVudFR5cGUpCiAgICAgICAgIHJlcXVlc3Quc2V0T3ZlcnJpZGVDb250ZW50VHlwZShvdmVycmlk
ZUNvbnRlbnRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDdiOTkzMjku
LjIwN2E4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTAzLTA3ICBMaWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29tPgorCisgICAgICAg
IFtCbGFja0JlcnJ5XSBTZXQgUmVzb3VyY2VSZXF1ZXN0IFRhcmdldFR5cGUgaW4gV2ViUGFnZVBy
aXZhdGU6OmxvYWQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODA1MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIHRvIHNldCB0aGUgcmlnaHQgdGFyZ2V0IHR5cGUgZm9yIFJlc291cmNlUmVxdWVz
dCBoZXJlIHRvIG1ha2UgdGhlIHJpZ2h0CisgICAgICAgIG5hdmlnYXRpb24gcG9saWN5IGRlY2lz
aW9uLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6bG9hZCk6CisKIDIwMTItMDMtMDYgIExpYW5naHVpIENo
ZW4gIDxsaWFjaGVuQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNldCBjb3JyZWN0
IFJlc291cmNlUmVxdWVzdCB0YXJnZXQgdHlwZS4K
</data>
<flag name="review"
          id="133727"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135118</attachid>
            <date>2012-04-02 09:18:01 -0700</date>
            <delta_ts>2012-04-02 12:05:54 -0700</delta_ts>
            <desc>Updated patch based on review.</desc>
            <filename>80519.patch</filename>
            <type>text/plain</type>
            <size>5500</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmY2NThhLi5hNjFhMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDQtMDIgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFNldCBSZXNvdXJjZVJlcXVlc3QgVGFyZ2V0VHlwZSBpbiBXZWJQYWdl
UHJpdmF0ZTo6bG9hZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDUxOQorCisgICAgICAgIFN0b3AgYXNzZXJ0aW5nIGluIHBsYXRmb3JtQ2FjaGVQ
b2xpY3lGb3JSZXF1ZXN0KCkgYXMgbm93IGl0IGlzIGV4cGVjdGVkCisgICAgICAgIHRoYXQgdGhl
IFJlc291cmNlUmVxdWVzdCBtaWdodCBub3QgaGF2ZSB0aGUgcmlnaHQgVGFyZ2V0VHlwZSBzZXR1
cCBhdAorICAgICAgICB0aGlzIHRpbWUgZm9yIG1haW4gbG9hZHMuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIGNoYW5n
ZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
UmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUNhY2hlUG9saWN5Rm9yUmVxdWVzdCk6CisKIDIwMTItMDQtMDIgIEFsZXhpcyBNZW5hcmQgIDxh
bGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmVuYW1lIENTU1Byb3BlcnR5
TG9uZ2hhbmQgY2xhc3MgdG8gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RC
bGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAppbmRleCAyNGU1NmRiLi40NDIxODQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVz
b3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCkBAIC00Niw3
ICs0Niw2IEBAIHN0YXRpYyBpbmxpbmUgTmV0d29ya1JlcXVlc3Q6OkNhY2hlUG9saWN5IHBsYXRm
b3JtQ2FjaGVQb2xpY3lGb3JSZXF1ZXN0KGNvbnN0IFJlCiAgICAgY2FzZSBXZWJDb3JlOjpSZXR1
cm5DYWNoZURhdGFEb250TG9hZDoKICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpSZXR1
cm5DYWNoZURhdGFEb250TG9hZDsKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpVc2VQcm90b2NvbENhY2hl
UG9saWN5OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGQyM2Zl
OTYuLjFlNGMwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA0LTAyICBMaWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29tPgorCisgICAg
ICAgIFtCbGFja0JlcnJ5XSBTZXQgUmVzb3VyY2VSZXF1ZXN0IFRhcmdldFR5cGUgaW4gV2ViUGFn
ZVByaXZhdGU6OmxvYWQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODA1MTkKKworICAgICAgICBTZXQgdGhlIHJpZ2h0IFRhcmdldFR5cGUgZm9yIG1h
aW4gbG9hZHMgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0IGluCisgICAgICAgIGRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KCkuCisKKyAgICAgICAgQWxzbyBhZGp1c3QgTmV0d29ya1JlcXVlc3Qg
VGFyZ2V0VHlwZSBmb3IgZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKCkKKyAgICAgICAgYW5k
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigpIGFzIHRoZXkgYXJlIGNh
bGxlZCBiZWZvcmUKKyAgICAgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoKSBpcyBjYWxsZWQu
IFBhdGNoIHRvIGNoYW5nZSBSZXNvdXJjZVJlcXVlc3QKKyAgICAgICAgVGFyZ2V0VHlwZSBlYXJs
aWVyIGhhcyBiZWVuIHJlamVjdGVkIGFzIGluIFdlYktpdCBidWcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzEzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OmRlY2lkZVBvbGljeUZvckV4dGVybmFsTG9hZCk6CisKIDIwMTItMDQtMDEgIEFydmlk
IE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBTaW1w
bGlmeSB0aGUgY29kZSB0aGF0IGdldHMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb3V0cHV0IG9u
dG8gdGhlIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNw
cAppbmRleCA2NDVmOTUxLi40Mzc2ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcApAQCAtMjExLDYgKzIxMSw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJh
bWVQCiAgICAgICAgIC8vIGJlIGlnbm9yZWQgb3Igbm90LgogICAgICAgICBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0OwogICAgICAgICByZXF1ZXN0
LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5hYmxl
ZCgpKTsKKyAgICAgICAgaWYgKHBsYXRmb3JtUmVxdWVzdC5nZXRUYXJnZXRUeXBlKCkgPT0gTmV0
d29ya1JlcXVlc3Q6OlRhcmdldElzVW5rbm93bikKKyAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVz
dC5zZXRUYXJnZXRUeXBlKGlzTWFpbkZyYW1lKCkgPyBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNN
YWluRnJhbWUgOiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNTdWJmcmFtZSk7CisKICAgICAgICAg
aWYgKGlzTWFpbkZyYW1lKCkgJiYgIW1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5hY2NlcHRO
YXZpZ2F0aW9uUmVxdWVzdCgKICAgICAgICAgICAgIHBsYXRmb3JtUmVxdWVzdCwgQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5hdmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkpKSkgewogICAgICAgICAg
ICAgaWYgKGFjdGlvbi50eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkCkBAIC05
MzEsNiArOTM0LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRj
aFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogZG9jTG9hCiAgICAgLy8gaXQgaXMgYSBu
ZXcgdG9wIGxldmVsIHJlcXVlc3Qgd2hpY2ggaGFzIG5vdCBiZWVuIGNvbW1pdGVkLgogICAgIGJv
b2wgaXNNYWluUmVzb3VyY2VMb2FkID0gZG9jTG9hZGVyICYmIGRvY0xvYWRlciA9PSBkb2NMb2Fk
ZXItPmZyYW1lTG9hZGVyKCktPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKTsKIAorICAgIC8v
IFRhcmdldFR5cGUgZm9yIHN1YnJlc291cmNlIGxvYWRzIHNob3VsZCBoYXZlIGJlZW4gc2V0IGlu
IENhY2hlZFJlc291cmNlOjpsb2FkKCkuCisgICAgaWYgKGlzTWFpblJlc291cmNlTG9hZCAmJiBy
ZXF1ZXN0LnRhcmdldFR5cGUoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzVW5zcGVjaWZp
ZWQpCisgICAgICAgIHJlcXVlc3Quc2V0VGFyZ2V0VHlwZShpc01haW5GcmFtZSgpID8gUmVzb3Vy
Y2VSZXF1ZXN0OjpUYXJnZXRJc01haW5GcmFtZSA6IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNT
dWJmcmFtZSk7CisKICAgICAvLyBBbnkgcHJvY2Vzc2luZyB3aGljaCBpcyBkb25lIGZvciBhbGwg
bG9hZHMgKGJvdGggbWFpbiBhbmQgc3VicmVzb3VyY2UpIHNob3VsZCBnbyBoZXJlLgogICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7CiAgICAg
cmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2ll
c0VuYWJsZWQoKSk7CkBAIC0xMDkzLDYgKzExMDAsOSBAQCBQb2xpY3lBY3Rpb24gRnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpkZWNpZGVQb2xpY3lGb3JFeHRlcm5hbExvYWQoY29uc3QgUmVz
bwogICAgICAgICAgICAgJiYgIWlzRnJhZ21lbnRTY3JvbGwpIHsKICAgICAgICAgQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKICAgICAgICAgcmVx
dWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0Vu
YWJsZWQoKSk7CisgICAgICAgIGlmIChwbGF0Zm9ybVJlcXVlc3QuZ2V0VGFyZ2V0VHlwZSgpID09
IE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc1Vua25vd24pCisgICAgICAgICAgICBwbGF0Zm9ybVJl
cXVlc3Quc2V0VGFyZ2V0VHlwZShpc01haW5GcmFtZSgpID8gTmV0d29ya1JlcXVlc3Q6OlRhcmdl
dElzTWFpbkZyYW1lIDogTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzU3ViZnJhbWUpOworCiAgICAg
ICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZv
cm1SZXF1ZXN0LCByZXF1ZXN0LmFuY2hvclRleHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5j
aG9yVGV4dCgpLmxlbmd0aCgpLCBtX2NsaWVudFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAg
cmV0dXJuIFBvbGljeUlnbm9yZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135150</attachid>
            <date>2012-04-02 12:05:54 -0700</date>
            <delta_ts>2012-04-02 14:15:39 -0700</delta_ts>
            <desc>Fix compile error and some minor coding style fix.</desc>
            <filename>80519-2.patch</filename>
            <type>text/plain</type>
            <size>7551</size>
            <attacher name="Lyon Chen">liachen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmY2NThhLi5hNjFhMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDQtMDIgIExpYW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CisKKyAgICAg
ICAgW0JsYWNrQmVycnldIFNldCBSZXNvdXJjZVJlcXVlc3QgVGFyZ2V0VHlwZSBpbiBXZWJQYWdl
UHJpdmF0ZTo6bG9hZCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MDUxOQorCisgICAgICAgIFN0b3AgYXNzZXJ0aW5nIGluIHBsYXRmb3JtQ2FjaGVQ
b2xpY3lGb3JSZXF1ZXN0KCkgYXMgbm93IGl0IGlzIGV4cGVjdGVkCisgICAgICAgIHRoYXQgdGhl
IFJlc291cmNlUmVxdWVzdCBtaWdodCBub3QgaGF2ZSB0aGUgcmlnaHQgVGFyZ2V0VHlwZSBzZXR1
cCBhdAorICAgICAgICB0aGlzIHRpbWUgZm9yIG1haW4gbG9hZHMuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFzIG5vIGNoYW5n
ZSBpbiBiZWhhdmlvdXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
UmVzb3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF0Zm9y
bUNhY2hlUG9saWN5Rm9yUmVxdWVzdCk6CisKIDIwMTItMDQtMDIgIEFsZXhpcyBNZW5hcmQgIDxh
bGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmVuYW1lIENTU1Byb3BlcnR5
TG9uZ2hhbmQgY2xhc3MgdG8gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZVJlcXVlc3RC
bGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9SZXNvdXJjZVJlcXVlc3RCbGFja0JlcnJ5LmNwcAppbmRleCAyZjI5ZjAxLi44ZmY2YzhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVz
b3VyY2VSZXF1ZXN0QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlUmVxdWVzdEJsYWNrQmVycnkuY3BwCkBAIC00Niw3
ICs0Niw2IEBAIHN0YXRpYyBpbmxpbmUgTmV0d29ya1JlcXVlc3Q6OkNhY2hlUG9saWN5IHBsYXRm
b3JtQ2FjaGVQb2xpY3lGb3JSZXF1ZXN0KGNvbnN0IFJlCiAgICAgY2FzZSBXZWJDb3JlOjpSZXR1
cm5DYWNoZURhdGFEb250TG9hZDoKICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpSZXR1
cm5DYWNoZURhdGFEb250TG9hZDsKICAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIE5ldHdvcmtSZXF1ZXN0OjpVc2VQcm90b2NvbENhY2hl
UG9saWN5OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGQyM2Zl
OTYuLjFlNGMwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA0LTAyICBMaWFuZ2h1aSBDaGVuICA8bGlhY2hlbkByaW0uY29tPgorCisgICAg
ICAgIFtCbGFja0JlcnJ5XSBTZXQgUmVzb3VyY2VSZXF1ZXN0IFRhcmdldFR5cGUgaW4gV2ViUGFn
ZVByaXZhdGU6OmxvYWQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODA1MTkKKworICAgICAgICBTZXQgdGhlIHJpZ2h0IFRhcmdldFR5cGUgZm9yIG1h
aW4gbG9hZHMgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgc2V0IGluCisgICAgICAgIGRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KCkuCisKKyAgICAgICAgQWxzbyBhZGp1c3QgTmV0d29ya1JlcXVlc3Qg
VGFyZ2V0VHlwZSBmb3IgZGVjaWRlUG9saWN5Rm9yRXh0ZXJuYWxMb2FkKCkKKyAgICAgICAgYW5k
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigpIGFzIHRoZXkgYXJlIGNh
bGxlZCBiZWZvcmUKKyAgICAgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoKSBpcyBjYWxsZWQu
IFBhdGNoIHRvIGNoYW5nZSBSZXNvdXJjZVJlcXVlc3QKKyAgICAgICAgVGFyZ2V0VHlwZSBlYXJs
aWVyIGhhcyBiZWVuIHJlamVjdGVkIGFzIGluIFdlYktpdCBidWcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzEzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpkaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnk6OmRlY2lkZVBvbGljeUZvckV4dGVybmFsTG9hZCk6CisKIDIwMTItMDQtMDEgIEFydmlk
IE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBTaW1w
bGlmeSB0aGUgY29kZSB0aGF0IGdldHMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb3V0cHV0IG9u
dG8gdGhlIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNw
cAppbmRleCBkMWNmNWQ3Li5iZDZjNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcApAQCAtNzMsNiArNzMsNyBAQAogdXNpbmcgV1RGOjpTdHJpbmc7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBCbGFja0JlcnJ5OjpXZWJL
aXQ7Cit1c2luZyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q7CiAKIC8vIFRo
aXMgd2FzIGNvcGllZCBmcm9tIGZpbGUgIldlYktpdC9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YktpdEVycm9ycy5oIi4KIGVudW0gewpAQCAtMjEwLDggKzIxMSwxMSBAQCB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKEZyYW1lUAogCiAgICAgICAgIC8vIExldCB0aGUgY2xpZW50IGhhdmUgYSBjaGFuY2UgdG8g
c2F5IHdoZXRoZXIgdGhpcyBuYXZpZ2F0aW9uIHNob3VsZAogICAgICAgICAvLyBiZSBpZ25vcmVk
IG9yIG5vdC4KLSAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtSZXF1ZXN0IHBs
YXRmb3JtUmVxdWVzdDsKKyAgICAgICAgTmV0d29ya1JlcXVlc3QgcGxhdGZvcm1SZXF1ZXN0Owog
ICAgICAgICByZXF1ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0
LCBjb29raWVzRW5hYmxlZCgpKTsKKyAgICAgICAgaWYgKHBsYXRmb3JtUmVxdWVzdC5nZXRUYXJn
ZXRUeXBlKCkgPT0gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzVW5rbm93bikKKyAgICAgICAgICAg
IHBsYXRmb3JtUmVxdWVzdC5zZXRUYXJnZXRUeXBlKGlzTWFpbkZyYW1lKCkgPyBOZXR3b3JrUmVx
dWVzdDo6VGFyZ2V0SXNNYWluRnJhbWUgOiBOZXR3b3JrUmVxdWVzdDo6VGFyZ2V0SXNTdWJmcmFt
ZSk7CisKICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKCkgJiYgIW1fd2ViUGFnZVByaXZhdGUtPm1f
Y2xpZW50LT5hY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgKICAgICAgICAgICAgIHBsYXRmb3JtUmVx
dWVzdCwgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5hdmlnYXRpb25UeXBlKGFjdGlvbi50eXBlKCkp
KSkgewogICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlKCkgPT0gTmF2aWdhdGlvblR5cGVGb3Jt
U3VibWl0dGVkCkBAIC05NjcsMTIgKzk3MSwxNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeTo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGRvY0xvYQog
ICAgIC8vIGl0IGlzIGEgbmV3IHRvcCBsZXZlbCByZXF1ZXN0IHdoaWNoIGhhcyBub3QgYmVlbiBj
b21taXRlZC4KICAgICBib29sIGlzTWFpblJlc291cmNlTG9hZCA9IGRvY0xvYWRlciAmJiBkb2NM
b2FkZXIgPT0gZG9jTG9hZGVyLT5mcmFtZUxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyKCk7CiAKKyAgICAvLyBUYXJnZXRUeXBlIGZvciBzdWJyZXNvdXJjZSBsb2FkcyBzaG91bGQg
aGF2ZSBiZWVuIHNldCBpbiBDYWNoZWRSZXNvdXJjZTo6bG9hZCgpLgorICAgIGlmIChpc01haW5S
ZXNvdXJjZUxvYWQgJiYgcmVxdWVzdC50YXJnZXRUeXBlKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpU
YXJnZXRJc1Vuc3BlY2lmaWVkKQorICAgICAgICByZXF1ZXN0LnNldFRhcmdldFR5cGUoaXNNYWlu
RnJhbWUoKSA/IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNNYWluRnJhbWUgOiBSZXNvdXJjZVJl
cXVlc3Q6OlRhcmdldElzU3ViZnJhbWUpOworCiAgICAgLy8gQW55IHByb2Nlc3Npbmcgd2hpY2gg
aXMgZG9uZSBmb3IgYWxsIGxvYWRzIChib3RoIG1haW4gYW5kIHN1YnJlc291cmNlKSBzaG91bGQg
Z28gaGVyZS4KLSAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3QgcGxhdGZv
cm1SZXF1ZXN0OworICAgIE5ldHdvcmtSZXF1ZXN0IHBsYXRmb3JtUmVxdWVzdDsKICAgICByZXF1
ZXN0LmluaXRpYWxpemVQbGF0Zm9ybVJlcXVlc3QocGxhdGZvcm1SZXF1ZXN0LCBjb29raWVzRW5h
YmxlZCgpKTsKICAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+cG9wdWxhdGVDdXN0b21I
ZWFkZXJzKHBsYXRmb3JtUmVxdWVzdCk7Ci0gICAgY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06
Ok5ldHdvcmtSZXF1ZXN0OjpIZWFkZXJMaXN0JiBoZWFkZXJMaXN0cyA9IHBsYXRmb3JtUmVxdWVz
dC5nZXRIZWFkZXJMaXN0UmVmKCk7Ci0gICAgZm9yIChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0
d29ya1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaGVhZGVyTGlzdHMu
YmVnaW4oKTsgaXQgIT0gaGVhZGVyTGlzdHMuZW5kKCk7ICsraXQpIHsKKyAgICBjb25zdCBOZXR3
b3JrUmVxdWVzdDo6SGVhZGVyTGlzdCYgaGVhZGVyTGlzdHMgPSBwbGF0Zm9ybVJlcXVlc3QuZ2V0
SGVhZGVyTGlzdFJlZigpOworICAgIGZvciAoTmV0d29ya1JlcXVlc3Q6OkhlYWRlckxpc3Q6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gaGVhZGVyTGlzdHMuYmVnaW4oKTsgaXQgIT0gaGVhZGVyTGlzdHMu
ZW5kKCk7ICsraXQpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgaGVhZGVyU3RyaW5nID0gaXQtPmZp
cnN0OwogICAgICAgICBzdGQ6OnN0cmluZyBoZWFkZXJWYWx1ZVN0cmluZyA9IGl0LT5zZWNvbmQ7
CiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFN0cmluZzo6ZnJvbVVURjhXaXRo
TGF0aW4xRmFsbGJhY2soaGVhZGVyU3RyaW5nLmRhdGEoKSwgaGVhZGVyU3RyaW5nLmxlbmd0aCgp
KSwgU3RyaW5nOjpmcm9tVVRGOFdpdGhMYXRpbjFGYWxsYmFjayhoZWFkZXJWYWx1ZVN0cmluZy5k
YXRhKCksIGhlYWRlclZhbHVlU3RyaW5nLmxlbmd0aCgpKSk7CkBAIC0xMTMzLDggKzExNDEsMTEg
QEAgUG9saWN5QWN0aW9uIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6ZGVjaWRlUG9saWN5
Rm9yRXh0ZXJuYWxMb2FkKGNvbnN0IFJlc28KICAgICAgICAgICAgICYmIGlzTWFpbkZyYW1lKCkK
ICAgICAgICAgICAgICYmICFyZXF1ZXN0Lm11c3RIYW5kbGVJbnRlcm5hbGx5KCkKICAgICAgICAg
ICAgICYmICFpc0ZyYWdtZW50U2Nyb2xsKSB7Ci0gICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpOZXR3b3JrUmVxdWVzdCBwbGF0Zm9ybVJlcXVlc3Q7CisgICAgICAgIE5ldHdvcmtSZXF1ZXN0
IHBsYXRmb3JtUmVxdWVzdDsKICAgICAgICAgcmVxdWVzdC5pbml0aWFsaXplUGxhdGZvcm1SZXF1
ZXN0KHBsYXRmb3JtUmVxdWVzdCwgY29va2llc0VuYWJsZWQoKSk7CisgICAgICAgIGlmIChwbGF0
Zm9ybVJlcXVlc3QuZ2V0VGFyZ2V0VHlwZSgpID09IE5ldHdvcmtSZXF1ZXN0OjpUYXJnZXRJc1Vu
a25vd24pCisgICAgICAgICAgICBwbGF0Zm9ybVJlcXVlc3Quc2V0VGFyZ2V0VHlwZShpc01haW5G
cmFtZSgpID8gTmV0d29ya1JlcXVlc3Q6OlRhcmdldElzTWFpbkZyYW1lIDogTmV0d29ya1JlcXVl
c3Q6OlRhcmdldElzU3ViZnJhbWUpOworCiAgICAgICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xp
ZW50LT5oYW5kbGVFeHRlcm5hbExpbmsocGxhdGZvcm1SZXF1ZXN0LCByZXF1ZXN0LmFuY2hvclRl
eHQoKS5jaGFyYWN0ZXJzKCksIHJlcXVlc3QuYW5jaG9yVGV4dCgpLmxlbmd0aCgpLCBtX2NsaWVu
dFJlZGlyZWN0SXNQZW5kaW5nKTsKICAgICAgICAgcmV0dXJuIFBvbGljeUlnbm9yZTsKICAgICB9
CkBAIC0xMjAxLDcgKzEyMTIsNyBAQCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlTmV0d29ya2luZwogdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIC8qc3VnZ2VzdGVkTmFtZSovKQogewogICAgIC8v
IEZJWE1FOiB1c2UgdGhlIHN1Z2dlc3RlZE5hbWU/Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bG9h
ZChyZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsICJHRVQiLCBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1JlcXVlc3Q6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3ksIDAs
IDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgIiIpOworICAgIG1fd2ViUGFnZVByaXZhdGUt
PmxvYWQocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAiR0VUIiwgTmV0
d29ya1JlcXVlc3Q6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3ksIDAsIDAsIDAsIDAsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSwgIiIpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>