<?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>84912</bug_id>
          
          <creation_ts>2012-04-25 17:19:38 -0700</creation_ts>
          <short_desc>High res times should start at 0</short_desc>
          <delta_ts>2012-10-10 20:06:27 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HighResolutionTime/Overview.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>98223</dependson>
          <blocked>66683</blocked>
    
    <blocked>66684</blocked>
    
    <blocked>88278</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>japhet</cc>
    
    <cc>nduca</cc>
    
    <cc>sullivan</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>610196</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-04-25 17:19:38 -0700</bug_when>
    <thetext>The spec has changed to define 0 as the value of navigationStart for the document. All times returned by window.performance.webkitNow() should be relative to that.

convertMonotonicTimeToDocumentTime() should automatically subtract off the value of navigationStart.

Note that doing so will break the time values returned by window.performance.timing. These values are supposed to use the monotonic clock, but not rebase their values to 0. To fix this, perhaps we could add a legacy accessor that doesn&apos;t subtract out navigationStart. This should be clearly marked as legacy, because all future uses are expected to use convertMonotonicTimeToDocumentTime().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739264</commentid>
    <comment_count>1</comment_count>
      <attachid>168065</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 13:34:31 -0700</bug_when>
    <thetext>Created attachment 168065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739294</commentid>
    <comment_count>2</comment_count>
      <attachid>168065</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-10 14:17:00 -0700</bug_when>
    <thetext>Comment on attachment 168065
Patch

Attachment 168065 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14252319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739352</commentid>
    <comment_count>3</comment_count>
      <attachid>168081</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 15:46:36 -0700</bug_when>
    <thetext>Created attachment 168081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739361</commentid>
    <comment_count>4</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 15:58:33 -0700</bug_when>
    <thetext>I think this is ready for review. This should get us in line with the spec for performance.now() without breaking Navigation Timing. Next, I&apos;ll import the W3 test suite for now() and work on unprefixing that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739368</commentid>
    <comment_count>5</comment_count>
      <attachid>168081</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-10 16:10:02 -0700</bug_when>
    <thetext>Comment on attachment 168081
Patch

Attachment 168081 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14259241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739384</commentid>
    <comment_count>6</comment_count>
      <attachid>168090</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 16:31:18 -0700</bug_when>
    <thetext>Created attachment 168090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739458</commentid>
    <comment_count>7</comment_count>
      <attachid>168090</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-10-10 18:09:32 -0700</bug_when>
    <thetext>Comment on attachment 168090
Patch

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

&gt; Source/WebCore/loader/DocumentLoadTiming.cpp:57
&gt; +double DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime(double monotonicTime) const

I&apos;d consider s/Legacy/WallBased/ with a comment that new users should use zero-based. That name is more synergistic with ZeroBasedDocumentTime and better describes what the method does.

&gt; Source/WebCore/loader/DocumentLoadTiming.h:41
&gt; +    double convertMonotonicTimeToZeroBasedDocumentTime(double) const;

You could consider dropping the term &quot;convert&quot; from these methods. The name will be just as descriptive but a little more terse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739471</commentid>
    <comment_count>8</comment_count>
      <attachid>168112</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 18:27:28 -0700</bug_when>
    <thetext>Created attachment 168112
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739472</commentid>
    <comment_count>9</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-10 18:27:48 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 168090 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168090&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/DocumentLoadTiming.cpp:57
&gt; &gt; +double DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime(double monotonicTime) const
&gt; 
&gt; I&apos;d consider s/Legacy/WallBased/ with a comment that new users should use zero-based. That name is more synergistic with ZeroBasedDocumentTime and better describes what the method does.

Went with PseudoWallTime

&gt; 
&gt; &gt; Source/WebCore/loader/DocumentLoadTiming.h:41
&gt; &gt; +    double convertMonotonicTimeToZeroBasedDocumentTime(double) const;
&gt; 
&gt; You could consider dropping the term &quot;convert&quot; from these methods. The name will be just as descriptive but a little more terse.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739538</commentid>
    <comment_count>10</comment_count>
      <attachid>168112</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 20:06:23 -0700</bug_when>
    <thetext>Comment on attachment 168112
Patch for landing

Clearing flags on attachment: 168112

Committed r131001: &lt;http://trac.webkit.org/changeset/131001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>739539</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-10 20:06:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168065</attachid>
            <date>2012-10-10 13:34:31 -0700</date>
            <delta_ts>2012-10-10 15:46:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84912-20121010133330.patch</filename>
            <type>text/plain</type>
            <size>16459</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxODExMDFlY2UwNmVj
