<?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>85025</bug_id>
          
          <creation_ts>2012-04-26 19:24:42 -0700</creation_ts>
          <short_desc>[Resource Timing] Report redirect time for resources</short_desc>
          <delta_ts>2014-02-05 10:59:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103867</dependson>
          <blocked>61152</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>pan.deng</cc>
    
    <cc>philn</cc>
    
    <cc>sullivan</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611182</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-04-26 19:24:42 -0700</bug_when>
    <thetext>Redirect time is always 0. This should report the correct values.

We had to add some code to MainResourceLoader to track redirects while fetching the main resource for Navigation Timing. We&apos;ll have to do the same for ResourceLoader.

We also need to ensure that the redirect times reported honor the same-origin policy noted in the spec. They should be zeroed out if there are any cross-origin redirects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683036</commentid>
    <comment_count>1</comment_count>
      <attachid>155530</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-07-31 07:37:13 -0700</bug_when>
    <thetext>Created attachment 155530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683048</commentid>
    <comment_count>2</comment_count>
      <attachid>155530</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-31 07:44:24 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13403191</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683049</commentid>
    <comment_count>3</comment_count>
      <attachid>155530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-31 07:44:31 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13384980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683058</commentid>
    <comment_count>4</comment_count>
      <attachid>155530</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-31 07:50:50 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13389698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683060</commentid>
    <comment_count>5</comment_count>
      <attachid>155530</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-31 07:52:20 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13401400</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683061</commentid>
    <comment_count>6</comment_count>
      <attachid>155530</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-31 07:53:10 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13401397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683083</commentid>
    <comment_count>7</comment_count>
      <attachid>155530</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-31 08:11:40 -0700</bug_when>
    <thetext>Comment on attachment 155530
Patch

Attachment 155530 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13392742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683295</commentid>
    <comment_count>8</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-07-31 11:31:03 -0700</bug_when>
    <thetext>You&apos;ll want to base this on the patch in https://bugs.webkit.org/show_bug.cgi?id=84883

We don&apos;t want to populate the buffer from the loaders, because they don&apos;t have access to the initiator. So we&apos;re implementing this a level up.

Also, we need to support the Timing-Allow-Origin header. And test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684122</commentid>
    <comment_count>9</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-08-01 06:01:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; You&apos;ll want to base this on the patch in https://bugs.webkit.org/show_bug.cgi?id=84883
&gt; 
&gt; We don&apos;t want to populate the buffer from the loaders, because they don&apos;t have access to the initiator. So we&apos;re implementing this a level up.
&gt; 
&gt; Also, we need to support the Timing-Allow-Origin header. And test cases.

Thanks for quick response; I can help Timing-Allow-Origin issue and test cases:)

About populating performance entries from kinds of CachedResourceClient, I feel it will take more engineering effort and a little confused, another issue is several entries will be populated when one time fetched resource is feed to several CachedResourceClients(W3C spec recommends one entry).

Is it possible we expose initiator informantion by virtual functions from CachedResourceClient =&gt; CachedResource =&gt; SubResourceLoader? Then we can have centralized control of timing info, redirect etc in loader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684929</commentid>
    <comment_count>10</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-08-01 20:27:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; About populating performance entries from kinds of CachedResourceClient, I feel it will take more engineering effort and a little confused, another issue is several entries will be populated when one time fetched resource is feed to several CachedResourceClients(W3C spec recommends one entry).

That&apos;s a good point.

&gt; Is it possible we expose initiator informantion by virtual functions from CachedResourceClient =&gt; CachedResource =&gt; SubResourceLoader? Then we can have centralized control of timing info, redirect etc in loader.

I&apos;m worried about the case where the first element is removed from the document, but another element requests the same resource. According to the spec, the original element should still be reported as the initiator. In the above design, we can&apos;t rely on the original element still being a client.

One option would be to pass the initiator in to the CachedResource and the first one to construct the object in the MemoryCache becomes the initiator. However, I got the sense that this was not desirable, because of layering. We don&apos;t want a lot of DOM knowledge in loader/. Maybe this one is okay though?

Another alternative would be to use more of an observer design, like Inspector. We could just note when an element requests a URL and when the loaders make a request, redirect, and finish. Resource Timing would keep track of the state on its end. That also has the benefit of not needing an extra parameter everywhere CachedResource is used.

