<?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>96714</bug_id>
          
          <creation_ts>2012-09-13 18:09:45 -0700</creation_ts>
          <short_desc>[Forms] multiple fields time input UI should save/restore its value even if it has an empty field.</short_desc>
          <delta_ts>2012-09-14 03:08:42 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720181</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-09-13 18:09:45 -0700</bug_when>
    <thetext>If user populates partial values into multiple fields time input UI, e.g. &quot;--:12:-- AM&quot;. Back to a page navigation resets all fields empty unless all fields have value.

This behavior makes users to enter all fields again. So, we should save/restore all fields regardless field has value or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720361</commentid>
    <comment_count>1</comment_count>
      <attachid>164056</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-13 23:40:37 -0700</bug_when>
    <thetext>Created attachment 164056
Proof Of Concept</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720363</commentid>
    <comment_count>2</comment_count>
      <attachid>164056</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-13 23:41:48 -0700</bug_when>
    <thetext>Comment on attachment 164056
Proof Of Concept

Could you review this change as architecture review?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720396</commentid>
    <comment_count>3</comment_count>
      <attachid>164056</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-14 00:19:33 -0700</bug_when>
    <thetext>Comment on attachment 164056
Proof Of Concept

Attachment 164056 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13848427</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720448</commentid>
    <comment_count>4</comment_count>
      <attachid>164073</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 01:59:02 -0700</bug_when>
    <thetext>Created attachment 164073
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720450</commentid>
    <comment_count>5</comment_count>
      <attachid>164073</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 02:01:13 -0700</bug_when>
    <thetext>Comment on attachment 164073
Patch 1

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720467</commentid>
    <comment_count>6</comment_count>
      <attachid>164073</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 02:27:04 -0700</bug_when>
    <thetext>Comment on attachment 164073
Patch 1

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

You need to increment the version number in FormCotroller.cpp formStateSignature() because this is an incompatible change.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:146
&gt; +        DateTimeNumericFieldElement::setValueAsInteger(hour12);

We need to do something for out-of-range values.
The hour12 value comes from a serialized state, and it might be corrupted.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:156
&gt; +            DateTimeNumericFieldElement::setValueAsInteger(hour12 == 12 ? 12 : hour12 + 12);

ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:158
&gt; +            DateTimeNumericFieldElement::setValueAsInteger(hour12);

ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:209
&gt; +        setValueAsInteger(dateTimeFieldsState.millisecond());

ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:247
&gt; +        setValueAsInteger(dateTimeFieldsState.minute());

ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElements.cpp:285
&gt; +        setValueAsInteger(dateTimeFieldsState.second());

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720470</commentid>
    <comment_count>7</comment_count>
      <attachid>164073</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 02:28:54 -0700</bug_when>
    <thetext>Comment on attachment 164073
Patch 1

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

&gt; Source/WebCore/html/TimeInputType.cpp:270
&gt; +    DateTimeFieldsState fields = DateTimeFieldsState::restoreFormControlState(state);

nit: the variable name should be fieldsState or something.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:414
&gt; +void DateTimeEditElement::setValueAsDateTimeFieldsState(const DateTimeFieldsState&amp; dateTimeFields, const DateComponents&amp; dateForReadOnlyField)

ditto.  dateTiemFieldsState?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720488</commentid>
    <comment_count>8</comment_count>
      <attachid>164082</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 03:00:44 -0700</bug_when>
    <thetext>Created attachment 164082
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720489</commentid>
    <comment_count>9</comment_count>
      <attachid>164082</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 03:03:09 -0700</bug_when>
    <thetext>Comment on attachment 164082
Patch 2

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Increment version number in formControlSignatre() in FormController.cpp
* Changes variable name to dateTimeFieldsState for DateTimeFieldsState
* DateTimeFieldElements.cpp: Checks incoming value from DateTimeFieldsState in setValueAsDateTimeFieldsState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720491</commentid>
    <comment_count>10</comment_count>
      <attachid>164082</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 03:07:19 -0700</bug_when>
    <thetext>Comment on attachment 164082
Patch 2

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720495</commentid>
    <comment_count>11</comment_count>
      <attachid>164082</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 03:08:38 -0700</bug_when>
    <thetext>Comment on attachment 164082
Patch 2

Clearing flags on attachment: 164082

Committed r128575: &lt;http://trac.webkit.org/changeset/128575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720496</commentid>
    <comment_count>12</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-09-14 03:08:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164056</attachid>
            <date>2012-09-13 23:40:37 -0700</date>
            <delta_ts>2012-09-14 01:58:58 -0700</delta_ts>
            <desc>Proof Of Concept</desc>
            <filename>bug-96714-20120914154008.patch</filename>
            <type>text/plain</type>
            <size>45050</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhYzM3NmU3ZGE1YzAz