YWZiNGRiZWZkYTQ2N2UzNzhmODg5YjAwZi4uMjRkNzNkMDVjYzJhMGJmMTI0MzE4ZjI0YjA0ZDEx
MWMyNWYzODgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTEwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBIaWdoIHJlcyB0
aW1lcyBzaG91bGQgc3RhcnQgYXQgMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyBOYXZpZ2F0aW9uIFRpbWluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOiBVc2UgbGVn
YWN5IGRvY3VtZW50IHRpbWUsIHBlbmRpbmcgOTgyMjMuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKiBsb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZFRpbWluZzo6Y29udmVydE1vbm90b25pY1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6Y29u
dmVydE1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3VtZW50VGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZpZ2F0aW9uU3RhcnQpOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaDoKKyAgICAgICAgKERvY3VtZW50TG9hZFRpbWlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om5hdmlnYXRpb25TdGFy
dCk6IFRoZXNlIGp1c3QgcmVwb3J0IHJhdyBtb25vdG9uaWMgdGltZXMgbm93LgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpyZWRpcmVjdFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZFRpbWluZzo6cmVzcG9uc2VFbmQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRUaW1pbmc6OmxvYWRFdmVudEVuZCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlv
blN0YXJ0KTogQ29udmVydCB0aGVzZSBiYWNrIHRvIGxlZ2FjeSBkb2N1bWVudCB0aW1lcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmZldGNoU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
VGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oOgorICAgICAgICAoUmVzb3VyY2VMb2FkVGltaW5nKToKKwogMjAxMi0x
MC0wNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlcHJlY2F0
ZWQgZmxleGJveGVzIHN1YnRyYWN0IHNjcm9sbGJhciB3aWR0aC9oZWlnaHQgdHdpY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYWJiNWQ3NWI5M2M2ZTQ0MTFiYTNkMjkxNDEwNjFjMWY5MmZiNzM1ZS4uYjNhMjdm
MzIwZTIxNjkyOWMxNDkzNzAwYmNmMGJlODhmYzI2NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTc0Niw3
ICs3NDYsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bQogICAgIGRvdWJsZSBmaW5pc2hUaW1l
ID0gMC4wOwogICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9mIHRoZSB0aW1pbmcgZGV0YWlscyB0
byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZpbmlzaFRpbWUuCiAgICAgaWYgKG1v
bm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRpbWUgPSBsb2FkZXItPnRpbWluZygp
LT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY0ZpbmlzaFRpbWUp
OworICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1vbm90b25p
Y1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlm
ICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUsIGxvYWRlci0+ZnJhbWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKaW5kZXggN2RlZmIzNTk1ZGNiMWFkYTkyNTJhN2ViNjIwODM0NTY2NThhYjRjNC4uNzIx
MmJiZGU5ZGE4YzdhZDg1NGE1MTdkM2ZhNWViOWE0NmIyMjBjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMTEyLDcg
KzExMiw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RG
b3JIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlCiBzdGF0aWMgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNv
bnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQog
ewogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0
ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRp
bWVUb0RvY3VtZW50VGltZShsb2FkZXItPnRpbWluZygpLCAwKSkKKyAgICAgICAgLnNldFJlcXVl
c3RUaW1lKGxvYWRlci0+dGltaW5nKCktPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1
bWVudFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKDAp
KSkKICAgICAgICAgLnNldFByb3h5U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCiAgICAgICAgIC5z
ZXRQcm94eUVuZCh0aW1pbmcucHJveHlFbmQpCiAgICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcu
ZG5zU3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3Bw
CmluZGV4IDNjNDk2MWVkOTgxZTc5ZmQzNWYwMWMzMmI1MTA5ZDYzZTBhMzBkYWIuLjFkZjViMDEx
Y2JhZDhmODBhODZmODI2ODdkOWU2MmZiYmUxYzBhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCkBAIC01NCwyMiArNTQsMjcgQEAgRG9jdW1lbnRM
b2FkVGltaW5nOjpEb2N1bWVudExvYWRUaW1pbmcoKQogewogfQogCitkb3VibGUgRG9jdW1lbnRM
b2FkVGltaW5nOjpjb252ZXJ0TW9ub3RvbmljVGltZVRvTGVnYWN5RG9jdW1lbnRUaW1lKGRvdWJs
ZSBtb25vdG9uaWNUaW1lKSBjb25zdAoreworICAgIGlmICghbW9ub3RvbmljVGltZSkKKyAgICAg
ICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZSArIG1vbm90b25p
Y1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7Cit9CisKK2RvdWJsZSBEb2N1bWVudExv
YWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUoZG91
YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Cit7CisgICAgaWYgKCFtb25vdG9uaWNUaW1lKQorICAg
ICAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VN
b25vdG9uaWNUaW1lOworfQorCiB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRp
b25TdGFydChGcmFtZSogZnJhbWUpCiB7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBBU1NFUlQo
IW1fbmF2aWdhdGlvblN0YXJ0ICYmICFtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgIW1fcmVm
ZXJlbmNlV2FsbFRpbWUpOwogCi0gICAgaWYgKGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09
IGZyYW1lKSB7Ci0gICAgICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbV9yZWZlcmVuY2VNb25vdG9u
aWNUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgICAgIG1fcmVmZXJl
bmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIERvY3Vt
ZW50KiByb290RG9jdW1lbnQgPSBmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQo
KTsKLSAgICAgICAgQVNTRVJUKHJvb3REb2N1bWVudCk7Ci0gICAgICAgIERvY3VtZW50TG9hZFRp
bWluZyogcm9vdFRpbWluZyA9IHJvb3REb2N1bWVudC0+bG9hZGVyKCktPnRpbWluZygpOwotICAg
ICAgICBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgPSByb290VGltaW5nLT5tX3JlZmVyZW5jZU1v
bm90b25pY1RpbWU7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSByb290VGltaW5nLT5t
X3JlZmVyZW5jZVdhbGxUaW1lOwotICAgICAgICBtX25hdmlnYXRpb25TdGFydCA9IG1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpOwotICAgIH0KKyAgICBtX25hdmlnYXRpb25TdGFydCA9IG1f
cmVmZXJlbmNlTW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwor
ICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCiB2b2lkIERvY3Vt
ZW50TG9hZFRpbWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQp
CkBAIC04OSwxOCArOTQsNCBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3Qo
Y29uc3QgS1VSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IEtVUkwmIHJlZAogICAgIG1faGFzQ3Jv
c3NPcmlnaW5SZWRpcmVjdCA9ICFyZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3Qo
cmVkaXJlY3RpbmdVcmwpOwogfQogCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjpjb252ZXJ0
TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAot
ewotICAgIGlmICghbW9ub3RvbmljVGltZSkKLSAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1
cm4gbV9yZWZlcmVuY2VXYWxsVGltZSArIG1vbm90b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90
b25pY1RpbWU7Ci19Ci0KLWRvdWJsZSBEb2N1bWVudExvYWRUaW1pbmc6OmNvbnZlcnRNb25vdG9u
aWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0
Ci17Ci0gICAgaWYgKCFtb25vdG9uaWNUaW1lKQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGlt
aW5nLmgKaW5kZXggNzAwOTU3NDI5NmY1N2I0NWRiNTVmMGE1ZDk3YzYxMzJiN2Y3NGNmZC4uNGQx
NzQ1ODUyMmU4YjM3OTE0YzI4ZDBlOGVhODU3Y2UxY2E5M2UzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaApAQCAtMzcsMTUgKzM3LDEyIEBAIGNsYXNzIERv
Y3VtZW50TG9hZFRpbWluZyB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnRMb2FkVGltaW5nKCk7CiAK
KyAgICBkb3VibGUgY29udmVydE1vbm90b25pY1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShkb3Vi
bGUpIGNvbnN0OworICAgIGRvdWJsZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9j
dW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CisKICAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQo
RnJhbWUqKTsKICAgICB2b2lkIHNldE5hdmlnYXRpb25TdGFydChkb3VibGUpOwogICAgIHZvaWQg
YWRkUmVkaXJlY3QoY29uc3QgS1VSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IEtVUkwmIHJlZGly
ZWN0ZWRVcmwpOwotICAgIGRvdWJsZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1l
KGRvdWJsZSkgY29uc3Q7Ci0KLSAgICAvLyBGSVhNRTogT25jZSBjb252ZXJ0TW9ub3RvbmljVGlt
ZVRvRG9jdW1lbnRUaW1lIGlzIHplcm8tYmFzZWQsIHRoZW4gdGhpcwotICAgIC8vIGZ1bmN0aW9u
IGFuZCBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lIGNhbiBiZSBtZXJnZWQuIFNl
ZQotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDkxMiBm
b3IgbW9yZSBkZXRhaWxzLgotICAgIGRvdWJsZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jh
c2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CiAKICAgICB2b2lkIG1hcmtVbmxvYWRFdmVu
dFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKTsgfQogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50RW5kKCkgeyBtX3VubG9hZEV2ZW50RW5k
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KQEAgLTU4LDE2ICs1NSwxNiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldEhhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9v
bCB2YWx1ZSkgeyBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQog
Ci0gICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIGNvbnZlcnRNb25v
dG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9uYXZpZ2F0aW9uU3RhcnQpOyB9Ci0gICAgZG91Ymxl
IHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRv
RG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRTdGFydCk7IH0KLSAgICBkb3VibGUgdW5sb2FkRXZl
bnRFbmQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1l
KG1fdW5sb2FkRXZlbnRFbmQpOyB9Ci0gICAgZG91YmxlIHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7
IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fcmVkaXJlY3RTdGFy
dCk7IH0KLSAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fcmVkaXJlY3RFbmQpOyB9CisgICAgZG91YmxlIG5h
dmlnYXRpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvblN0YXJ0OyB9CisgICAg
ZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50U3Rh
cnQ7IH0KKyAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQoKSBjb25zdCB7IHJldHVybiBtX3VubG9h
ZEV2ZW50RW5kOyB9CisgICAgZG91YmxlIHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBt
X3JlZGlyZWN0U3RhcnQ7IH0KKyAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBjb25zdCB7IHJldHVy
biBtX3JlZGlyZWN0RW5kOyB9CiAgICAgc2hvcnQgcmVkaXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVkaXJlY3RDb3VudDsgfQotICAgIGRvdWJsZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyBy
ZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtX2ZldGNoU3RhcnQpOyB9
Ci0gICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25p
Y1RpbWVUb0RvY3VtZW50VGltZShtX3Jlc3BvbnNlRW5kKTsgfQotICAgIGRvdWJsZSBsb2FkRXZl
bnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGNvbnZlcnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRp
bWUobV9sb2FkRXZlbnRTdGFydCk7IH0KLSAgICBkb3VibGUgbG9hZEV2ZW50RW5kKCkgY29uc3Qg
eyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtX2xvYWRFdmVudEVu
ZCk7IH0KKyAgICBkb3VibGUgZmV0Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFy
dDsgfQorICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VF
bmQ7IH0KKyAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRF
dmVudFN0YXJ0OyB9CisgICAgZG91YmxlIGxvYWRFdmVudEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZEV2ZW50RW5kOyB9CiAgICAgYm9vbCBoYXNDcm9zc09yaWdpblJlZGlyZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0OyB9CiAgICAgYm9vbCBoYXNTYW1lT3Jp
Z2luQXNQcmV2aW91c0RvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQ
cmV2aW91c0RvY3VtZW50OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWlu
Zy5jcHAKaW5kZXggNmE0NTI0YjA5NWI3Njk4YmVlNzI3MmYyMThiYjA2NGUxYzlhZGQ1Ny4uY2Uz
MjhlNzYwNjJiNzhmODgxMmY1ZmNjMjY5Y2Y4ZDFlNDcwZTIwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdW5zaWduZWQgbG9u
ZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdAogICAgIGlm
ICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0ludGVnZXJNaWxs
aXNlY29uZHModGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQoKSk7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQoKSk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFy
dCgpIGNvbnN0CkBAIC03Myw3ICs3Myw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5j
ZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0CiAgICAgaWYgKHRpbWluZy0+aGFzQ3Jv
c3NPcmlnaW5SZWRpcmVjdCgpIHx8ICF0aW1pbmctPmhhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9j
dW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlz
ZWNvbmRzKHRpbWluZy0+dW5sb2FkRXZlbnRTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3Rvbmlj
VGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVubG9hZEV2ZW50U3RhcnQoKSk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQo
KSBjb25zdApAQCAtODUsNyArODUsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKICAgICBpZiAodGltaW5nLT5oYXNDcm9zc09y
aWdpblJlZGlyZWN0KCkgfHwgIXRpbWluZy0+aGFzU2FtZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVu
dCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29u
ZHModGltaW5nLT51bmxvYWRFdmVudEVuZCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRv
SW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVubG9hZEV2ZW50RW5kKCkpOwogfQogCiB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQoKSBjb25zdApA
QCAtOTcsNyArOTcsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
ZGlyZWN0U3RhcnQoKSBjb25zdAogICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJl
Y3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKHRpbWluZy0+cmVkaXJlY3RTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRv
SW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0U3RhcnQoKSk7CiB9CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdApAQCAt
MTA5LDcgKzEwOSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVk
aXJlY3RFbmQoKSBjb25zdAogICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3Qo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRz
KHRpbWluZy0+cmVkaXJlY3RFbmQoKSk7CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVn
ZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVjdEVuZCgpKTsKIH0KIAogdW5zaWduZWQgbG9u
ZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKQEAgLTExOCw3ICsx
MTgsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmZldGNoU3RhcnQo
KSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVy
biB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5mZXRjaFN0YXJ0KCkpOworICAgIHJldHVy
biBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+ZmV0Y2hTdGFydCgp
KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29r
dXBTdGFydCgpIGNvbnN0CkBAIC0yNDMsNyArMjQzLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiAgICAgaWYgKCF0aW1pbmcpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1p
bmctPnJlc3BvbnNlRW5kKCkpOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWls
bGlzZWNvbmRzKHRpbWluZy0+cmVzcG9uc2VFbmQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9u
ZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9tTG9hZGluZygpIGNvbnN0CkBAIC0yOTcsNyArMjk3LDcg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCgp
IGNvbnN0CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJu
IHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPmxvYWRFdmVudFN0YXJ0KCkpOworICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bG9hZEV2ZW50
U3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bG9h
ZEV2ZW50RW5kKCkgY29uc3QKQEAgLTMwNiw3ICszMDYsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVuZCgpIGNvbnN0CiAgICAgaWYgKCF0aW1pbmcp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0
aW1pbmctPmxvYWRFdmVudEVuZCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyh0aW1pbmctPmxvYWRFdmVudEVuZCgpKTsKIH0KIAogRG9jdW1lbnRMb2Fk
ZXIqIFBlcmZvcm1hbmNlVGltaW5nOjpkb2N1bWVudExvYWRlcigpIGNvbnN0CkBAIC0zNTIsNyAr
MzUyLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNvdXJjZUxv
YWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGludCByZWwKICAgICBBU1NFUlQocmVsYXRpdmVNaWxs
aXNlY29uZHMgPj0gMCk7CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nKiByZXNvdXJjZVRpbWluZyA9
IHJlc291cmNlTG9hZFRpbWluZygpOwogICAgIEFTU0VSVChyZXNvdXJjZVRpbWluZyk7Ci0gICAg
cmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291
cmNlTG9hZFRpbWVUb0RvY3VtZW50VGltZShkb2N1bWVudExvYWRUaW1pbmcoKSwgcmVsYXRpdmVN
aWxsaXNlY29uZHMpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01vbm90b25pY1Rp
bWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJsZSBt
b25vdG9uaWNTZWNvbmRzKSBjb25zdApAQCAtMzYwLDcgKzM2MCw3IEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyhkb3VibGUKICAgICBBU1NFUlQobW9ub3RvbmljU2Vjb25kcyA+PSAwKTsKICAgICBjb25zdCBE
b2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOwogICAgIEFT
U0VSVCh0aW1pbmcpOwotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5j
b252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY1NlY29uZHMpKTsKKyAg
ICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+Y29udmVydE1vbm90b25pY1Rp
bWVUb0xlZ2FjeURvY3VtZW50VGltZShtb25vdG9uaWNTZWNvbmRzKSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcAppbmRleCA1ZDlkYTQ4YTNjYTVmMTMwNTBhY2MwOGYy
MTlhZmE4NTc2MTU2M2NlLi5lMzM0Mzk1ODE2Y2ZjMzdhMDM4NDQyMjIwZGM5ZGVlOWQxNDIzYzRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9h
ZFRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUxvYWRUaW1pbmcuY3BwCkBAIC0yNiwxNiArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcuaCIKIAotI2luY2x1ZGUgIkRvY3VtZW50TG9h
ZFRpbWluZy5oIgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWRvdWJsZSBSZXNvdXJjZUxvYWRU
aW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1bWVudFRpbWUoY29uc3QgRG9jdW1l
bnRMb2FkVGltaW5nKiBkb2N1bWVudFRpbWluZywgaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25z
dAorZG91YmxlIFJlc291cmNlTG9hZFRpbWluZzo6Y29udmVydFJlc291cmNlTG9hZFRpbWVUb01v
bm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdAogewotICAgIGlmICghZG9j
dW1lbnRUaW1pbmcpCi0gICAgICAgIHJldHVybiAwLjA7Ci0KLSAgICByZXR1cm4gZG9jdW1lbnRU
aW1pbmctPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUocmVxdWVzdFRpbWUgKyBk
ZWx0YU1pbGxpc2Vjb25kcyAvIDEwMDAuMCk7CisgICAgcmV0dXJuIHJlcXVlc3RUaW1lICsgZGVs
dGFNaWxsaXNlY29uZHMgLyAxMDAwLjA7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCmluZGV4IDk0YzU1ZDliYTRi
MDE4MDk2MjVkMWI2OWE0NzhkMDUwNmJiMWUzM2UuLjJhMzk1ZWY3YzRiMGE3ZjM0NmJjMjExOTA2
NTViMDU0OTU5MGY1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gcmVjb3JkZWQgdXNpbmcgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkuIFdoZW4gYSB0
aW1lIG5lZWRzIHRvIGJlIHByZXNlbnRlZCB0byBKYXZhc2NyaXB0LCB3ZSBidWlsZCBhIHBzZXVk
by13YWxsdGltZQogICAgIC8vIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXF1YXRpb246CiAgICAgLy8g
ICBwc2V1ZG8gdGltZSA9IGRvY3VtZW50IHdhbGwgcmVmZXJlbmNlICsgKHJlc291cmNlIHJlcXVl
c3QgdGltZSAtIGRvY3VtZW50IG1vbm90b25pYyByZWZlcmVuY2UpICsgZGVsdGFNaWxsaXNlY29u
ZHMgLyAxMDAwLjAuCi0gICAgZG91YmxlIGNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1bWVu
dFRpbWUoY29uc3QgRG9jdW1lbnRMb2FkVGltaW5nKiBkb2N1bWVudFRpbWluZywgaW50IGRlbHRh
TWlsbGlzZWNvbmRzKSBjb25zdDsKKyAgICBkb3VibGUgY29udmVydFJlc291cmNlTG9hZFRpbWVU
b01vbm90b25pY1RpbWUoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25zdDsKIAogICAgIGRvdWJs
ZSByZXF1ZXN0VGltZTsgLy8gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgd2hlbiB0aGUg
cG9ydCBzdGFydGVkIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KICAgICBpbnQgcHJveHlTdGFydDsg
Ly8gVGhlIHJlc3Qgb2YgdGhlc2UgYXJlIG1pbGxpc2Vjb25kIGRlbHRhcywgdXNpbmcgbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCksIGZyb20gcmVxdWVzdFRpbWUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168081</attachid>
            <date>2012-10-10 15:46:36 -0700</date>
            <delta_ts>2012-10-10 16:31:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84912-20121010154535.patch</filename>
            <type>text/plain</type>
            <size>17906</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxODExMDFlY2UwNmVj