Other ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685393</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-02 08:02:52 -0700</bug_when>
    <thetext>I&apos;m going to defer to Nate on these questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713283</commentid>
    <comment_count>12</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-09-06 07:53:21 -0700</bug_when>
    <thetext>@Nate, how do you think about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976873</commentid>
    <comment_count>13</comment_count>
      <attachid>155530</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 10:59:06 -0800</bug_when>
    <thetext>Comment on attachment 155530
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155530</attachid>
            <date>2012-07-31 07:37:13 -0700</date>
            <delta_ts>2014-02-05 10:59:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85025-20120731224121.patch</filename>
            <type>text/plain</type>
            <size>15786</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBjNzAyMDM0MTJlOGNj
NTJiM2RiYTYxMTkzYTdiOTc3ZmJmMjYxMy4uOWU1Mzk2ZmM0OTdkN2Q0MDUzZGIwMTZjMDI2MzBj
YTg4ODEyMmRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTMxICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXSBU
aGlzIHBhdGNoIGVuYWJsZSByZWRpcmVjdCB0aW1pbmcgaW5mb3JtYXRpb24gZm9yIHJlc291cmNl
IHRpbWluZy4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTAyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlZGlyZWN0IHRpbWUgaXMgdHJhY2tlZCBpbiBSZXNvdXJjZUxvYWRlciB3aGVuIHRoZWlyIGlz
IGEgcmVkaXJlY3QsIGFuZCB0aGVuIGZlZWQgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy4gdGhp
cyBwYXRjaCBhbHNvIGVuYWJsZSByZXNvdXJjZSB0aW1pbmcgZW50cnkgcG9wdWxhdGlvbiBmcm9t
IFJlc291cmNlTG9hZGVyIGRpZEZpbmlzaExvYWRpbmcuCisKKyAgICAgICAgTm8gdGVzdHMgeWV0
LCBub3QgZW5hYmxlIGluIGFueSBwbGF0Zm9ybS4KKworICAgICAgICAqIGxvYWRlci9NYWluUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6cG9wdWxhdGVQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGxv
YWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKE1haW5SZXNvdXJjZUxvYWRlcik6
CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzZXRPcmlnaW5SZXF1
ZXN0KToKKyAgICAgICAgKFJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyOjpwb3B1bGF0ZVBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOgorICAgICAgICAq
IGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNv
dXJjZUxvYWRlcjo6cG9wdWxhdGVQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKToKKyAgICAgICAg
KiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFN1YnJlc291cmNlTG9hZGVy
KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlOjphZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5j
ZS5oOgorICAgICAgICAoUGVyZm9ybWFuY2UpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5oOgorICAgICAgICAoUGVyZm9ybWFuY2VFbnRyeSk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6c3RhcnRUaW1lKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6ZHVy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6cmVk
aXJlY3RTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
OjpyZWRpcmVjdEVuZCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpjcmVhdGUp
OgorICAgICAgICAoUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6CisKIDIwMTItMDctMjQgIEtl
bnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtKU0NdIFJFR1JF
U1NJT04ocjEyMjkxMik6IENvZGVHZW5lcmF0b3JKUy5wbSBzaG91bGQgbm90CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGZlN2QxZjlmMjNmYTJj
MTJhMDFlMzViNjZlYzU3MThkNjA0Njc1NDEuLjgxNGQ2MDEwYzlkYjE2MWE0OGEwNzAxNGJmNzY4
NmI1MTk3ZjFmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3Vy
Y2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
QEAgLTY0Miw2ICs2NDMsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6bG9hZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHIsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdQogICAgIGRvY3VtZW50
TG9hZGVyKCktPnRpbWluZygpLT5tYXJrRmV0Y2hTdGFydCgpOwogICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KHIpOwogCisgICAgc2V0T3JpZ2luUmVxdWVzdChyZXF1ZXN0KTsKICAgICBkb2N1
bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRNYWluUmVzb3Vy
Y2UocmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSk7CiAKICAgICBib29sIGRlZmVyID0gZGVmZXJz
TG9hZGluZygpOwpAQCAtNjc4LDQgKzY4MCwxMCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICB9CiB9CiAKK3ZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjpwb3B1bGF0ZVBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoZG91YmxlIGZpbmlz
aFRpbWUpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCisgICAg
ICAgIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCktPmV4aXN0aW5nRE9NV2luZG93KCktPnBlcmZv
cm1hbmNlKCktPmFkZFJlc291cmNlVGltaW5nKG1fb3JpZ2luYWxSZXF1ZXN0LCBtX3Jlc3BvbnNl
LCBmaW5pc2hUaW1lLCBtX3JlZGlyZWN0U3RhcnQsIG1fcmVkaXJlY3RFbmQsIG1fZnJhbWUtPmRv
Y3VtZW50KCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFp
blJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9h
ZGVyLmgKaW5kZXggYzNiODIyMjQ5ZDNmOTYzYjk3NjZjMGIwZGMxNDljZmRiZjNlOWRlZi4uMzkw
M2Q3MzI2ZjQ1OTlmYTlhNTgwMmZmN2M2MTk1NzVhMThhOWU3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuaApAQCAtNzMsNiArNzMsMTAgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgaXNMb2FkaW5nTXVsdGlwYXJ0Q29udGVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7IH0KIAorICAgIHByb3RlY3Rl
ZDoKKyAgICAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zyhkb3VibGUgZmluaXNoVGltZSkgY29uc3QgT1ZFUlJJREU7CisKKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIE1haW5SZXNvdXJjZUxvYWRlcihGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA5MzE1MTA4YWU3NjA2MWRmMDc2ZjhkMDA5YWUxMDBj
MzFmMmVmZDRjLi4wNjNlZGJlOTEzNTlkZThkODkyY2MxY2I5OTIzYzgwYWUwNDcwN2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTU2LDYgKzU2LDggQEAg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEoKQog
UmVzb3VyY2VMb2FkZXI6OlJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9kb2N1bWVu
dExvYWRlcihmcmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCkpCisgICAgLCBt
X3JlZGlyZWN0U3RhcnQoMC4wKQorICAgICwgbV9yZWRpcmVjdEVuZCgwLjApCiAgICAgLCBtX2lk
ZW50aWZpZXIoMCkKICAgICAsIG1fcmVhY2hlZFRlcm1pbmFsU3RhdGUoZmFsc2UpCiAgICAgLCBt
X2NhbGxlZFdpbGxDYW5jZWwoZmFsc2UpCkBAIC0yMzEsOCArMjMzLDE2IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPndpbGxTZW5k
UmVxdWVzdCh0aGlzLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB9CiAKLSAgICBp
ZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpCisgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNl
LmlzTnVsbCgpKSB7CiAgICAgICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5jcm9zc09yaWdp
blJlZGlyZWN0UmVjZWl2ZWQodGhpcywgcmVxdWVzdC51cmwoKSk7CisjaWYgRU5BQkxFKFJFU09V
UkNFX1RJTUlORykKKyAgICAgICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpKSB7CisgICAgICAgICAgICAgaWYgKCFtX3JlZGlyZWN0U3RhcnQpCisgICAgICAgICAg
ICAgICAgIG1fcmVkaXJlY3RTdGFydCA9IChpbnQpcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxv
YWRUaW1pbmcoKS0+cmVxdWVzdFRpbWU7CisgICAgICAgICAgICAgbV9yZWRpcmVjdEVuZCA9IChy
ZWRpcmVjdFJlc3BvbnNlLnJlc3BvbnNlVGltZSgpKTsKKyNlbmRpZiAvLyBFTkFCTEUoUkVTT1VS
Q0VfVElNSU5HKQorICAgIH0KKwogICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiB9CiAKQEAgLTI5
NCw2ICszMDQsOSBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJs
ZSBmaW5pc2hUaW1lKQogICAgIC8vIHRoZSByZXNvdXJjZXMgYSBzZWNvbmQgdGltZSwgdGhleSBo
YXZlIGJlZW4gcmVsZWFzZWQgYnkgY2FuY2VsLgogICAgIGlmIChtX2NhbmNlbGxlZCkKICAgICAg
ICAgcmV0dXJuOworI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCisgICAgcG9wdWxhdGVQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nKGZpbmlzaFRpbWUpOworI2VuZGlmIC8vIEVOQUJMRShSRVNP
VVJDRV9USU1JTkcpCiAgICAgcmVsZWFzZVJlc291cmNlcygpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGRiZjFhYjExZGQ5MTgzMjdkMzVhNTk1M2YzYjU3
NWZiZTMxMjI3MjAuLmY2NmU1ODRiZWM1NGI0MjBiN2NjZTVjNTgwOGYxZTI2MGQ5NDc5MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC01OSwxMyArNTksMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIoKSBj
b25zdDsKICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsgfQogICAgICAgICBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYWxSZXF1ZXN0
OyB9Ci0gICAgICAgIAorICAgICAgICB2b2lkIHNldE9yaWdpblJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVyZXN0KSB7bV9vcmlnaW5hbFJlcXVlc3QgPSByZXNvdXJjZVJlcXVy
ZXN0O30KKwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKICAgICAgICAgUmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcigpOwogICAgICAgICBSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcigpOwogICAgICAgICBSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dVUkxFcnJvcigpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xv
YWRpbmcoYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcoZG91YmxlIGZpbmlzaFRpbWUpIGNvbnN0IHsgfTsKIAogICAgICAgICB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIApA
QCAtMTY2LDYgKzE2OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEZy
YW1lPiBtX2ZyYW1lOwogICAgICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IG1fZG9jdW1lbnRM
b2FkZXI7CiAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICAgICAgZG91
YmxlIG1fcmVkaXJlY3RTdGFydDsKKyAgICAgICAgZG91YmxlIG1fcmVkaXJlY3RFbmQ7CiAgICAg
ICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAppbmRleCAzNGI3MDY1ZWY2NDc5NWFiMGEyZjliM2RkOTZjZWI3YzBmM2Q4ZTQ3
Li5mNmUxZTk2NTg1NDY3YjMxZWJmNzc0ZjgxZjVhOWY3NzdkZDlhOWVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMwLDEyICszMCwxNCBAQAog
I2luY2x1ZGUgIlN1YnJlc291cmNlTG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWRMZWFrQ291bnRlci5oPgpAQCAtMzI2LDQgKzMyOCw4IEBAIHZvaWQgU3VicmVzb3VyY2VM
b2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQogICAgIFJlc291cmNlTG9hZGVyOjpyZWxlYXNlUmVz
b3VyY2VzKCk7CiB9CiAKK3ZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OnBvcHVsYXRlUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZyhkb3VibGUgZmluaXNoVGltZSkgY29uc3QKK3sKKyAgICBtX2ZyYW1l
LT5leGlzdGluZ0RPTVdpbmRvdygpLT5wZXJmb3JtYW5jZSgpLT5hZGRSZXNvdXJjZVRpbWluZyht
X29yaWdpbmFsUmVxdWVzdCwgbV9yZXNwb25zZSwgZmluaXNoVGltZSwgbV9yZWRpcmVjdFN0YXJ0
LCBtX3JlZGlyZWN0RW5kLCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsKK30KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggOWYwMGJmNGY0MGE2MGMyMmJjZGI1
ZjE5ZWQ3YjE1ZjQ2NTg0YjdiNS4uNDUyZTI1MzM2MmE0NDk3ZTI0NWQzZWZiMDYyN2UyODdkNjNl
ZmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKQEAgLTQ3
LDYgKzQ3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYW5jZWxJZk5vdEZpbmlzaGluZygpOwog
Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZyhkb3VibGUgZmluaXNoVGltZSkgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAg
ICAgU3VicmVzb3VyY2VMb2FkZXIoRnJhbWUqLCBDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYpOwogICAgIHZpcnR1YWwgflN1YnJlc291cmNlTG9hZGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCmluZGV4IDkwMzM5MzAyMTllNjA0MTE1MTRjY2Rl
NTZmNjZiZTZiODU4OGQ1MTkuLjRlMmMwODA3MGEyZGJiODVkMDcwYjdiNGU4ZGIzZDcyYWE1MTkw
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC0xNDMsMTIgKzE0MywxMiBA
QCB2b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5z
aWduZWQgaW50KQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KIAotdm9pZCBQZXJm
b3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERv
Y3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCit2b2lkIFBlcmZvcm1hbmNlOjphZGRSZXNvdXJj
ZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgZmluaXNoVGltZSwgZG91YmxlIHJlZGlyZWN0U3RhcnQs
IGRvdWJsZSByZWRpcmVjdEVuZCwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKIHsKICAg
ICBpZiAoIXJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpjcmVhdGUocmVxdWVzdCwgcmVzcG9uc2UsIGZpbmlzaFRpbWUsIHJlcXVlc3RpbmdE
b2N1bWVudCk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKHJlcXVlc3QsIHJlc3BvbnNlLCBmaW5pc2hUaW1lLCBy
ZWRpcmVjdFN0YXJ0LCByZWRpcmVjdEVuZCwgcmVxdWVzdGluZ0RvY3VtZW50KTsKICAgICAvLyBG
SVhNRTogTmVlZCB0byBlbmZvcmNlIGJ1ZmZlciBsaW1pdHMuCiAgICAgbV9yZXNvdXJjZVRpbWlu
Z0J1ZmZlci5hcHBlbmQoZW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4
IDhiYThjNWVlYTk1ZWU1ZDQzZDhjYmRlNDY3MGVkOTJiMjE5NjFlNjguLjI3MjhkYjFhZTBmNDg4
NTYzNDNiMzI0OTY1ODZkNTRiMTk0NTAwMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUih3ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwpOwogCi0gICAgdm9pZCBhZGRS
ZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50Kik7CisgICAgdm9pZCBhZGRSZXNvdXJj
ZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
ZG91YmxlIGZpbmlzaFRpbWUsIGRvdWJsZSByZWRpcmVjdFN0YXJ0LCBkb3VibGUgcmVkaXJlY3RF
bmQsIERvY3VtZW50Kik7CiAjZW5kaWYKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVyZm9ybWFu
Y2U+OjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCmluZGV4IDZkOTY3
MjE5NzUzYTRiNWFjNzJkYzRjNDQ0Y2IwZjFiM2VmMjkyY2MuLjcwYWE3OWU5ZmZiMThiZGVkYTYy
N2ViNDhhNmQwZWNiZTY3YmUyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRy
eS5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBuYW1lKCkgY29uc3Q7
CiAgICAgU3RyaW5nIGVudHJ5VHlwZSgpIGNvbnN0OwotICAgIGRvdWJsZSBzdGFydFRpbWUoKSBj
b25zdDsKLSAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBz
dGFydFRpbWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0Owog
CiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRl
eCAwOTc2YWRkNzgwMzI4ODNjM2Y0YTVhMTdiZmZiZWFjNmRlZjRkZDFjLi4wZjk2ZjdkYzAyNjgz
YWUzZGU4ZTA4MmEzNWI0NDlkMjVhYTYzY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKQEAgLTQ0LDEwICs0NCwxMiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiBy
ZXF1ZXN0aW5nRG9jdW1lbnQpCi0gICAgOiBQZXJmb3JtYW5jZUVudHJ5KHJlcXVlc3QudXJsKCku
c3RyaW5nKCksICJyZXNvdXJjZSIsIHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLT5yZXF1
ZXN0VGltZSwgZmluaXNoVGltZSkKK1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGZpbmlzaFRpbWUsIGRvdWJsZSByZWRp
cmVjdFN0YXJ0LCBkb3VibGUgcmVkaXJlY3RFbmQsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1l
bnQpCisgICAgOiBQZXJmb3JtYW5jZUVudHJ5KHJlcXVlc3QudXJsKCkuc3RyaW5nKCksICJyZXNv
dXJjZSIsICAwLjAsIDAuMCkKICAgICAsIG1fdGltaW5nKHJlc3BvbnNlLnJlc291cmNlTG9hZFRp
bWluZygpKQogICAgICwgbV9maW5pc2hUaW1lKGZpbmlzaFRpbWUpCisgICAgLCBtX3JlZGlyZWN0
U3RhcnQocmVkaXJlY3RTdGFydCkKKyAgICAsIG1fcmVkaXJlY3RFbmQocmVkaXJlY3RFbmQpCiAg
ICAgLCBtX3JlcXVlc3RpbmdEb2N1bWVudChyZXF1ZXN0aW5nRG9jdW1lbnQpCiB7CiB9CkBAIC02
MiwyMiArNjQsMzUgQEAgU3RyaW5nIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmluaXRpYXRv
clR5cGUoKSBjb25zdAogICAgIHJldHVybiAib3RoZXIiOwogfQogCi0vLyBGSVhNRTogTmVlZCB0
byBlbmZvcmNlIHNhbWUtb3JpZ2luIHBvbGljeSBvbiB0aGVzZS4KK2RvdWJsZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nOjpzdGFydFRpbWUoKSBjb25zdAoreworICAgIGlmIChtX3JlZGlyZWN0
U3RhcnQpCisgICAgICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25k
cyhtX3JlZGlyZWN0U3RhcnQpOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1p
bGxpc2Vjb25kcyhtX3RpbWluZy0+cmVxdWVzdFRpbWUpOwogCi1kb3VibGUgUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZzo6cmVkaXJlY3RTdGFydCgpIGNvbnN0Cit9CisKK2RvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpkdXJhdGlvbigpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IE5l
ZWQgdG8gdHJhY2sgYW5kIHJlcG9ydCByZWRpcmVjdHMgZm9yIHJlc291cmNlcy4KLSAgICByZXR1
cm4gMDsKKyAgICBpZiAobV9yZWRpcmVjdFN0YXJ0KQorICAgICAgICByZXR1cm4gKG1fZmluaXNo
VGltZSAtIG1fcmVkaXJlY3RTdGFydCkgKiAxMDAwLjA7CisgICAgcmV0dXJuIChtX2ZpbmlzaFRp
bWUgLSBtX3RpbWluZy0+cmVxdWVzdFRpbWUpICogMTAwMC4wOwogfQogCi1kb3VibGUgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdAorLy8gRklYTUU6IE5lZWQg
dG8gZW5mb3JjZSBzYW1lLW9yaWdpbiBwb2xpY3kgb24gdGhlc2UuCisKK2RvdWJsZSBQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
MDsKKyAgICBpZiAoIW1fcmVkaXJlY3RTdGFydCkKKyAgICAgICAgcmV0dXJuIDAuMDsKKyAgICBy
ZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZWRpcmVjdFN0YXJ0
KTsKIH0KIAotZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmZldGNoU3RhcnQoKSBj
b25zdAorZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV90
aW1pbmctPnJlcXVlc3RUaW1lKTsKKyAgICBpZiAoIW1fcmVkaXJlY3RFbmQpCisgICAgICAgIHJl
dHVybiAwLjA7CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KG1fcmVkaXJlY3RFbmQpOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuaAppbmRleCAwODJiODkyNTE0OTYyOWU4OGQzZDcxYWE2OGJi
MTFiNzUyNjYwYTkyLi45MTk3OTE0OWFkNWMxZGJkYjEzY2NjOGFhZjllNWU1ZGUzZDhkZTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApA
QCAtNDgsMTEgKzQ4LDEwIEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIGNsYXNzIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcgOiBwdWJsaWMgUGVyZm9ybWFuY2VFbnRyeSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4gY3JlYXRl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IGNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBkb3VibGUgZmluaXNoVGltZSwgZG91YmxlIHJlZGlyZWN0U3RhcnQsIGRvdWJs
ZSByZWRpcmVjdEVuZCwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhyZXF1ZXN0
LCByZXNwb25zZSwgZmluaXNoVGltZSwgcmVxdWVzdGluZ0RvY3VtZW50KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhyZXF1ZXN0LCByZXNw
b25zZSwgZmluaXNoVGltZSwgcmVkaXJlY3RTdGFydCwgcmVkaXJlY3RFbmQsIHJlcXVlc3RpbmdE
b2N1bWVudCkpOwogICAgIH0KLQogICAgIFN0cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CiAK
ICAgICBkb3VibGUgcmVkaXJlY3RTdGFydCgpIGNvbnN0OwpAQCAtNjksOCArNjgsMTEgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIGlzUmVzb3VyY2UoKSB7IHJldHVybiB0cnVlOyB9CiAK
KyAgICB2aXJ0dWFsIGRvdWJsZSBzdGFydFRpbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgotICAgIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOworICAgIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGRvdWJsZSBmaW5pc2hUaW1lLCBkb3VibGUgcmVkaXJlY3RTdGFydCwgZG91
YmxlIHJlZGlyZWN0RW5kLCBEb2N1bWVudCopCiAgICAgflBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcoKTsKIAogICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhk
b3VibGUgc2Vjb25kcykgY29uc3Q7CkBAIC03OCw2ICs4MCw4IEBAIHByaXZhdGU6CiAKICAgICBS
ZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9maW5pc2hU
aW1lOworICAgIGRvdWJsZSBtX3JlZGlyZWN0U3RhcnQ7CisgICAgZG91YmxlIG1fcmVkaXJlY3RF
bmQ7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX3JlcXVlc3RpbmdEb2N1bWVudDsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>