ZDlmZmE2ZTc5NzkwNjQyODU3YWNmOGFjYy4uOGYzMDg4ODgwNGUwNjYwZDEwZWFmODE3NzRhYjc5
OTUzMzQ4MDk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNiBAQAorMjAxMi0wOS0xMyAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gbXVs
dGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkgc2hvdWxkIHNhdmUvcmVzdG9yZSBpdHMgdmFsdWUg
ZXZlbiBpZiBpdCBoYXMgYW4gZW1wdHkgZmllbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgcHJvb2Ygb2YgY29uY2VwdC4gT25j
ZSB3ZSBhZ3JlZSB0byB0aGlzIGRpcmVjdGlvbiwgSSdsbAorICAgICAgICBzcGxpdCBwYXRjaCBp
bnRvCisgICAgICAgICAgLSBBZGRpbmcgRGF0ZVRpbWVGaWVsZHMue2NwcCxofSA9IG5vIGJlaGF2
aW9yIGNoYW5nZQorICAgICAgICAgIC0gQWRkaW5nIHVzaW5nIERhdGVUaW1lRmllbGRzIGluIERh
dGVUaW1le0VkaXQsRmllbGR9RWxlbWVudAorCisgICAgICAgIERhdGVUaW1lRmllbGRzIGNsYXNz
IHJlcHJlc2VudHMgZmllbGRzIG9mIERhdGVUaW1lRWRpdEVsZW1lbnQuCisgICAgICAgIERhdGVU
aW1lRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzKCkgaXMgcHJvdmlkZWQgZm9y
CisgICAgICAgIHNldHRpbmcgZmllbGQgdmFsdWUgaW50byBEYXRlVGltZUZpZWxkcyBpbnN0YW5j
ZSBmb3IgY29udmVydGluZyB0bworICAgICAgICBzdHJpbmcuCisKKyAgICAgICAgRGF0ZVRpbWVG
aWVsZHM6OnBhcnNlKCkgcGFyc2VzIGEgc3RyaW5nIGludG8gRGF0ZVRpbWVGaWVsZHMgd2l0aAor
ICAgICAgICBkYXRlIHRpbWUgZm9ybWF0LCBzdWJzZXQgb2YgTERNTCwgc3BlY2lmaWVkIGJ5IGNh
bGxlciBvZiBwYXJzZSgpLgorICAgICAgICBPbmNlIHdlIGdldCBEYXRlVGltZUZpZWxkcyBpbnN0
YW5jZSwgd2UgY2FuIHVzZSBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVG
aWVsZHMoKQorICAgICAgICB0byBzZXQgZmllbGQgdmFsdWUuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUZpZWxkcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
YXRlVGltZUZpZWxkc0Zvcm1hdHRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
c0Zvcm1hdHRlcjo6RGF0ZVRpbWVGaWVsZHNGb3JtYXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZHNGb3JtYXR0ZXI6OmZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc0Zvcm1hdHRlcjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc0Zvcm1hdHRlcjo6dmlzaXRMaXRlcmFsKToKKyAgICAgICAgKERhdGVUaW1lRmll
bGRzUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzUGFyc2VyOjpEYXRl
VGltZUZpZWxkc1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1BhcnNl
cjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNQYXJzZXI6OmdldENo
YXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNQYXJzZXI6OmdldE51bWJlcik6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1BhcnNlcjo6dW5nZXRDaGFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzUGFyc2VyOjp2aXNpdEZpZWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzUGFyc2VyOjp2aXNpdExpdGVyYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHM6OkRhdGVUaW1lRmllbGRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRzOjpmb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHM6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXRB
TVBNKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXREYXlPZk1vbnRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXRIb3VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXRNaWxsaXNlY29uZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkczo6c2V0TWludXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RmllbGRzOjpzZXRNb250aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6c2V0
U2Vjb25kKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXRXZWVrT2ZZZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzOjpzZXRZZWFyKToKKyAgICAgICAg
KiBodG1sL0RhdGVUaW1lRmllbGRzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChEYXRlVGltZUZpZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6
YW1wbSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6ZGF5T2ZNb250aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aG91cik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkczo6bWlsbGlzZWNvbmQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHM6Om1pbnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6bW9u
dGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHM6OnNlY29uZCk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6d2Vla09mWWVhcik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkczo6eWVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
czo6aGFzQU1QTSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aGFzRGF5T2ZN
b250aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aGFzSG91cik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aGFzTWlsbGlzZWNvbmQpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHM6Omhhc01pbnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUZpZWxkczo6aGFzTW9udGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZHM6Omhhc1NlY29uZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aGFzV2Vl
a09mWWVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkczo6aGFzWWVhcik6Cisg
ICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNhdmVS
ZXN0b3JlRGF0ZVRpbWVGaWVkbHNGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAg
ICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkcyk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6
OnZhbHVlQXNEYXRlVGltZUZpZWxkcyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEYXRlVGltZUVkaXRF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEYXRlVGltZUZpZWxkRWxlbWVudCk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkcyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lQU1QTUZpZWxk
RWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lSG91ckZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkcyk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZp
ZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50
Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWls
bGlzZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkcyk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZp
ZWxkcyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6c2V0
VmFsdWVBc0RhdGVUaW1lRmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHMpOgor
ICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oOgorICAgICAgICAo
RGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lSG91ckZpZWxkRWxl
bWVudCk6CisgICAgICAgIChEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KToKKyAgICAg
ICAgKERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOgorICAgICAg
ICAoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk6CisKIDIwMTItMDktMTMgIEpvc2h1YSBC
ZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IENvbnNvbGlk
YXRlIHR3by1waGFzZSBjb25uZWN0aW9uIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDA5MjU3MjVkMDY4N2IyYjM2ZjM3MDBmMmE1YjY2Y2E2Yjk5NzBkZjUuLjhm
OWU4YmUxOTY3OTkzNzZmYzhiNmQ5NWMyNDhjNmNhYjQ2NWJjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTQwMjEsNiArNDAyMSw4IEBACiAgICAgICAgICAgICAnaHRtbC9ET01VUkwuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRl
SW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvRGF0ZVRpbWVGaWVsZHMuY3BwJywKKyAg
ICAgICAgICAgICdodG1sL0RhdGVUaW1lRmllbGRzLmgnLAogICAgICAgICAgICAgJ2h0bWwvRGF0
ZVRpbWVJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmgnLAogICAgICAgICAgICAgJ2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmFhY2E5M2QxZGJk
NGUyN2UwZmNiM2Y5MGE5MWJmYTU5OWEyNzZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkcy5jcHAKQEAgLTAsMCArMSwzMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElN
RV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHMuaCIKKworI2luY2x1
ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGF0ZVRpbWVGaWVsZHNGb3JtYXR0ZXIgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpU
b2tlbkhhbmRsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRmllbGRzRm9y
bWF0dGVyKTsKKworcHVibGljOgorICAgIERhdGVUaW1lRmllbGRzRm9ybWF0dGVyKGNvbnN0IERh
dGVUaW1lRmllbGRzJik7CisgICAgU3RyaW5nIGZvcm1hdChjb25zdCBTdHJpbmcmKTsKKworcHJp
dmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9ucy4KKyAg
ICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQp
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCB2aXNpdExpdGVyYWwoY29uc3QgU3Ry
aW5nJikgT1ZFUlJJREUgRklOQUw7CisKKyAgICBTdHJpbmdCdWlsZGVyIG1fYnVpbGRlcjsKKyAg
ICBjb25zdCBEYXRlVGltZUZpZWxkcyYgbV9kYXRlVGltZUZpZWxkczsKK307CisKK0RhdGVUaW1l
RmllbGRzRm9ybWF0dGVyOjpEYXRlVGltZUZpZWxkc0Zvcm1hdHRlcihjb25zdCBEYXRlVGltZUZp
ZWxkcyYgZGF0ZVRpbWVGaWVsZHMpCisgICAgOiBtX2RhdGVUaW1lRmllbGRzKGRhdGVUaW1lRmll
bGRzKQoreworfQorCitTdHJpbmcgRGF0ZVRpbWVGaWVsZHNGb3JtYXR0ZXI6OmZvcm1hdChjb25z
dCBTdHJpbmcmIGZvcm1hdFN0cmluZykKK3sKKyAgICBEYXRlVGltZUZvcm1hdDo6cGFyc2UoZm9y
bWF0U3RyaW5nLCAqdGhpcyk7CisgICAgcmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOworfQor
Cit2b2lkIERhdGVUaW1lRmllbGRzRm9ybWF0dGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQpCit7CisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoOgorICAgICAgICBp
ZiAobV9kYXRlVGltZUZpZWxkcy5oYXNEYXlPZk1vbnRoKCkpCisgICAgICAgICAgICBtX2J1aWxk
ZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1fZGF0ZVRpbWVGaWVsZHMuZGF5T2ZNb250aCgpKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQoJ18nKTsKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRnJhY3Rpb25h
bFNlY29uZDoKKyAgICAgICAgaWYgKG1fZGF0ZVRpbWVGaWVsZHMuaGFzTWlsbGlzZWNvbmQoKSkK
KyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9kYXRlVGltZUZp
ZWxkcy5taWxsaXNlY29uZCgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYnVpbGRl
ci5hcHBlbmQoJ18nKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSG91cjEyOgorICAgICAgICBpZiAobV9kYXRlVGltZUZpZWxkcy5oYXNIb3Vy
KCkpCisgICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKG1fZGF0ZVRp
bWVGaWVsZHMuaG91cigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYnVpbGRlci5h
cHBlbmQoJ18nKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTWludXRlOgorICAgICAgICBpZiAobV9kYXRlVGltZUZpZWxkcy5oYXNNaW51dGUo
KSkKKyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9kYXRlVGlt
ZUZpZWxkcy5taW51dGUoKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2J1aWxkZXIu
YXBwZW5kKCdfJyk7CisgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZU1vbnRoOgorICAgICAgICBpZiAobV9kYXRlVGltZUZpZWxkcy5oYXNNb250aCgp
KQorICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihtX2RhdGVUaW1l
RmllbGRzLm1vbnRoKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9idWlsZGVyLmFw
cGVuZCgnXycpOworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIGlmIChtX2RhdGVUaW1lRmllbGRzLmhhc0FNUE0oKSkK
KyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQobV9kYXRlVGltZUZpZWxkcy5hbXBtKCkgPT0g
RGF0ZVRpbWVGaWVsZHM6OkFNID8gJ0EnIDogJ1AnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9idWlsZGVyLmFwcGVuZCgnXycpOworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFyOgorICAgICAgICBpZiAobV9kYXRlVGlt
ZUZpZWxkcy5oYXNXZWVrT2ZZZWFyKCkpCisgICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKFN0
cmluZzo6bnVtYmVyKG1fZGF0ZVRpbWVGaWVsZHMud2Vla09mWWVhcigpKSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQoJ18nKTsKKyAgICAgICAgcmV0dXJuOwor
CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhcjoKKyAgICAgICAgaWYgKG1f
ZGF0ZVRpbWVGaWVsZHMuaGFzWWVhcigpKQorICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZChT
dHJpbmc6Om51bWJlcihtX2RhdGVUaW1lRmllbGRzLnllYXIoKSkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKCdfJyk7CisgICAgICAgIHJldHVybjsKKworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVs
ZHNGb3JtYXR0ZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmIGxpdGVyYWwpCit7CisgICAg
bV9idWlsZGVyLmFwcGVuZChsaXRlcmFsKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitjbGFzcyBEYXRlVGltZUZpZWxkc1BhcnNlciA6IHByaXZhdGUgRGF0ZVRpbWVG
b3JtYXQ6OlRva2VuSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVG
aWVsZHNQYXJzZXIpOworCitwdWJsaWM6CisgICAgRGF0ZVRpbWVGaWVsZHNQYXJzZXIoY29uc3Qg
U3RyaW5nJiBkYXRlVGltZVN0cmluZyk7CisgICAgRGF0ZVRpbWVGaWVsZHMgcGFyc2UoY29uc3Qg
U3RyaW5nJiBmb3JtYXRTdHJpbmcpOworCitwcml2YXRlOgorICAgIFVDaGFyIGdldENoYXIoKTsK
KyAgICB1bnNpZ25lZCBnZXROdW1iZXIodW5zaWduZWQgbWluaW11bSwgdW5zaWduZWQgbWF4aW11
bSk7CisgICAgdm9pZCB1bmdldENoYXIoKTsKKworICAgIC8vIERhdGVUaW1lRm9ybWF0OjpUb2tl
bkhhbmRsZXIgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZpZWxkKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGUsIGludCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lk
IHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSBPVkVSUklERSBGSU5BTDsKKworICAgIERhdGVU
aW1lRmllbGRzIG1fZGF0ZVRpbWVGaWVsZHM7CisgICAgY29uc3QgU3RyaW5nJiBtX2RhdGVUaW1l
U3RyaW5nOworICAgIHNpemVfdCBtX2luZGV4OworfTsKKworRGF0ZVRpbWVGaWVsZHNQYXJzZXI6
OkRhdGVUaW1lRmllbGRzUGFyc2VyKGNvbnN0IFN0cmluZyYgZGF0ZVRpbWVTdHJpbmcpCisgICAg
OiBtX2RhdGVUaW1lU3RyaW5nKGRhdGVUaW1lU3RyaW5nKQorICAgICwgbV9pbmRleCgwKQorewor
fQorCitEYXRlVGltZUZpZWxkcyBEYXRlVGltZUZpZWxkc1BhcnNlcjo6cGFyc2UoY29uc3QgU3Ry
aW5nJiBmb3JtYXRTdHJpbmcpCit7CisgICAgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdFN0
cmluZywgKnRoaXMpOworICAgIHJldHVybiBtX2RhdGVUaW1lRmllbGRzOworfQorCitVQ2hhciBE
YXRlVGltZUZpZWxkc1BhcnNlcjo6Z2V0Q2hhcigpCit7CisgICAgVUNoYXIgdmFsdWUgPSBtX2lu
ZGV4ID49IG1fZGF0ZVRpbWVTdHJpbmcubGVuZ3RoKCkgPyAwIDogbV9kYXRlVGltZVN0cmluZ1tt
X2luZGV4XTsKKyAgICArK21faW5kZXg7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit1bnNpZ25l
ZCBEYXRlVGltZUZpZWxkc1BhcnNlcjo6Z2V0TnVtYmVyKHVuc2lnbmVkIG1pbmltdW0sIHVuc2ln
bmVkIG1heGltdW0pCit7CisgICAgdW5zaWduZWQgbnVtYmVyID0gMDsKKyAgICB1bnNpZ25lZCBu
dW1iZXJPZkRpZ2l0cyA9IDA7CisgICAgZm9yICg7OykgeworICAgICAgICBjb25zdCBVQ2hhciBk
aWdpdCA9IGdldENoYXIoKTsKKyAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoZGlnaXQpKSB7Cisg
ICAgICAgICAgICBpZiAobnVtYmVyT2ZEaWdpdHMpCisgICAgICAgICAgICAgICAgdW5nZXRDaGFy
KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBudW1iZXIgKj0gMTA7
CisgICAgICAgIG51bWJlciArPSBkaWdpdCAtICcwJzsKKyAgICAgICAgKytudW1iZXJPZkRpZ2l0
czsKKyAgICB9CisKKyAgICByZXR1cm4gIW51bWJlck9mRGlnaXRzIHx8IG51bWJlciA8IG1pbmlt
dW0gfHwgbnVtYmVyID4gbWF4aW11bSA/IERhdGVUaW1lRmllbGRzOjplbXB0eVZhbHVlIDogbnVt
YmVyOworfQorCit2b2lkIERhdGVUaW1lRmllbGRzUGFyc2VyOjp1bmdldENoYXIoKQoreworICAg
IEFTU0VSVChtX2luZGV4KTsKKyAgICAtLW1faW5kZXg7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVs
ZHNQYXJzZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUs
IGludCkKK3sKKyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZURheU9mTW9udGg6CisgICAgICAgIG1fZGF0ZVRpbWVGaWVsZHMuc2V0RGF5
T2ZNb250aChnZXROdW1iZXIoRGF0ZVRpbWVGaWVsZHM6Om1pbmltdW1EYXlPZk1vbnRoLCBEYXRl
VGltZUZpZWxkczo6bWF4aW11bURheU9mTW9udGgpKTsKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZDoKKyAgICAgICAg
bV9kYXRlVGltZUZpZWxkcy5zZXRNaWxsaXNlY29uZChnZXROdW1iZXIoRGF0ZVRpbWVGaWVsZHM6
Om1pbmltdW1NaWxsaXNlY29uZCwgRGF0ZVRpbWVGaWVsZHM6Om1heGltdW1NaWxsaXNlY29uZCkp
OworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVI
b3VyMTI6CisgICAgICAgIG1fZGF0ZVRpbWVGaWVsZHMuc2V0SG91cihnZXROdW1iZXIoRGF0ZVRp
bWVGaWVsZHM6Om1pbmltdW1Ib3VyLCBEYXRlVGltZUZpZWxkczo6bWF4aW11bUhvdXIpKTsKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRl
OgorICAgICAgICBtX2RhdGVUaW1lRmllbGRzLnNldE1pbnV0ZShnZXROdW1iZXIoRGF0ZVRpbWVG
aWVsZHM6Om1pbmltdW1NaW51dGUsIERhdGVUaW1lRmllbGRzOjptYXhpbXVtTWludXRlKSk7Cisg
ICAgICAgIHJldHVybjsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRo
OgorICAgICAgICBtX2RhdGVUaW1lRmllbGRzLnNldE1vbnRoKGdldE51bWJlcihEYXRlVGltZUZp
ZWxkczo6bWluaW11bU1vbnRoLCBEYXRlVGltZUZpZWxkczo6bWF4aW11bU1vbnRoKSk7CisgICAg
ICAgIHJldHVybjsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZDoK
KyAgICAgICAgc3dpdGNoIChnZXRDaGFyKCkpIHsKKyAgICAgICAgY2FzZSAnQSc6CisgICAgICAg
ICAgICBtX2RhdGVUaW1lRmllbGRzLnNldEFNUE0oRGF0ZVRpbWVGaWVsZHM6OkFNKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICBtX2RhdGVUaW1l
RmllbGRzLnNldEFNUE0oRGF0ZVRpbWVGaWVsZHM6OlBNKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG1fZGF0ZVRpbWVGaWVsZHMuc2V0QU1QTShE
YXRlVGltZUZpZWxkczo6RW1wdHlBTVBNVmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFyOgor
ICAgICAgICBtX2RhdGVUaW1lRmllbGRzLnNldFdlZWtPZlllYXIoZ2V0TnVtYmVyKERhdGVUaW1l
RmllbGRzOjptaW5pbXVtV2Vla09mWWVhciwgRGF0ZVRpbWVGaWVsZHM6Om1heGltdW1XZWVrT2ZZ
ZWFyKSk7CisgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVllYXI6CisgICAgICAgIG1fZGF0ZVRpbWVGaWVsZHMuc2V0WWVhcihnZXROdW1iZXIoRGF0
ZVRpbWVGaWVsZHM6Om1pbmltdW1ZZWFyLCBEYXRlVGltZUZpZWxkczo6bWF4aW11bVllYXIpKTsK
KyAgICAgICAgcmV0dXJuOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBEYXRlVGltZUZpZWxkc1BhcnNlcjo6dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmlu
ZyYgbGl0ZXJhbCkKK3sKKyAgICBtX2luZGV4ICs9IGxpdGVyYWwubGVuZ3RoKCk7Cit9CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRGF0ZVRpbWVGaWVsZHM6OkRhdGVUaW1l
RmllbGRzKCkKKyAgICA6IG1feWVhcihlbXB0eVZhbHVlKQorICAgICwgbV9tb250aChlbXB0eVZh
bHVlKQorICAgICwgbV9kYXlPZk1vbnRoKGVtcHR5VmFsdWUpCisgICAgLCBtX2hvdXIoZW1wdHlW
YWx1ZSkKKyAgICAsIG1fbWludXRlKGVtcHR5VmFsdWUpCisgICAgLCBtX3NlY29uZChlbXB0eVZh
bHVlKQorICAgICwgbV9taWxsaXNlY29uZChlbXB0eVZhbHVlKQorICAgICwgbV93ZWVrT2ZZZWFy
KGVtcHR5VmFsdWUpCisgICAgLCBtX2FtcG0oRW1wdHlBTVBNVmFsdWUpCit7Cit9CisKK1N0cmlu
ZyBEYXRlVGltZUZpZWxkczo6Zm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0KSBjb25zdAorewor
ICAgIERhdGVUaW1lRmllbGRzRm9ybWF0dGVyIGZvcm1hdHRlcigqdGhpcyk7CisgICAgcmV0dXJu
IGZvcm1hdHRlci5mb3JtYXQoZm9ybWF0KTsKK30KKworRGF0ZVRpbWVGaWVsZHMgRGF0ZVRpbWVG
aWVsZHM6OnBhcnNlKGNvbnN0IFN0cmluZyYgZm9ybWF0LCBjb25zdCBTdHJpbmcmIGRhdGVUaW1l
U3RyaW5nKQoreworICAgIERhdGVUaW1lRmllbGRzUGFyc2VyIHBhcnNlcihkYXRlVGltZVN0cmlu
Zyk7CisgICAgcmV0dXJuIHBhcnNlci5wYXJzZShmb3JtYXQpOworfQorCit2b2lkIERhdGVUaW1l
RmllbGRzOjpzZXRBTVBNKEFNUE1WYWx1ZSBhbXBtVmFsdWUpCit7CisgICAgbV9hbXBtID0gYW1w
bVZhbHVlOworfQorCit2b2lkIERhdGVUaW1lRmllbGRzOjpzZXREYXlPZk1vbnRoKHVuc2lnbmVk
IGRheU9mTW9udGgpCit7CisgICAgQVNTRVJUKGRheU9mTW9udGggPT0gZW1wdHlWYWx1ZSB8fCAo
ZGF5T2ZNb250aCA+PSBtaW5pbXVtRGF5T2ZNb250aCAmJiBkYXlPZk1vbnRoIDw9IG1heGltdW1E
YXlPZk1vbnRoKSk7CisgICAgbV9kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKK30KKwordm9pZCBE
YXRlVGltZUZpZWxkczo6c2V0SG91cih1bnNpZ25lZCBob3VyKQoreworICAgIEFTU0VSVChob3Vy
ID09IGVtcHR5VmFsdWUgfHwgKGhvdXIgPj0gMSAmJiBob3VyIDw9IG1heGltdW1Ib3VyKSk7Cisg
ICAgbV9ob3VyID0gaG91cjsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkczo6c2V0TWlsbGlzZWNv
bmQodW5zaWduZWQgbWlsbGlzZWNvbmQpCit7CisgICAgQVNTRVJUKG1pbGxpc2Vjb25kID09IGVt
cHR5VmFsdWUgfHwgbWlsbGlzZWNvbmQgPD0gbWF4aW11bU1pbGxpc2Vjb25kKTsKKyAgICBtX21p
bGxpc2Vjb25kID0gbWlsbGlzZWNvbmQ7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZHM6OnNldE1p
bnV0ZSh1bnNpZ25lZCBtaW51dGUpCit7CisgICAgQVNTRVJUKG1pbnV0ZSA9PSBlbXB0eVZhbHVl
IHx8IG1pbnV0ZSA8PSBtYXhpbXVtTWludXRlKTsKKyAgICBtX21pbnV0ZSA9IG1pbnV0ZTsKK30K
Kwordm9pZCBEYXRlVGltZUZpZWxkczo6c2V0TW9udGgodW5zaWduZWQgbW9udGgpCit7CisgICAg
QVNTRVJUKG1vbnRoID09IGVtcHR5VmFsdWUgfHwgbW9udGggPD0gbWF4aW11bU1vbnRoKTsKKyAg
ICBtX21vbnRoID0gbW9udGg7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZHM6OnNldFNlY29uZCh1
bnNpZ25lZCBzZWNvbmQpCit7CisgICAgQVNTRVJUKHNlY29uZCA9PSBlbXB0eVZhbHVlIHx8IHNl
Y29uZCA8PSBtYXhpbXVtU2Vjb25kKTsKKyAgICBtX3NlY29uZCA9IHNlY29uZDsKK30KKwordm9p
ZCBEYXRlVGltZUZpZWxkczo6c2V0V2Vla09mWWVhcih1bnNpZ25lZCB3ZWVrT2ZZZWFyKQorewor
ICAgIEFTU0VSVCh3ZWVrT2ZZZWFyID09IGVtcHR5VmFsdWUgfHwgKHdlZWtPZlllYXIgPj0gbWlu
aW11bVdlZWtPZlllYXIgJiYgd2Vla09mWWVhciA8PSBtYXhpbXVtV2Vla09mWWVhcikpOworICAg
IG1fd2Vla09mWWVhciA9IHdlZWtPZlllYXI7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZHM6OnNl
dFllYXIodW5zaWduZWQgeWVhcikKK3sKKyAgICBBU1NFUlQoeWVhciA9PSBlbXB0eVZhbHVlIHx8
ICh5ZWFyID49IG1pbmltdW1ZZWFyICYmIHllYXIgPD0gbWF4aW11bVllYXIpKTsKKyAgICBtX3ll
YXIgPSB5ZWFyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkcy5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUZpZWxkcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3ZjI0YjYwMzEwN2QzM2YwNjll
MjE0ZjdhZmM1ZGU0MzNhMTc2ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lRmllbGRzLmgKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIERhdGVUaW1lRmllbGRzX2gKKyNkZWZpbmUgRGF0ZVRpbWVGaWVsZHNfaAorCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRGF0ZVRpbWVG
aWVsZHMgcmVwcmVzZW50cyBmaWVsZHMgaW4gZGF0ZS90aW1lIGZvciBmb3JtIHN0YXRlIHNhdmUv
cmVzdG9yZQorLy8gZm9yIGlucHV0IHR5cGUgImRhdGUiLCAiZGF0ZXRpbWUiLCAiZGF0ZXRpbWUt
bG9jYWwiLCAibW9udGgiLCAidGltZSIsIGFuZAorLy8gIndlZWsiIHdpdGggbXVsdGlwbGUgZmll
bGRzIGlucHV0IFVJLgorLy8KKy8vIEVhY2ggZmllbGQgY2FuIGNvbnRhaW4gaW52YWxpZCB2YWx1
ZSBmb3IgZGF0ZSwgZS5nLiBkYXkgb2YgbW9udGggZmllbGQgY2FuCisvLyBiZSAzMCBldmVuIGlm
IG1vbnRoIGZpZWxkIGlzIEZlYnJ1YXJ5LgorLy8KKy8vIERhdGUgdGltZSBmb3JtYXQgdXNlZCBp
biBmb3JtYXQoKSBhbmQgcGFyc2UoKSBpcyBzdWJzc2V0IG9mIExETUwuIFN1cHBvcnRlZAorLy8g
ZGlyZWN0aXZlcyBhcmU6CisvLyAgJ2EnIDogQU0vUE0gaW4gJ0EnIG9yICdQJworLy8gICdoJyA6
IGhvdXIgaW4gMSB0byAxMi4KKy8vICAnbScgOiBtaW51dGUgaW4gMCB0byA1OS4KKy8vICAnTScg
OiBtb250aCBpbiAxIHRvIDEyLgorLy8gICdzJyA6IHNlY29uZCBpbiAwIHRvIDU5LgorLy8gICdT
JyA6IG1pbGxpc2Vjb25kIGluIDAgdG8gOTk5LgorLy8gICdXJyA6IHdlZWsgb2YgeWVhciBpbiAx
IHRvIDUzLgorLy8gICd5JyA6IHllYXIgaW4gMSB0byAyNzU3NjAuCisvLyBBbiBlbXB0eSB2YWx1
ZSBpcyByZXByZXNlbnRlZCBhcyB1bmRlcnNjb3JlKF8pIGluIGZvcm1hdCgpIGFuZCBwYXJzZSgp
LgorY2xhc3MgRGF0ZVRpbWVGaWVsZHMgeworcHVibGljOgorICAgIGVudW0gQU1QTVZhbHVlIHsK
KyAgICAgICAgRW1wdHlBTVBNVmFsdWUgPSAtMSwKKyAgICAgICAgQU0sCisgICAgICAgIFBNLAor
ICAgIH07CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZW1wdHlWYWx1ZSA9IHN0YXRpY19j
YXN0PHVuc2lnbmVkPigtMSk7CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bURh
eU9mTW9udGggPSAzMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bURheU9mTW9u
dGggPSAxOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSG91ciA9IDEyOworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtSG91ciA9IDE7CisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1pbmltdW1NaWxsaXNlY29uZCA9IDA7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1heGltdW1NaWxsaXNlY29uZCA9IDk5OTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bWF4aW11bU1pbnV0ZSA9IDU5OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtTWlu
dXRlID0gMDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bU1vbnRoID0gMTI7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1Nb250aCA9IDE7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG1pbmltdW1TZWNvbmQgPSAwOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBtYXhpbXVtU2Vjb25kID0gNTk7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1X
ZWVrT2ZZZWFyID0gNTM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1XZWVrT2ZZ
ZWFyID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bVllYXIgPSAyNzU3NjA7
CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1ZZWFyID0gMTsKKworICAgIERhdGVU
aW1lRmllbGRzKCk7CisKKyAgICBTdHJpbmcgZm9ybWF0KGNvbnN0IFN0cmluZyYgZm9ybWF0SW5T
dWJzZXRPZklETUwpIGNvbnN0OworICAgIHN0YXRpYyBEYXRlVGltZUZpZWxkcyBwYXJzZShjb25z
dCBTdHJpbmcmIGZvcm1hdEluU3Vic2V0T2ZJRE1MLCBjb25zdCBTdHJpbmcmIGRhdGVUaW1lU3Ry
aW5nKTsKKworICAgIEFNUE1WYWx1ZSBhbXBtKCkgY29uc3QgeyByZXR1cm4gbV9hbXBtOyB9Cisg
ICAgdW5zaWduZWQgZGF5T2ZNb250aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF5T2ZNb250aDsgfQor
ICAgIHVuc2lnbmVkIGhvdXIoKSBjb25zdCB7IHJldHVybiBtX2hvdXI7IH0KKyAgICB1bnNpZ25l
ZCBtaWxsaXNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWlsbGlzZWNvbmQ7IH0KKyAgICB1bnNp
Z25lZCBtaW51dGUoKSBjb25zdCB7IHJldHVybiBtX21pbnV0ZTsgfQorICAgIHVuc2lnbmVkIG1v
bnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250aDsgfQorICAgIHVuc2lnbmVkIHNlY29uZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vjb25kOyB9CisgICAgdW5zaWduZWQgd2Vla09mWWVhcigpIGNvbnN0
IHsgcmV0dXJuIG1fd2Vla09mWWVhcjsgfQorICAgIHVuc2lnbmVkIHllYXIoKSBjb25zdCB7IHJl
dHVybiBtX3llYXI7IH0KKworICAgIGJvb2wgaGFzQU1QTSgpIGNvbnN0IHsgcmV0dXJuIG1fYW1w
bSAhPSBFbXB0eUFNUE1WYWx1ZTsgfQorICAgIGJvb2wgaGFzRGF5T2ZNb250aCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF5T2ZNb250aCAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNIb3VyKCkg
Y29uc3QgeyByZXR1cm4gbV9ob3VyICE9IGVtcHR5VmFsdWU7IH0KKyAgICBib29sIGhhc01pbGxp
c2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9taWxsaXNlY29uZCAhPSBlbXB0eVZhbHVlOyB9Cisg
ICAgYm9vbCBoYXNNaW51dGUoKSBjb25zdCB7IHJldHVybiBtX21pbnV0ZSAhPSBlbXB0eVZhbHVl
OyB9CisgICAgYm9vbCBoYXNNb250aCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9udGggIT0gZW1wdHlW
YWx1ZTsgfQorICAgIGJvb2wgaGFzU2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmQgIT0g
ZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFzV2Vla09mWWVhcigpIGNvbnN0IHsgcmV0dXJuIG1f
d2Vla09mWWVhciAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNZZWFyKCkgY29uc3QgeyBy
ZXR1cm4gbV95ZWFyICE9IGVtcHR5VmFsdWU7IH0KKworICAgIHZvaWQgc2V0QU1QTShBTVBNVmFs
dWUpOworICAgIHZvaWQgc2V0RGF5T2ZNb250aCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRIb3Vy
KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldE1pbGxpc2Vjb25kKHVuc2lnbmVkKTsKKyAgICB2b2lk
IHNldE1pbnV0ZSh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRNb250aCh1bnNpZ25lZCk7CisgICAg
dm9pZCBzZXRTZWNvbmQodW5zaWduZWQpOworICAgIHZvaWQgc2V0V2Vla09mWWVhcih1bnNpZ25l
ZCk7CisgICAgdm9pZCBzZXRZZWFyKHVuc2lnbmVkKTsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25l
ZCBtX3llYXI7CisgICAgdW5zaWduZWQgbV9tb250aDsKKyAgICB1bnNpZ25lZCBtX2RheU9mTW9u
dGg7CisgICAgdW5zaWduZWQgbV9ob3VyOworICAgIHVuc2lnbmVkIG1fbWludXRlOworICAgIHVu
c2lnbmVkIG1fc2Vjb25kOworICAgIHVuc2lnbmVkIG1fbWlsbGlzZWNvbmQ7CisgICAgdW5zaWdu
ZWQgbV93ZWVrT2ZZZWFyOworICAgIEFNUE1WYWx1ZSBtX2FtcG07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRU
eXBlLmNwcAppbmRleCBlZGQxMmU3YTY2NzliZDM4NTllZTBjZmMxYTUwMzE0MjQ3NjcwZGYzLi5j
YmJkYjI4ODkxZjZhNGNkNTRlODhjOWE5MzdmNWNiYTBjMWJhNGMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJUaW1lSW5w
dXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZvcm1D
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC00Miw2ICs0Myw3IEBA
CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJ
TUVfTVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCkBAIC01NSw2ICs1NywxMiBAQCBzdGF0aWMgY29uc3QgaW50IHRpbWVE
ZWZhdWx0U3RlcCA9IDYwOwogc3RhdGljIGNvbnN0IGludCB0aW1lRGVmYXVsdFN0ZXBCYXNlID0g
MDsKIHN0YXRpYyBjb25zdCBpbnQgdGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKK3N0YXRp
YyBjb25zdCBTdHJpbmcmIHNhdmVSZXN0b3JlRGF0ZVRpbWVGaWVkbHNGb3JtYXQoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBmb3JtYXRJbkxETUwsICgiaDptOnMu
UyBhIikpOworICAgIHJldHVybiBmb3JtYXRJbkxETUw7Cit9CisKIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwpAQCAtMjU5
LDYgKzI2NywyNyBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVGV4dEZpZWxkKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgVGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKCFtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBEYXRlQ29tcG9uZW50cyBk
YXRlOworICAgIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhjcmVhdGVTdGVwUmFuZ2Uo
QW55SXNEZWZhdWx0U3RlcCkubWluaW11bSgpLnRvRG91YmxlKCksICZkYXRlKTsKKyAgICBEYXRl
VGltZUZpZWxkcyBmaWVsZHMgPSBEYXRlVGltZUZpZWxkczo6cGFyc2Uoc2F2ZVJlc3RvcmVEYXRl
VGltZUZpZWRsc0Zvcm1hdCgpLCBzdGF0ZVswXSk7CisgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHMoZmllbGRzLCBkYXRlKTsKKyAgICBlbGVtZW50KCkt
PnNldFZhbHVlSW50ZXJuYWwoc2VyaWFsaXplKERlY2ltYWw6OmZyb21Eb3VibGUobV9kYXRlVGlt
ZUVkaXRFbGVtZW50LT52YWx1ZUFzRG91YmxlKCkpKSwgRGlzcGF0Y2hOb0V2ZW50KTsKK30KKwor
Rm9ybUNvbnRyb2xTdGF0ZSBUaW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybiBG
b3JtQ29udHJvbFN0YXRlKCk7CisKKyAgICBGb3JtQ29udHJvbFN0YXRlIHN0YXRlOworICAgIHN0
YXRlLmFwcGVuZChtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlQXNEYXRlVGltZUZpZWxkcygp
LmZvcm1hdChzYXZlUmVzdG9yZURhdGVUaW1lRmllZGxzRm9ybWF0KCkpKTsKKyAgICByZXR1cm4g
c3RhdGU7Cit9CisKIHZvaWQgVGltZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBz
YW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKIHsKICAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVl
LCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAppbmRleCBhY2Q1N2IzNGRlN2MzNzRkNTdlOTliOGJkNTdlZjMyZTFhZTYyOWUzLi4wNzg3
YzNhMjE1YjcxZDZhYzg3MzBmOGRkYjA4OGNiZGU4NjhkZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaApAQCAtOTQsNiArOTQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBpc1RleHRGaWVsZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBt
aW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBP
VkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250
cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhv
ZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRl
Q2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCAxMWMxNjIwNzI5NzU0ZTAwNDI1ZjM1
Yzc0YWFlNTg2YTQ1ZTc5NTE4Li5kNDYxMjQ0YTA0NWUxODMzNWM3ZThmYWVmMTk1OTNhY2ZkOTI0
M2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKICNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGlt
ZUZpZWxkcy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVkZSAiRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgpAQCAt
NDEwLDYgKzQxMSwxMiBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQwogICAgICAgICBtX2ZpZWxk
c1tmaWVsZEluZGV4XS0+c2V0VmFsdWVBc0RhdGUoZGF0ZSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzKGNvbnN0IERhdGVUaW1lRmllbGRz
JiBkYXRlVGltZUZpZWxkcywgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZp
ZWxkKQoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9m
aWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhd
LT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHMoZGF0ZVRpbWVGaWVsZHMsIGRhdGVGb3JSZWFkT25s
eUZpZWxkKTsKK30KKwogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKGNv
bnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJl
YWRPbmx5RmllbGQpCiB7CiAgICAgbGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZUZvclJlYWRPbmx5Rmll
bGQpOwpAQCAtNDUxLDYgKzQ1OCwxNCBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnVwZGF0
ZVVJU3RhdGUoKQogICAgIH0KIH0KIAorRGF0ZVRpbWVGaWVsZHMgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzKCkgY29uc3QKK3sKKyAgICBEYXRlVGltZUZpZWxkcyBk
YXRlVGltZUZpZWxkczsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRl
eCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVs
ZEluZGV4XS0+cG9wdWxhdGVEYXRlVGltZUZpZWxkcyhkYXRlVGltZUZpZWxkcyk7CisgICAgcmV0
dXJuIGRhdGVUaW1lRmllbGRzOworfQorCiBkb3VibGUgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFs
dWVBc0RvdWJsZSgpIGNvbnN0CiB7CiAgICAgZG91YmxlIHZhbHVlID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCA4ZTZlYjEx
Y2VkMWI3ODViMjRkNjk3NzYyMGZlYTRmMDc2MmFlM2Y2Li5kOTk4YzE0NGZiNDU2NGJmNDljOTg0
ZDIwNjNmZjJhZGY0Y2Y1M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRGF0ZUNvbXBvbmVudHM7CiBjbGFzcyBEYXRlVGltZUVkaXRMYXlvdXRlcjsK
K2NsYXNzIERhdGVUaW1lRmllbGRzOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNl
RXZlbnQ7CiBjbGFzcyBTdGVwUmFuZ2U7CkBAIC03MSw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlc2V0RmllbGRzKCk7CiAgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IFN0ZXBSYW5n
ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiAgZGF0ZUZvclJlYWRPbmx5RmllbGQpOwogICAgIHZv
aWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
KTsKKyAgICB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkcyhjb25zdCBEYXRlVGltZUZpZWxk
cyYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgRGF0
ZVRpbWVGaWVsZHMgdmFsdWVBc0RhdGVUaW1lRmllbGRzKCkgY29uc3Q7CiAgICAgZG91YmxlIHZh
bHVlQXNEb3VibGUoKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4IGVkMjk3Y2NhMjMyNmI3MDdh
ZDkyODQwN2ZkNWJhNDNhMzI4MDU3NTAuLmJkN2M3NzI2ZmQwMzA1ZDQzMDdkMjA2YzNkYzFmMWM5
MzNlMTE0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaApAQCAtMzMsNiArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEYXRlQ29tcG9uZW50czsKK2NsYXNzIERhdGVUaW1lRmllbGRzOwogCiAvLyBEYXRlVGlt
ZUZpZWxkRWxlbWVudCBpcyBiYXNlIGNsYXNzIG9mIGRhdGUgdGltZSBmaWVsZCBlbGVtZW50Lgog
Y2xhc3MgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewpAQCAtNTks
MTAgKzYwLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0ID0g
MDsKICAgICBib29sIGlzUmVhZE9ubHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9wdWxh
dGVEYXRlVGltZUZpZWxkcyhEYXRlVGltZUZpZWxkcyYpID0gMDsKICAgICB2b2lkIHJlbW92ZUV2
ZW50SGFuZGxlcigpIHsgbV9maWVsZE93bmVyID0gMDsgfQogICAgIHZvaWQgc2V0UmVhZE9ubHko
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29tcG9uZW50cyYg
ZGF0ZUZvclJlYWRPbmx5RmllbGQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkcyhjb25zdCBE
YXRlVGltZUZpZWxkcyYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVs
ZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVo
YXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24o
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0ZXBVcCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCmluZGV4IGFkNGNi
MDYwZjI4ZWJmODYwZTZkMDAzZWNkZDQ3YTZiMzlhNTQ1OGMuLmY3ZGEyMDBhMTM3NDE1OTQyNTRi
OTIwYjMwMDUyYTU1ZTM2YmQ1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50cy5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmlu
Z3MuaCIKICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KIApAQCAtNDYsMTEgKzQ3LDI3IEBAIFBh
c3NSZWZQdHI8RGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50PiBEYXRlVGltZUFNUE1GaWVsZEVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCoKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQogCit2
b2lkIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkcyhEYXRl
VGltZUZpZWxkcyYgZGF0ZVRpbWVGaWVsZHMpCit7CisgICAgaWYgKGhhc1ZhbHVlKCkpCisgICAg
ICAgIGRhdGVUaW1lRmllbGRzLnNldEFNUE0odmFsdWVBc0ludGVnZXIoKSA/IERhdGVUaW1lRmll
bGRzOjpQTSA6IERhdGVUaW1lRmllbGRzOjpBTSk7CisgICAgZWxzZQorICAgICAgICBkYXRlVGlt
ZUZpZWxkcy5zZXRBTVBNKERhdGVUaW1lRmllbGRzOjpFbXB0eUFNUE1WYWx1ZSk7Cit9CisKIHZv
aWQgRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZSkKIHsKICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLmhvdXIoKSA+PSAx
MiA/IDEgOiAwKTsKIH0KIAordm9pZCBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlVGltZUZpZWxkcyhjb25zdCBEYXRlVGltZUZpZWxkcyYgZGF0ZVRpbWVGaWVsZHMsIGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKK3sKKyAgICBpZiAoZGF0
ZVRpbWVGaWVsZHMuaGFzQU1QTSgpKQorICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlVGlt
ZUZpZWxkcy5hbXBtKCkpOworICAgIGVsc2UKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9y
UmVhZE9ubHlGaWVsZCk7Cit9CisKIGRvdWJsZSBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnVu
aXRJbk1pbGxpc2Vjb25kKCkgY29uc3QKIHsKICAgICByZXR1cm4gbXNQZXJIb3VyICogMTI7CkBA
IC03MywxMSArOTAsNTMgQEAgUGFzc1JlZlB0cjxEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ+IERh
dGVUaW1lSG91ckZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KgogICAgIHJldHVybiBmaWVs
ZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50Ojpwb3B1bGF0
ZURhdGVUaW1lRmllbGRzKERhdGVUaW1lRmllbGRzJiBkYXRlVGltZUZpZWxkcykKK3sKKyAgICBp
ZiAoIWhhc1ZhbHVlKCkpIHsKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHMuc2V0SG91cihEYXRlVGlt
ZUZpZWxkczo6ZW1wdHlWYWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25z
dCBpbnQgdmFsdWUgPSBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2Vy
KCk7CisKKyAgICBzd2l0Y2ggKG1heGltdW0oKSkgeworICAgIGNhc2UgMTE6CisgICAgICAgIGRh
dGVUaW1lRmllbGRzLnNldEhvdXIodmFsdWUgPyB2YWx1ZSA6IDEyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIGNhc2UgMTI6CisgICAgICAgIGRhdGVUaW1lRmllbGRzLnNldEhvdXIodmFsdWUpOwor
ICAgICAgICByZXR1cm47CisgICAgY2FzZSAyMzoKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHMuc2V0
SG91cih2YWx1ZSA/IHZhbHVlICUgMTIgOiAxMik7CisgICAgICAgIGRhdGVUaW1lRmllbGRzLnNl
dEFNUE0odmFsdWUgPj0gMTIgPyBEYXRlVGltZUZpZWxkczo6UE0gOiBEYXRlVGltZUZpZWxkczo6
QU0pOworICAgICAgICByZXR1cm47CisgICAgY2FzZSAyNDoKKyAgICAgICAgaWYgKHZhbHVlID09
IDI0KSB7CisgICAgICAgICAgICBkYXRlVGltZUZpZWxkcy5zZXRIb3VyKDEyKTsKKyAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzLnNldEhvdXIoRGF0ZVRpbWVGaWVsZHM6OkFNKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBkYXRlVGltZUZpZWxkcy5zZXRIb3VyKHZh
bHVlID09IDEyID8gMTIgOiB2YWx1ZSAlIDEyKTsKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHMuc2V0
QU1QTSh2YWx1ZSA+PSAxMiA/IERhdGVUaW1lRmllbGRzOjpQTSA6IERhdGVUaW1lRmllbGRzOjpB
TSk7CisgICAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisKIHZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKIHsKICAgICBzZXRWYWx1ZUFz
SW50ZWdlcihkYXRlLmhvdXIoKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHMoY29uc3QgRGF0ZVRpbWVGaWVsZHMmIGRhdGVUaW1l
RmllbGRzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCit7Cisg
ICAgaWYgKGRhdGVUaW1lRmllbGRzLmhhc0hvdXIoKSkKKyAgICAgICAgc2V0VmFsdWVBc0ludGVn
ZXIoZGF0ZVRpbWVGaWVsZHMuaG91cigpKTsKKyAgICBlbHNlCisgICAgICAgIHNldEVtcHR5VmFs
dWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworfQorCiB2b2lkIERhdGVUaW1lSG91ckZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50IHZhbHVlQXNIb3VyMjMsIEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKIHsKICAgICBjb25zdCBpbnQgdmFsdWUgPSBSYW5nZSgwLCAyMykuY2xh
bXBWYWx1ZSh2YWx1ZUFzSG91cjIzKSAlIG1fYWxpZ25tZW50OwpAQCAtMTA5LDExICsxNjgsMjQg
QEAgUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmUKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwog
fQogCit2b2lkIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRp
bWVGaWVsZHMoRGF0ZVRpbWVGaWVsZHMmIGRhdGVUaW1lRmllbGRzKQoreworICAgIGRhdGVUaW1l
RmllbGRzLnNldE1pbGxpc2Vjb25kKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0
ZVRpbWVGaWVsZHM6OmVtcHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQog
ewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubWlsbGlzZWNvbmQoKSk7CiB9CiAKK3ZvaWQg
RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRz
KGNvbnN0IERhdGVUaW1lRmllbGRzJiBkYXRlVGltZUZpZWxkcywgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQoreworICAgIGlmIChkYXRlVGltZUZpZWxkcy5oYXNN
aWxsaXNlY29uZCgpKQorICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlVGltZUZpZWxkcy5t
aWxsaXNlY29uZCgpKTsKKyAgICBlbHNlCisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJl
YWRPbmx5RmllbGQpOworfQorCiBkb3VibGUgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dDo6dW5pdEluTWlsbGlzZWNvbmQoKSBjb25zdAogewogICAgIHJldHVybiAxOwpAQCAtMTM0LDEx
ICsyMDYsMjQgQEAgUGFzc1JlZlB0cjxEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudD4gRGF0ZVRp
bWVNaW51dGVGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWUKICAgICByZXR1cm4gZmllbGQucmVs
ZWFzZSgpOwogfQogCit2b2lkIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURh
dGVUaW1lRmllbGRzKERhdGVUaW1lRmllbGRzJiBkYXRlVGltZUZpZWxkcykKK3sKKyAgICBkYXRl
VGltZUZpZWxkcy5zZXRNaW51dGUoaGFzVmFsdWUoKSA/IHZhbHVlQXNJbnRlZ2VyKCkgOiBEYXRl
VGltZUZpZWxkczo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubWludXRlKCkpOwogfQogCit2b2lkIERhdGVUaW1lTWlu
dXRlRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHMoY29uc3QgRGF0ZVRpbWVG
aWVsZHMmIGRhdGVUaW1lRmllbGRzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRP
bmx5RmllbGQpCit7CisgICAgaWYgKGRhdGVUaW1lRmllbGRzLmhhc01pbnV0ZSgpKQorICAgICAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlVGltZUZpZWxkcy5taW51dGUoKSk7CisgICAgZWxzZQor
ICAgICAgICBzZXRFbXB0eVZhbHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKK30KKwogZG91Ymxl
IERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50Ojp1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1zUGVyTWludXRlOwpAQCAtMTU5LDExICsyNDQsMjQgQEAgUGFzc1JlZlB0
cjxEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWUKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQogCit2b2lkIERh
dGVUaW1lU2Vjb25kRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzKERhdGVUaW1l
RmllbGRzJiBkYXRlVGltZUZpZWxkcykKK3sKKyAgICBkYXRlVGltZUZpZWxkcy5zZXRTZWNvbmQo
aGFzVmFsdWUoKSA/IHZhbHVlQXNJbnRlZ2VyKCkgOiBEYXRlVGltZUZpZWxkczo6ZW1wdHlWYWx1
ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
KGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRh
dGUuc2Vjb25kKCkpOwogfQogCit2b2lkIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZVRpbWVGaWVsZHMoY29uc3QgRGF0ZVRpbWVGaWVsZHMmIGRhdGVUaW1lRmllbGRz
LCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCit7CisgICAgaWYg
KGRhdGVUaW1lRmllbGRzLmhhc1NlY29uZCgpKQorICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihk
YXRlVGltZUZpZWxkcy5zZWNvbmQoKSk7CisgICAgZWxzZQorICAgICAgICBzZXRFbXB0eVZhbHVl
KGRhdGVGb3JSZWFkT25seUZpZWxkKTsKK30KKwogZG91YmxlIERhdGVUaW1lU2Vjb25kRmllbGRF
bGVtZW50Ojp1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1zUGVyU2Vj
b25kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudHMuaAppbmRleCBkN2Y0ZDk1MzgwMzg1ZTBjZDJhMWUwODAzYTllZmQ1ODA4NGEwYTg0Li5k
ZGJkYTY3ZDMwMWYxMTg1NDY4ZmVkODY5Nzk1MDhmZDQxYzI1MjRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtNDIsNyAr
NDIsOSBAQCBwcml2YXRlOgogICAgIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudChEb2N1bWVudCos
IEZpZWxkT3duZXImLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgLy8gRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1l
RmllbGRzKERhdGVUaW1lRmllbGRzJikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkcyhjb25zdCBEYXRlVGltZUZp
ZWxkcyYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkgT1ZFUlJJ
REUgRklOQUw7CiAgICAgdmlydHVhbCBkb3VibGUgdW5pdEluTWlsbGlzZWNvbmQoKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKIH07CiAKQEAgLTYzLDcgKzY1LDkgQEAgcHJpdmF0ZToKICAgICBEYXRl
VGltZUhvdXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0s
IGludCBtYXhpbXVtKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4K
KyAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkcyhEYXRlVGltZUZpZWxkcyYp
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBE
YXRlQ29tcG9uZW50cyYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZUFzRGF0ZVRpbWVGaWVsZHMoY29uc3QgRGF0ZVRpbWVGaWVsZHMmLCBjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZl
bnQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgZG91YmxlIHVuaXRJbk1pbGxpc2Vjb25k
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKQEAgLTgxLDcgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBE
YXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOwog
CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9p
ZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzKERhdGVUaW1lRmllbGRzJikgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxk
cyhjb25zdCBEYXRlVGltZUZpZWxkcyYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVh
ZE9ubHlGaWVsZCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBkb3VibGUgdW5pdEluTWls
bGlzZWNvbmQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKIH07CiAKQEAgLTk1LDcgKzEwMSw5IEBA
IHByaXZhdGU6CiAgICAgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVs
ZE93bmVyJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHMoRGF0ZVRpbWVGaWVsZHMmKSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzKGNvbnN0IERhdGVUaW1lRmllbGRzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGRvdWJs
ZSB1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogfTsKIApAQCAtMTA5
LDcgKzExNyw5IEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9j
dW1lbnQqLCBGaWVsZE93bmVyJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5j
dGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHMoRGF0ZVRpbWVG
aWVsZHMmKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzKGNvbnN0IERhdGVUaW1lRmllbGRzJiwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKICAgICB2
aXJ0dWFsIGRvdWJsZSB1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQuaAppbmRleCA3YzczZjFiODYwNjQ0ZjU4YTgyYjU3NzNlMWNkZGNl
YmZkNTcyZTljLi4yOGYyYjllNDk4NTgwNTEwMzQ3OWNkMDJkYmRhNDkyNWI3ZWNhMmE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuaApAQCAtNTcsNiArNTcsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBEYXRl
VGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBpbnQgbWF4aW11bSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IERhdGVD
b21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNo
Tm9FdmVudCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRl
Z2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKQEAgLTY1LDkgKzY3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0g
ICAgdmlydHVhbCBpbnQgbWF4aW11bSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1
YWwgaW50IG1pbmltdW0oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQs
IEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwRG93
bigpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwVXAoKSBPVkVSUklERSBG
SU5BTDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudC5oCmluZGV4IDdjNWY2N2I4OWNjZjBhZjVjZDMwMGJiNzE1NDlkYzk2NDY3
NTQ4MzMuLmNiMGFjMWU3YmIyODVlNWM1NGRmMjIxMzRhZjc1ZGE0YmUxOTdmMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDEwIEBAIGNsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewogCiBwcm90ZWN0ZWQ6CiAg
ICAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9IERpc3Bh
dGNoTm9FdmVudCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJ
bnRlZ2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgaW50IGludmFsaWRJbmRleCA9IC0xOwpA
QCAtNDgsMTQgKzUxLDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVu
dCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgaW50IG1heGltdW0oKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBP
VkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24oKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcFVwKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGludCB2
YWx1ZUFzSW50ZWdlcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5n
IHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgY29uc3QgVmVjdG9y
PFN0cmluZz4gbV9zeW1ib2xzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAxODZjYmY3ZmIwZDdlYTI1YmY2MDNmOWExOTQy
YzA3OTNkZWYwYzYuLmI5ZDYwNjVhMTVkNmY3YWVmMDk3YWQxZGNlYzM2ZGUzNjdmMTQ1ZTkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0xMyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5w
dXQgVUkgc2hvdWxkIHNhdmUvcmVzdG9yZSBpdHMgdmFsdWUgZXZlbiBpZiBpdCBoYXMgYW4gZW1w
dHkgZmllbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCBy
YXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11
bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2stZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0
aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLmh0bWw6CisKIDIw
MTItMDktMTMgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1v
dmUgbGluZXMgZm9yIGZhc3QvdGFibGUvYmFkLXJlcGxhY2VkLXNpemluZy1wcmVmZXJyZWQtbG9n
aWNhbC13aWR0aHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRl
ci1oaXN0b3J5LWJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1l
LW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRl
ci1oaXN0b3J5LWJhY2stZXhwZWN0ZWQudHh0CmluZGV4IGYxOTg2NjBmYTgxZDVmYTBiN2IyMzQ5
ZGEyZjAyMzliMjkyMDU4ZTQuLjA1ODQ1N2RiNTljMTZjNTU1OTcyMzMxMWRmMmEyYjkzNmYzNzJi
MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNr
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUt
ZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3Rvcnkt
YmFjay1leHBlY3RlZC50eHQKQEAgLTYsMTEgKzYsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIFdlbnQgYmFjayB0byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhh
ZCBhIGZ1bGwgdmFsdWU6CiBQQVNTICIwMTowMSIgaXMgIjAxOjAxIgogV2VudCBiYWNrIHRvIGEg
cGFnZS4gQ2hlY2tpbmcgYSBmb3JtIGNvbnRyb2wgd2hpY2ggaGFkIGEgcGFydGlhbCB2YWx1ZToK
LVBBU1MgIiIgaXMgIiIKK1BBU1MgIjAxOi0tIEFNIiBpcyAiMDE6LS0gQU0iCiBXZW50IGZvcndh
cmQgdG8gYSBwYWdlLiBDaGVja2luZyBhIGZvcm0gY29udHJvbCB3aGljaCBoYWQgYSBmdWxsIHZh
bHVlOgogUEFTUyAiMDI6MDIiIGlzICIwMjowMiIKIFdlbnQgZm9yd2FyZCB0byBhIHBhZ2UuIENo
ZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRpYWwgdmFsdWU6Ci1QQVNTICIi
IGlzICIiCitQQVNTICItLTo1OSAtLSIgaXMgIi0tOjU5IC0tIgogCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0
ZXItaGlzdG9yeS1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlw
bGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3Rv
cnktYmFjay5odG1sCmluZGV4IDI2OThmZGNiYjA2ZDkyMGYwYzFlM2YzMmQwMDJmZjk4ZmJiNjhm
MWMuLmZjZjczMTVlY2QzZTFlYWEyNzMwMDk1OWZhNzRlMTQ4YWZmYmI0ZGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBs
ZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZp
ZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2suaHRtbApAQCAtMzQsNiArMzQs
MTQgQEAgZnVuY3Rpb24gZmFpbGVkKG1lc3NhZ2UpIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAorZnVuY3Rpb24gZmllbGRzVGV4dChpbnB1dCkKK3sKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIHJldHVybiAiIjsKKyAgICB2YXIgZWRpdEVsZW1lbnQgPSB3aW5kb3cuaW50
ZXJuYWxzLm9sZGVzdFNoYWRvd1Jvb3QoaW5wdXQpOworICAgIHJldHVybiBlZGl0RWxlbWVudC50
ZXh0Q29udGVudDsKK30KKwogZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBydW5UZXN0Q2Fz
ZXMoKTsKICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKSk7CkBAIC03Miw2ICs4MCw5IEBAIGNhc2UgJz9wYWdlMSc6CiAgICAg
ICAgIHRlc3RJbnB1dDEudmFsdWUgPSAnMDE6MDEnOwogICAgICAgICB0ZXN0SW5wdXQyLmZvY3Vz
KCk7CiAgICAgICAgIGtleURvd24oJ3VwQXJyb3cnKTsKKyAgICAgICAga2V5RG93bignXHQnKTsK
KyAgICAgICAga2V5RG93bignXHQnKTsKKyAgICAgICAga2V5RG93bigndXBBcnJvdycpOwogICAg
ICAgICB2YXIgbmV4dFVyaSA9IGxvY2F0aW9uLnRvU3RyaW5nKCkucmVwbGFjZSgnP3BhZ2UxJywg
Jz9wYWdlMicpOwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgd2luZG93LmxvY2F0
aW9uLmhyZWYgPSBuZXh0VXJpOyB9LCAwKTsKICAgICAgICAgYnJlYWs7CkBAIC04NCw4ICs5NSw4
IEBAIGNhc2UgJz9wYWdlMSc6CiAgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6ICcwMTowMScg
fSwKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIDogJ1dlbnQg
YmFjayB0byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRp
YWwgdmFsdWUnLAotICAgICAgICAgICAgICAgICdhY3R1YWwnIDogdGVzdElucHV0Mi52YWx1ZSwK
LSAgICAgICAgICAgICAgICAnZXhwZWN0ZWQnIDogJycKKyAgICAgICAgICAgICAgICAnYWN0dWFs
JyA6IGZpZWxkc1RleHQodGVzdElucHV0MiksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6
ICcwMTotLSBBTScKICAgICAgICAgICAgIH0pOwogICAgICAgICBmb3J3YXJkKCdmb3J3YXJkVG8y
Jyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTAyLDcgKzExMyw4IEBAIGNhc2UgJz9wYWdlMic6CiAg
ICAgY2FzZSAnZGlyZWN0JzoKICAgICAgICAgdGVzdElucHV0MS52YWx1ZSA9ICcwMjowMic7CiAg
ICAgICAgIHRlc3RJbnB1dDIuZm9jdXMoKTsKLSAgICAgICAga2V5RG93bigndXBBcnJvdycpOwor
ICAgICAgICBrZXlEb3duKCdcdCcpOworICAgICAgICBrZXlEb3duKCdkb3duQXJyb3cnKTsKICAg
ICAgICAgYmFjaygnYmFja1RvMScpOwogICAgICAgICBicmVhazsKICAgICBjYXNlICdmb3J3YXJk
VG8yJzoKQEAgLTExNCw4ICsxMjYsOCBAQCBjYXNlICc/cGFnZTInOgogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIDogJ1dlbnQgZm9y
d2FyZCB0byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRp
YWwgdmFsdWUnLAotICAgICAgICAgICAgICAgICdhY3R1YWwnIDogdGVzdElucHV0Mi52YWx1ZSwK
LSAgICAgICAgICAgICAgICAnZXhwZWN0ZWQnIDogJycKKyAgICAgICAgICAgICAgICAnYWN0dWFs
JyA6IGZpZWxkc1RleHQodGVzdElucHV0MiksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6
ICctLTo1OSAtLScKICAgICAgICAgICAgIH0pOwogICAgICAgICBiYWNrKCdiYWNrVG8xU2Vjb25k
Jyk7CiAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164073</attachid>
            <date>2012-09-14 01:59:02 -0700</date>
            <delta_ts>2012-09-14 03:00:40 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-96714-20120914175833.patch</filename>
            <type>text/plain</type>
            <size>41282</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhYzM3NmU3ZGE1YzAz