YWZiNGRiZWZkYTQ2N2UzNzhmODg5YjAwZi4uMjRkNzNkMDVjYzJhMGJmMTI0MzE4ZjI0YjA0ZDEx
MWMyNWYzODgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTEwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBIaWdoIHJlcyB0
aW1lcyBzaG91bGQgc3RhcnQgYXQgMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyBOYXZpZ2F0aW9uIFRpbWluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOiBVc2UgbGVn
YWN5IGRvY3VtZW50IHRpbWUsIHBlbmRpbmcgOTgyMjMuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKiBsb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZFRpbWluZzo6Y29udmVydE1vbm90b25pY1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6Y29u
dmVydE1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3VtZW50VGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZpZ2F0aW9uU3RhcnQpOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaDoKKyAgICAgICAgKERvY3VtZW50TG9hZFRpbWlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om5hdmlnYXRpb25TdGFy
dCk6IFRoZXNlIGp1c3QgcmVwb3J0IHJhdyBtb25vdG9uaWMgdGltZXMgbm93LgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpyZWRpcmVjdFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZFRpbWluZzo6cmVzcG9uc2VFbmQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRUaW1pbmc6OmxvYWRFdmVudEVuZCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlv
blN0YXJ0KTogQ29udmVydCB0aGVzZSBiYWNrIHRvIGxlZ2FjeSBkb2N1bWVudCB0aW1lcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmZldGNoU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
VGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oOgorICAgICAgICAoUmVzb3VyY2VMb2FkVGltaW5nKToKKwogMjAxMi0x
MC0wNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlcHJlY2F0
ZWQgZmxleGJveGVzIHN1YnRyYWN0IHNjcm9sbGJhciB3aWR0aC9oZWlnaHQgdHdpY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYWJiNWQ3NWI5M2M2ZTQ0MTFiYTNkMjkxNDEwNjFjMWY5MmZiNzM1ZS4uYjNhMjdm
MzIwZTIxNjkyOWMxNDkzNzAwYmNmMGJlODhmYzI2NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTc0Niw3
ICs3NDYsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bQogICAgIGRvdWJsZSBmaW5pc2hUaW1l
ID0gMC4wOwogICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9mIHRoZSB0aW1pbmcgZGV0YWlscyB0
byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZpbmlzaFRpbWUuCiAgICAgaWYgKG1v
bm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRpbWUgPSBsb2FkZXItPnRpbWluZygp
LT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY0ZpbmlzaFRpbWUp
OworICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1vbm90b25p
Y1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlm
ICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUsIGxvYWRlci0+ZnJhbWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKaW5kZXggN2RlZmIzNTk1ZGNiMWFkYTkyNTJhN2ViNjIwODM0NTY2NThhYjRjNC4uNzIx
MmJiZGU5ZGE4YzdhZDg1NGE1MTdkM2ZhNWViOWE0NmIyMjBjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMTEyLDcg
KzExMiw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RG
b3JIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlCiBzdGF0aWMgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNv
bnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQog
ewogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0
ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRp
bWVUb0RvY3VtZW50VGltZShsb2FkZXItPnRpbWluZygpLCAwKSkKKyAgICAgICAgLnNldFJlcXVl
c3RUaW1lKGxvYWRlci0+dGltaW5nKCktPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1
bWVudFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKDAp
KSkKICAgICAgICAgLnNldFByb3h5U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCiAgICAgICAgIC5z
ZXRQcm94eUVuZCh0aW1pbmcucHJveHlFbmQpCiAgICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcu
ZG5zU3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3Bw
CmluZGV4IDNjNDk2MWVkOTgxZTc5ZmQzNWYwMWMzMmI1MTA5ZDYzZTBhMzBkYWIuLjhkMTUyY2Y1
MGQzNDEwYjhjNjdkZGJmN2Q2YjJlMzE2NWQyMjFiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCkBAIC01NCwyMiArNTQsMjcgQEAgRG9jdW1lbnRM
b2FkVGltaW5nOjpEb2N1bWVudExvYWRUaW1pbmcoKQogewogfQogCi12b2lkIERvY3VtZW50TG9h
ZFRpbWluZzo6bWFya05hdmlnYXRpb25TdGFydChGcmFtZSogZnJhbWUpCitkb3VibGUgRG9jdW1l
bnRMb2FkVGltaW5nOjpjb252ZXJ0TW9ub3RvbmljVGltZVRvTGVnYWN5RG9jdW1lbnRUaW1lKGRv
dWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAoreworICAgIGlmICghbW9ub3RvbmljVGltZSkKKyAg
ICAgICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZSArIG1vbm90
b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7Cit9CisKK2RvdWJsZSBEb2N1bWVu
dExvYWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUo
ZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Cit7CisgICAgaWYgKCFtb25vdG9uaWNUaW1lKQor
ICAgICAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVu
Y2VNb25vdG9uaWNUaW1lOworfQorCit2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmln
YXRpb25TdGFydCgpCiB7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBBU1NFUlQoIW1fbmF2aWdh
dGlvblN0YXJ0ICYmICFtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgIW1fcmVmZXJlbmNlV2Fs
bFRpbWUpOwogCi0gICAgaWYgKGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IGZyYW1lKSB7
Ci0gICAgICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRp
bWUgPSBjdXJyZW50VGltZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIERvY3VtZW50KiByb290
RG9jdW1lbnQgPSBmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKLSAgICAg
ICAgQVNTRVJUKHJvb3REb2N1bWVudCk7Ci0gICAgICAgIERvY3VtZW50TG9hZFRpbWluZyogcm9v
dFRpbWluZyA9IHJvb3REb2N1bWVudC0+bG9hZGVyKCktPnRpbWluZygpOwotICAgICAgICBtX3Jl
ZmVyZW5jZU1vbm90b25pY1RpbWUgPSByb290VGltaW5nLT5tX3JlZmVyZW5jZU1vbm90b25pY1Rp
bWU7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSByb290VGltaW5nLT5tX3JlZmVyZW5j
ZVdhbGxUaW1lOwotICAgICAgICBtX25hdmlnYXRpb25TdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwotICAgIH0KKyAgICBtX25hdmlnYXRpb25TdGFydCA9IG1fcmVmZXJlbmNl
TW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fcmVm
ZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZFRp
bWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQpCkBAIC04OSwx
OCArOTQsNCBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uc3QgS1VS
TCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IEtVUkwmIHJlZAogICAgIG1faGFzQ3Jvc3NPcmlnaW5S
ZWRpcmVjdCA9ICFyZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QocmVkaXJlY3Rp
bmdVcmwpOwogfQogCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjpjb252ZXJ0TW9ub3Rvbmlj
VGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAotewotICAgIGlm
ICghbW9ub3RvbmljVGltZSkKLSAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbV9yZWZl
cmVuY2VXYWxsVGltZSArIG1vbm90b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7
Ci19Ci0KLWRvdWJsZSBEb2N1bWVudExvYWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9a
ZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtb25vdG9uaWNUaW1lKQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtb25v
dG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKaW5k
ZXggNzAwOTU3NDI5NmY1N2I0NWRiNTVmMGE1ZDk3YzYxMzJiN2Y3NGNmZC4uYzE2YjIzNDBiMTg0
NTNmZWUwYzQ5ODVmODVmZjhkZmM1MjdjOTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaApAQCAtMzcsMTUgKzM3LDEyIEBAIGNsYXNzIERvY3VtZW50TG9h
ZFRpbWluZyB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnRMb2FkVGltaW5nKCk7CiAKLSAgICB2b2lk
IG1hcmtOYXZpZ2F0aW9uU3RhcnQoRnJhbWUqKTsKKyAgICBkb3VibGUgY29udmVydE1vbm90b25p
Y1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShkb3VibGUpIGNvbnN0OworICAgIGRvdWJsZSBjb252
ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CisK
KyAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKICAgICB2b2lkIHNldE5hdmlnYXRpb25T
dGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgS1VSTCYgcmVkaXJlY3Rp
bmdVcmwsIGNvbnN0IEtVUkwmIHJlZGlyZWN0ZWRVcmwpOwotICAgIGRvdWJsZSBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7Ci0KLSAgICAvLyBGSVhNRTog
T25jZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lIGlzIHplcm8tYmFzZWQsIHRo
ZW4gdGhpcwotICAgIC8vIGZ1bmN0aW9uIGFuZCBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1l
bnRUaW1lIGNhbiBiZSBtZXJnZWQuIFNlZQotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDkxMiBmb3IgbW9yZSBkZXRhaWxzLgotICAgIGRvdWJsZSBjb252
ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CiAK
ICAgICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50
RW5kKCkgeyBtX3VubG9hZEV2ZW50RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
IH0KQEAgLTU4LDE2ICs1NSwxNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc1NhbWVPcmln
aW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZp
b3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQogCi0gICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNv
bnN0IHsgcmV0dXJuIGNvbnZlcnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9uYXZpZ2F0
aW9uU3RhcnQpOyB9Ci0gICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVy
biBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRTdGFydCk7
IH0KLSAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRFbmQpOyB9Ci0gICAgZG91Ymxl
IHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9j
dW1lbnRUaW1lKG1fcmVkaXJlY3RTdGFydCk7IH0KLSAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBj
b25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fcmVkaXJl
Y3RFbmQpOyB9CisgICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmF2aWdhdGlvblN0YXJ0OyB9CisgICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7
IHJldHVybiBtX3VubG9hZEV2ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQo
KSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50RW5kOyB9CisgICAgZG91YmxlIHJlZGlyZWN0
U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0U3RhcnQ7IH0KKyAgICBkb3VibGUgcmVk
aXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0RW5kOyB9CiAgICAgc2hvcnQgcmVk
aXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3VudDsgfQotICAgIGRvdWJs
ZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3Vt
ZW50VGltZShtX2ZldGNoU3RhcnQpOyB9Ci0gICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Qg
eyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtX3Jlc3BvbnNlRW5k
KTsgfQotICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGNvbnZlcnRN
b25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9sb2FkRXZlbnRTdGFydCk7IH0KLSAgICBkb3Vi
bGUgbG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0Rv
Y3VtZW50VGltZShtX2xvYWRFdmVudEVuZCk7IH0KKyAgICBkb3VibGUgZmV0Y2hTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFydDsgfQorICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VFbmQ7IH0KKyAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudFN0YXJ0OyB9CisgICAgZG91YmxlIGxvYWRFdmVu
dEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RW5kOyB9CiAgICAgYm9vbCBoYXNDcm9z
c09yaWdpblJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0
OyB9CiAgICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGI1YWNmMmI1NTMxZGZmN2IwZDhlNmYy
ZWZkMmY1OWIwMmUwZWY2NTcuLmM2MTRlM2RmZmZmNGUwMTBmNjdlNDU5ZjZlM2Y1ZjdmYjIxMWMz
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtODYyLDcg
Kzg2Miw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQo
KSBjb25zdAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkK
IHsKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gUmVzb3VyY2VFcnJvcigpOwotICAgIHRpbWlu
ZygpLT5tYXJrTmF2aWdhdGlvblN0YXJ0KG1fZnJhbWUpOworICAgIHRpbWluZygpLT5tYXJrTmF2
aWdhdGlvblN0YXJ0KCk7CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlcik7CiAgICAg
bV9tYWluUmVzb3VyY2VMb2FkZXIgPSBNYWluUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMWQ0ODQwNWU3Y2Yy
YzZlOTg3NjRkYjQzYmNiNDc3ZDkxMzFiNTkwZC4uZmFkYzgyZjQ3ZDk5ZjA2MzY4M2Y2MjEyMWEz
OGZhZDIyMzg4YjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
OTUxLDcgKzI5NTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUHJvdmlzaW9uYWxJdGVtRnJv
bUNhY2hlZFBhZ2UoKQogICAgIC8vIFNob3VsZCBoYXZlIHRpbWluZyBkYXRhIGZyb20gcHJldmlv
dXMgdGltZShzKSB0aGUgcGFnZSB3YXMgc2hvd24uCiAgICAgQVNTRVJUKHByb3Zpc2lvbmFsTG9h
ZGVyLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpOwogICAgIHByb3Zpc2lvbmFsTG9hZGVy
LT5yZXNldFRpbWluZygpOwotICAgIHByb3Zpc2lvbmFsTG9hZGVyLT50aW1pbmcoKS0+bWFya05h
dmlnYXRpb25TdGFydChmcmFtZSgpKTsKKyAgICBwcm92aXNpb25hbExvYWRlci0+dGltaW5nKCkt
Pm1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKIAogICAgIHByb3Zpc2lvbmFsTG9hZGVyLT5zZXRDb21t
aXR0ZWQodHJ1ZSk7CiAgICAgY29tbWl0UHJvdmlzaW9uYWxMb2FkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmluZGV4IDZhNDUyNGIwOTViNzY5OGJlZTcyNzJm
MjE4YmIwNjRlMWM5YWRkNTcuLmNlMzI4ZTc2MDYyYjc4Zjg4MTJmNWZjYzI2OWNmOGQxZTQ3MGUy
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCkBAIC02MSw3
ICs2MSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlv
blN0YXJ0KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bmF2aWdhdGlvblN0YXJ0KCkp
OworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+
bmF2aWdhdGlvblN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdApAQCAtNzMsNyArNzMsNyBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdAog
ICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSB8fCAhdGltaW5nLT5oYXNT
YW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVubG9hZEV2ZW50U3RhcnQoKSk7
CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51
bmxvYWRFdmVudFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKQEAgLTg1LDcgKzg1LDcgQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNvbnN0CiAgICAg
aWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCgpIHx8ICF0aW1pbmctPmhhc1NhbWVP
cmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1
cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+dW5sb2FkRXZlbnRFbmQoKSk7CisgICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRF
dmVudEVuZCgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZWRpcmVjdFN0YXJ0KCkgY29uc3QKQEAgLTk3LDcgKzk3LDcgQEAgdW5zaWduZWQgbG9uZyBsb25n
IFBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KCkgY29uc3QKICAgICBpZiAodGltaW5n
LT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0U3RhcnQoKSk7CisgICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVj
dFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
ZGlyZWN0RW5kKCkgY29uc3QKQEAgLTEwOSw3ICsxMDksNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29uc3QKICAgICBpZiAodGltaW5nLT5o
YXNDcm9zc09yaWdpblJlZGlyZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJu
IHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0RW5kKCkpOworICAgIHJldHVy
biBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RFbmQo
KSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZmV0Y2hTdGFy
dCgpIGNvbnN0CkBAIC0xMTgsNyArMTE4LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+ZmV0
Y2hTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyh0aW1pbmctPmZldGNoU3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApAQCAtMjQzLDcgKzI0Myw3IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25z
dAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0lu
dGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25zZUVuZCgpKTsKKyAgICByZXR1cm4gbW9u
b3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlc3BvbnNlRW5kKCkpOwog
fQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUxvYWRpbmcoKSBj
b25zdApAQCAtMjk3LDcgKzI5Nyw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6bG9hZEV2ZW50U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2Fk
RXZlbnRTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyh0aW1pbmctPmxvYWRFdmVudFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVuZCgpIGNvbnN0CkBAIC0zMDYsNyArMzA2LDcg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRFbmQoKSBj
b25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0
b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2FkRXZlbnRFbmQoKSk7CisgICAgcmV0dXJu
IG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2FkRXZlbnRFbmQo
KSk7CiB9CiAKIERvY3VtZW50TG9hZGVyKiBQZXJmb3JtYW5jZVRpbWluZzo6ZG9jdW1lbnRMb2Fk
ZXIoKSBjb25zdApAQCAtMzUyLDcgKzM1Miw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQgcmVsCiAg
ICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlzZWNvbmRzID49IDApOwogICAgIFJlc291cmNlTG9hZFRp
bWluZyogcmVzb3VyY2VUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmcoKTsKICAgICBBU1NFUlQo
cmVzb3VyY2VUaW1pbmcpOwotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3Vy
Y2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1bWVudFRpbWUoZG9jdW1lbnRM
b2FkVGltaW5nKCksIHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyhkb3VibGUgbW9ub3RvbmljU2Vjb25kcykgY29uc3QKQEAgLTM2MCw3ICsz
NjAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25pY1Rp
bWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlCiAgICAgQVNTRVJUKG1vbm90b25pY1NlY29u
ZHMgPj0gMCk7CiAgICAgY29uc3QgRG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcgPSBkb2N1bWVu
dExvYWRUaW1pbmcoKTsKICAgICBBU1NFUlQodGltaW5nKTsKLSAgICByZXR1cm4gdG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKHRpbWluZy0+Y29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZSht
b25vdG9uaWNTZWNvbmRzKSk7CisgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1p
bmctPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1bWVudFRpbWUobW9ub3RvbmljU2Vj
b25kcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKaW5kZXggNWQ5
ZGE0OGEzY2E1ZjEzMDUwYWNjMDhmMjE5YWZhODU3NjE1NjNjZS4uZTMzNDM5NTgxNmNmYzM3YTAz
ODQ0MjIyMGRjOWRlZTlkMTQyM2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcApAQCAtMjYsMTYgKzI2LDExIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCiAK
LSNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1kb3VibGUgUmVzb3VyY2VMb2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvRG9j
dW1lbnRUaW1lKGNvbnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRUaW1pbmcsIGludCBk
ZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKK2RvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZl
cnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykg
Y29uc3QKIHsKLSAgICBpZiAoIWRvY3VtZW50VGltaW5nKQotICAgICAgICByZXR1cm4gMC4wOwot
Ci0gICAgcmV0dXJuIGRvY3VtZW50VGltaW5nLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1l
bnRUaW1lKHJlcXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjApOworICAgIHJl
dHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuaAppbmRleCA5NGM1NWQ5YmE0YjAxODA5NjI1ZDFiNjlhNDc4ZDA1MDZiYjFlMzNlLi4yYTM5
NWVmN2M0YjBhN2YzNDZiYzIxMTkwNjU1YjA1NDk1OTBmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKQEAgLTg1LDcg
Kzg1LDcgQEAgcHVibGljOgogICAgIC8vIHJlY29yZGVkIHVzaW5nIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVzZW50ZWQgdG8gSmF2YXNj
cmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKICAgICAvLyB1c2luZyB0aGUgZm9sbG93
aW5nIGVxdWF0aW9uOgogICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1bWVudCB3YWxsIHJlZmVy
ZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBtb25vdG9uaWMgcmVmZXJl
bmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRvdWJsZSBjb252ZXJ0UmVz
b3VyY2VMb2FkVGltZVRvRG9jdW1lbnRUaW1lKGNvbnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9j
dW1lbnRUaW1pbmcsIGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CisgICAgZG91YmxlIGNv
bnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25k
cykgY29uc3Q7CiAKICAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3Qu
CiAgICAgaW50IHByb3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29u
ZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVl
c3RUaW1lLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168090</attachid>
            <date>2012-10-10 16:31:18 -0700</date>
            <delta_ts>2012-10-10 18:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84912-20121010163017.patch</filename>
            <type>text/plain</type>
            <size>17906</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxODExMDFlY2UwNmVj
