<?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>38665</bug_id>
          
          <creation_ts>2010-05-06 11:05:36 -0700</creation_ts>
          <short_desc>[chromium] Update chromium port to send/receive cached metadata</short_desc>
          <delta_ts>2010-05-14 04:56:03 -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 API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>37874</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221824</commentid>
    <comment_count>0</comment_count>
      <attachid>55270</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-06 11:05:36 -0700</bug_when>
    <thetext>Created attachment 55270
Update chromium port to send/receive cached metadata

Chromium port implementation of API introduced in https://bugs.webkit.org/show_bug.cgi?id=37874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221990</commentid>
    <comment_count>1</comment_count>
      <attachid>55305</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-06 15:02:22 -0700</bug_when>
    <thetext>Created attachment 55305
Merge with changes from 37874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222046</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 16:34:50 -0700</bug_when>
    <thetext>Attachment 55305 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2166019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222054</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-06 16:42:50 -0700</bug_when>
    <thetext>Is this patch ready for review, or did you want to fix the red chromium bubble first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222056</commentid>
    <comment_count>4</comment_count>
      <attachid>55320</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-06 16:46:48 -0700</bug_when>
    <thetext>Created attachment 55320
Fix typo -- should fix redness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222117</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 19:05:38 -0700</bug_when>
    <thetext>Attachment 55320 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2235024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222379</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-07 08:12:27 -0700</bug_when>
    <thetext>It looks like the build failed because 37874 had not landed yet (and this patch depends on it).

It has landed now. Is there a way I can kick off the build again (other than uploading an identical patch)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222409</commentid>
    <comment_count>7</comment_count>
      <attachid>55380</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-07 09:03:09 -0700</bug_when>
    <thetext>Created attachment 55380
Retry build now that 37874 has landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222441</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 09:47:46 -0700</bug_when>
    <thetext>Attachment 55380 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2209060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222456</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-07 10:07:58 -0700</bug_when>
    <thetext>Oops, 37874 hasn&apos;t really landed yet. I&apos;ll upload the patch again once it lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223480</commentid>
    <comment_count>10</comment_count>
      <attachid>55596</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-10 13:11:49 -0700</bug_when>
    <thetext>Created attachment 55596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223610</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-10 17:13:01 -0700</bug_when>
    <thetext>FYI -- These two chromium patches may be useful during this review (e.g. they demonstrate why response time is necessary):

http://codereview.chromium.org/1742004
http://codereview.chromium.org/1698001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223613</commentid>
    <comment_count>12</comment_count>
      <attachid>55596</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 17:21:12 -0700</bug_when>
    <thetext>Comment on attachment 55596
Patch

WebKit/chromium/src/ResourceHandle.cpp:181
 +          CRASH();
This seems a bit harsh.  Is this what other code in this file does?

WebCore/platform/chromium/ChromiumBridge.h:76
 +          static void cacheMetadata(const KURL&amp; url, long long responseTime, const Vector&lt;char&gt;&amp;);
Does a pair of URL+responseTime uniquely determine an HTTP response?  What if the clock gets reset?  This seems like a proxy for a response ID.  Why not create a response ID?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223614</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 17:21:50 -0700</bug_when>
    <thetext>This patch requires review by the great and powerful fishd because it touches the WebKit API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223621</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-10 17:36:41 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 55596 [details])
&gt; WebKit/chromium/src/ResourceHandle.cpp:181
&gt;  +          CRASH();
&gt; This seems a bit harsh.  Is this what other code in this file does?

Yeah, didReceiveResponse, didReceiveData, didFinishLoading, all have similar statements that ensure the state is expected. I&apos;m fine with removing it if it is less important here because things will work even if the cached metadata is never received.

&gt; 
&gt; WebCore/platform/chromium/ChromiumBridge.h:76
&gt;  +          static void cacheMetadata(const KURL&amp; url, long long responseTime, const Vector&lt;char&gt;&amp;);
&gt; Does a pair of URL+responseTime uniquely determine an HTTP response?  What if the clock gets reset?  This seems like a proxy for a response ID.  Why not create a response ID?

Response time is what is required by the HTTP Cache API that fishd and rvargas put together here: http://codereview.chromium.org/600167/diff/9001/9008

I don&apos;t think clock reset is a factor unless it was reset in the very slim time between the load of the resource and the generation of metadata. And even in that case, we&apos;d just miss an opportunity to cache the metadata. Once the metadata is stored in the cache, the response time doesn&apos;t matter for future loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223625</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-10 17:41:27 -0700</bug_when>
    <thetext>Okiedokes.  Re: CRASH: if that&apos;s what this file wants, that&apos;s fine with me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224212</commentid>
    <comment_count>16</comment_count>
      <attachid>55596</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-11 15:53:10 -0700</bug_when>
    <thetext>Comment on attachment 55596
Patch

WebKit/chromium/public/WebKitClient.h:196
 +      virtual void cacheMetadata(const WebURL&amp;, long long, const char*, size_t) { }
please document the non-obvious parameters by giving them a name :-)

virtual void cacheMetadata(const WebURL&amp;, long long responseTime, const char* data, size_t dataLength) { }

ordinarily, we use &apos;double&apos; to represent timestamps in webkit.  is there a reason for using &apos;long long&apos; instead of &apos;double&apos;?  i realize that chromium uses long long.

WebKit/chromium/public/WebURLLoaderClient.h:60
 +      virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) { }
i presume it is promised that didReceiveCachedMetadata will not be called after didFinishLoading or didFail, right?

WebKit/chromium/public/WebURLResponse.h:75
 +      WEBKIT_API long long responseTime() const;
same comment about &apos;long long&apos; versus &apos;double&apos;

WebKit/chromium/src/ResourceHandle.cpp:176
 +  void ResourceHandleInternal::didReceiveCachedMetadata(
no line break here in webkit style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224384</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-11 21:28:27 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 55596 [details])
&gt; WebKit/chromium/public/WebKitClient.h:196
&gt;  +      virtual void cacheMetadata(const WebURL&amp;, long long, const char*, size_t) { }
&gt; please document the non-obvious parameters by giving them a name :-)

Done.

&gt; 
&gt; virtual void cacheMetadata(const WebURL&amp;, long long responseTime, const char* data, size_t dataLength) { }
&gt; 
&gt; ordinarily, we use &apos;double&apos; to represent timestamps in webkit.  is there a reason for using &apos;long long&apos; instead of &apos;double&apos;?  i realize that chromium uses long long.

I will completely defer to your recommendation here. Basically this is just an identifier that has to survive a round trip in order to make sure the metadata gets stored with the correct cache entry. The fact that it is a responseTime is really an implementation detail. WebCore never actually touches this field.

So I could see looking at this as either (a) an opaque identifier in which case it could be renamed or (b) as a response time that just happens to be used as this identifier. Please let me know if you prefer I keep it as-is or static_cast it to a double and back. I&apos;ll upload the updated patch after we figure this out.

&gt; 
&gt; WebKit/chromium/public/WebURLLoaderClient.h:60
&gt;  +      virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) { }
&gt; i presume it is promised that didReceiveCachedMetadata will not be called after didFinishLoading or didFail, right?

Yes. That is my intent. Here is where I&apos;m planning to send the metadata:
http://codereview.chromium.org/1698001/diff/39001/28009

&gt; 
&gt; WebKit/chromium/public/WebURLResponse.h:75
&gt;  +      WEBKIT_API long long responseTime() const;
&gt; same comment about &apos;long long&apos; versus &apos;double&apos;

Yes. I&apos;ll keep them in sync based on your answer to my question above.