ZDlmZmE2ZTc5NzkwNjQyODU3YWNmOGFjYy4uMDQ0NWQ0ZDkyYjcyZWU4ZWU0N2M4NTcxZmFlYzRm
NDY1ZDY3YTM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTA5LTE0ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBtdWx0
aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSSBzaG91bGQgc2F2ZS9yZXN0b3JlIGl0cyB2YWx1ZSBl
dmVuIGlmIGl0IGhhcyBhbiBlbXB0eSBmaWVsZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIG11bHRpcGxlIGZpZWxkcyB0
aW1lIGlucHV0IFVJIHRvIHNhdmUvcmVzdG9yZSB2YWx1ZQorICAgICAgICBvZiBmaWVsZHMgcmF0
aGVyIHRoYW4gdGltZSB2YWx1ZS4KKworICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCwgaWYgdXNl
ciBwb3B1bGF0ZXMgdGltZSBmaWVscyBwYXJ0aWFsbHksIGFsbCBmaWVsZHMKKyAgICAgICAgYXJl
IHJlc2V0IHRvIGluaXRpYWwgdmFsdWUgYWZ0ZXIgYmFjay9mb3J3YXJkIG5hdmlnYXRpb24uCisK
KyAgICAgICAgQWZ0ZXIgdGhpcyBwYXRjaCwgcGFydGlhbGx5IHBvcHVsYXRlZCBmaWVsZHMgYXJl
IHByZXNlcnZlZCBhZnRlcgorICAgICAgICBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi4KKworICAg
ICAgICBGaWVsZHMgb2YgRGF0ZVRpbWVFZGl0RWxlbWVudCBhcmUgcmVwcmVzZW50ZWQgYXMgOSBl
bGVtZW50cyBvZgorICAgICAgICBzdHJpbmcgdmVjdG9yIGluIEZvcm1Db250cm9sU3RhdGUgcmVn
YXJkbGVzcyBhY3R1YWwgZmllbGRzIGluCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQgZm9y
IGVhc2Ugb2YgcmVzdG9yaW5nL3NhdmluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFmZmVjdHMg
cG9ydHMgd2hpY2ggZW5hYmxlIGJvdGggRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBhbmQKKyAgICAg
ICAgRU5BQkxFX0lOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0IGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMv
dGltZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLmh0
bWwKKyAgICAgICAgY29udmVycyB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogQ2hhZ25lZCB0byBhZGQgRGF0ZVRpbWVGaWVsZHNTdGF0ZS57Y3BwLmh9CisgICAgICAgICog
aHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpn
ZXROdW1iZXJGcm9tRm9ybUNvbnRyb2xTdGF0ZSk6IEV4dHJhY3RzIHVuc2lnbmVkIGludGVnZXIg
b3IgZW1wdHkgdmFsdWUgZnJvbSBGb3JtQ29udHJvbFN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6
Z2V0QU1QTUZyb21Gb3JtQ29udHJvbFN0YXRlKTogRXh0cmFjdHMgQU0vUE0gdmFsdWUgb3IgZW1w
dHkgdmFsdWUgZnJvbSBGb3JtQ29udHJvbFN0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEluaXRpYWxpemVzIGZpZWxkcyB3
aXRoIGVtcHR5IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBNYWtlcyBEYXRlVGltZUZpZWxkc1N0YXRlIGluc3Rh
bmNlIGZyb20gRm9ybUNvbnRyb2xTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmll
bGRzU3RhdGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKTogTWFrZXMgRm9ybUNvbnRyb2xTdGF0ZSBm
cm9tIERhdGVUaW1lRmllbGRzU3RhdGUuCisgICAgICAgICogaHRtbC9EYXRlVGltZUZpZWxkc1N0
YXRlLmg6IEFkZGVkLgorICAgICAgICAoRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjphbXBtKTogUmV0dXJucyBBTS9QTSBmaWVsZCB2
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OmRheU9mTW9udGgp
OiBSZXR1cm5zIGRheSBvZiBtb250aCBmaWVsZCB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRmllbGRzU3RhdGU6OmhvdXIpOiBSZXV0cm5zIGhvdXIgZmllbGQgdmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjptaWxsaXNlY29uZCk6IFJldHVybnMg
bWlsbGlzZWNvbmQgZmllbGQgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
c1N0YXRlOjptaW51dGUpOiBSZXR1cm5zIG1pbnV0ZSBmaWVsZCB2YWx1ZS4KKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Om1vbnRoKTogUmV0dXJucyBtb250aCBmaWVsZCB2
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OnNlY29uZCk6IFJl
dHVybnMgc2Vjb25kIGZpZWxkIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZHNTdGF0ZTo6d2Vla09mWWVhcik6IFJldHVybnMgd2VlayBvZiB5ZWFyIGZpZWxkLgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6eWVhcik6IFJldHVybnMgeWVhciBmaWVs
ZCB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc0FNUE0p
OiBSZXR1cm5zIHRydWUgaWYgQU0vUE0gZmllbGQgaGFzIHZhbHVlLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6aGFzRGF5T2ZNb250aCk6IFJldHVybnMgdHJ1ZSBpZiBk
YXkgb2YgbW9udGggZmllbGQgaGFzIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVG
aWVsZHNTdGF0ZTo6aGFzSG91cik6IFJldHVybnMgdHJ1ZSBpZiBob3VyIGZpZWxkIGhhcyB2YWx1
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc01pbGxpc2Vjb25k
KTogUmV0dXJucyB0cnVlIGlmIG1pbGxpc2Vjb25kIGZpZWxkIGhhcyB2YWx1ZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc01pbnV0ZSk6IFJldHVybnMgdHJ1ZSBp
ZiBtaW51dGUgZmllbGQgaGFzIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZHNTdGF0ZTo6aGFzTW9udGgpOiBSZXR1cm5zIHRydWUgaWYgbW9udGggZmllbGQgaGFzIHZhbHVl
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6aGFzU2Vjb25kKTogUmV0
dXJucyB0cnVlIGlmIHNlY29uZCBmaWVsZCBoYXMgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUZpZWxkc1N0YXRlOjpoYXNXZWVrT2ZZZWFyKTogUmV0dXJucyB0cnVlIGlmIHdlZWsg
b2YgeWVhciBmaWVsZCBoYXMgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
c1N0YXRlOjpoYXNZZWFyKTogUmV0dXJucyB0cnVlIGlmIHllYXIgZmllbGQgaGFzIHZhbHVlLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2V0QU1QTSk6IFNldHMgQU0v
UE0gZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpzZXREYXlP
Zk1vbnRoKTogU2V0cyBkYXkgb2YgbW9udGggZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc1N0YXRlOjpzZXRIb3VyKTogU2V0cyBob3VyIGZpZWxkLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2V0TWlsbGlzZWNvbmQpOiBTZXRzIG1pbGxpc2Vj
b25kIGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2V0TWlu
dXRlKTogU2V0cyBtaW51dGUgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
c1N0YXRlOjpzZXRNb250aCk6IFNldHMgbW9udGggZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUZpZWxkc1N0YXRlOjpzZXRTZWNvbmQpOiBTZXQgc2Vjb25kIGZpZWxkLgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2V0V2Vla09mWWVhcik6IFNldHMgd2Vl
ayBvZiB5ZWFyIGZpZWxkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6
c2V0WWVhcik6IFNldHMgeWVhciBmaWVsZC4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9s
U3RhdGUpOiBBZGRlZCB0byBjYWxsIERhdGVUaW1lRmllbGRzU3RhdGU6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKCkuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZSk6IEFkZGVkIHRvIGNhbGwgRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoKS4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAg
KFRpbWVJbnB1dFR5cGUpOiBBZGRlZCBkZWNsYXJhdGlvbnMgZm9yIHJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKCkgYW5kIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkuCisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBm
aWVsZHMgZnJvbSBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVFZGl0RWxlbWVudDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUpOiBBZGRlZCB0byBtYWtl
IERhdGVUaW1lRmllbGRzU3RhdGUgZnJvbSBmaWVsZHMuCisgICAgICAgICogaHRtbC9zaGFkb3cv
RGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6IEFk
ZGVkIGRlY2xhcmF0aW9ucyBmb3Igc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBhbmQg
dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBBZGRl
ZCBkZWNsYXJhdGlvbnMgZm9yIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpIGFuZCBzZXRW
YWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpLgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUFNUE1GaWVs
ZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBBTS9Q
TSB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVBTVBNRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVk
IHRvIHNldCBmaWVsZCB2YWx1ZSBmcm9tIERhdGVUaW1lRmllbGRzU3RhdGUuCisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNT
dGF0ZSk6IEFkZGVkIHRvIHNldCBob3VyIHZhbHVlIHRvIERhdGVUaW1lRmllbGRzU3RhdGUuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
VGltZUZpZWxkc1N0YXRlKTogQWRkZWQgdG8gc2V0IGZpZWxkIHZhbHVlIGZyb20gRGF0ZVRpbWVG
aWVsZHNTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVs
ZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBtaWxsaXNl
Y29uZCB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3Rh
dGUpOiBBZGRlZCB0byBzZXQgZmllbGQgdmFsdWUgZnJvbSBEYXRlVGltZUZpZWxkc1N0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0
ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBtaW51dGUgdmFsdWUgdG8gRGF0ZVRpbWVG
aWVsZHNTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBmaWVsZCB2YWx1
ZSBmcm9tIERhdGVUaW1lRmllbGRzU3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVNl
Y29uZEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKTogQWRkZWQgdG8g
c2V0IHNlY29uZCB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0
YXRlKTogQWRkZWQgdG8gc2V0IGZpZWxkIHZhbHVlIGZyb20gRGF0ZVRpbWVGaWVsZHNTdGF0ZS4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaDoKKyAgICAgICAg
KERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudCk6IEFkZGVkIGRlY2xhcmF0aW9ucyBvZiBwb3B1bGF0
ZURhdGVUaW1lRmllbGRzU3RhdGUoKSBhbmQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUo
KS4KKyAgICAgICAgKERhdGVUaW1lSG91ckZpZWxkRWxlbWVudCk6IGRpdHRvLgorICAgICAgICAo
RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk6IGRpdHRvLgorICAgICAgICAoRGF0ZVRp
bWVNaW51dGVGaWVsZEVsZW1lbnQpOiBkaXR0by4KKyAgICAgICAgKERhdGVUaW1lU2Vjb25kRmll
bGRFbGVtZW50KTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOiBF
eHRlbmQgYWNjZXNzaWJpbGl0eSBvZiBtYXhpbXVtKCkgYW5kIHNldEVtcHR5VmFsdWUoKSB0byBw
cm90ZWN0ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk6IEV4dGVuZCBh
Y2Nlc3NpYmlsaXR5IG9mIGhhc1ZhbHVlKCksIHNldEVtcHR5VmFsdWUoKSBhbmQgdmFsdWVBc0lu
dGVnZXIoKSB0byBwcm90ZWN0ZWQuCisKIDIwMTItMDktMTMgIEpvc2h1YSBCZWxsICA8anNiZWxs
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IENvbnNvbGlkYXRlIHR3by1waGFz
ZSBjb25uZWN0aW9uIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDA5MjU3MjVkMDY4N2IyYjM2ZjM3MDBmMmE1YjY2Y2E2Yjk5NzBkZjUuLmI2MTNlOTg1NmNiYTJj
ZTNlYjA4OTNmODhmNzRiYzNkODQxMmYzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQwMjEsNiAr
NDAyMSw4IEBACiAgICAgICAgICAgICAnaHRtbC9ET01VUkwuaCcsCiAgICAgICAgICAgICAnaHRt
bC9EYXRlSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRlSW5wdXRUeXBlLmgn
LAorICAgICAgICAgICAgJ2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAnLAorICAgICAgICAg
ICAgJ2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oJywKICAgICAgICAgICAgICdodG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRlVGltZUlucHV0VHlwZS5o
JywKICAgICAgICAgICAgICdodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyOTVm
OGQxYjg3MWZiNTA0OTk3ZTY1NDA5ZWIxZmZhZjAzYWQ0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwCkBAIC0wLDAgKzEsMTAz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgor
ICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRz
U3RhdGUuaCIKKworI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RhdGljIHVuc2lnbmVkIGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlLCBzaXplX3QgaW5kZXgpCit7CisgICAgaWYgKGlu
ZGV4ID49IHN0YXRlLnZhbHVlU2l6ZSgpKQorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGaWVsZHNT
dGF0ZTo6ZW1wdHlWYWx1ZTsKKyAgICBib29sIHBhcnNlZDsKKyAgICB1bnNpZ25lZCBjb25zdCB2
YWx1ZSA9IHN0YXRlW2luZGV4XS50b1VJbnQoJnBhcnNlZCk7CisgICAgcmV0dXJuIHBhcnNlZCA/
IHZhbHVlIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZTsKK30KKworc3RhdGljIERh
dGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZSBnZXRBTVBNRnJvbUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUsIHNpemVfdCBpbmRleCkKK3sKKyAgICBpZiAo
aW5kZXggPj0gc3RhdGUudmFsdWVTaXplKCkpCisgICAgICAgIHJldHVybiBEYXRlVGltZUZpZWxk
c1N0YXRlOjpBTVBNVmFsdWVFbXB0eTsKKyAgICBjb25zdCBTdHJpbmcgdmFsdWUgPSBzdGF0ZVtp
bmRleF07CisgICAgaWYgKHZhbHVlID09ICJBIikKKyAgICAgICAgcmV0dXJuIERhdGVUaW1lRmll
bGRzU3RhdGU6OkFNUE1WYWx1ZUFNOworICAgIGlmICh2YWx1ZSA9PSAiUCIpCisgICAgICAgIHJl
dHVybiBEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBNVmFsdWVQTTsKKyAgICByZXR1cm4gRGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlRW1wdHk7Cit9CisKK0RhdGVUaW1lRmllbGRzU3RhdGU6
OkRhdGVUaW1lRmllbGRzU3RhdGUoKQorICAgIDogbV95ZWFyKGVtcHR5VmFsdWUpCisgICAgLCBt
X21vbnRoKGVtcHR5VmFsdWUpCisgICAgLCBtX2RheU9mTW9udGgoZW1wdHlWYWx1ZSkKKyAgICAs
IG1faG91cihlbXB0eVZhbHVlKQorICAgICwgbV9taW51dGUoZW1wdHlWYWx1ZSkKKyAgICAsIG1f
c2Vjb25kKGVtcHR5VmFsdWUpCisgICAgLCBtX21pbGxpc2Vjb25kKGVtcHR5VmFsdWUpCisgICAg
LCBtX3dlZWtPZlllYXIoZW1wdHlWYWx1ZSkKKyAgICAsIG1fYW1wbShBTVBNVmFsdWVFbXB0eSkK
K3sKK30KKworRGF0ZVRpbWVGaWVsZHNTdGF0ZSBEYXRlVGltZUZpZWxkc1N0YXRlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKK3sKKyAgICBE
YXRlVGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzU3RhdGU7CisgICAgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5zZXRZZWFyKGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKHN0YXRlLCAwKSk7
CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRNb250aChnZXROdW1iZXJGcm9tRm9ybUNvbnRy
b2xTdGF0ZShzdGF0ZSwgMSkpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0RGF5T2ZNb250
aChnZXROdW1iZXJGcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSwgMikpOworICAgIGRhdGVUaW1l
RmllbGRzU3RhdGUuc2V0SG91cihnZXROdW1iZXJGcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSwg
MykpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0TWludXRlKGdldE51bWJlckZyb21Gb3Jt
Q29udHJvbFN0YXRlKHN0YXRlLCA0KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRTZWNv
bmQoZ2V0TnVtYmVyRnJvbUZvcm1Db250cm9sU3RhdGUoc3RhdGUsIDUpKTsKKyAgICBkYXRlVGlt
ZUZpZWxkc1N0YXRlLnNldE1pbGxpc2Vjb25kKGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRl
KHN0YXRlLCA2KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRXZWVrT2ZZZWFyKGdldE51
bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKHN0YXRlLCA3KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNT
dGF0ZS5zZXRBTVBNKGdldEFNUE1Gcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSwgOCkpOworICAg
IHJldHVybiBkYXRlVGltZUZpZWxkc1N0YXRlOworfQorCitGb3JtQ29udHJvbFN0YXRlIERhdGVU
aW1lRmllbGRzU3RhdGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK3sKKyAgICBGb3Jt
Q29udHJvbFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmFwcGVuZChoYXNZZWFyKCkgPyBTdHJpbmc6
Om51bWJlcihtX3llYXIpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBwZW5kKGhhc01v
bnRoKCkgPyBTdHJpbmc6Om51bWJlcihtX21vbnRoKSA6IGVtcHR5U3RyaW5nKCkpOworICAgIHN0
YXRlLmFwcGVuZChoYXNEYXlPZk1vbnRoKCkgPyBTdHJpbmc6Om51bWJlcihtX2RheU9mTW9udGgp
IDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBwZW5kKGhhc0hvdXIoKSA/IFN0cmluZzo6
bnVtYmVyKG1faG91cikgOiBlbXB0eVN0cmluZygpKTsKKyAgICBzdGF0ZS5hcHBlbmQoaGFzTWlu
dXRlKCkgPyBTdHJpbmc6Om51bWJlcihtX21pbnV0ZSkgOiBlbXB0eVN0cmluZygpKTsKKyAgICBz
dGF0ZS5hcHBlbmQoaGFzU2Vjb25kKCkgPyBTdHJpbmc6Om51bWJlcihtX3NlY29uZCkgOiBlbXB0
eVN0cmluZygpKTsKKyAgICBzdGF0ZS5hcHBlbmQoaGFzTWlsbGlzZWNvbmQoKSA/IFN0cmluZzo6
bnVtYmVyKG1fbWlsbGlzZWNvbmQpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBwZW5k
KGhhc1dlZWtPZlllYXIoKSA/IFN0cmluZzo6bnVtYmVyKG1fd2Vla09mWWVhcikgOiBlbXB0eVN0
cmluZygpKTsKKyAgICBpZiAoaGFzQU1QTSgpKQorICAgICAgICBzdGF0ZS5hcHBlbmQobV9hbXBt
ID09IEFNUE1WYWx1ZUFNID8gIkEiIDogIlAiKTsKKyAgICBlbHNlCisgICAgICAgIHN0YXRlLmFw
cGVuZChlbXB0eVN0cmluZygpKTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lRmllbGRzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNT
dGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA5ODBlYWEzOWQ5ZmQ2Njk5NzkwZDBlZjA2NWE0YTVhNTRmYmY1
MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRz
U3RhdGUuaApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0
ZVRpbWVGaWVsZHNTdGF0ZV9oCisjZGVmaW5lIERhdGVUaW1lRmllbGRzU3RhdGVfaAorCisjaWYg
RU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9ybUNvbnRy
b2xTdGF0ZTsKKworLy8gRGF0ZVRpbWVGaWVsZHNTdGF0ZSByZXByZXNlbnRzIGZpZWxkcyBpbiBk
YXRlL3RpbWUgZm9yIGZvcm0gc3RhdGUKKy8vIHNhdmUvcmVzdG9yZSBmb3IgaW5wdXQgdHlwZSAi
ZGF0ZSIsICJkYXRldGltZSIsICJkYXRldGltZS1sb2NhbCIsICJtb250aCIsCisvLyAidGltZSIs
IGFuZCAid2VlayIgd2l0aCBtdWx0aXBsZSBmaWVsZHMgaW5wdXQgVUkuCisvLworLy8gRWFjaCBm
aWVsZCBjYW4gY29udGFpbiBpbnZhbGlkIHZhbHVlIGZvciBkYXRlLCBlLmcuIGRheSBvZiBtb250
aCBmaWVsZCBjYW4KKy8vIGJlIDMwIGV2ZW4gaWYgbW9udGggZmllbGQgaXMgRmVicnVhcnkuCitj
bGFzcyBEYXRlVGltZUZpZWxkc1N0YXRlIHsKK3B1YmxpYzoKKyAgICBlbnVtIEFNUE1WYWx1ZSB7
CisgICAgICAgIEFNUE1WYWx1ZUVtcHR5ID0gLTEsCisgICAgICAgIEFNUE1WYWx1ZUFNLAorICAg
ICAgICBBTVBNVmFsdWVQTSwKKyAgICB9OworCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGVt
cHR5VmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTEpOworCisgICAgRGF0ZVRpbWVGaWVs
ZHNTdGF0ZSgpOworCisgICAgc3RhdGljIERhdGVUaW1lRmllbGRzU3RhdGUgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpOworICAgIEZvcm1Db250cm9sU3Rh
dGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdDsKKworICAgIEFNUE1WYWx1ZSBhbXBtKCkg
Y29uc3QgeyByZXR1cm4gbV9hbXBtOyB9CisgICAgdW5zaWduZWQgZGF5T2ZNb250aCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF5T2ZNb250aDsgfQorICAgIHVuc2lnbmVkIGhvdXIoKSBjb25zdCB7IHJl
dHVybiBtX2hvdXI7IH0KKyAgICB1bnNpZ25lZCBtaWxsaXNlY29uZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbWlsbGlzZWNvbmQ7IH0KKyAgICB1bnNpZ25lZCBtaW51dGUoKSBjb25zdCB7IHJldHVybiBt
X21pbnV0ZTsgfQorICAgIHVuc2lnbmVkIG1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250aDsg
fQorICAgIHVuc2lnbmVkIHNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25kOyB9CisgICAg
dW5zaWduZWQgd2Vla09mWWVhcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vla09mWWVhcjsgfQorICAg
IHVuc2lnbmVkIHllYXIoKSBjb25zdCB7IHJldHVybiBtX3llYXI7IH0KKworICAgIGJvb2wgaGFz
QU1QTSgpIGNvbnN0IHsgcmV0dXJuIG1fYW1wbSAhPSBBTVBNVmFsdWVFbXB0eTsgfQorICAgIGJv
b2wgaGFzRGF5T2ZNb250aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF5T2ZNb250aCAhPSBlbXB0eVZh
bHVlOyB9CisgICAgYm9vbCBoYXNIb3VyKCkgY29uc3QgeyByZXR1cm4gbV9ob3VyICE9IGVtcHR5
VmFsdWU7IH0KKyAgICBib29sIGhhc01pbGxpc2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9taWxs
aXNlY29uZCAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNNaW51dGUoKSBjb25zdCB7IHJl
dHVybiBtX21pbnV0ZSAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNNb250aCgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9udGggIT0gZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFzU2Vjb25kKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWNvbmQgIT0gZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFzV2Vl
a09mWWVhcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vla09mWWVhciAhPSBlbXB0eVZhbHVlOyB9Cisg
ICAgYm9vbCBoYXNZZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyICE9IGVtcHR5VmFsdWU7IH0K
KworICAgIHZvaWQgc2V0QU1QTShBTVBNVmFsdWUgYW1wbSkgeyBtX2FtcG0gPSBhbXBtOyB9Cisg
ICAgdm9pZCBzZXREYXlPZk1vbnRoKHVuc2lnbmVkIGRheU9mTW9udGgpIHsgbV9kYXlPZk1vbnRo
ID0gZGF5T2ZNb250aDsgfQorICAgIHZvaWQgc2V0SG91cih1bnNpZ25lZCBob3VyMTIpIHsgbV9o
b3VyID0gaG91cjEyOyB9CisgICAgdm9pZCBzZXRNaWxsaXNlY29uZCh1bnNpZ25lZCBtaWxsaXNl
Y29uZCkgeyBtX21pbGxpc2Vjb25kID0gbWlsbGlzZWNvbmQ7IH0KKyAgICB2b2lkIHNldE1pbnV0
ZSh1bnNpZ25lZCBtaW51dGUpIHsgbV9taW51dGUgPSBtaW51dGU7IH0KKyAgICB2b2lkIHNldE1v
bnRoKHVuc2lnbmVkIG1vbnRoKSB7IG1fbW9udGggPSBtb250aDsgfQorICAgIHZvaWQgc2V0U2Vj
b25kKHVuc2lnbmVkIHNlY29uZCkgeyBtX3NlY29uZCA9IHNlY29uZDsgfQorICAgIHZvaWQgc2V0
V2Vla09mWWVhcih1bnNpZ25lZCB3ZWVrT2ZZZWFyKSB7IG1fd2Vla09mWWVhciA9IHdlZWtPZlll
YXI7IH0KKyAgICB2b2lkIHNldFllYXIodW5zaWduZWQgeWVhcikgeyBtX3llYXIgPSB5ZWFyOyB9
CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV95ZWFyOworICAgIHVuc2lnbmVkIG1fbW9udGg7
CisgICAgdW5zaWduZWQgbV9kYXlPZk1vbnRoOworICAgIHVuc2lnbmVkIG1faG91cjsKKyAgICB1
bnNpZ25lZCBtX21pbnV0ZTsKKyAgICB1bnNpZ25lZCBtX3NlY29uZDsKKyAgICB1bnNpZ25lZCBt
X21pbGxpc2Vjb25kOworICAgIHVuc2lnbmVkIG1fd2Vla09mWWVhcjsKKyAgICBBTVBNVmFsdWUg
bV9hbXBtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZWRkMTJlN2E2Njc5YmQzODU5
ZWUwY2ZjMWE1MDMxNDI0NzY3MGRmMy4uMzU2OWVjOWU2YWUzYzRkZTcwNTZkZjQ0YmJjMWNkYzc3
ZWRjZTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC00Miw3ICs0
Miw5IEBACiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzU3RhdGUu
aCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCisjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
I2VuZGlmCkBAIC0yNTksNiArMjYxLDI1IEBAIGJvb2wgVGltZUlucHV0VHlwZTo6aXNUZXh0Rmll
bGQoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBUaW1lSW5wdXRUeXBlOjpy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKK3sK
KyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIERh
dGVDb21wb25lbnRzIGRhdGU7CisgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGNy
ZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVwKS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRh
dGUpOworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZmllbGRzID0gRGF0ZVRpbWVGaWVsZHNTdGF0
ZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoc3RhdGUpOworICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoZmllbGRzLCBkYXRlKTsKKyAgICBl
bGVtZW50KCktPnNldFZhbHVlSW50ZXJuYWwoc2VyaWFsaXplKERlY2ltYWw6OmZyb21Eb3VibGUo
bV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1ZUFzRG91YmxlKCkpKSwgRGlzcGF0Y2hOb0V2ZW50
KTsKK30KKworRm9ybUNvbnRyb2xTdGF0ZSBUaW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xT
dGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAg
IHJldHVybiBGb3JtQ29udHJvbFN0YXRlKCk7CisKKyAgICByZXR1cm4gbV9kYXRlVGltZUVkaXRF
bGVtZW50LT52YWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpLnNhdmVGb3JtQ29udHJvbFN0YXRl
KCk7Cit9CisKIHZvaWQgVGltZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5p
dGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZl
bnRCZWhhdmlvcikKIHsKICAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2
YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUu
aAppbmRleCBhY2Q1N2IzNGRlN2MzNzRkNTdlOTliOGJkNTdlZjMyZTFhZTYyOWUzLi4wNzg3YzNh
MjE1YjcxZDZhYzg3MzBmOGRkYjA4OGNiZGU4NjhkZTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuaApAQCAtOTQsNiArOTQsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1RleHRGaWVsZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBtaW5P
ck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2
b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVS
UklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9s
U3RhdGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ip
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRlQ2hh
bmdlZCgpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCAxMWMxNjIwNzI5NzU0ZTAwNDI1ZjM1Yzc0
YWFlNTg2YTQ1ZTc5NTE4Li43OWEwN2Y5OWViOTIwZmE5MDZkZjkzZmIyYTcyY2ViNjlkODRhM2Jl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIK
ICNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZp
ZWxkc1N0YXRlLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlICJEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCkBA
IC00MTAsNiArNDExLDEyIEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDCiAgICAgICAgIG1fZmll
bGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZShkYXRlKTsKIH0KIAordm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGlt
ZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkcywgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVG
b3JSZWFkT25seUZpZWxkKQoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVs
ZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRz
W2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShkYXRlVGltZUZpZWxk
cywgZGF0ZUZvclJlYWRPbmx5RmllbGQpOworfQorCiB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNldEVtcHR5VmFsdWUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKIHsKICAgICBsYXlvdXQoc3RlcFJhbmdlLCBk
YXRlRm9yUmVhZE9ubHlGaWVsZCk7CkBAIC00NTEsNiArNDU4LDE0IEBAIHZvaWQgRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6dXBkYXRlVUlTdGF0ZSgpCiAgICAgfQogfQogCitEYXRlVGltZUZpZWxkc1N0
YXRlIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKCkgY29u
c3QKK3sKKyAgICBEYXRlVGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzOworICAgIGZvciAo
c2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2Zp
ZWxkSW5kZXgpCisgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5wb3B1bGF0ZURhdGVUaW1l
RmllbGRzU3RhdGUoZGF0ZVRpbWVGaWVsZHMpOworICAgIHJldHVybiBkYXRlVGltZUZpZWxkczsK
K30KKwogZG91YmxlIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlQXNEb3VibGUoKSBjb25zdAog
ewogICAgIGRvdWJsZSB2YWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmgKaW5kZXggOGU2ZWIxMWNlZDFiNzg1YjI0ZDY5Nzc2MjBm
ZWE0ZjA3NjJhZTNmNi4uMDc2YWQ4YjQ4ZDA3OWVmOTU1NDVmNjk0Mjg3MjA2YTAyMGZiOGJlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
aApAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVDb21w
b25lbnRzOwogY2xhc3MgRGF0ZVRpbWVFZGl0TGF5b3V0ZXI7CitjbGFzcyBEYXRlVGltZUZpZWxk
c1N0YXRlOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNlRXZlbnQ7CiBjbGFzcyBT
dGVwUmFuZ2U7CkBAIC03MSw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0RmllbGRz
KCk7CiAgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVD
b21wb25lbnRzJiAgZGF0ZUZvclJlYWRPbmx5RmllbGQpOwogICAgIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIHNl
dFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgIERhdGVUaW1l
RmllbGRzU3RhdGUgdmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBjb25zdDsKICAgICBkb3Vi
bGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKaW5kZXggZWQyOTdjY2EyMzI2
YjcwN2FkOTI4NDA3ZmQ1YmE0M2EzMjgwNTc1MC4uZThkMjVjZjkxODI1MDkzNTkzMzY0Yjk4NmE2
MmI1NGZkNDE4ZDBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERhdGVDb21wb25lbnRzOworY2xhc3MgRGF0ZVRpbWVGaWVsZHNTdGF0ZTsKIAog
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgaXMgYmFzZSBjbGFzcyBvZiBkYXRlIHRpbWUgZmllbGQg
ZWxlbWVudC4KIGNsYXNzIERhdGVUaW1lRmllbGRFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50
IHsKQEAgLTU5LDEwICs2MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUo
KSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgPSAw
OwogICAgIHZvaWQgcmVtb3ZlRXZlbnRIYW5kbGVyKCkgeyBtX2ZpZWxkT3duZXIgPSAwOyB9CiAg
ICAgdm9pZCBzZXRSZWFkT25seSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9
IERpc3BhdGNoTm9FdmVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0IERhdGVD
b21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0
ZXBVcCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuY3BwCmluZGV4IGFkNGNiMDYwZjI4ZWJmODYwZTZkMDAzZWNkZDQ3YTZi
MzlhNTQ1OGMuLjM1NThmZmI0ODE0YzQ5MWFhYzJmN2EzODljZmQ1ODk1YTkwMzc4MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRz
LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50cy5o
IgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxk
c1N0YXRlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9E
YXRlTWF0aC5oPgogCkBAIC00NiwxMSArNDcsMjcgQEAgUGFzc1JlZlB0cjxEYXRlVGltZUFNUE1G
aWVsZEVsZW1lbnQ+IERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50Kgog
ICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVBTVBNRmllbGRF
bGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYg
ZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKK3sKKyAgICBpZiAoaGFzVmFsdWUoKSkKKyAgICAgICAgZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5zZXRBTVBNKHZhbHVlQXNJbnRlZ2VyKCkgPyBEYXRlVGltZUZpZWxk
c1N0YXRlOjpBTVBNVmFsdWVQTSA6IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZUFNKTsK
KyAgICBlbHNlCisgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0QU1QTShEYXRlVGltZUZp
ZWxkc1N0YXRlOjpBTVBNVmFsdWVFbXB0eSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVBTVBNRmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKIHsKICAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLmhvdXIoKSA+PSAxMiA/IDEgOiAwKTsKIH0KIAordm9p
ZCBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRl
KGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUsIGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKK3sKKyAgICBpZiAoZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oYXNBTVBNKCkpCisgICAgICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGVUaW1l
RmllbGRzU3RhdGUuYW1wbSgpKTsKKyAgICBlbHNlCisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0
ZUZvclJlYWRPbmx5RmllbGQpOworfQorCiBkb3VibGUgRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50
Ojp1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1zUGVySG91ciAqIDEy
OwpAQCAtNzMsMTEgKzkwLDc4IEBAIFBhc3NSZWZQdHI8RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50
PiBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCoKICAgICByZXR1cm4g
ZmllbGQucmVsZWFzZSgpOwogfQogCit2b2lkIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6cG9w
dWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmll
bGRzU3RhdGUpCit7CisgICAgaWYgKCFoYXNWYWx1ZSgpKSB7CisgICAgICAgIGRhdGVUaW1lRmll
bGRzU3RhdGUuc2V0SG91cihEYXRlVGltZUZpZWxkc1N0YXRlOjplbXB0eVZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGludCB2YWx1ZSA9IERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKTsKKworICAgIHN3aXRjaCAobWF4aW11bSgp
KSB7CisgICAgY2FzZSAxMToKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRIb3VyKHZh
bHVlID8gdmFsdWUgOiAxMik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIDEyOgorICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldEhvdXIodmFsdWUpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSAyMzoKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRIb3VyKHZhbHVlID8g
dmFsdWUgJSAxMiA6IDEyKTsKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRBTVBNKHZh
bHVlID49IDEyID8gRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlUE0gOiBEYXRlVGltZUZp
ZWxkc1N0YXRlOjpBTVBNVmFsdWVBTSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIDI0Ogor
ICAgICAgICBpZiAodmFsdWUgPT0gMjQpIHsKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3Rh
dGUuc2V0SG91cigxMik7CisgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldEhvdXIo
RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlQU0pOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0SG91cih2YWx1ZSA9PSAx
MiA/IDEyIDogdmFsdWUgJSAxMik7CisgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0QU1Q
TSh2YWx1ZSA+PSAxMiA/IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZVBNIDogRGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlQU0pOworICAgICAgICByZXR1cm47CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCiB2b2lkIERhdGVU
aW1lSG91ckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGUpCiB7CiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5ob3VyKCkpOwogfQogCit2b2lk
IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQoreworICAgIGlmICghZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oYXNIb3VyKCkpIHsKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVh
ZE9ubHlGaWVsZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBpbnQgaG91
cjEyID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyKCk7CisKKyAgICBzd2l0Y2ggKG1heGltdW0o
KSkgeworICAgIGNhc2UgMTE6CisgICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0ludGVnZXIoaG91cjEyICUgMTIpOworICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSAxMjoKKyAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50
ZWdlcihob3VyMTIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSAyMzoKKyAgICAgICAgaWYg
KGRhdGVUaW1lRmllbGRzU3RhdGUuYW1wbSgpID09IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1W
YWx1ZVBNKQorICAgICAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzSW50ZWdlcigoaG91cjEyICsgMTIpICUgMjQpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMiAl
IDEyKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgMjQ6CisgICAgICAgIGlmIChkYXRlVGlt
ZUZpZWxkc1N0YXRlLmFtcG0oKSA9PSBEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBNVmFsdWVQTSkK
KyAgICAgICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIoaG91cjEyID09IDEyID8gMTIgOiBob3VyMTIgKyAxMik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaG91
cjEyKTsKKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KK30KKwogdm9pZCBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNl
dFZhbHVlQXNJbnRlZ2VyKGludCB2YWx1ZUFzSG91cjIzLCBFdmVudEJlaGF2aW9yIGV2ZW50QmVo
YXZpb3IpCiB7CiAgICAgY29uc3QgaW50IHZhbHVlID0gUmFuZ2UoMCwgMjMpLmNsYW1wVmFsdWUo
dmFsdWVBc0hvdXIyMykgJSBtX2FsaWdubWVudDsKQEAgLTEwOSwxMSArMTkzLDI0IEBAIFBhc3NS
ZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaWxsaXNlY29u
ZEZpZWxkRWxlbWVudDo6Y3JlCiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKIH0KIAordm9p
ZCBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRz
U3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKK3sKKyAgICBk
YXRlVGltZUZpZWxkc1N0YXRlLnNldE1pbGxpc2Vjb25kKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50
ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0
ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGUpCiB7CiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5taWxsaXNlY29u
ZCgpKTsKIH0KIAordm9pZCBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGlt
ZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQp
Cit7CisgICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTWlsbGlzZWNvbmQoKSkKKyAgICAg
ICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taWxsaXNlY29uZCgpKTsK
KyAgICBlbHNlCisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOwor
fQorCiBkb3VibGUgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6dW5pdEluTWlsbGlz
ZWNvbmQoKSBjb25zdAogewogICAgIHJldHVybiAxOwpAQCAtMTM0LDExICsyMzEsMjQgQEAgUGFz
c1JlZlB0cjxEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWUKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQogCit2
b2lkIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3Rh
dGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKK3sKKyAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLnNldE1pbnV0ZShoYXNWYWx1ZSgpID8gdmFsdWVBc0ludGVnZXIoKSA6
IERhdGVUaW1lRmllbGRzU3RhdGU6OmVtcHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lTWlu
dXRlRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0
ZSkKIHsKICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLm1pbnV0ZSgpKTsKIH0KIAordm9pZCBE
YXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQoreworICAgIGlmIChkYXRlVGltZUZp
ZWxkc1N0YXRlLmhhc01pbnV0ZSgpKQorICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlVGlt
ZUZpZWxkc1N0YXRlLm1pbnV0ZSgpKTsKKyAgICBlbHNlCisgICAgICAgIHNldEVtcHR5VmFsdWUo
ZGF0ZUZvclJlYWRPbmx5RmllbGQpOworfQorCiBkb3VibGUgRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OnVuaXRJbk1pbGxpc2Vjb25kKCkgY29uc3QKIHsKICAgICByZXR1cm4gbXNQZXJNaW51
dGU7CkBAIC0xNTksMTEgKzI2OSwyNCBAQCBQYXNzUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRF
bGVtZW50PiBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZQogICAgIHJl
dHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1l
bnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRl
VGltZUZpZWxkc1N0YXRlKQoreworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0U2Vjb25kKGhh
c1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlW
YWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2Vy
KGRhdGUuc2Vjb25kKCkpOwogfQogCit2b2lkIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBk
YXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5
RmllbGQpCit7CisgICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzU2Vjb25kKCkpCisgICAg
ICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGVUaW1lRmllbGRzU3RhdGUuc2Vjb25kKCkpOworICAg
IGVsc2UKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7Cit9CisK
IGRvdWJsZSBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6dW5pdEluTWlsbGlzZWNvbmQoKSBj
b25zdAogewogICAgIHJldHVybiBtc1BlclNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKaW5kZXggZDdmNGQ5NTM4MDM4NWUw
Y2QyYTFlMDgwM2E5ZWZkNTgwODRhMGE4NC4uZTE0MWY4MzhmMTc3ZGEyOWRiMTAwMmI0MWViZjAx
ZjY1NGJmYmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmgKQEAgLTQyLDcgKzQyLDkgQEAgcHJpdmF0ZToKICAgICBEYXRlVGlt
ZUFNUE1GaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29uc3QgVmVjdG9yPFN0
cmluZz4mKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KKyAgICB2
aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3Rh
dGUmKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29u
c3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCBkb3VibGUgdW5pdEluTWlsbGlzZWNvbmQoKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKIH07CiAKQEAgLTYzLDcgKzY1LDkgQEAgcHJpdmF0ZToKICAgICBEYXRlVGltZUhvdXJG
aWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhp
bXVtKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KKyAgICB2aXJ0
dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUm
KSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkgT1ZFUlJJREUgRklOQUw7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERp
c3BhdGNoTm9FdmVudCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBkb3VibGUgdW5pdElu
TWlsbGlzZWNvbmQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGludCB2YWx1
ZUFzSW50ZWdlcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwpAQCAtODEsNyArODUsOSBAQCBwcml2
YXRlOgogICAgIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVs
ZE93bmVyJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0
YXRlJikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNv
bnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFM
OwogICAgIHZpcnR1YWwgZG91YmxlIHVuaXRJbk1pbGxpc2Vjb25kKCkgY29uc3QgT1ZFUlJJREUg
RklOQUw7CiB9OwogCkBAIC05NSw3ICsxMDEsOSBAQCBwcml2YXRlOgogICAgIERhdGVUaW1lTWlu
dXRlRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOwogCiAgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVG
b3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGRvdWJsZSB1bml0
SW5NaWxsaXNlY29uZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogfTsKIApAQCAtMTA5LDcgKzEx
Nyw5IEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQq
LCBGaWVsZE93bmVyJik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMu
CisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZp
ZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3Rh
dGUmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURF
IEZJTkFMOwogICAgIHZpcnR1YWwgZG91YmxlIHVuaXRJbk1pbGxpc2Vjb25kKCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDdjNzNmMWI4NjA2NDRmNThh
ODJiNTc3M2UxY2RkY2ViZmQ1NzJlOWMuLjI4ZjJiOWU0OTg1ODA1MTAzNDc5Y2QwMmRiZGE0OTI1
YjdlY2EyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC01Nyw2ICs1Nyw4IEBAIHByb3RlY3RlZDoK
IAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIGJv
b2wgaGFzVmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCBtYXhp
bXVtKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFs
dWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2
aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OwpAQCAtNjUsOSArNjcsNyBAQCBwcml2YXRlOgogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50
IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1cigpIE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGludCBtYXhpbXVtKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CiAgICAgdmlydHVhbCBpbnQgbWluaW11bSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9y
UmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvcikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVh
bCB2b2lkIHN0ZXBEb3duKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHN0ZXBV
cCgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgT1ZF
UlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKaW5kZXggN2M1ZjY3Yjg5Y2NmMGFmNWNkMzAw
YmI3MTU0OWRjOTY0Njc1NDgzMy4uY2IwYWMxZTdiYjI4NWU1YzU0ZGYyMjEzNGFmNzVkYTRiZTE5
N2YzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApAQCAtMzgsNyArMzgsMTAgQEAgY2xhc3MgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CiAK
IHByb3RlY3RlZDoKICAgICBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50Kiwg
RmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisgICAgdmlydHVhbCBib29sIGhh
c1ZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldEVtcHR5
VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJl
aGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBpbnQgaW52YWxp
ZEluZGV4ID0gLTE7CkBAIC00OCwxNCArNTEsMTEgQEAgcHJpdmF0ZToKIAogICAgIC8vIERhdGVU
aW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9h
cmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29s
IGhhc1ZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBpbnQgbWF4aW11
bSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgaW50IG1pbmltdW0oKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBE
YXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQsIEV2ZW50QmVoYXZpb3IgPSBEaXNw
YXRjaE5vRXZlbnQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwRG93bigp
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwVXAoKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAg
IHZpcnR1YWwgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAg
dmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAKICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDE4NmNiZjdmYjBkN2Vh
MjViZjYwM2Y5YTE5NDJjMDc5M2RlZjBjNi4uNTRjYmRlNWRiMmFlYWIyNDdjNDg4ZjI4NTI3ZDEw
MGFlMjgxZGQxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA5LTE0ICBZb3NoaWZ1bWkg
SW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBtdWx0aXBsZSBm
aWVsZHMgdGltZSBpbnB1dCBVSSBzaG91bGQgc2F2ZS9yZXN0b3JlIGl0cyB2YWx1ZSBldmVuIGlm
IGl0IGhhcyBhbiBlbXB0eSBmaWVsZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk2NzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRpbWUtbXVsdGlwbGUtZmllbGRzLXBy
ZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFjay5odG1sCisgICAgICAgIHRvIGNoZWNrIHBh
cnRpYWwgdmFsdWUgaXMgc2F2ZWQgYW5kIHJlc3RvcmVkIHJhdGhlciB0aGFuIHJlc2V0dGluZyB2
YWx1ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGFmZmVjdHMgcG9ydHMgd2hpY2ggZW5hYmxlIGJv
dGggRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBhbmQKKyAgICAgICAgRU5BQkxFX0lOUFVUX1RZUEVf
VElNRV9NVUxUSVBMRV9GSUVMRFMuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlw
bGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3Rv
cnktYmFjay1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZm9yIG5ldyBleHBlY3RhdGlvbi4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRz
LXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFjay5odG1sOiBDaGFuZ2VkIHRvIGNoZWNr
IHBhcnRpYWxseSBwb3B1bGF0ZWQgZmllbGRzIG9mIGlucHV0IGVsZW1lbnQuCisKIDIwMTItMDkt
MTMgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgbGlu
ZXMgZm9yIGZhc3QvdGFibGUvYmFkLXJlcGxhY2VkLXNpemluZy1wcmVmZXJyZWQtbG9naWNhbC13
aWR0aHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0
b3J5LWJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0
b3J5LWJhY2stZXhwZWN0ZWQudHh0CmluZGV4IGYxOTg2NjBmYTgxZDVmYTBiN2IyMzQ5ZGEyZjAy
MzliMjkyMDU4ZTQuLjA1ODQ1N2RiNTljMTZjNTU1OTcyMzMxMWRmMmEyYjkzNmYzNzJiMDcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRz
L3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFjay1l
eHBlY3RlZC50eHQKQEAgLTYsMTEgKzYsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFdl
bnQgYmFjayB0byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIGZ1
bGwgdmFsdWU6CiBQQVNTICIwMTowMSIgaXMgIjAxOjAxIgogV2VudCBiYWNrIHRvIGEgcGFnZS4g
Q2hlY2tpbmcgYSBmb3JtIGNvbnRyb2wgd2hpY2ggaGFkIGEgcGFydGlhbCB2YWx1ZToKLVBBU1Mg
IiIgaXMgIiIKK1BBU1MgIjAxOi0tIEFNIiBpcyAiMDE6LS0gQU0iCiBXZW50IGZvcndhcmQgdG8g
YSBwYWdlLiBDaGVja2luZyBhIGZvcm0gY29udHJvbCB3aGljaCBoYWQgYSBmdWxsIHZhbHVlOgog
UEFTUyAiMDI6MDIiIGlzICIwMjowMiIKIFdlbnQgZm9yd2FyZCB0byBhIHBhZ2UuIENoZWNraW5n
IGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRpYWwgdmFsdWU6Ci1QQVNTICIiIGlzICIi
CitQQVNTICItLTo1OSAtLSIgaXMgIi0tOjU5IC0tIgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlz
dG9yeS1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmll
bGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFj
ay5odG1sCmluZGV4IDI2OThmZGNiYjA2ZDkyMGYwYzFlM2YzMmQwMDJmZjk4ZmJiNjhmMWMuLmZj
ZjczMTVlY2QzZTFlYWEyNzMwMDk1OWZhNzRlMTQ4YWZmYmI0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVs
ZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1w
cmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2suaHRtbApAQCAtMzQsNiArMzQsMTQgQEAg
ZnVuY3Rpb24gZmFpbGVkKG1lc3NhZ2UpIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAorZnVu
Y3Rpb24gZmllbGRzVGV4dChpbnB1dCkKK3sKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHJldHVybiAiIjsKKyAgICB2YXIgZWRpdEVsZW1lbnQgPSB3aW5kb3cuaW50ZXJuYWxz
Lm9sZGVzdFNoYWRvd1Jvb3QoaW5wdXQpOworICAgIHJldHVybiBlZGl0RWxlbWVudC50ZXh0Q29u
dGVudDsKK30KKwogZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICBydW5UZXN0Q2FzZXMoKTsK
ICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b250YWluZXInKSk7CkBAIC03Miw2ICs4MCw5IEBAIGNhc2UgJz9wYWdlMSc6CiAgICAgICAgIHRl
c3RJbnB1dDEudmFsdWUgPSAnMDE6MDEnOwogICAgICAgICB0ZXN0SW5wdXQyLmZvY3VzKCk7CiAg
ICAgICAgIGtleURvd24oJ3VwQXJyb3cnKTsKKyAgICAgICAga2V5RG93bignXHQnKTsKKyAgICAg
ICAga2V5RG93bignXHQnKTsKKyAgICAgICAga2V5RG93bigndXBBcnJvdycpOwogICAgICAgICB2
YXIgbmV4dFVyaSA9IGxvY2F0aW9uLnRvU3RyaW5nKCkucmVwbGFjZSgnP3BhZ2UxJywgJz9wYWdl
MicpOwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgd2luZG93LmxvY2F0aW9uLmhy
ZWYgPSBuZXh0VXJpOyB9LCAwKTsKICAgICAgICAgYnJlYWs7CkBAIC04NCw4ICs5NSw4IEBAIGNh
c2UgJz9wYWdlMSc6CiAgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6ICcwMTowMScgfSwKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIDogJ1dlbnQgYmFjayB0
byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRpYWwgdmFs
dWUnLAotICAgICAgICAgICAgICAgICdhY3R1YWwnIDogdGVzdElucHV0Mi52YWx1ZSwKLSAgICAg
ICAgICAgICAgICAnZXhwZWN0ZWQnIDogJycKKyAgICAgICAgICAgICAgICAnYWN0dWFsJyA6IGZp
ZWxkc1RleHQodGVzdElucHV0MiksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6ICcwMTot
LSBBTScKICAgICAgICAgICAgIH0pOwogICAgICAgICBmb3J3YXJkKCdmb3J3YXJkVG8yJyk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTAyLDcgKzExMyw4IEBAIGNhc2UgJz9wYWdlMic6CiAgICAgY2Fz
ZSAnZGlyZWN0JzoKICAgICAgICAgdGVzdElucHV0MS52YWx1ZSA9ICcwMjowMic7CiAgICAgICAg
IHRlc3RJbnB1dDIuZm9jdXMoKTsKLSAgICAgICAga2V5RG93bigndXBBcnJvdycpOworICAgICAg
ICBrZXlEb3duKCdcdCcpOworICAgICAgICBrZXlEb3duKCdkb3duQXJyb3cnKTsKICAgICAgICAg
YmFjaygnYmFja1RvMScpOwogICAgICAgICBicmVhazsKICAgICBjYXNlICdmb3J3YXJkVG8yJzoK
QEAgLTExNCw4ICsxMjYsOCBAQCBjYXNlICc/cGFnZTInOgogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIDogJ1dlbnQgZm9yd2FyZCB0
byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBjb250cm9sIHdoaWNoIGhhZCBhIHBhcnRpYWwgdmFs
dWUnLAotICAgICAgICAgICAgICAgICdhY3R1YWwnIDogdGVzdElucHV0Mi52YWx1ZSwKLSAgICAg
ICAgICAgICAgICAnZXhwZWN0ZWQnIDogJycKKyAgICAgICAgICAgICAgICAnYWN0dWFsJyA6IGZp
ZWxkc1RleHQodGVzdElucHV0MiksCisgICAgICAgICAgICAgICAgJ2V4cGVjdGVkJyA6ICctLTo1
OSAtLScKICAgICAgICAgICAgIH0pOwogICAgICAgICBiYWNrKCdiYWNrVG8xU2Vjb25kJyk7CiAg
ICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164082</attachid>
            <date>2012-09-14 03:00:44 -0700</date>
            <delta_ts>2012-09-14 03:08:38 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-96714-20120914190015.patch</filename>
            <type>text/plain</type>
            <size>43032</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhYzM3NmU3ZGE1YzAz