YWZiNGRiZWZkYTQ2N2UzNzhmODg5YjAwZi4uMjRkNzNkMDVjYzJhMGJmMTI0MzE4ZjI0YjA0ZDEx
MWMyNWYzODgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTEwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBIaWdoIHJlcyB0
aW1lcyBzaG91bGQgc3RhcnQgYXQgMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBFeGlzdGluZyBOYXZpZ2F0aW9uIFRpbWluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOiBVc2UgbGVn
YWN5IGRvY3VtZW50IHRpbWUsIHBlbmRpbmcgOTgyMjMuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkT2JqZWN0Rm9yVGltaW5nKToKKyAgICAgICAgKiBsb2Fk
ZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZFRpbWluZzo6Y29udmVydE1vbm90b25pY1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6Y29u
dmVydE1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3VtZW50VGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om1hcmtOYXZpZ2F0aW9uU3RhcnQpOgorICAgICAgICAq
IGxvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaDoKKyAgICAgICAgKERvY3VtZW50TG9hZFRpbWlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6Om5hdmlnYXRpb25TdGFy
dCk6IFRoZXNlIGp1c3QgcmVwb3J0IHJhdyBtb25vdG9uaWMgdGltZXMgbm93LgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpyZWRpcmVjdFN0YXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZFRpbWluZzo6cmVzcG9uc2VFbmQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRUaW1pbmc6OmxvYWRFdmVudEVuZCk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlv
blN0YXJ0KTogQ29udmVydCB0aGVzZSBiYWNrIHRvIGxlZ2FjeSBkb2N1bWVudCB0aW1lcy4KKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmZldGNoU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNl
VGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlTG9hZFRpbWluZy5oOgorICAgICAgICAoUmVzb3VyY2VMb2FkVGltaW5nKToKKwogMjAxMi0x
MC0wNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlcHJlY2F0
ZWQgZmxleGJveGVzIHN1YnRyYWN0IHNjcm9sbGJhciB3aWR0aC9oZWlnaHQgdHdpY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKaW5kZXggYWJiNWQ3NWI5M2M2ZTQ0MTFiYTNkMjkxNDEwNjFjMWY5MmZiNzM1ZS4uYjNhMjdm
MzIwZTIxNjkyOWMxNDkzNzAwYmNmMGJlODhmYzI2NjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTc0Niw3
ICs3NDYsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGlu
Z0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bQogICAgIGRvdWJsZSBmaW5pc2hUaW1l
ID0gMC4wOwogICAgIC8vIEZJWE1FOiBFeHBvc2UgYWxsIG9mIHRoZSB0aW1pbmcgZGV0YWlscyB0
byBpbnNwZWN0b3IgYW5kIGhhdmUgaXQgY2FsY3VsYXRlIGZpbmlzaFRpbWUuCiAgICAgaWYgKG1v
bm90b25pY0ZpbmlzaFRpbWUpCi0gICAgICAgIGZpbmlzaFRpbWUgPSBsb2FkZXItPnRpbWluZygp
LT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1vbm90b25pY0ZpbmlzaFRpbWUp
OworICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmcoKS0+Y29udmVydE1vbm90b25p
Y1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1lKTsKIAogICAgIGlm
ICh0aW1lbGluZUFnZW50KQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRGaW5pc2hMb2FkaW5n
UmVzb3VyY2UoaWRlbnRpZmllciwgZmFsc2UsIGZpbmlzaFRpbWUsIGxvYWRlci0+ZnJhbWUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAKaW5kZXggN2RlZmIzNTk1ZGNiMWFkYTkyNTJhN2ViNjIwODM0NTY2NThhYjRjNC4uNzIx
MmJiZGU5ZGE4YzdhZDg1NGE1MTdkM2ZhNWViOWE0NmIyMjBjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMTEyLDcg
KzExMiw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RG
b3JIZWFkZXJzKGNvbnN0IEhUVFBIZWFkZXJNYXAmIGhlCiBzdGF0aWMgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc+IGJ1aWxkT2JqZWN0Rm9yVGltaW5nKGNv
bnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQog
ewogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6TmV0d29yazo6UmVzb3VyY2VUaW1pbmc6OmNyZWF0
ZSgpCi0gICAgICAgIC5zZXRSZXF1ZXN0VGltZSh0aW1pbmcuY29udmVydFJlc291cmNlTG9hZFRp
bWVUb0RvY3VtZW50VGltZShsb2FkZXItPnRpbWluZygpLCAwKSkKKyAgICAgICAgLnNldFJlcXVl
c3RUaW1lKGxvYWRlci0+dGltaW5nKCktPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1
bWVudFRpbWUodGltaW5nLmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKDAp
KSkKICAgICAgICAgLnNldFByb3h5U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCiAgICAgICAgIC5z
ZXRQcm94eUVuZCh0aW1pbmcucHJveHlFbmQpCiAgICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcu
ZG5zU3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3Bw
CmluZGV4IDNjNDk2MWVkOTgxZTc5ZmQzNWYwMWMzMmI1MTA5ZDYzZTBhMzBkYWIuLjIyOWNiOTRk
YzYxYmU0OTJhYmE5YjNhNzVhOGVjMzY4NzRlYzdmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCkBAIC01NCwyMiArNTQsMjYgQEAgRG9jdW1lbnRM
b2FkVGltaW5nOjpEb2N1bWVudExvYWRUaW1pbmcoKQogewogfQogCi12b2lkIERvY3VtZW50TG9h
ZFRpbWluZzo6bWFya05hdmlnYXRpb25TdGFydChGcmFtZSogZnJhbWUpCitkb3VibGUgRG9jdW1l
bnRMb2FkVGltaW5nOjpjb252ZXJ0TW9ub3RvbmljVGltZVRvTGVnYWN5RG9jdW1lbnRUaW1lKGRv
dWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAoreworICAgIGlmICghbW9ub3RvbmljVGltZSkKKyAg
ICAgICAgcmV0dXJuIDAuMDsKKyAgICByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZSArIG1vbm90
b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7Cit9CisKK2RvdWJsZSBEb2N1bWVu
dExvYWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUo
ZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Cit7CisgICAgaWYgKCFtb25vdG9uaWNUaW1lKQor
ICAgICAgICByZXR1cm4gMC4wOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVu
Y2VNb25vdG9uaWNUaW1lOworfQorCit2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmln
YXRpb25TdGFydCgpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKICAgICBBU1NFUlQoIW1fbmF2aWdh
dGlvblN0YXJ0ICYmICFtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgJiYgIW1fcmVmZXJlbmNlV2Fs
bFRpbWUpOwogCi0gICAgaWYgKGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpID09IGZyYW1lKSB7
Ci0gICAgICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRp
bWUgPSBjdXJyZW50VGltZSgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIERvY3VtZW50KiByb290
RG9jdW1lbnQgPSBmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKLSAgICAg
ICAgQVNTRVJUKHJvb3REb2N1bWVudCk7Ci0gICAgICAgIERvY3VtZW50TG9hZFRpbWluZyogcm9v
dFRpbWluZyA9IHJvb3REb2N1bWVudC0+bG9hZGVyKCktPnRpbWluZygpOwotICAgICAgICBtX3Jl
ZmVyZW5jZU1vbm90b25pY1RpbWUgPSByb290VGltaW5nLT5tX3JlZmVyZW5jZU1vbm90b25pY1Rp
bWU7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSByb290VGltaW5nLT5tX3JlZmVyZW5j
ZVdhbGxUaW1lOwotICAgICAgICBtX25hdmlnYXRpb25TdGFydCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOwotICAgIH0KKyAgICBtX25hdmlnYXRpb25TdGFydCA9IG1fcmVmZXJlbmNl
TW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fcmVm
ZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCiB2b2lkIERvY3VtZW50TG9hZFRp
bWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQpCkBAIC04OSwx
OCArOTMsNCBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QoY29uc3QgS1VS
TCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IEtVUkwmIHJlZAogICAgIG1faGFzQ3Jvc3NPcmlnaW5S
ZWRpcmVjdCA9ICFyZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QocmVkaXJlY3Rp
bmdVcmwpOwogfQogCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjpjb252ZXJ0TW9ub3Rvbmlj
VGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSBtb25vdG9uaWNUaW1lKSBjb25zdAotewotICAgIGlm
ICghbW9ub3RvbmljVGltZSkKLSAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbV9yZWZl
cmVuY2VXYWxsVGltZSArIG1vbm90b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7
Ci19Ci0KLWRvdWJsZSBEb2N1bWVudExvYWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9a
ZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtb25vdG9uaWNUaW1lKQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtb25v
dG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKaW5k
ZXggNzAwOTU3NDI5NmY1N2I0NWRiNTVmMGE1ZDk3YzYxMzJiN2Y3NGNmZC4uYzE2YjIzNDBiMTg0
NTNmZWUwYzQ5ODVmODVmZjhkZmM1MjdjOTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRUaW1pbmcuaApAQCAtMzcsMTUgKzM3LDEyIEBAIGNsYXNzIERvY3VtZW50TG9h
ZFRpbWluZyB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnRMb2FkVGltaW5nKCk7CiAKLSAgICB2b2lk
IG1hcmtOYXZpZ2F0aW9uU3RhcnQoRnJhbWUqKTsKKyAgICBkb3VibGUgY29udmVydE1vbm90b25p
Y1RpbWVUb0xlZ2FjeURvY3VtZW50VGltZShkb3VibGUpIGNvbnN0OworICAgIGRvdWJsZSBjb252
ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CisK
KyAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKICAgICB2b2lkIHNldE5hdmlnYXRpb25T
dGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgS1VSTCYgcmVkaXJlY3Rp
bmdVcmwsIGNvbnN0IEtVUkwmIHJlZGlyZWN0ZWRVcmwpOwotICAgIGRvdWJsZSBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7Ci0KLSAgICAvLyBGSVhNRTog
T25jZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lIGlzIHplcm8tYmFzZWQsIHRo
ZW4gdGhpcwotICAgIC8vIGZ1bmN0aW9uIGFuZCBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1l
bnRUaW1lIGNhbiBiZSBtZXJnZWQuIFNlZQotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDkxMiBmb3IgbW9yZSBkZXRhaWxzLgotICAgIGRvdWJsZSBjb252
ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CiAK
ICAgICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50
RW5kKCkgeyBtX3VubG9hZEV2ZW50RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
IH0KQEAgLTU4LDE2ICs1NSwxNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc1NhbWVPcmln
aW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZp
b3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQogCi0gICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNv
bnN0IHsgcmV0dXJuIGNvbnZlcnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9uYXZpZ2F0
aW9uU3RhcnQpOyB9Ci0gICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVy
biBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRTdGFydCk7
IH0KLSAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRFbmQpOyB9Ci0gICAgZG91Ymxl
IHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9j
dW1lbnRUaW1lKG1fcmVkaXJlY3RTdGFydCk7IH0KLSAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBj
b25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fcmVkaXJl
Y3RFbmQpOyB9CisgICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmF2aWdhdGlvblN0YXJ0OyB9CisgICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7
IHJldHVybiBtX3VubG9hZEV2ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQo
KSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50RW5kOyB9CisgICAgZG91YmxlIHJlZGlyZWN0
U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0U3RhcnQ7IH0KKyAgICBkb3VibGUgcmVk
aXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0RW5kOyB9CiAgICAgc2hvcnQgcmVk
aXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3VudDsgfQotICAgIGRvdWJs
ZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3Vt
ZW50VGltZShtX2ZldGNoU3RhcnQpOyB9Ci0gICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Qg
eyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtX3Jlc3BvbnNlRW5k
KTsgfQotICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGNvbnZlcnRN
b25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9sb2FkRXZlbnRTdGFydCk7IH0KLSAgICBkb3Vi
bGUgbG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0Rv
Y3VtZW50VGltZShtX2xvYWRFdmVudEVuZCk7IH0KKyAgICBkb3VibGUgZmV0Y2hTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFydDsgfQorICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VFbmQ7IH0KKyAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudFN0YXJ0OyB9CisgICAgZG91YmxlIGxvYWRFdmVu
dEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RW5kOyB9CiAgICAgYm9vbCBoYXNDcm9z
c09yaWdpblJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0
OyB9CiAgICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGI1YWNmMmI1NTMxZGZmN2IwZDhlNmYy
ZWZkMmY1OWIwMmUwZWY2NTcuLmM2MTRlM2RmZmZmNGUwMTBmNjdlNDU5ZjZlM2Y1ZjdmYjIxMWMz
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtODYyLDcg
Kzg2Miw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQo
KSBjb25zdAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkK
IHsKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gUmVzb3VyY2VFcnJvcigpOwotICAgIHRpbWlu
ZygpLT5tYXJrTmF2aWdhdGlvblN0YXJ0KG1fZnJhbWUpOworICAgIHRpbWluZygpLT5tYXJrTmF2
aWdhdGlvblN0YXJ0KCk7CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlcik7CiAgICAg
bV9tYWluUmVzb3VyY2VMb2FkZXIgPSBNYWluUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMWQ0ODQwNWU3Y2Yy
YzZlOTg3NjRkYjQzYmNiNDc3ZDkxMzFiNTkwZC4uZmFkYzgyZjQ3ZDk5ZjA2MzY4M2Y2MjEyMWEz
OGZhZDIyMzg4YjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
OTUxLDcgKzI5NTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUHJvdmlzaW9uYWxJdGVtRnJv
bUNhY2hlZFBhZ2UoKQogICAgIC8vIFNob3VsZCBoYXZlIHRpbWluZyBkYXRhIGZyb20gcHJldmlv
dXMgdGltZShzKSB0aGUgcGFnZSB3YXMgc2hvd24uCiAgICAgQVNTRVJUKHByb3Zpc2lvbmFsTG9h
ZGVyLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpOwogICAgIHByb3Zpc2lvbmFsTG9hZGVy
LT5yZXNldFRpbWluZygpOwotICAgIHByb3Zpc2lvbmFsTG9hZGVyLT50aW1pbmcoKS0+bWFya05h
dmlnYXRpb25TdGFydChmcmFtZSgpKTsKKyAgICBwcm92aXNpb25hbExvYWRlci0+dGltaW5nKCkt
Pm1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKIAogICAgIHByb3Zpc2lvbmFsTG9hZGVyLT5zZXRDb21t
aXR0ZWQodHJ1ZSk7CiAgICAgY29tbWl0UHJvdmlzaW9uYWxMb2FkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmluZGV4IDZhNDUyNGIwOTViNzY5OGJlZTcyNzJm
MjE4YmIwNjRlMWM5YWRkNTcuLmNlMzI4ZTc2MDYyYjc4Zjg4MTJmNWZjYzI2OWNmOGQxZTQ3MGUy
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCkBAIC02MSw3
ICs2MSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bmF2aWdhdGlv
blN0YXJ0KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+bmF2aWdhdGlvblN0YXJ0KCkp
OworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+
bmF2aWdhdGlvblN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdApAQCAtNzMsNyArNzMsNyBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdAog
ICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSB8fCAhdGltaW5nLT5oYXNT
YW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVubG9hZEV2ZW50U3RhcnQoKSk7
CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51
bmxvYWRFdmVudFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKQEAgLTg1LDcgKzg1LDcgQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNvbnN0CiAgICAg
aWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCgpIHx8ICF0aW1pbmctPmhhc1NhbWVP
cmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1
cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+dW5sb2FkRXZlbnRFbmQoKSk7CisgICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRF
dmVudEVuZCgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZWRpcmVjdFN0YXJ0KCkgY29uc3QKQEAgLTk3LDcgKzk3LDcgQEAgdW5zaWduZWQgbG9uZyBsb25n
IFBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KCkgY29uc3QKICAgICBpZiAodGltaW5n
LT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0U3RhcnQoKSk7CisgICAg
cmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVj
dFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
ZGlyZWN0RW5kKCkgY29uc3QKQEAgLTEwOSw3ICsxMDksNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29uc3QKICAgICBpZiAodGltaW5nLT5o
YXNDcm9zc09yaWdpblJlZGlyZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJu
IHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0RW5kKCkpOworICAgIHJldHVy
biBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RFbmQo
KSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZmV0Y2hTdGFy
dCgpIGNvbnN0CkBAIC0xMTgsNyArMTE4LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+ZmV0
Y2hTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyh0aW1pbmctPmZldGNoU3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdApAQCAtMjQzLDcgKzI0Myw3IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9uc2VFbmQoKSBjb25z
dAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0lu
dGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZXNwb25zZUVuZCgpKTsKKyAgICByZXR1cm4gbW9u
b3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlc3BvbnNlRW5kKCkpOwog
fQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUxvYWRpbmcoKSBj
b25zdApAQCAtMjk3LDcgKzI5Nyw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6bG9hZEV2ZW50U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2Fk
RXZlbnRTdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyh0aW1pbmctPmxvYWRFdmVudFN0YXJ0KCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVuZCgpIGNvbnN0CkBAIC0zMDYsNyArMzA2LDcg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRFbmQoKSBj
b25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiB0
b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2FkRXZlbnRFbmQoKSk7CisgICAgcmV0dXJu
IG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5sb2FkRXZlbnRFbmQo
KSk7CiB9CiAKIERvY3VtZW50TG9hZGVyKiBQZXJmb3JtYW5jZVRpbWluZzo6ZG9jdW1lbnRMb2Fk
ZXIoKSBjb25zdApAQCAtMzUyLDcgKzM1Miw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZShpbnQgcmVsCiAg
ICAgQVNTRVJUKHJlbGF0aXZlTWlsbGlzZWNvbmRzID49IDApOwogICAgIFJlc291cmNlTG9hZFRp
bWluZyogcmVzb3VyY2VUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmcoKTsKICAgICBBU1NFUlQo
cmVzb3VyY2VUaW1pbmcpOwotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3Vy
Y2VUaW1pbmctPmNvbnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Eb2N1bWVudFRpbWUoZG9jdW1lbnRM
b2FkVGltaW5nKCksIHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CisgICAgcmV0dXJuIG1vbm90b25p
Y1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMocmVzb3VyY2VUaW1pbmctPmNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKHJlbGF0aXZlTWlsbGlzZWNvbmRzKSk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdl
ck1pbGxpc2Vjb25kcyhkb3VibGUgbW9ub3RvbmljU2Vjb25kcykgY29uc3QKQEAgLTM2MCw3ICsz
NjAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om1vbm90b25pY1Rp
bWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlCiAgICAgQVNTRVJUKG1vbm90b25pY1NlY29u
ZHMgPj0gMCk7CiAgICAgY29uc3QgRG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcgPSBkb2N1bWVu
dExvYWRUaW1pbmcoKTsKICAgICBBU1NFUlQodGltaW5nKTsKLSAgICByZXR1cm4gdG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKHRpbWluZy0+Y29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZSht
b25vdG9uaWNTZWNvbmRzKSk7CisgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1p
bmctPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1bWVudFRpbWUobW9ub3RvbmljU2Vj
b25kcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKaW5kZXggNWQ5
ZGE0OGEzY2E1ZjEzMDUwYWNjMDhmMjE5YWZhODU3NjE1NjNjZS4uZTMzNDM5NTgxNmNmYzM3YTAz
ODQ0MjIyMGRjOWRlZTlkMTQyM2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcApAQCAtMjYsMTYgKzI2LDExIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCiAK
LSNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1kb3VibGUgUmVzb3VyY2VMb2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvRG9j
dW1lbnRUaW1lKGNvbnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRUaW1pbmcsIGludCBk
ZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKK2RvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZl
cnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykg
Y29uc3QKIHsKLSAgICBpZiAoIWRvY3VtZW50VGltaW5nKQotICAgICAgICByZXR1cm4gMC4wOwot
Ci0gICAgcmV0dXJuIGRvY3VtZW50VGltaW5nLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1l
bnRUaW1lKHJlcXVlc3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjApOworICAgIHJl
dHVybiByZXF1ZXN0VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRp
bWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1p
bmcuaAppbmRleCA5NGM1NWQ5YmE0YjAxODA5NjI1ZDFiNjlhNDc4ZDA1MDZiYjFlMzNlLi4yYTM5
NWVmN2M0YjBhN2YzNDZiYzIxMTkwNjU1YjA1NDk1OTBmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKQEAgLTg1LDcg
Kzg1LDcgQEAgcHVibGljOgogICAgIC8vIHJlY29yZGVkIHVzaW5nIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpLiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVzZW50ZWQgdG8gSmF2YXNj
cmlwdCwgd2UgYnVpbGQgYSBwc2V1ZG8td2FsbHRpbWUKICAgICAvLyB1c2luZyB0aGUgZm9sbG93
aW5nIGVxdWF0aW9uOgogICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1bWVudCB3YWxsIHJlZmVy
ZW5jZSArIChyZXNvdXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBtb25vdG9uaWMgcmVmZXJl
bmNlKSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRvdWJsZSBjb252ZXJ0UmVz
b3VyY2VMb2FkVGltZVRvRG9jdW1lbnRUaW1lKGNvbnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9j
dW1lbnRUaW1pbmcsIGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CisgICAgZG91YmxlIGNv
bnZlcnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25k
cykgY29uc3Q7CiAKICAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpIHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3Qu
CiAgICAgaW50IHByb3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29u
ZCBkZWx0YXMsIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVl
c3RUaW1lLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168112</attachid>
            <date>2012-10-10 18:27:28 -0700</date>
            <delta_ts>2012-10-10 20:06:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84912-20121010182626.patch</filename>
            <type>text/plain</type>
            <size>18521</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxODExMDFlY2UwNmVj