&gt; 
&gt; WebKit/chromium/src/ResourceHandle.cpp:176
&gt;  +  void ResourceHandleInternal::didReceiveCachedMetadata(
&gt; no line break here in webkit style

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224397</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-11 21:44:19 -0700</bug_when>
    <thetext>&gt; I will completely defer to your recommendation here. Basically this is just an identifier that has to survive a round trip in order to make sure the metadata gets stored with the correct cache entry. The fact that it is a responseTime is really an implementation detail. WebCore never actually touches this field.
&gt; 
&gt; So I could see looking at this as either (a) an opaque identifier in which case it could be renamed or (b) as a response time that just happens to be used as this identifier. Please let me know if you prefer I keep it as-is or static_cast it to a double and back. I&apos;ll upload the updated patch after we figure this out.

Converting &apos;long long&apos; to/from &apos;double&apos; just means that we can only have 52 bits of precision, right?  That seems plenty sufficient for this use case, right?

By the way, I actually had the same thought as you after submitting my comments.  It is attractive to view response-time as an opaque identifier.  That said, the response-time is actually a piece of information that would be useful to the cache expiration calculations performed by WebCore&apos;s memory cache.  Presently it just has to guess, which can lead to skewed results.  (Maybe it should really be set on ResourceResponseBase, or we can do that as a separate patch since other ports won&apos;t set it yet.)

Does the Chromium side require an exact match for the response-time to validate that the cached response is the same?  It probably is sensible for it to do so.  Anyways, I think it is safe to use double.  Note, on the Chromium side we have Time::ToDoubleT and FromDoubleT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224677</commentid>
    <comment_count>19</comment_count>
      <attachid>55859</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-12 09:30:50 -0700</bug_when>
    <thetext>Created attachment 55859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224825</commentid>
    <comment_count>20</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-05-12 12:56:37 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; I will completely defer to your recommendation here. Basically this is just an identifier that has to survive a round trip in order to make sure the metadata gets stored with the correct cache entry. The fact that it is a responseTime is really an implementation detail. WebCore never actually touches this field.
&gt; &gt; 
&gt; &gt; So I could see looking at this as either (a) an opaque identifier in which case it could be renamed or (b) as a response time that just happens to be used as this identifier. Please let me know if you prefer I keep it as-is or static_cast it to a double and back. I&apos;ll upload the updated patch after we figure this out.
&gt; 
&gt; Converting &apos;long long&apos; to/from &apos;double&apos; just means that we can only have 52 bits of precision, right?  That seems plenty sufficient for this use case, right?
&gt; 
&gt; By the way, I actually had the same thought as you after submitting my comments.  It is attractive to view response-time as an opaque identifier.  That said, the response-time is actually a piece of information that would be useful to the cache expiration calculations performed by WebCore&apos;s memory cache.  Presently it just has to guess, which can lead to skewed results.  (Maybe it should really be set on ResourceResponseBase, or we can do that as a separate patch since other ports won&apos;t set it yet.)

I think that is a good argument for leaving it as responseTime. Then we can move it to ResponseResponseBase when we are ready to make the cache fix. But I won&apos;t conflate that fix with this patch for now.

&gt; 
&gt; Does the Chromium side require an exact match for the response-time to validate that the cached response is the same?  It probably is sensible for it to do so.  Anyways, I think it is safe to use double.  Note, on the Chromium side we have Time::ToDoubleT and FromDoubleT.

Yes, it needs an exact match. The ToDoubleT and FromDoubleT functions should work perfectly.

New patch with doubles instead of long longs should be ready for another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225758</commentid>
    <comment_count>21</comment_count>
      <attachid>55859</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-14 04:55:55 -0700</bug_when>
    <thetext>Comment on attachment 55859
Patch

Clearing flags on attachment: 55859

Committed r59465: &lt;http://trac.webkit.org/changeset/59465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225759</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-14 04:56:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55270</attachid>
            <date>2010-05-06 11:05:36 -0700</date>
            <delta_ts>2010-05-06 15:02:22 -0700</delta_ts>
            <desc>Update chromium port to send/receive cached metadata</desc>
            <filename>chromium.patch</filename>
            <type>text/plain</type>
            <size>9956</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2VpdmUgY2FjaGVkIG1ldGFkYXRhLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIG5vIG5ldyBmdW5jdGlvbmFsaXR5LgorCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlJlc291cmNlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZTo6cmVzcG9uc2VUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2U6OnNldFJlc3BvbnNlVGltZSk6CisKIDIwMTAtMDUtMDYgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFr
aW4uCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCShy
ZXZpc2lvbiA1ODg1NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1Ccmlk
Z2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBDaHJvbWl1bUJyaWRnZSB7CiAgICAgcHVibGljOgorICAgICAgICAvLyBD
YWNoZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCBjYWNoZU1ldGFkYXRhKGNvbnN0IEtVUkwm
IHVybCwgbG9uZyBsb25nIHJlc3BvbnNlVGltZSwgY29uc3QgVmVjdG9yPGNoYXI+Jik7CisKICAg
ICAgICAgLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgc3RhdGljIGJvb2wgY2xpcGJvYXJkSXNGb3Jt
YXRBdmFpbGFibGUoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEZvcm1hdCwgUGFzdGVib2Fy
ZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAkocmV2aXNpb24gNTg4
NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25z
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgICwgbV9hcHBDYWNoZUlEKDApCiAgICAgICAgICAgICAsIG1fd2FzRmV0Y2hl
ZFZpYVNQRFkoZmFsc2UpCiAgICAgICAgICAgICAsIG1faXNNdWx0aXBhcnRQYXlsb2FkKGZhbHNl
KQorICAgICAgICAgICAgLCBtX3Jlc3BvbnNlVGltZSgwKQogICAgICAgICB7CiAgICAgICAgIH0K
IApAQCAtNDksNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1f
YXBwQ2FjaGVJRCgwKQogICAgICAgICAgICAgLCBtX3dhc0ZldGNoZWRWaWFTUERZKGZhbHNlKQog
ICAgICAgICAgICAgLCBtX2lzTXVsdGlwYXJ0UGF5bG9hZChmYWxzZSkKKyAgICAgICAgICAgICwg
bV9yZXNwb25zZVRpbWUoMCkKICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTg4LDYgKzkwLDEy
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIG1faXNNdWx0aXBhcnRQYXlsb2Fk
ID0gdmFsdWU7CiAgICAgICAgIH0KIAorICAgICAgICBsb25nIGxvbmcgcmVzcG9uc2VUaW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVRpbWU7IH0KKyAgICAgICAgdm9pZCBzZXRSZXNwb25z
ZVRpbWUobG9uZyBsb25nIHJlc3BvbnNlVGltZSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9y
ZXNwb25zZVRpbWUgPSByZXNwb25zZVRpbWU7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsKIApAQCAtMTE3LDYgKzEy
NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gU2V0IHRvIHRydWUgaWYg
dGhpcyBpcyBwYXJ0IG9mIGEgbXVsdGlwYXJ0IHJlc3BvbnNlLgogICAgICAgICBib29sIG1faXNN
dWx0aXBhcnRQYXlsb2FkOworCisgICAgICAgIC8vIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSByZXNw
b25zZSBoZWFkZXJzIHdlcmUgcmVjZWl2ZWQuICBGb3IgY2FjaGVkCisgICAgICAgIC8vIHJlc3Bv
bnNlcywgdGhpcyB0aW1lIGNvdWxkIGJlICJmYXIiIGluIHRoZSBwYXN0LgorICAgICAgICBsb25n
IGxvbmcgbV9yZXNwb25zZVRpbWU7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODg5NCkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0wNiAgVG9ueSBH
ZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjaHJvbWl1bSBwb3J0IHRvIHNlbmQvcmVj
ZWl2ZSBjYWNoZWQgbWV0YWRhdGEuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRGF0YS5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJEYXRhOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJE
YXRhOjpvcGVyYXRvciBzdGQ6OnZlY3RvcjxjaGFyPik6CisgICAgICAgICogcHVibGljL1dlYktp
dENsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDbGllbnQ6OmNhY2hlTWV0YWRhdGEp
OgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2FjaGVNZXRhZGF0YSk6
CisgICAgICAgICogc3JjL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6d2lsbExvYWRGcm9tQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHNyYy9X
ZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpyZXNw
b25zZVRpbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6c2V0UmVzcG9uc2VU
aW1lKToKKwogMjAxMC0wNS0wNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkRhdGEuaAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQAogI2lmIFdFQktJ
VF9JTVBMRU1FTlRBVElPTgogbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBTaGFyZWRCdWZmZXI7
IH0KIG5hbWVzcGFjZSBXVEYgeyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgUGFzc1JlZlB0
cjsgfQorI2Vsc2UKKyNpbmNsdWRlIDx2ZWN0b3I+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC05OCw2ICsxMDAsMTEgQEAgcHVibGljOgogICAgICAgICBhc3NpZ24oYy5kYXRhKCks
IGMuc2l6ZSgpKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KKworICAgIG9wZXJhdG9y
IHN0ZDo6dmVjdG9yPGNoYXI+KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6OnZl
Y3RvcjxjaGFyPihkYXRhKCksIGRhdGEoKSArIHNpemUoKSk7CisgICAgfQogI2VuZGlmCiAKIHBy
aXZhdGU6CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmgJKHJldmlzaW9u
IDU4ODU1KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSBV
c2VyLUFnZW50IHN0cmluZyB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZ2l2ZW4gVVJMLgog
ICAgIHZpcnR1YWwgV2ViU3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJVUkwmKSB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQogCisgICAgLy8gQSBzdWdnZXN0aW9uIHRvIGNhY2hlIHRoaXMgbWV0YWRh
dGEgaW4gYXNzb2NpYXRpb24gd2l0aCB0aGlzIFVSTC4KKyAgICB2aXJ0dWFsIHZvaWQgY2FjaGVN
ZXRhZGF0YShjb25zdCBXZWJVUkwmLCBsb25nIGxvbmcsIGNvbnN0IFdlYkRhdGEmKSB7IH0KKwog
CiAgICAgLy8gUGx1Z2lucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VVJMTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJVUkxMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw5
IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hlbiBhIGNodW5rIG9mIHJlc3BvbnNlIGRhdGEg
aXMgcmVjZWl2ZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRl
ciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSA9IDA7CiAKKyAgICAvLyBDYWxs
ZWQgd2hlbiBhIGNodW5rIG9mIHJlbmRlcmVyLWdlbmVyYXRlZCBtZXRhZGF0YSBpcyByZWNlaXZl
ZCBmcm9tIHRoZSBjYWNoZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFk
YXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0K
KwogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikgPSAwOwogCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCShyZXZpc2lvbiA1ODg1
NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgdXJs
KCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFVSTChjb25zdCBXZWJVUkwmKTsKIAor
ICAgIFdFQktJVF9BUEkgbG9uZyBsb25nIHJlc3BvbnNlVGltZSgpIGNvbnN0OworICAgIFdFQktJ
VF9BUEkgdm9pZCBzZXRSZXNwb25zZVRpbWUobG9uZyBsb25nKTsKKwogICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldE1JTUVU
eXBlKGNvbnN0IFdlYlN0cmluZyYpOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVt
QnJpZGdlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDYgKzEzMiwxNSBAQCBzdGF0aWMg
V2ViQ29va2llSmFyKiBnZXRDb29raWVKYXIoY29uc3QKICAgICByZXR1cm4gY29va2llSmFyOwog
fQogCisvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNhY2hl
TWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBsb25nIGxvbmcgcmVzcG9uc2VUaW1lLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAgLy8gVE9ETyh0b255Zyk6IE1vcmUgbmF0dXJhbCBj
b252ZXJzaW9uLgorICAgIFdlYkRhdGEgd2ViRGF0YShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkp
OworICAgIHdlYktpdENsaWVudCgpLT5jYWNoZU1ldGFkYXRhKHVybCwgcmVzcG9uc2VUaW1lLCB3
ZWJEYXRhKTsKK30KKwogLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBib29sIENocm9taXVtQnJp
ZGdlOjpjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZSgKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvUmVzb3VyY2VIYW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
UmVzb3VyY2VIYW5kbGUuY3BwCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvUmVzb3VyY2VIYW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKIAorI2luY2x1
ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
QEAgLTcyLDYgKzczLDcgQEAgcHVibGljOgogICAgICAgICBXZWJVUkxMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVT
ZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYlVSTExvYWRlcios
IGNvbnN0IFdlYlVSTFJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRh
KFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhXZWJVUkxMb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJVUkxM
b2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYpOwogCkBAIC0xNzEsNiArMTczLDE2IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZUQKICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZURhdGEobV9vd25lciwgZGF0YSwgZGF0YUxlbmd0aCwgZGF0YUxlbmd0aCk7CiB9CiAKK3Zv
aWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKAorICAg
IFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQoreworICAg
IEFTU0VSVChtX2NsaWVudCk7CisgICAgaWYgKG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVj
ZWl2ZWRSZXNwb25zZSAmJiBtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmluZ0RhdGEp
CisgICAgICAgIENSQVNIKCk7CisKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFk
YXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgpOworfQorCiB2b2lkIFJlc291cmNlSGFuZGxl
SW50ZXJuYWw6OmRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikKIHsKICAgICBBU1NFUlQo
bV9jbGllbnQpOwpAQCAtMzExLDQgKzMyMywxMCBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxs
TG9hZEZyb21DYWNoZShSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNhY2hlTWV0YWRhdGEoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFZlY3RvcjxjaGFyPiYgZGF0YSkKK3sKKyAgICBXcmFwcGVkUmVzb3VyY2VSZXNwb25zZSB3cmFw
cGVkUmVzcG9uc2UocmVzcG9uc2UpOworICAgIENocm9taXVtQnJpZGdlOjpjYWNoZU1ldGFkYXRh
KHJlc3BvbnNlLnVybCgpLCByZXNwb25zZS5yZXNwb25zZVRpbWUoKSwgZGF0YSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVz
cG9uc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9u
c2UuY3BwCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVz
cG9uc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5MywxNiBAQCB2b2lkIFdlYlVSTFJl
c3BvbnNlOjpzZXRVUkwoY29uc3QgV2ViVVJMCiAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVz
cG9uc2UtPnNldFVSTCh1cmwpOwogfQogCitsb25nIGxvbmcgV2ViVVJMUmVzcG9uc2U6OnJlc3Bv
bnNlVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3Bv
bnNlLT5yZXNwb25zZVRpbWUoKTsKK30KKwordm9pZCBXZWJVUkxSZXNwb25zZTo6c2V0UmVzcG9u
c2VUaW1lKGxvbmcgbG9uZyByZXNwb25zZVRpbWUpIAoreworICAgIG1fcHJpdmF0ZS0+bV9yZXNv
dXJjZVJlc3BvbnNlLT5zZXRSZXNwb25zZVRpbWUocmVzcG9uc2VUaW1lKTsKK30KKwogV2ViU3Ry
aW5nIFdlYlVSTFJlc3BvbnNlOjptaW1lVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5taW1lVHlwZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55305</attachid>
            <date>2010-05-06 15:02:22 -0700</date>
            <delta_ts>2010-05-06 16:46:48 -0700</delta_ts>
            <desc>Merge with changes from 37874</desc>
            <filename>chromium.patch</filename>
            <type>text/plain</type>
            <size>9165</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2VpdmUgY2FjaGVkIG1ldGFkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjUKKwor
ICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OnJlc3BvbnNlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOjpzZXRSZXNwb25zZVRpbWUpOgorCiAyMDEwLTA1LTA2ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2lu
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkocmV2
aXNpb24gNTg4NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ2hyb21pdW1CcmlkZ2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgLy8gQ2Fj
aGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAgc3RhdGljIHZvaWQgY2FjaGVNZXRhZGF0YShjb25zdCBLVVJMJiB1
cmwsIGxvbmcgbG9uZyByZXNwb25zZVRpbWUsIGNvbnN0IFZlY3RvcjxjaGFyPiYpOworCiAgICAg
ICAgIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0YXRpYyBib29sIGNsaXBib2FyZElzRm9ybWF0
QXZhaWxhYmxlKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRGb3JtYXQsIFBhc3RlYm9hcmRQ
cml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDU4ODU1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICAsIG1fYXBwQ2FjaGVJRCgwKQogICAgICAgICAgICAgLCBtX3dhc0ZldGNoZWRW
aWFTUERZKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzTXVsdGlwYXJ0UGF5bG9hZChmYWxzZSkK
KyAgICAgICAgICAgICwgbV9yZXNwb25zZVRpbWUoMCkKICAgICAgICAgewogICAgICAgICB9CiAK
QEAgLTQ5LDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2Fw
cENhY2hlSUQoMCkKICAgICAgICAgICAgICwgbV93YXNGZXRjaGVkVmlhU1BEWShmYWxzZSkKICAg
ICAgICAgICAgICwgbV9pc011bHRpcGFydFBheWxvYWQoZmFsc2UpCisgICAgICAgICAgICAsIG1f
cmVzcG9uc2VUaW1lKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC04OCw2ICs5MCwxMiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2lzTXVsdGlwYXJ0UGF5bG9hZCA9
IHZhbHVlOwogICAgICAgICB9CiAKKyAgICAgICAgbG9uZyBsb25nIHJlc3BvbnNlVGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUaW1lOyB9CisgICAgICAgIHZvaWQgc2V0UmVzcG9uc2VU
aW1lKGxvbmcgbG9uZyByZXNwb25zZVRpbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcmVz
cG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKQEAgLTExNyw2ICsxMjUs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNldCB0byB0cnVlIGlmIHRo
aXMgaXMgcGFydCBvZiBhIG11bHRpcGFydCByZXNwb25zZS4KICAgICAgICAgYm9vbCBtX2lzTXVs
dGlwYXJ0UGF5bG9hZDsKKworICAgICAgICAvLyBUaGUgdGltZSBhdCB3aGljaCB0aGUgcmVzcG9u
c2UgaGVhZGVycyB3ZXJlIHJlY2VpdmVkLiAgRm9yIGNhY2hlZAorICAgICAgICAvLyByZXNwb25z
ZXMsIHRoaXMgdGltZSBjb3VsZCBiZSAiZmFyIiBpbiB0aGUgcGFzdC4KKyAgICAgICAgbG9uZyBs
b25nIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg4OTQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2Vu
dGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2Vp
dmUgY2FjaGVkIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg2NjUKKworICAgICAgICAqIHB1YmxpYy9XZWJLaXRDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2l0Q2xpZW50OjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
VVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHNy
Yy9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVzcG9uc2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6cmVzcG9uc2VUaW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnNldFJlc3BvbnNlVGltZSk6CisKIDIwMTAt
MDUtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJLaXRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdENsaWVudC5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJucyB0aGUgVXNlci1BZ2VudCBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNl
ZCBmb3IgdGhlIGdpdmVuIFVSTC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyB1c2VyQWdlbnQoY29u
c3QgV2ViVVJMJikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAorICAgIC8vIEEgc3VnZ2VzdGlv
biB0byBjYWNoZSB0aGlzIG1ldGFkYXRhIGluIGFzc29jaWF0aW9uIHdpdGggdGhpcyBVUkwuCisg
ICAgdmlydHVhbCB2b2lkIGNhY2hlTWV0YWRhdGEoY29uc3QgV2ViVVJMJiwgbG9uZyBsb25nLCBj
bnN0IGNoYXIqLCBzaXplZV90KSB7IH0KKwogCiAgICAgLy8gUGx1Z2lucyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
NTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hl
biBhIGNodW5rIG9mIHJlc3BvbnNlIGRhdGEgaXMgcmVjZWl2ZWQuCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKSA9IDA7CiAKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGNodW5rIG9mIHJlbmRlcmVyLWdl
bmVyYXRlZCBtZXRhZGF0YSBpcyByZWNlaXZlZCBmcm9tIHRoZSBjYWNoZS4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKwogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2Fk
IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoV2ViVVJMTG9hZGVyKikgPSAwOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXNwb25zZS5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVVJMUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgdXJsKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lk
IHNldFVSTChjb25zdCBXZWJVUkwmKTsKIAorICAgIFdFQktJVF9BUEkgbG9uZyBsb25nIHJlc3Bv
bnNlVGltZSgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXNwb25zZVRpbWUobG9u
ZyBsb25nKTsKKwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldE1JTUVUeXBlKGNvbnN0IFdlYlN0cmluZyYpOwogCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkocmV2aXNpb24gNTg4NTUpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTMyLDYgKzEzMiwxMyBAQCBzdGF0aWMgV2ViQ29va2llSmFyKiBnZXRDb29raWVKYXIoY29u
c3QKICAgICByZXR1cm4gY29va2llSmFyOwogfQogCisvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBsb25n
IGxvbmcgcmVzcG9uc2VUaW1lLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAgd2Vi
S2l0Q2xpZW50KCktPmNhY2hlTWV0YWRhdGEodXJsLCByZXNwb25zZVRpbWUsIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7Cit9CisKIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBDaHJv
bWl1bUJyaWRnZTo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAK
KyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCkBAIC03Miw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVVJMTG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJVUkxM
b2FkZXIqLCBjb25zdCBXZWJVUkxSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIq
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
V2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsKIApAQCAtMTcxLDYgKzE3MywxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVECiAgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOwog
fQogCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YSgKKyAgICBXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkK
K3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25T
dGF0ZVJlY2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZp
bmdEYXRhKQorICAgICAgICBDUkFTSCgpOworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKK30KKwogdm9pZCBSZXNvdXJj
ZUhhbmRsZUludGVybmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCiB7CiAgICAg
QVNTRVJUKG1fY2xpZW50KTsKQEAgLTMxMSw0ICszMjMsOSBAQCBib29sIFJlc291cmNlSGFuZGxl
Ojp3aWxsTG9hZEZyb21DYWNoZShSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhY2hlTWV0YWRhdGEoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFZlY3RvcjxjaGFyPiYgZGF0YSkKK3sKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2FjaGVN
ZXRhZGF0YShyZXNwb25zZS51cmwoKSwgcmVzcG9uc2UucmVzcG9uc2VUaW1lKCksIGRhdGEpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVS
TFJlc3BvbnNlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsMTYgQEAgdm9pZCBX
ZWJVUkxSZXNwb25zZTo6c2V0VVJMKGNvbnN0IFdlYlVSTAogICAgIG1fcHJpdmF0ZS0+bV9yZXNv
dXJjZVJlc3BvbnNlLT5zZXRVUkwodXJsKTsKIH0KIAorbG9uZyBsb25nIFdlYlVSTFJlc3BvbnNl
OjpyZXNwb25zZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7Cit9CisKK3ZvaWQgV2ViVVJMUmVzcG9uc2U6OnNl
dFJlc3BvbnNlVGltZShsb25nIGxvbmcgcmVzcG9uc2VUaW1lKSAKK3sKKyAgICBtX3ByaXZhdGUt
Pm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0UmVzcG9uc2VUaW1lKHJlc3BvbnNlVGltZSk7Cit9CisK
IFdlYlN0cmluZyBXZWJVUkxSZXNwb25zZTo6bWltZVR5cGUoKSBjb25zdAogewogICAgIHJldHVy
biBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+bWltZVR5cGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55320</attachid>
            <date>2010-05-06 16:46:48 -0700</date>
            <delta_ts>2010-05-07 09:03:09 -0700</delta_ts>
            <desc>Fix typo -- should fix redness</desc>
            <filename>chromium.patch</filename>
            <type>text/plain</type>
            <size>9165</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2VpdmUgY2FjaGVkIG1ldGFkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjUKKwor
ICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OnJlc3BvbnNlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOjpzZXRSZXNwb25zZVRpbWUpOgorCiAyMDEwLTA1LTA2ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2lu
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkocmV2
aXNpb24gNTg4NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ2hyb21pdW1CcmlkZ2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgLy8gQ2Fj
aGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAgc3RhdGljIHZvaWQgY2FjaGVNZXRhZGF0YShjb25zdCBLVVJMJiB1
cmwsIGxvbmcgbG9uZyByZXNwb25zZVRpbWUsIGNvbnN0IFZlY3RvcjxjaGFyPiYpOworCiAgICAg
ICAgIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0YXRpYyBib29sIGNsaXBib2FyZElzRm9ybWF0
QXZhaWxhYmxlKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRGb3JtYXQsIFBhc3RlYm9hcmRQ
cml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDU4ODU1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICAsIG1fYXBwQ2FjaGVJRCgwKQogICAgICAgICAgICAgLCBtX3dhc0ZldGNoZWRW
aWFTUERZKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzTXVsdGlwYXJ0UGF5bG9hZChmYWxzZSkK
KyAgICAgICAgICAgICwgbV9yZXNwb25zZVRpbWUoMCkKICAgICAgICAgewogICAgICAgICB9CiAK
QEAgLTQ5LDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2Fw
cENhY2hlSUQoMCkKICAgICAgICAgICAgICwgbV93YXNGZXRjaGVkVmlhU1BEWShmYWxzZSkKICAg
ICAgICAgICAgICwgbV9pc011bHRpcGFydFBheWxvYWQoZmFsc2UpCisgICAgICAgICAgICAsIG1f
cmVzcG9uc2VUaW1lKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC04OCw2ICs5MCwxMiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2lzTXVsdGlwYXJ0UGF5bG9hZCA9
IHZhbHVlOwogICAgICAgICB9CiAKKyAgICAgICAgbG9uZyBsb25nIHJlc3BvbnNlVGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUaW1lOyB9CisgICAgICAgIHZvaWQgc2V0UmVzcG9uc2VU
aW1lKGxvbmcgbG9uZyByZXNwb25zZVRpbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcmVz
cG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKQEAgLTExNyw2ICsxMjUs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNldCB0byB0cnVlIGlmIHRo
aXMgaXMgcGFydCBvZiBhIG11bHRpcGFydCByZXNwb25zZS4KICAgICAgICAgYm9vbCBtX2lzTXVs
dGlwYXJ0UGF5bG9hZDsKKworICAgICAgICAvLyBUaGUgdGltZSBhdCB3aGljaCB0aGUgcmVzcG9u
c2UgaGVhZGVycyB3ZXJlIHJlY2VpdmVkLiAgRm9yIGNhY2hlZAorICAgICAgICAvLyByZXNwb25z
ZXMsIHRoaXMgdGltZSBjb3VsZCBiZSAiZmFyIiBpbiB0aGUgcGFzdC4KKyAgICAgICAgbG9uZyBs
b25nIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg4OTQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2Vu
dGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2Vp
dmUgY2FjaGVkIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg2NjUKKworICAgICAgICAqIHB1YmxpYy9XZWJLaXRDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2l0Q2xpZW50OjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
VVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHNy
Yy9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVzcG9uc2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6cmVzcG9uc2VUaW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnNldFJlc3BvbnNlVGltZSk6CisKIDIwMTAt
MDUtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJLaXRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdENsaWVudC5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJucyB0aGUgVXNlci1BZ2VudCBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNl
ZCBmb3IgdGhlIGdpdmVuIFVSTC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyB1c2VyQWdlbnQoY29u
c3QgV2ViVVJMJikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAorICAgIC8vIEEgc3VnZ2VzdGlv
biB0byBjYWNoZSB0aGlzIG1ldGFkYXRhIGluIGFzc29jaWF0aW9uIHdpdGggdGhpcyBVUkwuCisg
ICAgdmlydHVhbCB2b2lkIGNhY2hlTWV0YWRhdGEoY29uc3QgV2ViVVJMJiwgbG9uZyBsb25nLCBj
b25zdCBjaGFyKiwgc2l6ZV90KSB7IH0KKwogCiAgICAgLy8gUGx1Z2lucyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
NTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hl
biBhIGNodW5rIG9mIHJlc3BvbnNlIGRhdGEgaXMgcmVjZWl2ZWQuCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKSA9IDA7CiAKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGNodW5rIG9mIHJlbmRlcmVyLWdl
bmVyYXRlZCBtZXRhZGF0YSBpcyByZWNlaXZlZCBmcm9tIHRoZSBjYWNoZS4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKwogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2Fk
IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoV2ViVVJMTG9hZGVyKikgPSAwOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXNwb25zZS5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVVJMUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgdXJsKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lk
IHNldFVSTChjb25zdCBXZWJVUkwmKTsKIAorICAgIFdFQktJVF9BUEkgbG9uZyBsb25nIHJlc3Bv
bnNlVGltZSgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXNwb25zZVRpbWUobG9u
ZyBsb25nKTsKKwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldE1JTUVUeXBlKGNvbnN0IFdlYlN0cmluZyYpOwogCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkocmV2aXNpb24gNTg4NTUpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTMyLDYgKzEzMiwxMyBAQCBzdGF0aWMgV2ViQ29va2llSmFyKiBnZXRDb29raWVKYXIoY29u
c3QKICAgICByZXR1cm4gY29va2llSmFyOwogfQogCisvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBsb25n
IGxvbmcgcmVzcG9uc2VUaW1lLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAgd2Vi
S2l0Q2xpZW50KCktPmNhY2hlTWV0YWRhdGEodXJsLCByZXNwb25zZVRpbWUsIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7Cit9CisKIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBDaHJv
bWl1bUJyaWRnZTo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAK
KyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCkBAIC03Miw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVVJMTG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJVUkxM
b2FkZXIqLCBjb25zdCBXZWJVUkxSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIq
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
V2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsKIApAQCAtMTcxLDYgKzE3MywxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVECiAgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOwog
fQogCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YSgKKyAgICBXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkK
K3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25T
dGF0ZVJlY2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZp
bmdEYXRhKQorICAgICAgICBDUkFTSCgpOworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKK30KKwogdm9pZCBSZXNvdXJj
ZUhhbmRsZUludGVybmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCiB7CiAgICAg
QVNTRVJUKG1fY2xpZW50KTsKQEAgLTMxMSw0ICszMjMsOSBAQCBib29sIFJlc291cmNlSGFuZGxl
Ojp3aWxsTG9hZEZyb21DYWNoZShSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhY2hlTWV0YWRhdGEoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFZlY3RvcjxjaGFyPiYgZGF0YSkKK3sKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2FjaGVN
ZXRhZGF0YShyZXNwb25zZS51cmwoKSwgcmVzcG9uc2UucmVzcG9uc2VUaW1lKCksIGRhdGEpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVS
TFJlc3BvbnNlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsMTYgQEAgdm9pZCBX
ZWJVUkxSZXNwb25zZTo6c2V0VVJMKGNvbnN0IFdlYlVSTAogICAgIG1fcHJpdmF0ZS0+bV9yZXNv
dXJjZVJlc3BvbnNlLT5zZXRVUkwodXJsKTsKIH0KIAorbG9uZyBsb25nIFdlYlVSTFJlc3BvbnNl
OjpyZXNwb25zZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7Cit9CisKK3ZvaWQgV2ViVVJMUmVzcG9uc2U6OnNl
dFJlc3BvbnNlVGltZShsb25nIGxvbmcgcmVzcG9uc2VUaW1lKSAKK3sKKyAgICBtX3ByaXZhdGUt
Pm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0UmVzcG9uc2VUaW1lKHJlc3BvbnNlVGltZSk7Cit9CisK
IFdlYlN0cmluZyBXZWJVUkxSZXNwb25zZTo6bWltZVR5cGUoKSBjb25zdAogewogICAgIHJldHVy
biBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+bWltZVR5cGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55380</attachid>
            <date>2010-05-07 09:03:09 -0700</date>
            <delta_ts>2010-05-10 13:11:45 -0700</delta_ts>
            <desc>Retry build now that 37874 has landed</desc>
            <filename>chromium.patch</filename>
            <type>text/plain</type>
            <size>9165</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2VpdmUgY2FjaGVkIG1ldGFkYXRhLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjUKKwor
ICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2U6OnJlc3BvbnNlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlOjpzZXRSZXNwb25zZVRpbWUpOgorCiAyMDEwLTA1LTA2ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2lu
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAkocmV2
aXNpb24gNTg4NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ2hyb21pdW1CcmlkZ2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgLy8gQ2Fj
aGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICAgICAgc3RhdGljIHZvaWQgY2FjaGVNZXRhZGF0YShjb25zdCBLVVJMJiB1
cmwsIGxvbmcgbG9uZyByZXNwb25zZVRpbWUsIGNvbnN0IFZlY3RvcjxjaGFyPiYpOworCiAgICAg
ICAgIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgIHN0YXRpYyBib29sIGNsaXBib2FyZElzRm9ybWF0
QXZhaWxhYmxlKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRGb3JtYXQsIFBhc3RlYm9hcmRQ
cml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgJKHJldmlzaW9uIDU4ODU1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICAsIG1fYXBwQ2FjaGVJRCgwKQogICAgICAgICAgICAgLCBtX3dhc0ZldGNoZWRW
aWFTUERZKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzTXVsdGlwYXJ0UGF5bG9hZChmYWxzZSkK
KyAgICAgICAgICAgICwgbV9yZXNwb25zZVRpbWUoMCkKICAgICAgICAgewogICAgICAgICB9CiAK
QEAgLTQ5LDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2Fw
cENhY2hlSUQoMCkKICAgICAgICAgICAgICwgbV93YXNGZXRjaGVkVmlhU1BEWShmYWxzZSkKICAg
ICAgICAgICAgICwgbV9pc011bHRpcGFydFBheWxvYWQoZmFsc2UpCisgICAgICAgICAgICAsIG1f
cmVzcG9uc2VUaW1lKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC04OCw2ICs5MCwxMiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2lzTXVsdGlwYXJ0UGF5bG9hZCA9
IHZhbHVlOwogICAgICAgICB9CiAKKyAgICAgICAgbG9uZyBsb25nIHJlc3BvbnNlVGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUaW1lOyB9CisgICAgICAgIHZvaWQgc2V0UmVzcG9uc2VU
aW1lKGxvbmcgbG9uZyByZXNwb25zZVRpbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcmVz
cG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKQEAgLTExNyw2ICsxMjUs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNldCB0byB0cnVlIGlmIHRo
aXMgaXMgcGFydCBvZiBhIG11bHRpcGFydCByZXNwb25zZS4KICAgICAgICAgYm9vbCBtX2lzTXVs
dGlwYXJ0UGF5bG9hZDsKKworICAgICAgICAvLyBUaGUgdGltZSBhdCB3aGljaCB0aGUgcmVzcG9u
c2UgaGVhZGVycyB3ZXJlIHJlY2VpdmVkLiAgRm9yIGNhY2hlZAorICAgICAgICAvLyByZXNwb25z
ZXMsIHRoaXMgdGltZSBjb3VsZCBiZSAiZmFyIiBpbiB0aGUgcGFzdC4KKyAgICAgICAgbG9uZyBs
b25nIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTg4OTQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDUtMDYgIFRvbnkgR2Vu
dGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2Vp
dmUgY2FjaGVkIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg2NjUKKworICAgICAgICAqIHB1YmxpYy9XZWJLaXRDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2l0Q2xpZW50OjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRl
ckNsaWVudDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
VVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHNy
Yy9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVzcG9uc2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6cmVzcG9uc2VUaW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnNldFJlc3BvbnNlVGltZSk6CisKIDIwMTAt
MDUtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJLaXRDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdENsaWVudC5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Miw2ICsxOTIsOSBAQCBwdWJsaWM6
CiAgICAgLy8gUmV0dXJucyB0aGUgVXNlci1BZ2VudCBzdHJpbmcgdGhhdCBzaG91bGQgYmUgdXNl
ZCBmb3IgdGhlIGdpdmVuIFVSTC4KICAgICB2aXJ0dWFsIFdlYlN0cmluZyB1c2VyQWdlbnQoY29u
c3QgV2ViVVJMJikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAorICAgIC8vIEEgc3VnZ2VzdGlv
biB0byBjYWNoZSB0aGlzIG1ldGFkYXRhIGluIGFzc29jaWF0aW9uIHdpdGggdGhpcyBVUkwuCisg
ICAgdmlydHVhbCB2b2lkIGNhY2hlTWV0YWRhdGEoY29uc3QgV2ViVVJMJiwgbG9uZyBsb25nLCBj
b25zdCBjaGFyKiwgc2l6ZV90KSB7IH0KKwogCiAgICAgLy8gUGx1Z2lucyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
NTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgd2hl
biBhIGNodW5rIG9mIHJlc3BvbnNlIGRhdGEgaXMgcmVjZWl2ZWQuCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKSA9IDA7CiAKKyAgICAvLyBDYWxsZWQgd2hlbiBhIGNodW5rIG9mIHJlbmRlcmVyLWdl
bmVyYXRlZCBtZXRhZGF0YSBpcyByZWNlaXZlZCBmcm9tIHRoZSBjYWNoZS4KKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KKwogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2Fk
IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoV2ViVVJMTG9hZGVyKikgPSAwOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlVSTFJlc3BvbnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXNwb25zZS5oCShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVVJMUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgV0VCS0lUX0FQSSBXZWJVUkwgdXJsKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lk
IHNldFVSTChjb25zdCBXZWJVUkwmKTsKIAorICAgIFdFQktJVF9BUEkgbG9uZyBsb25nIHJlc3Bv
bnNlVGltZSgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXNwb25zZVRpbWUobG9u
ZyBsb25nKTsKKwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldE1JTUVUeXBlKGNvbnN0IFdlYlN0cmluZyYpOwogCkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkocmV2aXNpb24gNTg4NTUpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTMyLDYgKzEzMiwxMyBAQCBzdGF0aWMgV2ViQ29va2llSmFyKiBnZXRDb29raWVKYXIoY29u
c3QKICAgICByZXR1cm4gY29va2llSmFyOwogfQogCisvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBsb25n
IGxvbmcgcmVzcG9uc2VUaW1lLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAgd2Vi
S2l0Q2xpZW50KCktPmNhY2hlTWV0YWRhdGEodXJsLCByZXNwb25zZVRpbWUsIGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7Cit9CisKIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBDaHJv
bWl1bUJyaWRnZTo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAK
KyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCkBAIC03Miw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVVJMTG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0
ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJVUkxM
b2FkZXIqLCBjb25zdCBXZWJVUkxSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2FkZXIq
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
V2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsKIApAQCAtMTcxLDYgKzE3MywxNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVECiAgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOwog
fQogCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YSgKKyAgICBXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkK
K3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25T
dGF0ZVJlY2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZp
bmdEYXRhKQorICAgICAgICBDUkFTSCgpOworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKK30KKwogdm9pZCBSZXNvdXJj
ZUhhbmRsZUludGVybmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCiB7CiAgICAg
QVNTRVJUKG1fY2xpZW50KTsKQEAgLTMxMSw0ICszMjMsOSBAQCBib29sIFJlc291cmNlSGFuZGxl
Ojp3aWxsTG9hZEZyb21DYWNoZShSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmNhY2hlTWV0YWRhdGEoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFZlY3RvcjxjaGFyPiYgZGF0YSkKK3sKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2FjaGVN
ZXRhZGF0YShyZXNwb25zZS51cmwoKSwgcmVzcG9uc2UucmVzcG9uc2VUaW1lKCksIGRhdGEpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVS
TFJlc3BvbnNlLmNwcAkocmV2aXNpb24gNTg4NTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsMTYgQEAgdm9pZCBX
ZWJVUkxSZXNwb25zZTo6c2V0VVJMKGNvbnN0IFdlYlVSTAogICAgIG1fcHJpdmF0ZS0+bV9yZXNv
dXJjZVJlc3BvbnNlLT5zZXRVUkwodXJsKTsKIH0KIAorbG9uZyBsb25nIFdlYlVSTFJlc3BvbnNl
OjpyZXNwb25zZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7Cit9CisKK3ZvaWQgV2ViVVJMUmVzcG9uc2U6OnNl
dFJlc3BvbnNlVGltZShsb25nIGxvbmcgcmVzcG9uc2VUaW1lKSAKK3sKKyAgICBtX3ByaXZhdGUt
Pm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0UmVzcG9uc2VUaW1lKHJlc3BvbnNlVGltZSk7Cit9CisK
IFdlYlN0cmluZyBXZWJVUkxSZXNwb25zZTo6bWltZVR5cGUoKSBjb25zdAogewogICAgIHJldHVy
biBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+bWltZVR5cGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55596</attachid>
            <date>2010-05-10 13:11:49 -0700</date>
            <delta_ts>2010-05-12 09:30:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38665-20100510131148.patch</filename>
            <type>text/plain</type>
            <size>9744</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODhhNDFlOTA3ZDdmOTFkMmRhNTY0ODMwOTM3ZTFhZjM4MzVkYjZjOC4uMDFjMWM5ZDU1NDFkZGEx
YzQ4MzExYWU0ZWExNjA1MmIxMmE1ZTZkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0xMCAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gVXBkYXRlIGNocm9taXVtIHBv
cnQgdG8gc2VuZC9yZWNlaXZlIGNhY2hlZCBtZXRhZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjUKKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
OjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6
OnJlc3BvbnNlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpzZXRS
ZXNwb25zZVRpbWUpOgorCiAyMDEwLTA1LTEwICBKb2huIEdyZWdnICA8am9obm55Z0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVHJ5IHRvIGZpeCB0aGUgY2hyb21pdW0gYnVpbGQg
YWZ0ZXIgcjU5MDg1IGJ5CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0No
cm9taXVtQnJpZGdlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgKaW5kZXggNmVjYTNlYmM5YTYzNWVjMzUzNmM1OWY4NGIxM2RlZDJjODA1NTA3YS4uMWYxNzJk
Zjg3OTg5OWQzOGEwYWI3MzQ5Y2MxZmUyMzcyMWYyNWZhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaApAQCAtNzIsNiArNzIsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBDaHJvbWl1bUJyaWRnZSB7CiAgICAgcHVibGljOgorICAgICAg
ICAvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBzdGF0aWMgdm9pZCBjYWNoZU1ldGFkYXRhKGNvbnN0
IEtVUkwmIHVybCwgbG9uZyBsb25nIHJlc3BvbnNlVGltZSwgY29uc3QgVmVjdG9yPGNoYXI+Jik7
CisKICAgICAgICAgLy8gQ2xpcGJvYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgc3RhdGljIGJvb2wgY2xpcGJvYXJk
SXNGb3JtYXRBdmFpbGFibGUoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEZvcm1hdCwgUGFz
dGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmggYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCmluZGV4IGI0NTM4OTY0
OTM3MmU3MzY4M2U4MTc3NjI3YzZkZmQ1Zjc1ZTA4MDAuLjk2YzA5MTlmMWUxZWYzYWZmZjYxYTJh
ZTFhZGU4MTYwNzUzYTNjMzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
aHJvbWl1bS9SZXNvdXJjZVJlc3BvbnNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYXBwQ2FjaGVJRCgwKQogICAgICAgICAgICAgLCBt
X3dhc0ZldGNoZWRWaWFTUERZKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzTXVsdGlwYXJ0UGF5
bG9hZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9yZXNwb25zZVRpbWUoMCkKICAgICAgICAgewog
ICAgICAgICB9CiAKQEAgLTQ5LDYgKzUwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgLCBtX2FwcENhY2hlSUQoMCkKICAgICAgICAgICAgICwgbV93YXNGZXRjaGVkVmlhU1BE
WShmYWxzZSkKICAgICAgICAgICAgICwgbV9pc011bHRpcGFydFBheWxvYWQoZmFsc2UpCisgICAg
ICAgICAgICAsIG1fcmVzcG9uc2VUaW1lKDApCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC04
OCw2ICs5MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBtX2lzTXVsdGlw
YXJ0UGF5bG9hZCA9IHZhbHVlOwogICAgICAgICB9CiAKKyAgICAgICAgbG9uZyBsb25nIHJlc3Bv
bnNlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VUaW1lOyB9CisgICAgICAgIHZvaWQg
c2V0UmVzcG9uc2VUaW1lKGxvbmcgbG9uZyByZXNwb25zZVRpbWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIG1fcmVzcG9uc2VUaW1lID0gcmVzcG9uc2VUaW1lOworICAgICAgICB9CisKICAgICBw
cml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKQEAg
LTExNyw2ICsxMjUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNldCB0
byB0cnVlIGlmIHRoaXMgaXMgcGFydCBvZiBhIG11bHRpcGFydCByZXNwb25zZS4KICAgICAgICAg
Ym9vbCBtX2lzTXVsdGlwYXJ0UGF5bG9hZDsKKworICAgICAgICAvLyBUaGUgdGltZSBhdCB3aGlj
aCB0aGUgcmVzcG9uc2UgaGVhZGVycyB3ZXJlIHJlY2VpdmVkLiAgRm9yIGNhY2hlZAorICAgICAg
ICAvLyByZXNwb25zZXMsIHRoaXMgdGltZSBjb3VsZCBiZSAiZmFyIiBpbiB0aGUgcGFzdC4KKyAg
ICAgICAgbG9uZyBsb25nIG1fcmVzcG9uc2VUaW1lOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDNmODM0ZmMzYjYyN2M4MjMxM2I0OWY2YTE2MzMzNTNl
Y2FjMWUxYjIuLjBmNmQ1M2Q1Y2Q4YmFkYzk2NDYwNThmNzlkMzYxOGFlYTFlNmJhMmMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEwLTA1LTEwICBUb255IEdlbnRpbGNvcmUgIDx0
b255Z0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW2Nocm9taXVtXSBVcGRhdGUgY2hyb21pdW0gcG9ydCB0byBzZW5kL3JlY2Vp
dmUgY2FjaGVkIG1ldGFkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODY2NQorCisgICAgICAgICogcHVibGljL1dlYktpdENsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRDbGllbnQ6OmNhY2hlTWV0YWRhdGEpOgorICAgICAgICAqIHB1
YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZGVy
Q2xpZW50OjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAgICAgICAqIHB1YmxpYy9XZWJV
UkxSZXNwb25zZS5oOgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2FjaGVNZXRhZGF0YSk6CisgICAgICAgICogc3Jj
L1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6Y2FjaGVNZXRhZGF0YSk6CisgICAgICAgICogc3JjL1dlYlVSTFJlc3BvbnNl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnJlc3BvbnNlVGltZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpzZXRSZXNwb25zZVRpbWUpOgorCisyMDEw
LTA1LTEwICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KIAogICAgICAgICBQcm92aWRlIG1lY2hhbmlzbSB0byBj
YWNoZSBtZXRhZGF0YSBmb3IgYSByZXNvdXJjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJLaXRDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xp
ZW50LmgKaW5kZXggOTdkMjVhODgxYjFmYmVkMmNmZjc0ZDk1ZTg4M2NkMDc2MGNjNTdjMy4uZDMy
MDk1NTY0NTlmMmRhODMyMTI3ZDMwZjRmZDQ2MzZjMDQyYzliNiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYktpdENsaWVudC5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgdGhlIFVzZXItQWdlbnQgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBn
aXZlbiBVUkwuCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYlVSTCYp
IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKKyAgICAvLyBBIHN1Z2dlc3Rpb24gdG8gY2FjaGUg
dGhpcyBtZXRhZGF0YSBpbiBhc3NvY2lhdGlvbiB3aXRoIHRoaXMgVVJMLgorICAgIHZpcnR1YWwg
dm9pZCBjYWNoZU1ldGFkYXRhKGNvbnN0IFdlYlVSTCYsIGxvbmcgbG9uZywgY29uc3QgY2hhcios
IHNpemVfdCkgeyB9CisKIAogICAgIC8vIFBsdWdpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAppbmRleCAwM2IyYzU0ZDBmY2ZiODZjMzBiNDA5
ZGU1MDBjMThjYzMyZmM0OWI2Li5hNjZiMTUzZTE0YjBiYjRiMWUzYjg0NDVhNGM5ZGIwMzZmMDQz
NTQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVu
dC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKQEAg
LTU2LDYgKzU2LDkgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCB3aGVuIGEgY2h1bmsgb2YgcmVz
cG9uc2UgZGF0YSBpcyByZWNlaXZlZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
V2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpID0gMDsKIAor
ICAgIC8vIENhbGxlZCB3aGVuIGEgY2h1bmsgb2YgcmVuZGVyZXItZ2VuZXJhdGVkIG1ldGFkYXRh
IGlzIHJlY2VpdmVkIGZyb20gdGhlIGNhY2hlLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
Q2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFM
ZW5ndGgpIHsgfQorCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGxvYWQgY29tcGxldGVzIHN1Y2Nl
c3NmdWxseS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIq
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9u
c2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAppbmRleCAzYWNh
Y2Y4NGZiY2FiMDE4NTc2YTcxZjY0Yjg4ZTk3NzAyMGUyNWUzLi5mYTMzMDkxOTU2YjU3MzEwN2Yx
MDYzMjdkZjdiMWFiODRmNGE4NTMyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlVSTFJlc3BvbnNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNw
b25zZS5oCkBAIC03Miw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlVSTCB1
cmwoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VVJMKGNvbnN0IFdlYlVSTCYpOwog
CisgICAgV0VCS0lUX0FQSSBsb25nIGxvbmcgcmVzcG9uc2VUaW1lKCkgY29uc3Q7CisgICAgV0VC
S0lUX0FQSSB2b2lkIHNldFJlc3BvbnNlVGltZShsb25nIGxvbmcpOworCiAgICAgV0VCS0lUX0FQ
SSBXZWJTdHJpbmcgbWltZVR5cGUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0TUlN
RVR5cGUoY29uc3QgV2ViU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRn
ZS5jcHAKaW5kZXggYTBlOGQzYjYxOTdmOWYzZTE2ZTJkZTkwZjdiYTkwOGYwMzZiNDhmNC4uYjRm
NWQ2YjcwZDAxZmRhYzhkZDMwZDIwM2Y2ZmNiNDYxY2ZmYjZhZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWl1bUJyaWRnZS5jcHAKQEAgLTEzMiw2ICsxMzIsMTMgQEAgc3RhdGljIFdlYkNvb2tp
ZUphciogZ2V0Q29va2llSmFyKGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4g
Y29va2llSmFyOwogfQogCisvLyBDYWNoZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3ZvaWQgQ2hyb21pdW1C
cmlkZ2U6OmNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBsb25nIGxvbmcgcmVzcG9uc2VU
aW1lLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7CisgICAgd2ViS2l0Q2xpZW50KCktPmNh
Y2hlTWV0YWRhdGEodXJsLCByZXNwb25zZVRpbWUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7
Cit9CisKIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYm9vbCBDaHJvbWl1bUJyaWRnZTo6Y2xp
cGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUu
Y3BwCmluZGV4IGI3ZDVkZGQyZmRjNWU5YmEzMjgxMjJlOTJkN2ZjM2UxMTRjNDUwMTIuLjBkNDZi
MTIzY2QzODE5YTgyNzc2OGM0MjE0NTA0ZmU0NTdlMmZhM2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
UmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKIAorI2luY2x1ZGUgIkNocm9taXVtQnJpZGdl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTcyLDYgKzczLDcgQEAg
cHVibGljOgogICAgICAgICBXZWJVUkxMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNT
ZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3Bv
bnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2Fk
ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJV
UkxFcnJvciYpOwogCkBAIC0xNzEsNiArMTczLDE2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6ZGlkUmVjZWl2ZURhdGEoCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVEYXRhKG1fb3du
ZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgpOwogfQogCit2b2lkIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSgKKyAgICBXZWJVUkxMb2FkZXIq
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKK3sKKyAgICBBU1NFUlQobV9jbGll
bnQpOworICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmVkUmVzcG9uc2Ug
JiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhKQorICAgICAgICBDUkFT
SCgpOworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShtX293bmVyLCBk
YXRhLCBkYXRhTGVuZ3RoKTsKK30KKwogdm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRG
aW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKQEAg
LTMxNCw3ICszMjYsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikKIC8vIHN0YXRpYwogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y2FjaGVNZXRhZGF0YShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Y29uc3QgVmVjdG9yPGNoYXI+JiBkYXRhKQogewotICAgIC8vIEZJWE1FCisgICAgQ2hyb21pdW1C
cmlkZ2U6OmNhY2hlTWV0YWRhdGEocmVzcG9uc2UudXJsKCksIHJlc3BvbnNlLnJlc3BvbnNlVGlt
ZSgpLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlVSTFJlc3BvbnNlLmNwcAppbmRleCAzYjA2MDBjZjg5M2QzMzFkZmY3NzE1MjYxMmYzMTVl
M2JmZjE1MDQyLi45ODA2NjBjZDM2YjYyZjM3NzM3M2Q4MDIxODU4ZjhjOGEwMDA2OTdiIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtOTMsNiArOTMsMTYgQEAgdm9p
ZCBXZWJVUkxSZXNwb25zZTo6c2V0VVJMKGNvbnN0IFdlYlVSTCYgdXJsKQogICAgIG1fcHJpdmF0
ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5zZXRVUkwodXJsKTsKIH0KIAorbG9uZyBsb25nIFdlYlVS
TFJlc3BvbnNlOjpyZXNwb25zZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUt
Pm1fcmVzb3VyY2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7Cit9CisKK3ZvaWQgV2ViVVJMUmVz
cG9uc2U6OnNldFJlc3BvbnNlVGltZShsb25nIGxvbmcgcmVzcG9uc2VUaW1lKSAKK3sKKyAgICBt
X3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0UmVzcG9uc2VUaW1lKHJlc3BvbnNlVGlt
ZSk7Cit9CisKIFdlYlN0cmluZyBXZWJVUkxSZXNwb25zZTo6bWltZVR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+bWltZVR5cGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55859</attachid>
            <date>2010-05-12 09:30:50 -0700</date>
            <delta_ts>2010-05-14 04:55:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38665-20100512093049.patch</filename>
            <type>text/plain</type>
            <size>9698</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTQwMTBhNzlkNDkwYmMwNDg2YWM5ZjA2MWFiMDczMGVhOWNjMGE1Mi4uZTk4MGRkZGY2NmQxOWRl
M2E3MTY0ZmU5MTY4NGI3ZjhhNmUyM2E0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0xMiAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gVXBkYXRlIGNocm9taXVtIHBv
cnQgdG8gc2VuZC9yZWNlaXZlIGNhY2hlZCBtZXRhZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2NjUKKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1
bS9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
OjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6
OnJlc3BvbnNlVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpzZXRS
ZXNwb25zZVRpbWUpOgorCiAyMDEwLTA1LTEwICBSb2RyaWdvIEJlbGVtICA8cm9kcmlnby5iZWxl
bUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggQ2hyaXN0aWFu
c2VuICwgU2ltb24gSGF1c21hbm4gYW5kIEd1c3Rhdm8gTm9yb25oYS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBkM2E5MTU1ZTFlZWM1ZDVhY2ExMTc3
YzdhOWNhYmIzZGM5MDcwNGM0Li4xMWViY2FkYzJkYzdmYjVhYWFjYjA4YzM1YTExN2UxNTVjYWEw
ZGM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCkBAIC03
Miw2ICs3Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENocm9taXVtQnJp
ZGdlIHsKICAgICBwdWJsaWM6CisgICAgICAgIC8vIENhY2hlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIHN0YXRp
YyB2b2lkIGNhY2hlTWV0YWRhdGEoY29uc3QgS1VSTCYgdXJsLCBkb3VibGUgcmVzcG9uc2VUaW1l
LCBjb25zdCBWZWN0b3I8Y2hhcj4mKTsKKwogICAgICAgICAvLyBDbGlwYm9hcmQgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAg
ICBzdGF0aWMgYm9vbCBjbGlwYm9hcmRJc0Zvcm1hdEF2YWlsYWJsZShQYXN0ZWJvYXJkUHJpdmF0
ZTo6Q2xpcGJvYXJkRm9ybWF0LCBQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
UmVzcG9uc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJl
c3BvbnNlLmgKaW5kZXggYjQ1Mzg5NjQ5MzcyZTczNjgzZTgxNzc2MjdjNmRmZDVmNzVlMDgwMC4u
MzNmMmJhMmI3MTcxM2FhMWNiODMxZDc5YmQ2OTA0ZmU2ODQyYTZjZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVzcG9uc2UuaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXNwb25zZS5oCkBAIC00
MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9hcHBDYWNo
ZUlEKDApCiAgICAgICAgICAgICAsIG1fd2FzRmV0Y2hlZFZpYVNQRFkoZmFsc2UpCiAgICAgICAg
ICAgICAsIG1faXNNdWx0aXBhcnRQYXlsb2FkKGZhbHNlKQorICAgICAgICAgICAgLCBtX3Jlc3Bv
bnNlVGltZSgwKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNDksNiArNTAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fYXBwQ2FjaGVJRCgwKQogICAgICAgICAg
ICAgLCBtX3dhc0ZldGNoZWRWaWFTUERZKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzTXVsdGlw
YXJ0UGF5bG9hZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9yZXNwb25zZVRpbWUoMCkKICAgICAg
ICAgewogICAgICAgICB9CiAKQEAgLTg4LDYgKzkwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIG1faXNNdWx0aXBhcnRQYXlsb2FkID0gdmFsdWU7CiAgICAgICAgIH0KIAor
ICAgICAgICBkb3VibGUgcmVzcG9uc2VUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVRp
bWU7IH0KKyAgICAgICAgdm9pZCBzZXRSZXNwb25zZVRpbWUoZG91YmxlIHJlc3BvbnNlVGltZSkK
KyAgICAgICAgeworICAgICAgICAgICAgbV9yZXNwb25zZVRpbWUgPSByZXNwb25zZVRpbWU7Cisg
ICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlQmFzZTsKIApAQCAtMTE3LDYgKzEyNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgLy8gU2V0IHRvIHRydWUgaWYgdGhpcyBpcyBwYXJ0IG9mIGEgbXVsdGlwYXJ0IHJl
c3BvbnNlLgogICAgICAgICBib29sIG1faXNNdWx0aXBhcnRQYXlsb2FkOworCisgICAgICAgIC8v
IFRoZSB0aW1lIGF0IHdoaWNoIHRoZSByZXNwb25zZSBoZWFkZXJzIHdlcmUgcmVjZWl2ZWQuICBG
b3IgY2FjaGVkCisgICAgICAgIC8vIHJlc3BvbnNlcywgdGhpcyB0aW1lIGNvdWxkIGJlICJmYXIi
IGluIHRoZSBwYXN0LgorICAgICAgICBkb3VibGUgbV9yZXNwb25zZVRpbWU7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTA1MDU2NGYyMjdjMGY1ZjNk
NDY4Njc5NGQ0MDk4MDRmOTY1NTBjOS4uNWMzMjkzOGJjYWMxM2RhMGExNTUyYzhmNTczYzcwOTk4
MzU4M2IzYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMTIgIFRvbnkg
R2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIFVwZGF0ZSBjaHJvbWl1bSBwb3J0
IHRvIHNlbmQvcmVjZWl2ZSBjYWNoZWQgbWV0YWRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjY1CisKKyAgICAgICAgKiBwdWJsaWMvV2ViS2l0
Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYktpdENsaWVudDo6Y2FjaGVNZXRhZGF0YSk6
CisgICAgICAgICogcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAg
ICogcHVibGljL1dlYlVSTFJlc3BvbnNlLmg6CisgICAgICAgICogc3JjL0Nocm9taXVtQnJpZGdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpjYWNoZU1ldGFkYXRhKToK
KyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjYWNoZU1ldGFkYXRhKToKKyAgICAgICAgKiBzcmMv
V2ViVVJMUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6cmVz
cG9uc2VUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnNldFJlc3BvbnNl
VGltZSk6CisKIDIwMTAtMDUtMTAgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmgKaW5kZXggOTdkMjVhODgxYjFmYmVkMmNmZjc0ZDk1ZTg4M2NkMDc2MGNj
NTdjMy4uNDk4MjM5ZTU1MTgyNTdjNzI1NTYxNTA3ZWI2NWRkNTlhNTgxMmJjNSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgog
ICAgIC8vIFJldHVybnMgdGhlIFVzZXItQWdlbnQgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHVzZWQg
Zm9yIHRoZSBnaXZlbiBVUkwuCiAgICAgdmlydHVhbCBXZWJTdHJpbmcgdXNlckFnZW50KGNvbnN0
IFdlYlVSTCYpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CiAKKyAgICAvLyBBIHN1Z2dlc3Rpb24g
dG8gY2FjaGUgdGhpcyBtZXRhZGF0YSBpbiBhc3NvY2lhdGlvbiB3aXRoIHRoaXMgVVJMLgorICAg
IHZpcnR1YWwgdm9pZCBjYWNoZU1ldGFkYXRhKGNvbnN0IFdlYlVSTCYsIGRvdWJsZSByZXNwb25z
ZVRpbWUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkgeyB9CisKIAogICAgIC8v
IFBsdWdpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVS
TExvYWRlckNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGll
bnQuaAppbmRleCAwM2IyYzU0ZDBmY2ZiODZjMzBiNDA5ZGU1MDBjMThjYzMyZmM0OWI2Li5hNjZi
MTUzZTE0YjBiYjRiMWUzYjg0NDVhNGM5ZGIwMzZmMDQzNTQ0IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGljOgog
ICAgIC8vIENhbGxlZCB3aGVuIGEgY2h1bmsgb2YgcmVzcG9uc2UgZGF0YSBpcyByZWNlaXZlZC4K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hh
ciogZGF0YSwgaW50IGRhdGFMZW5ndGgpID0gMDsKIAorICAgIC8vIENhbGxlZCB3aGVuIGEgY2h1
bmsgb2YgcmVuZGVyZXItZ2VuZXJhdGVkIG1ldGFkYXRhIGlzIHJlY2VpdmVkIGZyb20gdGhlIGNh
Y2hlLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9h
ZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIHsgfQorCiAgICAgLy8gQ2Fs
bGVkIHdoZW4gdGhlIGxvYWQgY29tcGxldGVzIHN1Y2Nlc3NmdWxseS4KICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVVJMUmVzcG9uc2UuaAppbmRleCAzYWNhY2Y4NGZiY2FiMDE4NTc2YTcxZjY0Yjg4
ZTk3NzAyMGUyNWUzLi5mMDg5MDI4NWZlZDMzZmRmMTAzODUwNWM0N2VhMzlkY2IyMzUyMjhlIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCkBAIC03Miw2ICs3Miw5IEBA
IHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdlYlVSTCB1cmwoKSBjb25zdDsKICAgICBXRUJLSVRf
QVBJIHZvaWQgc2V0VVJMKGNvbnN0IFdlYlVSTCYpOwogCisgICAgV0VCS0lUX0FQSSBkb3VibGUg
cmVzcG9uc2VUaW1lKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc3BvbnNlVGlt
ZShkb3VibGUpOworCiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbWltZVR5cGUoKSBjb25zdDsK
ICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0TUlNRVR5cGUoY29uc3QgV2ViU3RyaW5nJik7CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5kZXggZjc1ODU2NWQ5Mjg5NDExNGNl
Y2U0ZGRjZTk1MDIzNTJiYTMxYjc4Zi4uNTNmOTJjOTQ4MjQyN2FkNzM3NTEwMDJhOGNkYmM2NDcw
MGM3M2M0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5j
cHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKQEAgLTEzMiw2
ICsxMzIsMTMgQEAgc3RhdGljIFdlYkNvb2tpZUphciogZ2V0Q29va2llSmFyKGNvbnN0IERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4gY29va2llSmFyOwogfQogCisvLyBDYWNoZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK3ZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEoY29uc3QgS1VS
TCYgdXJsLCBkb3VibGUgcmVzcG9uc2VUaW1lLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGRhdGEpCit7
CisgICAgd2ViS2l0Q2xpZW50KCktPmNhY2hlTWV0YWRhdGEodXJsLCByZXNwb25zZVRpbWUsIGRh
dGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7Cit9CisKIC8vIENsaXBib2FyZCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
Ym9vbCBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkSXNGb3JtYXRBdmFpbGFibGUoCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IGI3ZDVkZGQyZmRjNWU5YmEzMjgxMjJl
OTJkN2ZjM2UxMTRjNDUwMTIuLmExMzQwMGQ3N2NhN2I1M2YzOTQwNWZkN2I4YTJhZTk3YzJmNzkw
ZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKIAor
I2luY2x1ZGUgIkNocm9taXVtQnJpZGdlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGll
bnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKQEAgLTcyLDYgKzczLDcgQEAgcHVibGljOgogICAgICAgICBXZWJVUkxMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRl
c1RvQmVTZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYlVSTExv
YWRlciosIGNvbnN0IFdlYlVSTFJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlcios
IGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChX
ZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYpOwogCkBAIC0xNzEsNiArMTczLDE1IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZURhdGEoCiAgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVEYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgsIGRhdGFMZW5ndGgp
OwogfQogCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZFJlY2VpdmVDYWNoZWRNZXRh
ZGF0YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKK3sK
KyAgICBBU1NFUlQobV9jbGllbnQpOworICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0
ZVJlY2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdE
YXRhKQorICAgICAgICBDUkFTSCgpOworCisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNoZWRN
ZXRhZGF0YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKK30KKwogdm9pZCBSZXNvdXJjZUhh
bmRsZUludGVybmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCiB7CiAgICAgQVNT
RVJUKG1fY2xpZW50KTsKQEAgLTMxNCw3ICszMjUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjp3
aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZyYW1lKikKIC8vIHN0
YXRpYwogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FjaGVNZXRhZGF0YShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgVmVjdG9yPGNoYXI+JiBkYXRhKQogewotICAgIC8vIEZJ
WE1FCisgICAgQ2hyb21pdW1CcmlkZ2U6OmNhY2hlTWV0YWRhdGEocmVzcG9uc2UudXJsKCksIHJl
c3BvbnNlLnJlc3BvbnNlVGltZSgpLCBkYXRhKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAppbmRleCAzYjA2MDBjZjg5M2Qz
MzFkZmY3NzE1MjYxMmYzMTVlM2JmZjE1MDQyLi43NmVlNGFjZTc1NGQ3OTAxNjdlZGVjYzZmMzdm
ZDhhMGUzZjU1YTYzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3Bv
bnNlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAt
OTMsNiArOTMsMTYgQEAgdm9pZCBXZWJVUkxSZXNwb25zZTo6c2V0VVJMKGNvbnN0IFdlYlVSTCYg
dXJsKQogICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5zZXRVUkwodXJsKTsKIH0K
IAorZG91YmxlIFdlYlVSTFJlc3BvbnNlOjpyZXNwb25zZVRpbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7Cit9CisK
K3ZvaWQgV2ViVVJMUmVzcG9uc2U6OnNldFJlc3BvbnNlVGltZShkb3VibGUgcmVzcG9uc2VUaW1l
KQoreworICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5zZXRSZXNwb25zZVRpbWUo
cmVzcG9uc2VUaW1lKTsKK30KKwogV2ViU3RyaW5nIFdlYlVSTFJlc3BvbnNlOjptaW1lVHlwZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5taW1l
VHlwZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>