ZDlmZmE2ZTc5NzkwNjQyODU3YWNmOGFjYy4uNzk4MjZlMTMxOGU5YTZiNTQ1YWQyNDE2NGY2NDcx
NzdjNjgxZTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxMi0wOS0xNCAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gbXVs
dGlwbGUgZmllbGRzIHRpbWUgaW5wdXQgVUkgc2hvdWxkIHNhdmUvcmVzdG9yZSBpdHMgdmFsdWUg
ZXZlbiBpZiBpdCBoYXMgYW4gZW1wdHkgZmllbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBtdWx0aXBsZSBmaWVsZHMg
dGltZSBpbnB1dCBVSSB0byBzYXZlL3Jlc3RvcmUgdmFsdWUKKyAgICAgICAgb2YgZmllbGRzIHJh
dGhlciB0aGFuIHRpbWUgdmFsdWUuIEZvciB0aGlzIGNoYW5nZSwgc3RvcmFnZSBmb3JtYXQgb2YK
KyAgICAgICAgaW5wdXQgdHlwZSAidGltZSIgaXMgYWxzbyBjaGFuZ2VkLgorCisgICAgICAgIEJl
Zm9yZSB0aGlzIHBhdGNoLCBpZiB1c2VyIHBvcHVsYXRlcyB0aW1lIGZpZWxzIHBhcnRpYWxseSwg
YWxsIGZpZWxkcworICAgICAgICBhcmUgcmVzZXQgdG8gaW5pdGlhbCB2YWx1ZSBhZnRlciBiYWNr
L2ZvcndhcmQgbmF2aWdhdGlvbi4KKworICAgICAgICBBZnRlciB0aGlzIHBhdGNoLCBwYXJ0aWFs
bHkgcG9wdWxhdGVkIGZpZWxkcyBhcmUgcHJlc2VydmVkIGFmdGVyCisgICAgICAgIGJhY2svZm9y
d2FyZCBuYXZpZ2F0aW9uLgorCisgICAgICAgIEZpZWxkcyBvZiBEYXRlVGltZUVkaXRFbGVtZW50
IGFyZSByZXByZXNlbnRlZCBhcyA5IGVsZW1lbnRzIG9mCisgICAgICAgIHN0cmluZyB2ZWN0b3Ig
aW4gRm9ybUNvbnRyb2xTdGF0ZSByZWdhcmRsZXNzIGFjdHVhbCBmaWVsZHMgaW4KKyAgICAgICAg
RGF0ZVRpbWVFZGl0RWxlbWVudCBmb3IgZWFzZSBvZiByZXN0b3Jpbmcvc2F2aW5nLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggYWZmZWN0cyBwb3J0cyB3aGljaCBlbmFibGUgYm90aCBFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FIGFuZAorICAgICAgICBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExF
X0ZJRUxEUy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4aXN0aW5nIHRlc3QgZmFzdC9mb3Jt
cy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1
ZS1hZnRlci1oaXN0b3J5LWJhY2suaHRtbAorICAgICAgICBjb252ZXJzIHRoaXMgY2hhbmdlLgor
CisgICAgICAgICogV2ViQ29yZS5neXBpOiBDaGFnbmVkIHRvIGFkZCBEYXRlVGltZUZpZWxkc1N0
YXRlLntjcHAuaH0KKyAgICAgICAgKiBodG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKTogRXh0
cmFjdHMgdW5zaWduZWQgaW50ZWdlciBvciBlbXB0eSB2YWx1ZSBmcm9tIEZvcm1Db250cm9sU3Rh
dGUuCisgICAgICAgIChXZWJDb3JlOjpnZXRBTVBNRnJvbUZvcm1Db250cm9sU3RhdGUpOiBFeHRy
YWN0cyBBTS9QTSB2YWx1ZSBvciBlbXB0eSB2YWx1ZSBmcm9tIEZvcm1Db250cm9sU3RhdGUuCisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpEYXRlVGltZUZpZWxkc1N0YXRl
KTogSW5pdGlhbGl6ZXMgZmllbGRzIHdpdGggZW1wdHkgdmFsdWUuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkc1N0YXRlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IE1ha2VzIERh
dGVUaW1lRmllbGRzU3RhdGUgaW5zdGFuY2UgZnJvbSBGb3JtQ29udHJvbFN0YXRlLgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBN
YWtlcyBGb3JtQ29udHJvbFN0YXRlIGZyb20gRGF0ZVRpbWVGaWVsZHNTdGF0ZS4KKyAgICAgICAg
KiBodG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuaDogQWRkZWQuCisgICAgICAgIChEYXRlVGltZUZp
ZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OmFtcG0p
OiBSZXR1cm5zIEFNL1BNIGZpZWxkIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVG
aWVsZHNTdGF0ZTo6ZGF5T2ZNb250aCk6IFJldHVybnMgZGF5IG9mIG1vbnRoIGZpZWxkIHZhbHVl
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6aG91cik6IFJldXRybnMg
aG91ciBmaWVsZCB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6
Om1pbGxpc2Vjb25kKTogUmV0dXJucyBtaWxsaXNlY29uZCBmaWVsZCB2YWx1ZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Om1pbnV0ZSk6IFJldHVybnMgbWludXRlIGZp
ZWxkIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6bW9udGgp
OiBSZXR1cm5zIG1vbnRoIGZpZWxkIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVG
aWVsZHNTdGF0ZTo6c2Vjb25kKTogUmV0dXJucyBzZWNvbmQgZmllbGQgdmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjp3ZWVrT2ZZZWFyKTogUmV0dXJucyB3ZWVr
IG9mIHllYXIgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjp5
ZWFyKTogUmV0dXJucyB5ZWFyIGZpZWxkIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6aGFzQU1QTSk6IFJldHVybnMgdHJ1ZSBpZiBBTS9QTSBmaWVsZCBoYXMg
dmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpoYXNEYXlPZk1v
bnRoKTogUmV0dXJucyB0cnVlIGlmIGRheSBvZiBtb250aCBmaWVsZCBoYXMgdmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpoYXNIb3VyKTogUmV0dXJucyB0cnVl
IGlmIGhvdXIgZmllbGQgaGFzIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVs
ZHNTdGF0ZTo6aGFzTWlsbGlzZWNvbmQpOiBSZXR1cm5zIHRydWUgaWYgbWlsbGlzZWNvbmQgZmll
bGQgaGFzIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6aGFz
TWludXRlKTogUmV0dXJucyB0cnVlIGlmIG1pbnV0ZSBmaWVsZCBoYXMgdmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpoYXNNb250aCk6IFJldHVybnMgdHJ1ZSBp
ZiBtb250aCBmaWVsZCBoYXMgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxk
c1N0YXRlOjpoYXNTZWNvbmQpOiBSZXR1cm5zIHRydWUgaWYgc2Vjb25kIGZpZWxkIGhhcyB2YWx1
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc1dlZWtPZlllYXIp
OiBSZXR1cm5zIHRydWUgaWYgd2VlayBvZiB5ZWFyIGZpZWxkIGhhcyB2YWx1ZS4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc1llYXIpOiBSZXR1cm5zIHRydWUgaWYg
eWVhciBmaWVsZCBoYXMgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0
YXRlOjpzZXRBTVBNKTogU2V0cyBBTS9QTSBmaWVsZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRmllbGRzU3RhdGU6OnNldERheU9mTW9udGgpOiBTZXRzIGRheSBvZiBtb250aCBmaWVsZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OnNldEhvdXIpOiBTZXRzIGhv
dXIgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpzZXRNaWxs
aXNlY29uZCk6IFNldHMgbWlsbGlzZWNvbmQgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc1N0YXRlOjpzZXRNaW51dGUpOiBTZXRzIG1pbnV0ZSBmaWVsZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OnNldE1vbnRoKTogU2V0cyBtb250aCBmaWVs
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OnNldFNlY29uZCk6IFNl
dCBzZWNvbmQgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkc1N0YXRlOjpz
ZXRXZWVrT2ZZZWFyKTogU2V0cyB3ZWVrIG9mIHllYXIgZmllbGQuCisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkc1N0YXRlOjpzZXRZZWFyKTogU2V0cyB5ZWFyIGZpZWxkLgorICAgICAg
ICAqIGh0bWwvRm9ybUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybVN0YXRl
U2lnbmF0dXJlKTogSW5jcmVtZW50IHZlcnNpb24gbnVtYmVyIHRvIDggZm9yIGluY29tcGF0aWJs
ZSBjaGFuZ2Ugb2YgRm9ybUNvbnRyb2xTdGF0ZS4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250
cm9sU3RhdGUpOiBBZGRlZCB0byBjYWxsIERhdGVUaW1lRmllbGRzU3RhdGU6OnJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKCkuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpzYXZlRm9y
bUNvbnRyb2xTdGF0ZSk6IEFkZGVkIHRvIGNhbGwgRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2F2ZUZv
cm1Db250cm9sU3RhdGUoKS4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKFRpbWVJbnB1dFR5cGUpOiBBZGRlZCBkZWNsYXJhdGlvbnMgZm9yIHJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKCkgYW5kIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkuCisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNl
dCBmaWVsZHMgZnJvbSBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUpOiBBZGRlZCB0byBt
YWtlIERhdGVUaW1lRmllbGRzU3RhdGUgZnJvbSBmaWVsZHMuCisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVFZGl0RWxlbWVudCk6
IEFkZGVkIGRlY2xhcmF0aW9ucyBmb3Igc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBh
bmQgdmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBB
ZGRlZCBkZWNsYXJhdGlvbnMgZm9yIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpIGFuZCBz
ZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpLgorICAgICAgICAqIGh0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUFNUE1G
aWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBB
TS9QTSB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFk
ZGVkIHRvIHNldCBmaWVsZCB2YWx1ZSBmcm9tIERhdGVUaW1lRmllbGRzU3RhdGUuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVs
ZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBob3VyIHZhbHVlIHRvIERhdGVUaW1lRmllbGRzU3RhdGUu
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNE
YXRlVGltZUZpZWxkc1N0YXRlKTogQWRkZWQgdG8gc2V0IGZpZWxkIHZhbHVlIGZyb20gRGF0ZVRp
bWVGaWVsZHNTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVs
ZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBtaWxs
aXNlY29uZCB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRz
U3RhdGUpOiBBZGRlZCB0byBzZXQgZmllbGQgdmFsdWUgZnJvbSBEYXRlVGltZUZpZWxkc1N0YXRl
LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OnBvcHVsYXRl
RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBtaW51dGUgdmFsdWUgdG8gRGF0ZVRp
bWVGaWVsZHNTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IEFkZGVkIHRvIHNldCBmaWVsZCB2
YWx1ZSBmcm9tIERhdGVUaW1lRmllbGRzU3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZVNlY29uZEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKTogQWRkZWQg
dG8gc2V0IHNlY29uZCB2YWx1ZSB0byBEYXRlVGltZUZpZWxkc1N0YXRlLgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxk
c1N0YXRlKTogQWRkZWQgdG8gc2V0IGZpZWxkIHZhbHVlIGZyb20gRGF0ZVRpbWVGaWVsZHNTdGF0
ZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaDoKKyAgICAg
ICAgKERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudCk6IEFkZGVkIGRlY2xhcmF0aW9ucyBvZiBwb3B1
bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoKSBhbmQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3Rh
dGUoKS4KKyAgICAgICAgKERhdGVUaW1lSG91ckZpZWxkRWxlbWVudCk6IGRpdHRvLgorICAgICAg
ICAoRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk6IGRpdHRvLgorICAgICAgICAoRGF0
ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQpOiBkaXR0by4KKyAgICAgICAgKERhdGVUaW1lU2Vjb25k
RmllbGRFbGVtZW50KTogZGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQp
OiBFeHRlbmQgYWNjZXNzaWJpbGl0eSBvZiBtYXhpbXVtKCkgYW5kIHNldEVtcHR5VmFsdWUoKSB0
byBwcm90ZWN0ZWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oOgorICAgICAgICAoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk6IEV4dGVu
ZCBhY2Nlc3NpYmlsaXR5IG9mIGhhc1ZhbHVlKCksIHNldEVtcHR5VmFsdWUoKSBhbmQgdmFsdWVB
c0ludGVnZXIoKSB0byBwcm90ZWN0ZWQuCisKIDIwMTItMDktMTMgIEpvc2h1YSBCZWxsICA8anNi
ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IENvbnNvbGlkYXRlIHR3by1w
aGFzZSBjb25uZWN0aW9uIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDA5MjU3MjVkMDY4N2IyYjM2ZjM3MDBmMmE1YjY2Y2E2Yjk5NzBkZjUuLmI2MTNlOTg1NmNi
YTJjZTNlYjA4OTNmODhmNzRiYzNkODQxMmYzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQwMjEs
NiArNDAyMSw4IEBACiAgICAgICAgICAgICAnaHRtbC9ET01VUkwuaCcsCiAgICAgICAgICAgICAn
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRlSW5wdXRUeXBl
LmgnLAorICAgICAgICAgICAgJ2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oJywKICAgICAgICAgICAgICdodG1sL0Rh
dGVUaW1lSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRlVGltZUlucHV0VHlw
ZS5oJywKICAgICAgICAgICAgICdodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIy
OTVmOGQxYjg3MWZiNTA0OTk3ZTY1NDA5ZWIxZmZhZjAzYWQ0MjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwCkBAIC0wLDAgKzEs
MTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAq
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRmll
bGRzU3RhdGUuaCIKKworI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIHVuc2lnbmVkIGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRl
KGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlLCBzaXplX3QgaW5kZXgpCit7CisgICAgaWYg
KGluZGV4ID49IHN0YXRlLnZhbHVlU2l6ZSgpKQorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGaWVs
ZHNTdGF0ZTo6ZW1wdHlWYWx1ZTsKKyAgICBib29sIHBhcnNlZDsKKyAgICB1bnNpZ25lZCBjb25z
dCB2YWx1ZSA9IHN0YXRlW2luZGV4XS50b1VJbnQoJnBhcnNlZCk7CisgICAgcmV0dXJuIHBhcnNl
ZCA/IHZhbHVlIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZTsKK30KKworc3RhdGlj
IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZSBnZXRBTVBNRnJvbUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUsIHNpemVfdCBpbmRleCkKK3sKKyAgICBp
ZiAoaW5kZXggPj0gc3RhdGUudmFsdWVTaXplKCkpCisgICAgICAgIHJldHVybiBEYXRlVGltZUZp
ZWxkc1N0YXRlOjpBTVBNVmFsdWVFbXB0eTsKKyAgICBjb25zdCBTdHJpbmcgdmFsdWUgPSBzdGF0
ZVtpbmRleF07CisgICAgaWYgKHZhbHVlID09ICJBIikKKyAgICAgICAgcmV0dXJuIERhdGVUaW1l
RmllbGRzU3RhdGU6OkFNUE1WYWx1ZUFNOworICAgIGlmICh2YWx1ZSA9PSAiUCIpCisgICAgICAg
IHJldHVybiBEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBNVmFsdWVQTTsKKyAgICByZXR1cm4gRGF0
ZVRpbWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlRW1wdHk7Cit9CisKK0RhdGVUaW1lRmllbGRzU3Rh
dGU6OkRhdGVUaW1lRmllbGRzU3RhdGUoKQorICAgIDogbV95ZWFyKGVtcHR5VmFsdWUpCisgICAg
LCBtX21vbnRoKGVtcHR5VmFsdWUpCisgICAgLCBtX2RheU9mTW9udGgoZW1wdHlWYWx1ZSkKKyAg
ICAsIG1faG91cihlbXB0eVZhbHVlKQorICAgICwgbV9taW51dGUoZW1wdHlWYWx1ZSkKKyAgICAs
IG1fc2Vjb25kKGVtcHR5VmFsdWUpCisgICAgLCBtX21pbGxpc2Vjb25kKGVtcHR5VmFsdWUpCisg
ICAgLCBtX3dlZWtPZlllYXIoZW1wdHlWYWx1ZSkKKyAgICAsIG1fYW1wbShBTVBNVmFsdWVFbXB0
eSkKK3sKK30KKworRGF0ZVRpbWVGaWVsZHNTdGF0ZSBEYXRlVGltZUZpZWxkc1N0YXRlOjpyZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKK3sKKyAg
ICBEYXRlVGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzU3RhdGU7CisgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5zZXRZZWFyKGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKHN0YXRlLCAw
KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRNb250aChnZXROdW1iZXJGcm9tRm9ybUNv
bnRyb2xTdGF0ZShzdGF0ZSwgMSkpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0RGF5T2ZN
b250aChnZXROdW1iZXJGcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSwgMikpOworICAgIGRhdGVU
aW1lRmllbGRzU3RhdGUuc2V0SG91cihnZXROdW1iZXJGcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0
ZSwgMykpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0TWludXRlKGdldE51bWJlckZyb21G
b3JtQ29udHJvbFN0YXRlKHN0YXRlLCA0KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRT
ZWNvbmQoZ2V0TnVtYmVyRnJvbUZvcm1Db250cm9sU3RhdGUoc3RhdGUsIDUpKTsKKyAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLnNldE1pbGxpc2Vjb25kKGdldE51bWJlckZyb21Gb3JtQ29udHJvbFN0
YXRlKHN0YXRlLCA2KSk7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRXZWVrT2ZZZWFyKGdl
dE51bWJlckZyb21Gb3JtQ29udHJvbFN0YXRlKHN0YXRlLCA3KSk7CisgICAgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5zZXRBTVBNKGdldEFNUE1Gcm9tRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSwgOCkpOwor
ICAgIHJldHVybiBkYXRlVGltZUZpZWxkc1N0YXRlOworfQorCitGb3JtQ29udHJvbFN0YXRlIERh
dGVUaW1lRmllbGRzU3RhdGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK3sKKyAgICBG
b3JtQ29udHJvbFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmFwcGVuZChoYXNZZWFyKCkgPyBTdHJp
bmc6Om51bWJlcihtX3llYXIpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBwZW5kKGhh
c01vbnRoKCkgPyBTdHJpbmc6Om51bWJlcihtX21vbnRoKSA6IGVtcHR5U3RyaW5nKCkpOworICAg
IHN0YXRlLmFwcGVuZChoYXNEYXlPZk1vbnRoKCkgPyBTdHJpbmc6Om51bWJlcihtX2RheU9mTW9u
dGgpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBwZW5kKGhhc0hvdXIoKSA/IFN0cmlu
Zzo6bnVtYmVyKG1faG91cikgOiBlbXB0eVN0cmluZygpKTsKKyAgICBzdGF0ZS5hcHBlbmQoaGFz
TWludXRlKCkgPyBTdHJpbmc6Om51bWJlcihtX21pbnV0ZSkgOiBlbXB0eVN0cmluZygpKTsKKyAg
ICBzdGF0ZS5hcHBlbmQoaGFzU2Vjb25kKCkgPyBTdHJpbmc6Om51bWJlcihtX3NlY29uZCkgOiBl
bXB0eVN0cmluZygpKTsKKyAgICBzdGF0ZS5hcHBlbmQoaGFzTWlsbGlzZWNvbmQoKSA/IFN0cmlu
Zzo6bnVtYmVyKG1fbWlsbGlzZWNvbmQpIDogZW1wdHlTdHJpbmcoKSk7CisgICAgc3RhdGUuYXBw
ZW5kKGhhc1dlZWtPZlllYXIoKSA/IFN0cmluZzo6bnVtYmVyKG1fd2Vla09mWWVhcikgOiBlbXB0
eVN0cmluZygpKTsKKyAgICBpZiAoaGFzQU1QTSgpKQorICAgICAgICBzdGF0ZS5hcHBlbmQobV9h
bXBtID09IEFNUE1WYWx1ZUFNID8gIkEiIDogIlAiKTsKKyAgICBlbHNlCisgICAgICAgIHN0YXRl
LmFwcGVuZChlbXB0eVN0cmluZygpKTsKKyAgICByZXR1cm4gc3RhdGU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lRmllbGRzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5ODBlYWEzOWQ5ZmQ2Njk5NzkwZDBlZjA2NWE0YTVhNTRm
YmY1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmll
bGRzU3RhdGUuaApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAq
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RGF0ZVRpbWVGaWVsZHNTdGF0ZV9oCisjZGVmaW5lIERhdGVUaW1lRmllbGRzU3RhdGVfaAorCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRm9ybUNv
bnRyb2xTdGF0ZTsKKworLy8gRGF0ZVRpbWVGaWVsZHNTdGF0ZSByZXByZXNlbnRzIGZpZWxkcyBp
biBkYXRlL3RpbWUgZm9yIGZvcm0gc3RhdGUKKy8vIHNhdmUvcmVzdG9yZSBmb3IgaW5wdXQgdHlw
ZSAiZGF0ZSIsICJkYXRldGltZSIsICJkYXRldGltZS1sb2NhbCIsICJtb250aCIsCisvLyAidGlt
ZSIsIGFuZCAid2VlayIgd2l0aCBtdWx0aXBsZSBmaWVsZHMgaW5wdXQgVUkuCisvLworLy8gRWFj
aCBmaWVsZCBjYW4gY29udGFpbiBpbnZhbGlkIHZhbHVlIGZvciBkYXRlLCBlLmcuIGRheSBvZiBt
b250aCBmaWVsZCBjYW4KKy8vIGJlIDMwIGV2ZW4gaWYgbW9udGggZmllbGQgaXMgRmVicnVhcnku
CitjbGFzcyBEYXRlVGltZUZpZWxkc1N0YXRlIHsKK3B1YmxpYzoKKyAgICBlbnVtIEFNUE1WYWx1
ZSB7CisgICAgICAgIEFNUE1WYWx1ZUVtcHR5ID0gLTEsCisgICAgICAgIEFNUE1WYWx1ZUFNLAor
ICAgICAgICBBTVBNVmFsdWVQTSwKKyAgICB9OworCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGVtcHR5VmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTEpOworCisgICAgRGF0ZVRpbWVG
aWVsZHNTdGF0ZSgpOworCisgICAgc3RhdGljIERhdGVUaW1lRmllbGRzU3RhdGUgcmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpOworICAgIEZvcm1Db250cm9s
U3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdDsKKworICAgIEFNUE1WYWx1ZSBhbXBt
KCkgY29uc3QgeyByZXR1cm4gbV9hbXBtOyB9CisgICAgdW5zaWduZWQgZGF5T2ZNb250aCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF5T2ZNb250aDsgfQorICAgIHVuc2lnbmVkIGhvdXIoKSBjb25zdCB7
IHJldHVybiBtX2hvdXI7IH0KKyAgICB1bnNpZ25lZCBtaWxsaXNlY29uZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWlsbGlzZWNvbmQ7IH0KKyAgICB1bnNpZ25lZCBtaW51dGUoKSBjb25zdCB7IHJldHVy
biBtX21pbnV0ZTsgfQorICAgIHVuc2lnbmVkIG1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250
aDsgfQorICAgIHVuc2lnbmVkIHNlY29uZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vjb25kOyB9Cisg
ICAgdW5zaWduZWQgd2Vla09mWWVhcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vla09mWWVhcjsgfQor
ICAgIHVuc2lnbmVkIHllYXIoKSBjb25zdCB7IHJldHVybiBtX3llYXI7IH0KKworICAgIGJvb2wg
aGFzQU1QTSgpIGNvbnN0IHsgcmV0dXJuIG1fYW1wbSAhPSBBTVBNVmFsdWVFbXB0eTsgfQorICAg
IGJvb2wgaGFzRGF5T2ZNb250aCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF5T2ZNb250aCAhPSBlbXB0
eVZhbHVlOyB9CisgICAgYm9vbCBoYXNIb3VyKCkgY29uc3QgeyByZXR1cm4gbV9ob3VyICE9IGVt
cHR5VmFsdWU7IH0KKyAgICBib29sIGhhc01pbGxpc2Vjb25kKCkgY29uc3QgeyByZXR1cm4gbV9t
aWxsaXNlY29uZCAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNNaW51dGUoKSBjb25zdCB7
IHJldHVybiBtX21pbnV0ZSAhPSBlbXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNNb250aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbW9udGggIT0gZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFzU2Vjb25k
KCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmQgIT0gZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFz
V2Vla09mWWVhcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vla09mWWVhciAhPSBlbXB0eVZhbHVlOyB9
CisgICAgYm9vbCBoYXNZZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyICE9IGVtcHR5VmFsdWU7
IH0KKworICAgIHZvaWQgc2V0QU1QTShBTVBNVmFsdWUgYW1wbSkgeyBtX2FtcG0gPSBhbXBtOyB9
CisgICAgdm9pZCBzZXREYXlPZk1vbnRoKHVuc2lnbmVkIGRheU9mTW9udGgpIHsgbV9kYXlPZk1v
bnRoID0gZGF5T2ZNb250aDsgfQorICAgIHZvaWQgc2V0SG91cih1bnNpZ25lZCBob3VyMTIpIHsg
bV9ob3VyID0gaG91cjEyOyB9CisgICAgdm9pZCBzZXRNaWxsaXNlY29uZCh1bnNpZ25lZCBtaWxs
aXNlY29uZCkgeyBtX21pbGxpc2Vjb25kID0gbWlsbGlzZWNvbmQ7IH0KKyAgICB2b2lkIHNldE1p
bnV0ZSh1bnNpZ25lZCBtaW51dGUpIHsgbV9taW51dGUgPSBtaW51dGU7IH0KKyAgICB2b2lkIHNl
dE1vbnRoKHVuc2lnbmVkIG1vbnRoKSB7IG1fbW9udGggPSBtb250aDsgfQorICAgIHZvaWQgc2V0
U2Vjb25kKHVuc2lnbmVkIHNlY29uZCkgeyBtX3NlY29uZCA9IHNlY29uZDsgfQorICAgIHZvaWQg
c2V0V2Vla09mWWVhcih1bnNpZ25lZCB3ZWVrT2ZZZWFyKSB7IG1fd2Vla09mWWVhciA9IHdlZWtP
ZlllYXI7IH0KKyAgICB2b2lkIHNldFllYXIodW5zaWduZWQgeWVhcikgeyBtX3llYXIgPSB5ZWFy
OyB9CisKK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV95ZWFyOworICAgIHVuc2lnbmVkIG1fbW9u
dGg7CisgICAgdW5zaWduZWQgbV9kYXlPZk1vbnRoOworICAgIHVuc2lnbmVkIG1faG91cjsKKyAg
ICB1bnNpZ25lZCBtX21pbnV0ZTsKKyAgICB1bnNpZ25lZCBtX3NlY29uZDsKKyAgICB1bnNpZ25l
ZCBtX21pbGxpc2Vjb25kOworICAgIHVuc2lnbmVkIG1fd2Vla09mWWVhcjsKKyAgICBBTVBNVmFs
dWUgbV9hbXBtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcAppbmRleCBlNTc2N2UxYjNlN2Yz
OTNkNDRmNWY4YjA4ZTAzNzg5NDE3NjJmNTQyLi5mYmZlN2I3MTQ0ZTMxZmU5ZTY2NzBlYmQxMTZh
ZWNjYWMzNmUxNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmNwcApAQCAt
MzkxLDcgKzM5MSw3IEBAIHN0YXRpYyBTdHJpbmcgZm9ybVN0YXRlU2lnbmF0dXJlKCkKICAgICAv
LyBJbiB0aGUgbGVnYWN5IHZlcnNpb24gb2Ygc2VyaWFsaXplZCBzdGF0ZSwgdGhlIGZpcnN0IGl0
ZW0gd2FzIGEgbmFtZQogICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBvZiBhIGZvcm0gY29udHJvbC4g
VGhlIGZvbGxvd2luZyBzdHJpbmcgbGl0ZXJhbCBzaG91bGQKICAgICAvLyBjb250YWluIHNvbWUg
Y2hhcmFjdGVycyB3aGljaCBhcmUgcmFyZWx5IHVzZWQgZm9yIG5hbWUgYXR0cmlidXRlIHZhbHVl
cy4KLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2lnbmF0dXJlLCAoQVNDSUlMaXRl
cmFsKCJcblxyPyUgV2ViS2l0IHNlcmlhbGl6ZWQgZm9ybSBzdGF0ZSB2ZXJzaW9uIDcgXG5ccj0m
IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2lnbmF0dXJlLCAoQVNDSUlM
aXRlcmFsKCJcblxyPyUgV2ViS2l0IHNlcmlhbGl6ZWQgZm9ybSBzdGF0ZSB2ZXJzaW9uIDggXG5c
cj0mIikpKTsKICAgICByZXR1cm4gc2lnbmF0dXJlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcAppbmRleCBlZGQxMmU3YTY2NzliZDM4NTllZTBjZmMxYTUwMzE0MjQ3Njcw
ZGYzLi5jN2I5YzEzODRhNWQ4NGZkOGZhMmVlYTlhYWZlMTlmYzg0NzRlNTNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTQyLDcgKzQyLDkgQEAKIAogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX1RJTUUpCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9G
SUVMRFMpCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkVsZW1l
bnRTaGFkb3cuaCIKKyNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIktleWJv
YXJkRXZlbnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjZW5kaWYKQEAgLTI1OSw2ICsy
NjEsMjUgQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0
YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQoreworICAgIGlmICghbV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQorICAgICAgICByZXR1cm47CisgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsK
KyAgICBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoY3JlYXRlU3RlcFJhbmdlKEFueUlz
RGVmYXVsdFN0ZXApLm1pbmltdW0oKS50b0RvdWJsZSgpLCAmZGF0ZSk7CisgICAgRGF0ZVRpbWVG
aWVsZHNTdGF0ZSBkYXRlVGltZUZpZWxkc1N0YXRlID0gRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6cmVz
dG9yZUZvcm1Db250cm9sU3RhdGUoc3RhdGUpOworICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+
c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgZGF0ZSk7
CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNlcmlhbGl6ZShEZWNpbWFsOjpmcm9t
RG91YmxlKG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWVBc0RvdWJsZSgpKSksIERpc3BhdGNo
Tm9FdmVudCk7Cit9CisKK0Zvcm1Db250cm9sU3RhdGUgVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoKSBjb25zdAoreworICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KQor
ICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOworCisgICAgcmV0dXJuIG1fZGF0ZVRp
bWVFZGl0RWxlbWVudC0+dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKS5zYXZlRm9ybUNvbnRy
b2xTdGF0ZSgpOworfQorCiB2b2lkIFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRW
YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmgKaW5kZXggYWNkNTdiMzRkZTdjMzc0ZDU3ZTk5YjhiZDU3ZWYzMmUxYWU2MjllMy4u
MDc4N2MzYTIxNWI3MWQ2YWM4NzMwZjhkZGIwODhjYmRlODY4ZGU3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmgKQEAgLTk0LDYgKzk0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZv
aWQgbWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVh
bCB2b2lkIHJlYWRvbmx5QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRl
JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3Jt
Q29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRN
ZXRob2QoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcEF0dHJp
YnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggMTFjMTYyMDcyOTc1NGUwMDQy
NWYzNWM3NGFhZTU4NmE0NWU3OTUxOC4uNzZhMGEyMDM4N2I3NWZkMmU5MTU0ZDhiOGVhOGNiYjY3
MTk4M2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkRhdGVDb21wb25l
bnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCisjaW5jbHVkZSAiRGF0
ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVk
ZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgpAQCAtNDEwLDYgKzQxMSwxMiBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZh
bHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQwogICAgICAg
ICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2V0VmFsdWVBc0RhdGUoZGF0ZSk7CiB9CiAKK3ZvaWQg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5k
ZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCisgICAg
ICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShk
YXRlVGltZUZpZWxkc1N0YXRlLCBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7Cit9CisKIHZvaWQgRGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5n
ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQogewogICAgIGxh
eW91dChzdGVwUmFuZ2UsIGRhdGVGb3JSZWFkT25seUZpZWxkKTsKQEAgLTQ1MSw2ICs0NTgsMTQg
QEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojp1cGRhdGVVSVN0YXRlKCkKICAgICB9CiB9CiAK
K0RhdGVUaW1lRmllbGRzU3RhdGUgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWVBc0RhdGVUaW1l
RmllbGRzU3RhdGUoKSBjb25zdAoreworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVG
aWVsZHNTdGF0ZTsKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8
IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQorICAgICAgICBtX2ZpZWxkc1tmaWVsZElu
ZGV4XS0+cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUpOwor
ICAgIHJldHVybiBkYXRlVGltZUZpZWxkc1N0YXRlOworfQorCiBkb3VibGUgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6dmFsdWVBc0RvdWJsZSgpIGNvbnN0CiB7CiAgICAgZG91YmxlIHZhbHVlID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApp
bmRleCA4ZTZlYjExY2VkMWI3ODViMjRkNjk3NzYyMGZlYTRmMDc2MmFlM2Y2Li4wNzZhZDhiNDhk
MDc5ZWY5NTU0NWY2OTQyODcyMDZhMDIwZmI4YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0ZUNvbXBvbmVudHM7CiBjbGFzcyBEYXRlVGltZUVk
aXRMYXlvdXRlcjsKK2NsYXNzIERhdGVUaW1lRmllbGRzU3RhdGU7CiBjbGFzcyBLZXlib2FyZEV2
ZW50OwogY2xhc3MgTW91c2VFdmVudDsKIGNsYXNzIFN0ZXBSYW5nZTsKQEAgLTcxLDYgKzcyLDgg
QEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKICAgICB2b2lkIHNldEVtcHR5VmFs
dWUoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmICBkYXRlRm9yUmVhZE9u
bHlGaWVsZCk7CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25z
dCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3Rh
dGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRl
Rm9yUmVhZE9ubHlGaWVsZCk7CisgICAgRGF0ZVRpbWVGaWVsZHNTdGF0ZSB2YWx1ZUFzRGF0ZVRp
bWVGaWVsZHNTdGF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Q7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaAppbmRleCBlZDI5N2NjYTIzMjZiNzA3YWQ5Mjg0MDdmZDViYTQzYTMyODA1
NzUwLi5lOGQyNWNmOTE4MjUwOTM1OTMzNjRiOTg2YTYyYjU0ZmQ0MThkMGQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTMz
LDYgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0ZUNvbXBvbmVudHM7
CitjbGFzcyBEYXRlVGltZUZpZWxkc1N0YXRlOwogCiAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBp
cyBiYXNlIGNsYXNzIG9mIGRhdGUgdGltZSBmaWVsZCBlbGVtZW50LgogY2xhc3MgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewpAQCAtNTksMTAgKzYwLDEyIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0ID0gMDsKICAgICBib29sIGlz
UmVhZE9ubHkoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxk
c1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSA9IDA7CiAgICAgdm9pZCByZW1vdmVFdmVudEhh
bmRsZXIoKSB7IG1fZmllbGRPd25lciA9IDA7IH0KICAgICB2b2lkIHNldFJlYWRPbmx5KCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVG
b3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBE
YXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25s
eUZpZWxkKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCwgRXZl
bnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGVw
RG93bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcFVwKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKaW5kZXgg
YWQ0Y2IwNjBmMjhlYmY4NjBlNmQwMDNlY2RkNDdhNmIzOWE1NDU4Yy4uMjAxNmM2OWE4YWVjODY3
MmI2NTg3NWMwMzQ5ZDExOGRkNDMwM2MyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9u
ZW50cy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzU3RhdGUuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKQEAgLTQ2LDExICs0
NywyNyBAQCBQYXNzUmVmUHRyPERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudD4gRGF0ZVRpbWVBTVBN
RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqCiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2Uo
KTsKIH0KIAordm9pZCBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVG
aWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlKQorewor
ICAgIGlmIChoYXNWYWx1ZSgpKQorICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldEFNUE0o
dmFsdWVBc0ludGVnZXIoKSA/IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZVBNIDogRGF0
ZVRpbWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlQU0pOworICAgIGVsc2UKKyAgICAgICAgZGF0ZVRp
bWVGaWVsZHNTdGF0ZS5zZXRBTVBNKERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZUVtcHR5
KTsKK30KKwogdm9pZCBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNv
bnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUu
aG91cigpID49IDEyID8gMSA6IDApOwogfQogCit2b2lkIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFk
T25seUZpZWxkKQoreworICAgIGlmIChkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0FNUE0oKSkKKyAg
ICAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5hbXBtKCkpOworICAg
IGVsc2UKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7Cit9CisK
IGRvdWJsZSBEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OnVuaXRJbk1pbGxpc2Vjb25kKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbXNQZXJIb3VyICogMTI7CkBAIC03MywxMSArOTAsODMgQEAgUGFz
c1JlZlB0cjxEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ+IERhdGVUaW1lSG91ckZpZWxkRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KgogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUo
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKK3sKKyAgICBpZiAoIWhh
c1ZhbHVlKCkpIHsKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRIb3VyKERhdGVUaW1l
RmllbGRzU3RhdGU6OmVtcHR5VmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Y29uc3QgaW50IHZhbHVlID0gRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZUFzSW50
ZWdlcigpOworCisgICAgc3dpdGNoIChtYXhpbXVtKCkpIHsKKyAgICBjYXNlIDExOgorICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldEhvdXIodmFsdWUgPyB2YWx1ZSA6IDEyKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgMTI6CisgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0
SG91cih2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIDIzOgorICAgICAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLnNldEhvdXIodmFsdWUgPyB2YWx1ZSAlIDEyIDogMTIpOworICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldEFNUE0odmFsdWUgPj0gMTIgPyBEYXRlVGltZUZpZWxk
c1N0YXRlOjpBTVBNVmFsdWVQTSA6IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZUFNKTsK
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgMjQ6CisgICAgICAgIGlmICh2YWx1ZSA9PSAyNCkg
eworICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRIb3VyKDEyKTsKKyAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0SG91cihEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBN
VmFsdWVBTSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZGF0ZVRp
bWVGaWVsZHNTdGF0ZS5zZXRIb3VyKHZhbHVlID09IDEyID8gMTIgOiB2YWx1ZSAlIDEyKTsKKyAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRBTVBNKHZhbHVlID49IDEyID8gRGF0ZVRpbWVG
aWVsZHNTdGF0ZTo6QU1QTVZhbHVlUE0gOiBEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBNVmFsdWVB
TSk7CisgICAgICAgIHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9Cit9CisKIHZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKIHsKICAgICBzZXRWYWx1ZUFz
SW50ZWdlcihkYXRlLmhvdXIoKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRl
JiBkYXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRP
bmx5RmllbGQpCit7CisgICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0hvdXIoKSkgewor
ICAgICAgICBzZXRFbXB0eVZhbHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvbnN0IGludCBob3VyMTIgPSBkYXRlVGltZUZpZWxkc1N0YXRl
LmhvdXIoKTsKKworICAgIGlmIChob3VyMTIgPCAxIHx8IGhvdXIxMiA+IDEyKSB7CisgICAgICAg
IHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgc3dpdGNoIChtYXhpbXVtKCkpIHsKKyAgICBjYXNlIDExOgorICAgICAgICBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMiAlIDEy
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgMTI6CisgICAgICAgIERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaG91cjEyKTsKKyAgICAgICAgcmV0dXJu
OworICAgIGNhc2UgMjM6CisgICAgICAgIGlmIChkYXRlVGltZUZpZWxkc1N0YXRlLmFtcG0oKSA9
PSBEYXRlVGltZUZpZWxkc1N0YXRlOjpBTVBNVmFsdWVQTSkKKyAgICAgICAgICAgIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoKGhvdXIxMiArIDEyKSAlIDI0
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihob3VyMTIgJSAxMik7CisgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIDI0OgorICAgICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5hbXBtKCkgPT0gRGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlUE0pCisgICAgICAgICAgICBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMiA9PSAxMiA/IDEyIDogaG91cjEy
ICsgMTIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMik7CisgICAgICAgIHJldHVybjsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cit9CisKIHZvaWQg
RGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWVBc0hv
dXIyMywgRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIGNvbnN0IGludCB2YWx1
ZSA9IFJhbmdlKDAsIDIzKS5jbGFtcFZhbHVlKHZhbHVlQXNIb3VyMjMpICUgbV9hbGlnbm1lbnQ7
CkBAIC0xMDksMTEgKzE5OCwzMiBAQCBQYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVs
ZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZQogICAgIHJldHVy
biBmaWVsZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmIGRh
dGVUaW1lRmllbGRzU3RhdGUpCit7CisgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZXRNaWxsaXNl
Y29uZChoYXNWYWx1ZSgpID8gdmFsdWVBc0ludGVnZXIoKSA6IERhdGVUaW1lRmllbGRzU3RhdGU6
OmVtcHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6
OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZh
bHVlQXNJbnRlZ2VyKGRhdGUubWlsbGlzZWNvbmQoKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVNaWxs
aXNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQoreworICAgIGlmICghZGF0ZVRpbWVGaWVsZHNT
dGF0ZS5oYXNNaWxsaXNlY29uZCgpKSB7CisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJl
YWRPbmx5RmllbGQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgdW5zaWdu
ZWQgdmFsdWUgPSBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbGxpc2Vjb25kKCk7CisgICAgaWYgKHZh
bHVlID4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heGltdW0oKSkpIHsKKyAgICAgICAgc2V0RW1w
dHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBzZXRWYWx1ZUFzSW50ZWdlcih2YWx1ZSk7Cit9CisKIGRvdWJsZSBEYXRlVGltZU1pbGxp
c2Vjb25kRmllbGRFbGVtZW50Ojp1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIDE7CkBAIC0xMzQsMTEgKzI0NCwzMiBAQCBQYXNzUmVmUHRyPERhdGVUaW1lTWludXRlRmll
bGRFbGVtZW50PiBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZQogICAg
IHJldHVybiBmaWVsZC5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBk
YXRlVGltZUZpZWxkc1N0YXRlKQoreworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0TWludXRl
KGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1w
dHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRl
Z2VyKGRhdGUubWludXRlKCkpOwogfQogCit2b2lkIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRl
JiBkYXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRP
bmx5RmllbGQpCit7CisgICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbnV0ZSgpKSB7
CisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBkYXRlVGltZUZpZWxk
c1N0YXRlLm1pbnV0ZSgpOworICAgIGlmICh2YWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
YXhpbXVtKCkpKSB7CisgICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0VmFsdWVBc0ludGVnZXIodmFsdWUp
OworfQorCiBkb3VibGUgRGF0ZVRpbWVNaW51dGVGaWVsZEVsZW1lbnQ6OnVuaXRJbk1pbGxpc2Vj
b25kKCkgY29uc3QKIHsKICAgICByZXR1cm4gbXNQZXJNaW51dGU7CkBAIC0xNTksMTEgKzI5MCwz
MiBAQCBQYXNzUmVmUHRyPERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50PiBEYXRlVGltZVNlY29u
ZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZQogICAgIHJldHVybiBmaWVsZC5yZWxlYXNlKCk7
CiB9CiAKK3ZvaWQgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVG
aWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlKQorewor
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0U2Vjb25kKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50
ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0
ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuc2Vjb25kKCkpOwogfQog
Cit2b2lkIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVs
ZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlLCBj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCit7CisgICAgaWYgKCFk
YXRlVGltZUZpZWxkc1N0YXRlLmhhc1NlY29uZCgpKSB7CisgICAgICAgIHNldEVtcHR5VmFsdWUo
ZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29u
c3QgdW5zaWduZWQgdmFsdWUgPSBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpOworICAgIGlm
ICh2YWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhpbXVtKCkpKSB7CisgICAgICAgIHNl
dEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2V0VmFsdWVBc0ludGVnZXIodmFsdWUpOworfQorCiBkb3VibGUgRGF0ZVRpbWVT
ZWNvbmRGaWVsZEVsZW1lbnQ6OnVuaXRJbk1pbGxpc2Vjb25kKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbXNQZXJTZWNvbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5oCmluZGV4IGQ3ZjRkOTUzODAzODVlMGNkMmExZTA4MDNhOWVmZDU4
MDg0YTBhODQuLmUxNDFmODM4ZjE3N2RhMjlkYjEwMDJiNDFlYmYwMWY2NTRiZmJjNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
CkBAIC00Miw3ICs0Miw5IEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50
KERvY3VtZW50KiwgRmllbGRPd25lciYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICAv
LyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHBvcHVs
YXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklO
QUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRz
JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZp
ZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBjb25zdCBEYXRlQ29tcG9uZW50
cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgZG91
YmxlIHVuaXRJbk1pbGxpc2Vjb25kKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiB9OwogCkBAIC02
Myw3ICs2NSw5IEBAIHByaXZhdGU6CiAgICAgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50KERvY3Vt
ZW50KiwgRmllbGRPd25lciYsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSk7CiAKICAgICAvLyBE
YXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRl
RGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxk
c1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYg
ZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpIE9W
RVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgZG91YmxlIHVuaXRJbk1pbGxpc2Vjb25kKCkgY29u
c3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKQEAgLTgxLDcgKzg1LDkgQEAgcHJpdmF0ZToKICAgICBEYXRlVGlt
ZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOwogCiAgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCBwb3B1
bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJ
TkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50
cyYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVG
aWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIGRv
dWJsZSB1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogfTsKIApAQCAt
OTUsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAgICBEYXRlVGltZU1pbnV0ZUZpZWxkRWxlbWVudChE
b2N1bWVudCosIEZpZWxkT3duZXImKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1
bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERh
dGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVG
aWVsZHNTdGF0ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBkb3VibGUgdW5pdEluTWlsbGlzZWNvbmQoKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKIH07CiAKQEAgLTEwOSw3ICsxMTcsOSBAQCBwcml2YXRlOgog
ICAgIERhdGVUaW1lU2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYpOwog
CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9p
ZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJS
SURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0
ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0
dWFsIGRvdWJsZSB1bml0SW5NaWxsaXNlY29uZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuaAppbmRleCA3YzczZjFiODYwNjQ0ZjU4YTgyYjU3NzNlMWNkZGNlYmZk
NTcyZTljLi4yOGYyYjllNDk4NTgwNTEwMzQ3OWNkMDJkYmRhNDkyNWI3ZWNhMmE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuaApAQCAtNTcsNiArNTcsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBEYXRlVGlt
ZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkgY29u
c3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBpbnQgbWF4aW11bSgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9F
dmVudCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRlZ2Vy
KGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0
cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKQEAgLTY1LDkgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAg
dmlydHVhbCB2b2lkIGRpZEJsdXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0gICAg
dmlydHVhbCBpbnQgbWF4aW11bSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwg
aW50IG1pbmltdW0oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQsIEV2
ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwRG93bigp
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwVXAoKSBPVkVSUklERSBGSU5B
TDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudC5oCmluZGV4IDdjNWY2N2I4OWNjZjBhZjVjZDMwMGJiNzE1NDlkYzk2NDY3NTQ4
MzMuLmNiMGFjMWU3YmIyODVlNWM1NGRmMjIxMzRhZjc1ZGE0YmUxOTdmMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50LmgKQEAgLTM4LDcgKzM4LDEwIEBAIGNsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewogCiBwcm90ZWN0ZWQ6CiAgICAg
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOworICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IERhdGVD
b21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNo
Tm9FdmVudCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRl
Z2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
IAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgaW50IGludmFsaWRJbmRleCA9IC0xOwpAQCAt
NDgsMTQgKzUxLDExIEBAIHByaXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBm
dW5jdGlvbnMuCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRF
dmVudCopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgaW50IG1heGltdW0oKSBjb25zdCBPVkVSUklE
RSBGSU5BTDsKICAgICB2aXJ0dWFsIGludCBtaW5pbXVtKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
Ci0gICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGVGb3JSZWFkT25seUZpZWxkLCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc3RlcERvd24oKSBPVkVSUklERSBGSU5BTDsK
ICAgICB2aXJ0dWFsIHZvaWQgc3RlcFVwKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBT
dHJpbmcgdmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGludCB2YWx1
ZUFzSW50ZWdlcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5nIHZp
c2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4gbV9zeW1ib2xzOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAxODZjYmY3ZmIwZDdlYTI1YmY2MDNmOWExOTQyYzA3
OTNkZWYwYzYuLjU0Y2JkZTVkYjJhZWFiMjQ3YzQ4OGYyODUyN2QxMDBhZTI4MWRkMTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wOS0xNCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtGb3Jtc10gbXVsdGlwbGUgZmllbGRzIHRpbWUgaW5wdXQg
VUkgc2hvdWxkIHNhdmUvcmVzdG9yZSBpdHMgdmFsdWUgZXZlbiBpZiBpdCBoYXMgYW4gZW1wdHkg
ZmllbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NjcxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggY2hhbmdlcyB0aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRl
ci1oaXN0b3J5LWJhY2suaHRtbAorICAgICAgICB0byBjaGVjayBwYXJ0aWFsIHZhbHVlIGlzIHNh
dmVkIGFuZCByZXN0b3JlZCByYXRoZXIgdGhhbiByZXNldHRpbmcgdmFsdWUuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZmZlY3RzIHBvcnRzIHdoaWNoIGVuYWJsZSBib3RoIEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUgYW5kCisgICAgICAgIEVOQUJMRV9JTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklF
TERTLgorCisgICAgICAgICogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11
bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2stZXhwZWN0ZWQu
dHh0OiBVcGRhdGVkIGZvciBuZXcgZXhwZWN0YXRpb24uCisgICAgICAgICogZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1h
ZnRlci1oaXN0b3J5LWJhY2suaHRtbDogQ2hhbmdlZCB0byBjaGVjayBwYXJ0aWFsbHkgcG9wdWxh
dGVkIGZpZWxkcyBvZiBpbnB1dCBlbGVtZW50LgorCiAyMDEyLTA5LTEzICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGxpbmVzIGZvciBmYXN0L3RhYmxl
L2JhZC1yZXBsYWNlZC1zaXppbmctcHJlZmVycmVkLWxvZ2ljYWwtd2lkdGhzLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1t
dWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1t
dWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0ZXItaGlzdG9yeS1iYWNrLWV4cGVjdGVk
LnR4dAppbmRleCBmMTk4NjYwZmE4MWQ1ZmEwYjdiMjM0OWRhMmYwMjM5YjI5MjA1OGU0Li4wNTg0
NTdkYjU5YzE2YzU1NTk3MjMzMTFkZjJhMmI5MzZmMzcyYjA3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRz
LXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZp
ZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2stZXhwZWN0ZWQudHh0CkBAIC02
LDExICs2LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBXZW50IGJhY2sgdG8gYSBwYWdl
LiBDaGVja2luZyBhIGZvcm0gY29udHJvbCB3aGljaCBoYWQgYSBmdWxsIHZhbHVlOgogUEFTUyAi
MDE6MDEiIGlzICIwMTowMSIKIFdlbnQgYmFjayB0byBhIHBhZ2UuIENoZWNraW5nIGEgZm9ybSBj
b250cm9sIHdoaWNoIGhhZCBhIHBhcnRpYWwgdmFsdWU6Ci1QQVNTICIiIGlzICIiCitQQVNTICIw
MTotLSBBTSIgaXMgIjAxOi0tIEFNIgogV2VudCBmb3J3YXJkIHRvIGEgcGFnZS4gQ2hlY2tpbmcg
YSBmb3JtIGNvbnRyb2wgd2hpY2ggaGFkIGEgZnVsbCB2YWx1ZToKIFBBU1MgIjAyOjAyIiBpcyAi
MDI6MDIiCiBXZW50IGZvcndhcmQgdG8gYSBwYWdlLiBDaGVja2luZyBhIGZvcm0gY29udHJvbCB3
aGljaCBoYWQgYSBwYXJ0aWFsIHZhbHVlOgotUEFTUyAiIiBpcyAiIgorUEFTUyAiLS06NTkgLS0i
IGlzICItLTo1OSAtLSIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUt
bXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVlLWFmdGVyLWhpc3RvcnktYmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1wcmVzZXJ2ZS12YWx1ZS1hZnRlci1oaXN0b3J5LWJhY2suaHRtbAppbmRleCAyNjk4
ZmRjYmIwNmQ5MjBmMGMxZTNmMzJkMDAyZmY5OGZiYjY4ZjFjLi5mY2Y3MzE1ZWNkM2UxZWFhMjcz
MDA5NTlmYTc0ZTE0OGFmZmJiNGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXByZXNlcnZlLXZhbHVl
LWFmdGVyLWhpc3RvcnktYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtcHJlc2VydmUtdmFsdWUtYWZ0
ZXItaGlzdG9yeS1iYWNrLmh0bWwKQEAgLTM0LDYgKzM0LDE0IEBAIGZ1bmN0aW9uIGZhaWxlZCht
ZXNzYWdlKSB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKK2Z1bmN0aW9uIGZpZWxkc1RleHQo
aW5wdXQpCit7CisgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm4gIiI7
CisgICAgdmFyIGVkaXRFbGVtZW50ID0gd2luZG93LmludGVybmFscy5vbGRlc3RTaGFkb3dSb290
KGlucHV0KTsKKyAgICByZXR1cm4gZWRpdEVsZW1lbnQudGV4dENvbnRlbnQ7Cit9CisKIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgcnVuVGVzdENhc2VzKCk7CiAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykpOwpAQCAt
NzIsNiArODAsOSBAQCBjYXNlICc/cGFnZTEnOgogICAgICAgICB0ZXN0SW5wdXQxLnZhbHVlID0g
JzAxOjAxJzsKICAgICAgICAgdGVzdElucHV0Mi5mb2N1cygpOwogICAgICAgICBrZXlEb3duKCd1
cEFycm93Jyk7CisgICAgICAgIGtleURvd24oJ1x0Jyk7CisgICAgICAgIGtleURvd24oJ1x0Jyk7
CisgICAgICAgIGtleURvd24oJ3VwQXJyb3cnKTsKICAgICAgICAgdmFyIG5leHRVcmkgPSBsb2Nh
dGlvbi50b1N0cmluZygpLnJlcGxhY2UoJz9wYWdlMScsICc/cGFnZTInKTsKICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbiAoKSB7IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbmV4dFVyaTsgfSwg
MCk7CiAgICAgICAgIGJyZWFrOwpAQCAtODQsOCArOTUsOCBAQCBjYXNlICc/cGFnZTEnOgogICAg
ICAgICAgICAgICAgICdleHBlY3RlZCcgOiAnMDE6MDEnIH0sCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyA6ICdXZW50IGJhY2sgdG8gYSBwYWdlLiBDaGVja2lu
ZyBhIGZvcm0gY29udHJvbCB3aGljaCBoYWQgYSBwYXJ0aWFsIHZhbHVlJywKLSAgICAgICAgICAg
ICAgICAnYWN0dWFsJyA6IHRlc3RJbnB1dDIudmFsdWUsCi0gICAgICAgICAgICAgICAgJ2V4cGVj
dGVkJyA6ICcnCisgICAgICAgICAgICAgICAgJ2FjdHVhbCcgOiBmaWVsZHNUZXh0KHRlc3RJbnB1
dDIpLAorICAgICAgICAgICAgICAgICdleHBlY3RlZCcgOiAnMDE6LS0gQU0nCiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgZm9yd2FyZCgnZm9yd2FyZFRvMicpOwogICAgICAgICBicmVhazsKQEAg
LTEwMiw3ICsxMTMsOCBAQCBjYXNlICc/cGFnZTInOgogICAgIGNhc2UgJ2RpcmVjdCc6CiAgICAg
ICAgIHRlc3RJbnB1dDEudmFsdWUgPSAnMDI6MDInOwogICAgICAgICB0ZXN0SW5wdXQyLmZvY3Vz
KCk7Ci0gICAgICAgIGtleURvd24oJ3VwQXJyb3cnKTsKKyAgICAgICAga2V5RG93bignXHQnKTsK
KyAgICAgICAga2V5RG93bignZG93bkFycm93Jyk7CiAgICAgICAgIGJhY2soJ2JhY2tUbzEnKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAnZm9yd2FyZFRvMic6CkBAIC0xMTQsOCArMTI2LDgg
QEAgY2FzZSAnP3BhZ2UyJzoKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgJ2Rlc2NyaXB0aW9uJyA6ICdXZW50IGZvcndhcmQgdG8gYSBwYWdlLiBDaGVja2lu
ZyBhIGZvcm0gY29udHJvbCB3aGljaCBoYWQgYSBwYXJ0aWFsIHZhbHVlJywKLSAgICAgICAgICAg
ICAgICAnYWN0dWFsJyA6IHRlc3RJbnB1dDIudmFsdWUsCi0gICAgICAgICAgICAgICAgJ2V4cGVj
dGVkJyA6ICcnCisgICAgICAgICAgICAgICAgJ2FjdHVhbCcgOiBmaWVsZHNUZXh0KHRlc3RJbnB1
dDIpLAorICAgICAgICAgICAgICAgICdleHBlY3RlZCcgOiAnLS06NTkgLS0nCiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgYmFjaygnYmFja1RvMVNlY29uZCcpOwogICAgICAgICBicmVhazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>