YWZiNGRiZWZkYTQ2N2UzNzhmODg5YjAwZi4uNGIxYzRiZTNjODM0NzlkNDVhOGYxZTBhZjA4YTM3
M2I4ZWI4MzFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTEwICBKYW1l
cyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBIaWdoIHJlcyB0
aW1lcyBzaG91bGQgc3RhcnQgYXQgMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQ5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IEdlbnRpbGNv
cmUuCisKKyAgICAgICAgVGVzdDogRXhpc3RpbmcgTmF2aWdhdGlvbiBUaW1pbmcgdGVzdHMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDogVXNlIGxl
Z2FjeSBkb2N1bWVudCB0aW1lLCBwZW5kaW5nIDk4MjIzLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRp
bmdJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvclRpbWluZyk6CisgICAgICAgICogbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExv
YWRUaW1pbmc6OmNvbnZlcnRNb25vdG9uaWNUaW1lVG9MZWdhY3lEb2N1bWVudFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OmNv
bnZlcnRNb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjptYXJrTmF2aWdhdGlvblN0YXJ0KToKKyAgICAgICAg
KiBsb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmg6CisgICAgICAgIChEb2N1bWVudExvYWRUaW1p
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpuYXZpZ2F0aW9uU3Rh
cnQpOiBUaGVzZSBqdXN0IHJlcG9ydCByYXcgbW9ub3RvbmljIHRpbWVzIG5vdy4KKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnVubG9hZEV2ZW50RW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZFRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OnJlZGlyZWN0RW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50TG9hZFRpbWluZzo6ZmV0Y2hTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRUaW1pbmc6OnJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZFRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkVGltaW5nOjpsb2FkRXZlbnRFbmQpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRp
b25TdGFydCk6IENvbnZlcnQgdGhlc2UgYmFjayB0byBsZWdhY3kgZG9jdW1lbnQgdGltZXMuCisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VUaW1pbmc6OmxvYWRFdmVudEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5j
ZVRpbWluZzo6cmVzb3VyY2VMb2FkVGltZVJlbGF0aXZlVG9BYnNvbHV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vj
b25kcyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VM
b2FkVGltZVRvTW9ub3RvbmljVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUxvYWRUaW1pbmcuaDoKKyAgICAgICAgKFJlc291cmNlTG9hZFRpbWluZyk6CisKIDIwMTIt
MTAtMDUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEZXByZWNh
dGVkIGZsZXhib3hlcyBzdWJ0cmFjdCBzY3JvbGxiYXIgd2lkdGgvaGVpZ2h0IHR3aWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IGFiYjVkNzViOTNjNmU0NDExYmEzZDI5MTQxMDYxYzFmOTJmYjczNWUuLmU2MDQw
YzYxY2M0YzBjODE4Mzg2ZTBkNTcyYzczYjdmMmE3OTcyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC03NDYs
NyArNzQ2LDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRp
bmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW0KICAgICBkb3VibGUgZmluaXNoVGlt
ZSA9IDAuMDsKICAgICAvLyBGSVhNRTogRXhwb3NlIGFsbCBvZiB0aGUgdGltaW5nIGRldGFpbHMg
dG8gaW5zcGVjdG9yIGFuZCBoYXZlIGl0IGNhbGN1bGF0ZSBmaW5pc2hUaW1lLgogICAgIGlmICht
b25vdG9uaWNGaW5pc2hUaW1lKQotICAgICAgICBmaW5pc2hUaW1lID0gbG9hZGVyLT50aW1pbmco
KS0+Y29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtb25vdG9uaWNGaW5pc2hUaW1l
KTsKKyAgICAgICAgZmluaXNoVGltZSA9IGxvYWRlci0+dGltaW5nKCktPm1vbm90b25pY1RpbWVU
b1BzZXVkb1dhbGxUaW1lKG1vbm90b25pY0ZpbmlzaFRpbWUpOwogCiAgICAgaWYgKHRpbWVsaW5l
QWdlbnQpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZEZpbmlzaExvYWRpbmdSZXNvdXJjZShp
ZGVudGlmaWVyLCBmYWxzZSwgZmluaXNoVGltZSwgbG9hZGVyLT5mcmFtZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCA3ZGVmYjM1OTVkY2IxYWRhOTI1MmE3ZWI2MjA4MzQ1NjY1OGFiNGM0Li40OGMzOTIxMDYyMTI4
YzkxOGUzYzYyY2RjMTAyZWU2MzRiYjE3MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAg
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckhlYWRlcnMo
Y29uc3QgSFRUUEhlYWRlck1hcCYgaGUKIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpO
ZXR3b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiB0aW1pbmcsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgcmV0
dXJuIFR5cGVCdWlsZGVyOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAg
ICAgLnNldFJlcXVlc3RUaW1lKHRpbWluZy5jb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvRG9jdW1l
bnRUaW1lKGxvYWRlci0+dGltaW5nKCksIDApKQorICAgICAgICAuc2V0UmVxdWVzdFRpbWUobG9h
ZGVyLT50aW1pbmcoKS0+bW9ub3RvbmljVGltZVRvUHNldWRvV2FsbFRpbWUodGltaW5nLmNvbnZl
cnRSZXNvdXJjZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKDApKSkKICAgICAgICAgLnNldFByb3h5
U3RhcnQodGltaW5nLnByb3h5U3RhcnQpCiAgICAgICAgIC5zZXRQcm94eUVuZCh0aW1pbmcucHJv
eHlFbmQpCiAgICAgICAgIC5zZXREbnNTdGFydCh0aW1pbmcuZG5zU3RhcnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCmluZGV4IDNjNDk2MWVkOTgxZTc5
ZmQzNWYwMWMzMmI1MTA5ZDYzZTBhMzBkYWIuLjRiMjJmNzIzYmY4NDcyMjM1ODlhZTU3NjRmN2Zj
OGJhYjEwMmRkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1p
bmcuY3BwCkBAIC01NCwyMiArNTQsMjYgQEAgRG9jdW1lbnRMb2FkVGltaW5nOjpEb2N1bWVudExv
YWRUaW1pbmcoKQogewogfQogCi12b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRp
b25TdGFydChGcmFtZSogZnJhbWUpCitkb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjptb25vdG9u
aWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0
Cit7CisgICAgaWYgKCFtb25vdG9uaWNUaW1lKQorICAgICAgICByZXR1cm4gMC4wOworICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOworfQorCitkb3Vi
bGUgRG9jdW1lbnRMb2FkVGltaW5nOjptb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3Vi
bGUgbW9ub3RvbmljVGltZSkgY29uc3QKK3sKKyAgICBpZiAoIW1vbm90b25pY1RpbWUpCisgICAg
ICAgIHJldHVybiAwLjA7CisgICAgcmV0dXJuIG1fcmVmZXJlbmNlV2FsbFRpbWUgKyBtb25vdG9u
aWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOworfQorCit2b2lkIERvY3VtZW50TG9h
ZFRpbWluZzo6bWFya05hdmlnYXRpb25TdGFydCgpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKICAg
ICBBU1NFUlQoIW1fbmF2aWdhdGlvblN0YXJ0ICYmICFtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUg
JiYgIW1fcmVmZXJlbmNlV2FsbFRpbWUpOwogCi0gICAgaWYgKGZyYW1lLT5wYWdlKCktPm1haW5G
cmFtZSgpID09IGZyYW1lKSB7Ci0gICAgICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbV9yZWZlcmVu
Y2VNb25vdG9uaWNUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgICAg
IG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIERvY3VtZW50KiByb290RG9jdW1lbnQgPSBmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+
ZG9jdW1lbnQoKTsKLSAgICAgICAgQVNTRVJUKHJvb3REb2N1bWVudCk7Ci0gICAgICAgIERvY3Vt
ZW50TG9hZFRpbWluZyogcm9vdFRpbWluZyA9IHJvb3REb2N1bWVudC0+bG9hZGVyKCktPnRpbWlu
ZygpOwotICAgICAgICBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUgPSByb290VGltaW5nLT5tX3Jl
ZmVyZW5jZU1vbm90b25pY1RpbWU7Ci0gICAgICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSByb290
VGltaW5nLT5tX3JlZmVyZW5jZVdhbGxUaW1lOwotICAgICAgICBtX25hdmlnYXRpb25TdGFydCA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwotICAgIH0KKyAgICBtX25hdmlnYXRpb25T
dGFydCA9IG1fcmVmZXJlbmNlTW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpOworICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOwogfQogCiB2
b2lkIERvY3VtZW50TG9hZFRpbWluZzo6c2V0TmF2aWdhdGlvblN0YXJ0KGRvdWJsZSBuYXZpZ2F0
aW9uU3RhcnQpCkBAIC04OSwxOCArOTMsNCBAQCB2b2lkIERvY3VtZW50TG9hZFRpbWluZzo6YWRk
UmVkaXJlY3QoY29uc3QgS1VSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IEtVUkwmIHJlZAogICAg
IG1faGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCA9ICFyZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4tPmNh
blJlcXVlc3QocmVkaXJlY3RpbmdVcmwpOwogfQogCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5n
Ojpjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSBtb25vdG9uaWNUaW1l
KSBjb25zdAotewotICAgIGlmICghbW9ub3RvbmljVGltZSkKLSAgICAgICAgcmV0dXJuIDAuMDsK
LSAgICByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZSArIG1vbm90b25pY1RpbWUgLSBtX3JlZmVy
ZW5jZU1vbm90b25pY1RpbWU7Ci19Ci0KLWRvdWJsZSBEb2N1bWVudExvYWRUaW1pbmc6OmNvbnZl
cnRNb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25pY1Rp
bWUpIGNvbnN0Ci17Ci0gICAgaWYgKCFtb25vdG9uaWNUaW1lKQotICAgICAgICByZXR1cm4gMC4w
OwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkVGltaW5nLmgKaW5kZXggNzAwOTU3NDI5NmY1N2I0NWRiNTVmMGE1ZDk3YzYxMzJiN2Y3
NGNmZC4uNjQ0OTQzMzBkNTA2Yzg3ZWY5OTEyNGIyMzY5Yjg3NWU0ODJmNWU1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaApAQCAtMzcsMTUgKzM3LDEyIEBA
IGNsYXNzIERvY3VtZW50TG9hZFRpbWluZyB7CiBwdWJsaWM6CiAgICAgRG9jdW1lbnRMb2FkVGlt
aW5nKCk7CiAKLSAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoRnJhbWUqKTsKKyAgICBkb3Vi
bGUgbW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7Cisg
ICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29uc3Q7CisK
KyAgICB2b2lkIG1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKICAgICB2b2lkIHNldE5hdmlnYXRpb25T
dGFydChkb3VibGUpOwogICAgIHZvaWQgYWRkUmVkaXJlY3QoY29uc3QgS1VSTCYgcmVkaXJlY3Rp
bmdVcmwsIGNvbnN0IEtVUkwmIHJlZGlyZWN0ZWRVcmwpOwotICAgIGRvdWJsZSBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7Ci0KLSAgICAvLyBGSVhNRTog
T25jZSBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lIGlzIHplcm8tYmFzZWQsIHRo
ZW4gdGhpcwotICAgIC8vIGZ1bmN0aW9uIGFuZCBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1l
bnRUaW1lIGNhbiBiZSBtZXJnZWQuIFNlZQotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDkxMiBmb3IgbW9yZSBkZXRhaWxzLgotICAgIGRvdWJsZSBjb252
ZXJ0TW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29uc3Q7CiAK
ICAgICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQogICAgIHZvaWQgbWFya1VubG9hZEV2ZW50
RW5kKCkgeyBtX3VubG9hZEV2ZW50RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
IH0KQEAgLTU4LDE2ICs1NSwxNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc1NhbWVPcmln
aW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZp
b3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQogCi0gICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNv
bnN0IHsgcmV0dXJuIGNvbnZlcnRNb25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9uYXZpZ2F0
aW9uU3RhcnQpOyB9Ci0gICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVy
biBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRTdGFydCk7
IH0KLSAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9u
b3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fdW5sb2FkRXZlbnRFbmQpOyB9Ci0gICAgZG91Ymxl
IHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9j
dW1lbnRUaW1lKG1fcmVkaXJlY3RTdGFydCk7IH0KLSAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBj
b25zdCB7IHJldHVybiBjb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1fcmVkaXJl
Y3RFbmQpOyB9CisgICAgZG91YmxlIG5hdmlnYXRpb25TdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmF2aWdhdGlvblN0YXJ0OyB9CisgICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7
IHJldHVybiBtX3VubG9hZEV2ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUgdW5sb2FkRXZlbnRFbmQo
KSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50RW5kOyB9CisgICAgZG91YmxlIHJlZGlyZWN0
U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0U3RhcnQ7IH0KKyAgICBkb3VibGUgcmVk
aXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0RW5kOyB9CiAgICAgc2hvcnQgcmVk
aXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3VudDsgfQotICAgIGRvdWJs
ZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3Vt
ZW50VGltZShtX2ZldGNoU3RhcnQpOyB9Ci0gICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Qg
eyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0RvY3VtZW50VGltZShtX3Jlc3BvbnNlRW5k
KTsgfQotICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIGNvbnZlcnRN
b25vdG9uaWNUaW1lVG9Eb2N1bWVudFRpbWUobV9sb2FkRXZlbnRTdGFydCk7IH0KLSAgICBkb3Vi
bGUgbG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4gY29udmVydE1vbm90b25pY1RpbWVUb0Rv
Y3VtZW50VGltZShtX2xvYWRFdmVudEVuZCk7IH0KKyAgICBkb3VibGUgZmV0Y2hTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFydDsgfQorICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VFbmQ7IH0KKyAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudFN0YXJ0OyB9CisgICAgZG91YmxlIGxvYWRFdmVu
dEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RW5kOyB9CiAgICAgYm9vbCBoYXNDcm9z
c09yaWdpblJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0
OyB9CiAgICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGI1YWNmMmI1NTMxZGZmN2IwZDhlNmYy
ZWZkMmY1OWIwMmUwZWY2NTcuLmM2MTRlM2RmZmZmNGUwMTBmNjdlNDU5ZjZlM2Y1ZjdmYjIxMWMz
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtODYyLDcg
Kzg2Miw3IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQo
KSBjb25zdAogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkK
IHsKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gUmVzb3VyY2VFcnJvcigpOwotICAgIHRpbWlu
ZygpLT5tYXJrTmF2aWdhdGlvblN0YXJ0KG1fZnJhbWUpOworICAgIHRpbWluZygpLT5tYXJrTmF2
aWdhdGlvblN0YXJ0KCk7CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZUxvYWRlcik7CiAgICAg
bV9tYWluUmVzb3VyY2VMb2FkZXIgPSBNYWluUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShtX2ZyYW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMWQ0ODQwNWU3Y2Yy
YzZlOTg3NjRkYjQzYmNiNDc3ZDkxMzFiNTkwZC4uZmFkYzgyZjQ3ZDk5ZjA2MzY4M2Y2MjEyMWEz
OGZhZDIyMzg4YjU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
OTUxLDcgKzI5NTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUHJvdmlzaW9uYWxJdGVtRnJv
bUNhY2hlZFBhZ2UoKQogICAgIC8vIFNob3VsZCBoYXZlIHRpbWluZyBkYXRhIGZyb20gcHJldmlv
dXMgdGltZShzKSB0aGUgcGFnZSB3YXMgc2hvd24uCiAgICAgQVNTRVJUKHByb3Zpc2lvbmFsTG9h
ZGVyLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpOwogICAgIHByb3Zpc2lvbmFsTG9hZGVy
LT5yZXNldFRpbWluZygpOwotICAgIHByb3Zpc2lvbmFsTG9hZGVyLT50aW1pbmcoKS0+bWFya05h
dmlnYXRpb25TdGFydChmcmFtZSgpKTsKKyAgICBwcm92aXNpb25hbExvYWRlci0+dGltaW5nKCkt
Pm1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKIAogICAgIHByb3Zpc2lvbmFsTG9hZGVyLT5zZXRDb21t
aXR0ZWQodHJ1ZSk7CiAgICAgY29tbWl0UHJvdmlzaW9uYWxMb2FkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuY3BwCmluZGV4IDkwMzM5MzAyMTllNjA0MTE1MTRjY2RlNTZmNjZiZTZiODU4
OGQ1MTkuLjIzZDdjZmMwZjVjMWFlZmYxOTVkZGIwYmVlZWFkZDExNmRhNDM3YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC0xNjcsNyArMTY3LDcgQEAgRXZlbnRUYXJnZXRE
YXRhKiBQZXJmb3JtYW5jZTo6ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKIAogZG91YmxlIFBlcmZv
cm1hbmNlOjp3ZWJraXROb3coKSBjb25zdAogewotICAgIHJldHVybiAxMDAwLjAgKiBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5sb2FkZXIoKS0+dGltaW5nKCktPmNvbnZlcnRNb25vdG9uaWNUaW1lVG9a
ZXJvQmFzZWREb2N1bWVudFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAg
IHJldHVybiAxMDAwLjAgKiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5sb2FkZXIoKS0+dGltaW5nKCkt
Pm1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3VtZW50VGltZShtb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKaW5kZXggNmE0NTI0YjA5NWI3Njk4YmVlNzI3MmYy
MThiYjA2NGUxYzlhZGQ1Ny4uNGEwYzBiZDc0NjhmYzA1ZjZhZDgzYWE4ZDA4Mzc3NTAxNGZlMTQ4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKQEAgLTYxLDcg
KzYxLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpuYXZpZ2F0aW9u
U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQoKSk7
CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5u
YXZpZ2F0aW9uU3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0CkBAIC03Myw3ICs3Myw3IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0CiAg
ICAgaWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCgpIHx8ICF0aW1pbmctPmhhc1Nh
bWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBy
ZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+dW5sb2FkRXZlbnRTdGFydCgpKTsK
KyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVu
bG9hZEV2ZW50U3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdApAQCAtODUsNyArODUsNyBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKICAgICBp
ZiAodGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KCkgfHwgIXRpbWluZy0+aGFzU2FtZU9y
aWdpbkFzUHJldmlvdXNEb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVy
biB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRFdmVudEVuZCgpKTsKKyAgICBy
ZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnVubG9hZEV2
ZW50RW5kKCkpOwogfQogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJl
ZGlyZWN0U3RhcnQoKSBjb25zdApAQCAtOTcsNyArOTcsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQoKSBjb25zdAogICAgIGlmICh0aW1pbmct
Pmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1
cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RTdGFydCgpKTsKKyAgICBy
ZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0
U3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVk
aXJlY3RFbmQoKSBjb25zdApAQCAtMTA5LDcgKzEwOSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdAogICAgIGlmICh0aW1pbmctPmhh
c0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4g
dG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RFbmQoKSk7CisgICAgcmV0dXJu
IG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVjdEVuZCgp
KTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0
KCkgY29uc3QKQEAgLTExOCw3ICsxMTgsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OmZldGNoU3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5mZXRj
aFN0YXJ0KCkpOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRz
KHRpbWluZy0+ZmV0Y2hTdGFydCgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0CkBAIC0yNDMsNyArMjQzLDcgQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0
CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHRvSW50
ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlc3BvbnNlRW5kKCkpOworICAgIHJldHVybiBtb25v
dG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVzcG9uc2VFbmQoKSk7CiB9
CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9tTG9hZGluZygpIGNv
bnN0CkBAIC0yOTcsNyArMjk3LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpsb2FkRXZlbnRTdGFydCgpIGNvbnN0CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPmxvYWRF
dmVudFN0YXJ0KCkpOworICAgIHJldHVybiBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNv
bmRzKHRpbWluZy0+bG9hZEV2ZW50U3RhcnQoKSk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQ
ZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKCkgY29uc3QKQEAgLTMwNiw3ICszMDYsNyBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVudEVuZCgpIGNv
bnN0CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHRv
SW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPmxvYWRFdmVudEVuZCgpKTsKKyAgICByZXR1cm4g
bW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPmxvYWRFdmVudEVuZCgp
KTsKIH0KIAogRG9jdW1lbnRMb2FkZXIqIFBlcmZvcm1hbmNlVGltaW5nOjpkb2N1bWVudExvYWRl
cigpIGNvbnN0CkBAIC0zNTIsNyArMzUyLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0Fic29sdXRlKGludCByZWwKICAg
ICBBU1NFUlQocmVsYXRpdmVNaWxsaXNlY29uZHMgPj0gMCk7CiAgICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZVRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZygpOwogICAgIEFTU0VSVChy
ZXNvdXJjZVRpbWluZyk7Ci0gICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJj
ZVRpbWluZy0+Y29udmVydFJlc291cmNlTG9hZFRpbWVUb0RvY3VtZW50VGltZShkb2N1bWVudExv
YWRUaW1pbmcoKSwgcmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKKyAgICByZXR1cm4gbW9ub3Rvbmlj
VGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhyZXNvdXJjZVRpbWluZy0+Y29udmVydFJlc291cmNl
TG9hZFRpbWVUb01vbm90b25pY1RpbWUocmVsYXRpdmVNaWxsaXNlY29uZHMpKTsKIH0KIAogdW5z
aWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKGRvdWJsZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdApAQCAtMzYwLDcgKzM2
MCw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGlt
ZVRvSW50ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUKICAgICBBU1NFUlQobW9ub3RvbmljU2Vjb25k
cyA+PSAwKTsKICAgICBjb25zdCBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50
TG9hZFRpbWluZygpOwogICAgIEFTU0VSVCh0aW1pbmcpOwotICAgIHJldHVybiB0b0ludGVnZXJN
aWxsaXNlY29uZHModGltaW5nLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKG1v
bm90b25pY1NlY29uZHMpKTsKKyAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWlu
Zy0+bW9ub3RvbmljVGltZVRvUHNldWRvV2FsbFRpbWUobW9ub3RvbmljU2Vjb25kcykpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5jcHAKaW5kZXggNWQ5ZGE0OGEzY2E1ZjEz
MDUwYWNjMDhmMjE5YWZhODU3NjE1NjNjZS4uZTMzNDM5NTgxNmNmYzM3YTAzODQ0MjIyMGRjOWRl
ZTlkMTQyM2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUxvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmNwcApAQCAtMjYsMTYgKzI2LDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkVGltaW5nLmgiCiAKLSNpbmNsdWRlICJE
b2N1bWVudExvYWRUaW1pbmcuaCIKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1kb3VibGUgUmVz
b3VyY2VMb2FkVGltaW5nOjpjb252ZXJ0UmVzb3VyY2VMb2FkVGltZVRvRG9jdW1lbnRUaW1lKGNv
bnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRUaW1pbmcsIGludCBkZWx0YU1pbGxpc2Vj
b25kcykgY29uc3QKK2RvdWJsZSBSZXNvdXJjZUxvYWRUaW1pbmc6OmNvbnZlcnRSZXNvdXJjZUxv
YWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3QKIHsKLSAg
ICBpZiAoIWRvY3VtZW50VGltaW5nKQotICAgICAgICByZXR1cm4gMC4wOwotCi0gICAgcmV0dXJu
IGRvY3VtZW50VGltaW5nLT5jb252ZXJ0TW9ub3RvbmljVGltZVRvRG9jdW1lbnRUaW1lKHJlcXVl
c3RUaW1lICsgZGVsdGFNaWxsaXNlY29uZHMgLyAxMDAwLjApOworICAgIHJldHVybiByZXF1ZXN0
VGltZSArIGRlbHRhTWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAppbmRleCA5
NGM1NWQ5YmE0YjAxODA5NjI1ZDFiNjlhNDc4ZDA1MDZiYjFlMzNlLi4yYTM5NWVmN2M0YjBhN2Yz
NDZiYzIxMTkwNjU1YjA1NDk1OTBmNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogICAgIC8vIHJlY29yZGVkIHVzaW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
LiBXaGVuIGEgdGltZSBuZWVkcyB0byBiZSBwcmVzZW50ZWQgdG8gSmF2YXNjcmlwdCwgd2UgYnVp
bGQgYSBwc2V1ZG8td2FsbHRpbWUKICAgICAvLyB1c2luZyB0aGUgZm9sbG93aW5nIGVxdWF0aW9u
OgogICAgIC8vICAgcHNldWRvIHRpbWUgPSBkb2N1bWVudCB3YWxsIHJlZmVyZW5jZSArIChyZXNv
dXJjZSByZXF1ZXN0IHRpbWUgLSBkb2N1bWVudCBtb25vdG9uaWMgcmVmZXJlbmNlKSArIGRlbHRh
TWlsbGlzZWNvbmRzIC8gMTAwMC4wLgotICAgIGRvdWJsZSBjb252ZXJ0UmVzb3VyY2VMb2FkVGlt
ZVRvRG9jdW1lbnRUaW1lKGNvbnN0IERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRUaW1pbmcs
IGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CisgICAgZG91YmxlIGNvbnZlcnRSZXNvdXJj
ZUxvYWRUaW1lVG9Nb25vdG9uaWNUaW1lKGludCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CiAK
ICAgICBkb3VibGUgcmVxdWVzdFRpbWU7IC8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IHdoZW4gdGhlIHBvcnQgc3RhcnRlZCBoYW5kbGluZyB0aGlzIHJlcXVlc3QuCiAgICAgaW50IHBy
b3h5U3RhcnQ7IC8vIFRoZSByZXN0IG9mIHRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMsIHVz
aW5nIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBmcm9tIHJlcXVlc3RUaW1lLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>