<?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>88187</bug_id>
          
          <creation_ts>2012-06-03 04:28:20 -0700</creation_ts>
          <short_desc>Basic support for timestamps within a TextTrackCue</short_desc>
          <delta_ts>2012-06-10 00:20:23 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Victor Carbune">vcarbune</reporter>
          <assigned_to name="Victor Carbune">vcarbune</assigned_to>
          <cc>annacc</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>silviapf</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>640170</commentid>
    <comment_count>0</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-03 04:28:20 -0700</bug_when>
    <thetext>WebVTT format support timestamps within the cue.
There are multiple applications to this: Karaoke, Paint-on captions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640171</commentid>
    <comment_count>1</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-03 04:30:48 -0700</bug_when>
    <thetext>Corrected blocking dependency, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640172</commentid>
    <comment_count>2</comment_count>
      <attachid>145481</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-03 04:37:09 -0700</bug_when>
    <thetext>Created attachment 145481
Preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640204</commentid>
    <comment_count>3</comment_count>
      <attachid>145488</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-03 10:56:36 -0700</bug_when>
    <thetext>Created attachment 145488
Corrected patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640205</commentid>
    <comment_count>4</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-03 10:59:02 -0700</bug_when>
    <thetext>Just realized that according to the spec, the ProcessingInstructions nodes must have the original timestamp, not the actual value (this seems to require to parse it each time, for now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642136</commentid>
    <comment_count>5</comment_count>
      <attachid>145488</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-05 20:57:18 -0700</bug_when>
    <thetext>Comment on attachment 145488
Corrected patch

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

&gt; Source/WebCore/ChangeLog:5
&gt; +2012-06-03  Victor Carbune  &lt;vcarbune@adobe.com&gt;
&gt; +
&gt; +        Need a short description and bug URL (OOPS!)
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

Oops,

&gt; Source/WebCore/ChangeLog:36
&gt; +2012-06-03  Victor Carbune  &lt;victor@rosedu.org&gt;
&gt; +
&gt; +        Basic support for timestamps within a TextTrackCue
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=88187
&gt; +
&gt; +        Implemented support for timestamps within a TextTrackCue.
&gt; +        This enables rendering functionality for Karaoke and Paint-on captions.
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

you have two ChangeLog entries.

&gt; Source/WebCore/css/mediaControls.css:237
&gt; +video::-webkit-media-text-track-future-nodes {

Do we display future nodes?

&gt; Source/WebCore/css/mediaControls.css:242
&gt; +    color: green;
&gt; +    background-color: rgba(0, 0, 0, 0.8);

If so, why are they green?

&gt; Source/WebCore/html/track/TextTrackCue.cpp:579
&gt; +    for (Node *child = referenceTree-&gt;firstChild(); child; child = child-&gt;nextSibling()) {
&gt; +        if (child-&gt;nodeName() == timestampTag) {
&gt; +            unsigned int position = 0;
&gt; +            String timestamp = child-&gt;nodeValue();
&gt; +
&gt; +            double timestampTime = WebVTTParser::create(0, m_scriptExecutionContext)-&gt;collectTimeStamp(timestamp, &amp;position);
&gt; +            ASSERT(timestampTime != -1);
&gt; +
&gt; +            if (timestampTime &gt; movieTime)
&gt; +                isPastNode = false;
&gt; +        }

Should you always set &quot;isPastNode&quot;, or are timestamps guaranteed to be in ascending time order?

&gt; Source/WebCore/html/track/WebVTTParser.cpp:386
&gt; -            m_currentNode-&gt;parserAddChild(ProcessingInstruction::create(document, &quot;timestamp&quot;, String(m_token.characters().data(), m_token.characters().size())));
&gt; +            m_currentNode-&gt;parserAddChild(ProcessingInstruction::create(document, &quot;timestamp&quot;,  String(m_token.characters().data(), m_token.characters().size())));

Is the only difference here an extra space? If so, it is unnecessary.

&gt; Source/WebCore/html/track/WebVTTParser.h:97
&gt; +    double collectTimeStamp(const String&amp;, unsigned*);

Because we are making this a public method, I think we should give it a better name, eg. something like &quot;parseTimeStamp&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644076</commentid>
    <comment_count>6</comment_count>
      <attachid>146418</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-07 16:53:42 -0700</bug_when>
    <thetext>Created attachment 146418
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644080</commentid>
    <comment_count>7</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-06-07 16:58:24 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 145488 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145488&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:5
&gt; &gt; +2012-06-03  Victor Carbune  &lt;vcarbune@adobe.com&gt;
&gt; &gt; +
&gt; &gt; +        Need a short description and bug URL (OOPS!)
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Oops,
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:36
&gt; &gt; +2012-06-03  Victor Carbune  &lt;victor@rosedu.org&gt;
&gt; &gt; +
&gt; &gt; +        Basic support for timestamps within a TextTrackCue
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=88187
&gt; &gt; +
&gt; &gt; +        Implemented support for timestamps within a TextTrackCue.
&gt; &gt; +        This enables rendering functionality for Karaoke and Paint-on captions.
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; 
&gt; you have two ChangeLog entries.
Sorry, fixed.

&gt; &gt; Source/WebCore/css/mediaControls.css:237
&gt; &gt; +video::-webkit-media-text-track-future-nodes {
&gt; 
&gt; Do we display future nodes?
They have visibility:none, so they are not visible, but are attached to the display tree and rendered there.

&gt; &gt; Source/WebCore/css/mediaControls.css:242
&gt; &gt; +    color: green;
&gt; &gt; +    background-color: rgba(0, 0, 0, 0.8);
&gt; 
&gt; If so, why are they green?
Oops, it was mostly for testing. Removed. 

&gt; &gt; Source/WebCore/html/track/TextTrackCue.cpp:579
&gt; &gt; +    for (Node *child = referenceTree-&gt;firstChild(); child; child = child-&gt;nextSibling()) {
&gt; &gt; +        if (child-&gt;nodeName() == timestampTag) {
&gt; &gt; +            unsigned int position = 0;
&gt; &gt; +            String timestamp = child-&gt;nodeValue();
&gt; &gt; +
&gt; &gt; +            double timestampTime = WebVTTParser::create(0, m_scriptExecutionContext)-&gt;collectTimeStamp(timestamp, &amp;position);
&gt; &gt; +            ASSERT(timestampTime != -1);
&gt; &gt; +
&gt; &gt; +            if (timestampTime &gt; movieTime)
&gt; &gt; +                isPastNode = false;
&gt; &gt; +        }
&gt; 
&gt; Should you always set &quot;isPastNode&quot;, or are timestamps guaranteed to be in ascending time order?
Yes, timestamps are guaranteed to be in ascending time order in the spec.

&gt; &gt; Source/WebCore/html/track/WebVTTParser.cpp:386
&gt; &gt; -            m_currentNode-&gt;parserAddChild(ProcessingInstruction::create(document, &quot;timestamp&quot;, String(m_token.characters().data(), m_token.characters().size())));
&gt; &gt; +            m_currentNode-&gt;parserAddChild(ProcessingInstruction::create(document, &quot;timestamp&quot;,  String(m_token.characters().data(), m_token.characters().size())));
&gt; 
&gt; Is the only difference here an extra space? If so, it is unnecessary.
Fixed.

&gt; &gt; Source/WebCore/html/track/WebVTTParser.h:97
&gt; &gt; +    double collectTimeStamp(const String&amp;, unsigned*);
&gt; 
&gt; Because we are making this a public method, I think we should give it a better name, eg. something like &quot;parseTimeStamp&quot;?
I would suggest keeping it the same, mostly because &quot;collect&quot; is the term used in the specification (and by the other remaining private methods).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645354</commentid>
    <comment_count>8</comment_count>
      <attachid>146418</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-09 10:01:59 -0700</bug_when>
    <thetext>Comment on attachment 146418
Updated patch

Clearing flags on attachment: 146418

Committed r119907: &lt;http://trac.webkit.org/changeset/119907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645355</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-09 10:02:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645456</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-10 00:10:39 -0700</bug_when>
    <thetext>The new test is failing on EFL port. The diff looks like:
-Current time: 2.25
+Current time: 2.249999761581421
-Current time: 2.75
+Current time: 2.750000238418579
-Current time: 3.25
+Current time: 3.249999761581421
-Current time: 3.75
+Current time: 3.750000238418579

Looks like a rounding issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645458</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-10 00:20:23 -0700</bug_when>
    <thetext>The new test appears to be failing for GTK port as well. I opened Bug 88725 to track the issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145481</attachid>
            <date>2012-06-03 04:37:09 -0700</date>
            <delta_ts>2012-06-03 10:56:30 -0700</delta_ts>
            <desc>Preliminary patch</desc>
            <filename>bug-88187-20120603143707.patch</filename>
            <type>text/plain</type>
            <size>22206</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODg2NzY5ZTY1OWY5NTA4
NmEwYmZiMDI0NzJkZmU3OWVmMDgwMjYxZS4uY2M2MWY4N2NkNjRiMGQxNzYwOTJmOTdlZTQwNDU3
OTBjOWVlZTBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA2LTAzICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEJhc2ljIHN1cHBvcnQg
Zm9yIHRpbWVzdGFtcHMgd2l0aGluIGEgVGV4dFRyYWNrQ3VlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE4NworCisgICAgICAgIEltcGxlbWVudGVk
IHN1cHBvcnQgZm9yIHRpbWVzdGFtcHMgd2l0aGluIGEgVGV4dFRyYWNrQ3VlLgorICAgICAgICBU
aGlzIGVuYWJsZXMgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIEthcmFva2UgYW5kIFBhaW50
LW9uIGNhcHRpb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0
YW1wcy5odG1sCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6IFJlbW92ZSB0aGUg
YmFja2dyb3VuZCBzaGFkb3cgcHNldWRvLWlkIGFuZAorICAgICAgICBhZGRlZCB0d28gb3RoZXJz
LCB3aGljaCBjYW4gYmUgZnVydGhlciB1c2VkIGZvciBzdHlsaW5nIHBhc3QgLyBmdXR1cmUKKyAg
ICAgICAgY29udGVudHMgb2YgdGhlIGN1ZS4KKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlh
LXRleHQtdHJhY2stcGFzdC1ub2Rlcyk6IFVzZWQgdG8gc3R5bGUgZWxlbWVudHMKKyAgICAgICAg
d2l0aGluIHRoZSBjdWUgdGhhdCBhcmUgYmVmb3JlIHRoZSBjdXJyZW50IG1vdmllIHRpbWUuCisg
ICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2Rlcyk6IFVz
ZWQgdG8gc3R5bGUgZWxlbWVudHMKKyAgICAgICAgd2l0aGluIHRoZSBjdWUgdGhhdCBhcmUgYWZ0
ZXIgdGhlIGN1cnJlbnQgbW92aWUgdGltZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZl
VGV4dFRyYWNrQ3Vlcyk6IFJlZ2FyZGxlc3Mgb2Ygd2hldGhlcgorICAgICAgICB0aGUgYWN0aXZl
IHNldCBjaGFuZ2VkIG9yIG5vdCwgdGhlIGN1cnJlbnQgY3VlcyBuZWVkIHRvIGJlIGluZm9ybWVk
IG9mIHRoZSBjdXJyZW50CisgICAgICAgIG1vdmllIHRpbWUuCisgICAgICAgICogaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpUZXh0
VHJhY2tDdWUpOiBJbml0aWxpYXplZCBwYXN0IGFuZCBmdXR1cmUgY29udGFpbmVycy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1MKTogQ2hlY2tlZCB3aGV0aGVy
IHRoZSBjdXJyZW50IGN1ZSB0ZXh0IGhhcworICAgICAgICBpbm5lciB0aW1lc3RhbXBzIG9yIG5v
dCwgaW4gb3JkZXIgdG8gcmVuZGVyIGZhc3RlciBpZiBubyB0aW1lc3RhbXBzIGFyZSB0aGVyZS4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOiBBZGRl
ZCBtZXRob2QgdGhhdCBrZWVwcyB0aGUgcGFzdCBhbmQgZnV0dXJlCisgICAgICAgIGNvbnRhaW5l
cnMgdXAgdG8gZGF0ZSwgZ2l2ZW4gYSBjdXJyZW50IG1vdmllIHRpbWUuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUpOiBS
ZXBsYWNlZCB0aGUgY3VlIGJhY2tncm91bmQgY29udGFpbmVyIHdpdGggdGhlCisgICAgICAgIHBh
c3QgY3VlcyBjb250YWluZXIuIFRoZSAqaW50ZXJuYWwqIGRpc3BsYXkgdHJlZSBvZiB0aGUgY3Vl
IG5vdyBoYXMgdHdvIGNvbnRhaW5lcnMsCisgICAgICAgIHJlcHJlc2VudGluZyBwYXN0IGFuZCBm
dXR1cmUgZWxlbWVudHMuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaDogQWRk
ZWQgc2V2ZXJhbCB2YXJpYWJsZXMgdG8gc3VwcG9ydCB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkuCisg
ICAgICAgIChUZXh0VHJhY2tDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21U
b2tlbik6IFVwZGF0ZWQgcmVwcmVzZW50YXRpb24gZm9yIHRoaXMgcGF0Y2guCisKIDIwMTItMDYt
MDMgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21p
dW1dIEFkZCBuZXcgZ2VzdHVyZSB0eXBlICh0d28gZmluZ2VyIHRhcCkgdGhhdCB0cmlnZ2VycyBj
b250ZXh0IG1lbnUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9s
cy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKaW5kZXggMWIyMDU3
ZjAyOTc0OTRhMjcyZjhhNDYxYWM3MGQxZDRlYWE0MzI2Mi4uN2VkYzVhZmI1NmFjZWM3YTBmZmJl
NDI2YTE1MWI3M2U4ZjAzMmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHMuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpA
QCAtMjI1LDEwICsyMjUsMjUgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250
YWluZXIgewogICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiB9CiAKLXZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stYmFja2dyb3VuZCB7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLXBhc3Qtbm9kZXMgewogICAgIGRpc3BsYXk6IGlubGluZTsKKwogICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKICAgICBwYWRkaW5nOiAycHggMnB4OworCisgICAg
d2hpdGUtc3BhY2U6IHByZS13cmFwOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLWZ1dHVyZS1ub2RlcyB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIGRpc3BsYXk6
IGlubGluZTsKKworICAgIGNvbG9yOiBncmVlbjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Jh
KDAsIDAsIDAsIDAuOCk7CisKKyAgICBtYXJnaW4tbGVmdDogLTJweDsKKyAgICBwYWRkaW5nOiAy
cHggMnB4IDJweCAwcHg7CisKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDBhZjYwOWZmODg3MzYxZTJk
YTI5ZGFjOTY3N2U4MTg5YjkwZmQ4ZTYuLjdiNTZkZGMwNGI3NzU5YmJiNDg3OWI4MzhhMGE4ZmNj
MWU0MGQ4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTEwMSw3ICsxMTAxLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0
VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKICAgICAgICAgaWYgKCFjdXJyZW50Q3Vlcy5jb250
YWlucyhwcmV2aW91c0N1ZXNbaV0pICYmIHByZXZpb3VzQ3Vlc1tpXS5kYXRhKCktPmlzQWN0aXZl
KCkpCiAgICAgICAgICAgICBhY3RpdmVTZXRDaGFuZ2VkID0gdHJ1ZTsKIAotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyAhYWN0aXZlU2V0Q2hhbmdlZCAmJiBpIDwgY3VycmVudEN1ZXNTaXplOyArK2kp
IHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1cnJlbnRDdWVzU2l6ZTsgKytpKSB7Cisg
ICAgICAgIGN1cnJlbnRDdWVzW2ldLmRhdGEoKS0+dXBkYXRlRGlzcGxheVRyZWUobW92aWVUaW1l
KTsKKwogICAgICAgICBpZiAoIWN1cnJlbnRDdWVzW2ldLmRhdGEoKS0+aXNBY3RpdmUoKSkKICAg
ICAgICAgICAgIGFjdGl2ZVNldENoYW5nZWQgPSB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCA4NWM3YjJjNTJhY2FiMGZmZjAyYzNk
ZWYwNDk0M2JiMGViYzYwY2I1Li40NTQ2ODQ4N2IwMGMwOWY4MDEyODg4NTY2NzIxY2E5MmYzYmVl
MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC00
MCw2ICs0MCw4IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKQEAg
LTk5LDEwICsxMDEsMTQgQEAgVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBpZCwgZG8KICAgICAsIG1fY3VlSW5k
ZXgoaW52YWxpZEN1ZUluZGV4KQogICAgICwgbV93cml0aW5nRGlyZWN0aW9uKEhvcml6b250YWwp
CiAgICAgLCBtX2N1ZUFsaWdubWVudChNaWRkbGUpCisgICAgLCBtX2RvY3VtZW50RnJhZ21lbnQo
MCkKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQogICAgICwgbV9pc0Fj
dGl2ZShmYWxzZSkKICAgICAsIG1fcGF1c2VPbkV4aXQocGF1c2VPbkV4aXQpCiAgICAgLCBtX3Nu
YXBUb0xpbmVzKHRydWUpCisgICAgLCBtX2hhc0lubmVyVGltZXN0YW1wcyhmYWxzZSkKKyAgICAs
IG1fcGFzdERvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KGNvbnRleHQpKSkKKyAgICAsIG1fZnV0dXJlRG9jdW1lbnROb2RlcyhIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQogICAgICwg
bV9kaXNwbGF5VHJlZVNob3VsZENoYW5nZSh0cnVlKQogICAgICwgbV9kaXNwbGF5VHJlZShIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkpKQogICAg
ICwgbV9kaXNwbGF5WFBvc2l0aW9uKHVuZGVmaW5lZFBvc2l0aW9uKQpAQCAtMzcyLDkgKzM3OCwx
NiBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNI
VE1MKCkKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY2xvbmVkRnJhZ21lbnQ7CiAgICAg
RG9jdW1lbnQqIGRvY3VtZW50OwogCi0gICAgaWYgKCFtX2RvY3VtZW50RnJhZ21lbnQpCisgICAg
aWYgKCFtX2RvY3VtZW50RnJhZ21lbnQpIHsKKyAgICAgICAgbV9oYXNJbm5lclRpbWVzdGFtcHMg
PSBmYWxzZTsKICAgICAgICAgbV9kb2N1bWVudEZyYWdtZW50ID0gV2ViVlRUUGFyc2VyOjpjcmVh
dGUoMCwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudEZy
b21DdWVUZXh0KG1fY29udGVudCk7CiAKKyAgICAgICAgZm9yIChOb2RlICpjaGlsZCA9IG1fZG9j
dW1lbnRGcmFnbWVudC0+Zmlyc3RDaGlsZCgpOyAhbV9oYXNJbm5lclRpbWVzdGFtcHMgJiYgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGls
ZC0+bm9kZU5hbWUoKSA9PSAidGltZXN0YW1wIikKKyAgICAgICAgICAgICAgICBtX2hhc0lubmVy
VGltZXN0YW1wcyA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKICAgICBkb2N1bWVudCA9IHN0
YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAogICAgIGNs
b25lZEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKQEAgLTUy
OCw5ICs1NDEsNTIgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OmNhbGN1bGF0ZURpc3BsYXlQYXJhbWV0
ZXJzKCkKICAgICAvLyBGSVhNRShCdWcgNzk5MTYpOiBDU1MgdG9wIGFuZCBsZWZ0IHByb3BlcnRp
ZXMgbmVlZCB0byBiZSBhcHBsaWVkLgogfQogCit2b2lkIFRleHRUcmFja0N1ZTo6dXBkYXRlRGlz
cGxheVRyZWUoZmxvYXQgbW92aWVUaW1lKQoreworICAgIC8vIFRoZSBkaXNwbGF5IHRyZWUgbWF5
IGNvbnRhaW4gV2ViVlRUIHRpbWVzdGFtcCBvYmplY3RzIHJlcHJlc2VudGluZworICAgIC8vIHRp
bWVzdGFtcHMgKHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zKSwgYWxvbmcgd2l0aCBkaXNwbGF5YWJs
ZSBub2Rlcy4KKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdGltZXN0YW1w
VGFnLCAoInRpbWVzdGFtcCIpKTsKKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCB0cmFja1Bhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEt
dGV4dC10cmFjay1wYXN0LW5vZGVzIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
QXRvbWljU3RyaW5nLCB0cmFja0Z1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1t
ZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2RlcyIpKTsKKworICAgIGJvb2wgaXNQYXN0Tm9kZSA9
IHRydWU7CisKKyAgICAvLyBDbGVhciB0aGUgY29udGVudHMgb2YgdGhlIHR3byBzZXRzLgorICAg
IG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBtX2Z1dHVyZURv
Y3VtZW50Tm9kZXMtPnNldFNoYWRvd1BzZXVkb0lkKHRyYWNrRnV0dXJlTm9kZXNTaGFkb3dQc2V1
ZG9JZCk7CisKKyAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOworICAg
IG1fcGFzdERvY3VtZW50Tm9kZXMtPnNldFNoYWRvd1BzZXVkb0lkKHRyYWNrUGFzdE5vZGVzU2hh
ZG93UHNldWRvSWQpOworCisgICAgLy8gVXBkYXRlIHRoZSB0d28gc2V0cyBjb250YWluaW5nIHBh
c3QgYW5kIGZ1dHVyZSBXZWJWVFQgb2JqZWN0cy4KKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gcmVmZXJlbmNlVHJlZSA9IGdldEN1ZUFzSFRNTCgpOworCisgICAgaWYgKCFtX2hhc0lubmVy
VGltZXN0YW1wcykgeworICAgICAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5hcHBlbmRDaGlsZChy
ZWZlcmVuY2VUcmVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAoTm9kZSAq
Y2hpbGQgPSByZWZlcmVuY2VUcmVlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+bm9kZU5hbWUoKSA9PSB0aW1l
c3RhbXBUYWcpIHsKKyAgICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOworICAgICAgICAgICAgZG91
YmxlIHRpbWVzdGFtcFRpbWUgPSBjaGlsZC0+bm9kZVZhbHVlKCkudG9Eb3VibGUoJm9rKTsKKwor
ICAgICAgICAgICAgQVNTRVJUKG9rKTsKKworICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFRpbWUg
PiBtb3ZpZVRpbWUpCisgICAgICAgICAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGlzUGFzdE5vZGUpCisgICAgICAgICAgICBtX3Bhc3REb2N1bWVu
dE5vZGVzLT5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OLCBmYWxzZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZnV0dXJlRG9jdW1l
bnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwgQVNTRVJUX05PX0VY
Q0VQVElPTiwgZmFsc2UpOworICAgIH0KK30KKwogUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4g
VGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNrQmFja2dyb3VuZFNoYWRvd1BzZXVkb0lkLCAoIi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1iYWNrZ3JvdW5kIikpOwogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwg
KCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIpKTsKIAogICAgIGlmICghbV9kaXNw
bGF5VHJlZVNob3VsZENoYW5nZSkKQEAgLTU0Miw2ICs1OTgsNyBAQCBQYXNzUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKCkKICAgICAvLyAxMC4xMS4g
QXBwbHkgdGhlIHRlcm1zIG9mIHRoZSBDU1Mgc3BlY2lmaWNhdGlvbnMgdG8gbm9kZXMgd2l0aGlu
IHRoZQogICAgIC8vIGZvbGxvd2luZyBjb25zdHJhaW50cywgdGh1cyBvYnRhaW5pbmcgYSBzZXQg
b2YgQ1NTIGJveGVzIHBvc2l0aW9uZWQKICAgICAvLyByZWxhdGl2ZSB0byBhbiBpbml0aWFsIGNv
bnRhaW5pbmcgYmxvY2s6CisgICAgbV9kaXNwbGF5VHJlZS0+c2V0U2hhZG93UHNldWRvSWQodHJh
Y2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1f
ZGlzcGxheVRyZWUtPnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAvLyBUaGUgZG9jdW1lbnQgdHJl
ZSBpcyB0aGUgdHJlZSBvZiBXZWJWVFQgTm9kZSBPYmplY3RzIHJvb3RlZCBhdCBub2Rlcy4KQEAg
LTU0OSwxMyArNjA2LDEwIEBAIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IFRleHRUcmFja0N1
ZTo6Z2V0RGlzcGxheVRyZWUoKQogICAgIC8vIFRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZXMgbXVz
dCBiZSB3cmFwcGVkIGluIGFuIGFub255bW91cyBib3ggd2hvc2UKICAgICAvLyAnZGlzcGxheScg
cHJvcGVydHkgaGFzIHRoZSB2YWx1ZSAnaW5saW5lJy4gVGhpcyBpcyB0aGUgV2ViVlRUIGN1ZQog
ICAgIC8vIGJhY2tncm91bmQgYm94LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY3VlQmFj
a2dyb3VuZEJveCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQq
PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKIAotICAgIGN1ZUJhY2tncm91bmRCb3gtPnNl
dFNoYWRvd1BzZXVkb0lkKHRyYWNrQmFja2dyb3VuZFNoYWRvd1BzZXVkb0lkKTsKLSAgICBjdWVC
YWNrZ3JvdW5kQm94LT5hcHBlbmRDaGlsZChnZXRDdWVBc0hUTUwoKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTiwgdHJ1ZSk7Ci0KLSAgICBtX2Rpc3BsYXlUcmVlLT5zZXRTaGFkb3dQc2V1ZG9JZCh0cmFj
a0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9k
aXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQoY3VlQmFja2dyb3VuZEJveCwgQVNTRVJUX05PX0VYQ0VQ
VElPTiwgdHJ1ZSk7CisgICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkgZGVmYXVsdCBp
biBtX3Bhc3REb2N1bWVudE5vZGVzLgorICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1f
cGFzdERvY3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOworICAgIG1fZGlz
cGxheVRyZWUtPmFwcGVuZENoaWxkKG1fZnV0dXJlRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VY
Q0VQVElPTiwgdHJ1ZSk7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxk
cmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1
YnkgVGV4dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UK
QEAgLTYwMSw2ICs2NTUsOSBAQCBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBUZXh0VHJhY2tD
dWU6OmdldERpc3BsYXlUcmVlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDU1NWYWx1ZVByZSk7CiAgICAgfQogCisgICAgaWYgKG1faGFzSW5uZXJUaW1l
c3RhbXBzKQorICAgICAgICB1cGRhdGVEaXNwbGF5VHJlZSh0cmFjaygpLT5tZWRpYUVsZW1lbnQo
KS0+Y3VycmVudFRpbWUoKSk7CisKICAgICBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlID0gZmFs
c2U7CiAKICAgICAvLyAxMC4xNS4gTGV0IGN1ZSdzIHRleHQgdHJhY2sgY3VlIGRpc3BsYXkgc3Rh
dGUgaGF2ZSB0aGUgQ1NTIGJveGVzIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaAppbmRleCBhMmNmMzBiMWRjY2M4OTc3NmYxNGY3NWE5ZWE3NGMwYjgzYjcyMjQ3Li45
YzViYTViNzExNDhlOGRiM2Y4MWQzYzBiNGM2MGE3OTFkYWQ3NjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRJc0FjdGl2ZShib29sKTsKIAogICAgIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IGdldERpc3BsYXlUcmVlKCk7CisgICAgdm9pZCB1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCk7
CiAgICAgdm9pZCByZW1vdmVEaXNwbGF5VHJlZSgpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKQEAgLTE2Nyw2ICsxNjgsMTAgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fcGF1c2VPbkV4aXQ7CiAgICAgYm9vbCBtX3NuYXBUb0xpbmVzOwog
CisgICAgYm9vbCBtX2hhc0lubmVyVGltZXN0YW1wczsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1l
bnQ+IG1fcGFzdERvY3VtZW50Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Z1
dHVyZURvY3VtZW50Tm9kZXM7CisKICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7
CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Rpc3BsYXlUcmVlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHAKaW5kZXggMzJiNzlmMTBlODIyZjU0MThh
YjE5MTcyMzk0M2Y5N2Y0OWVjYjJiZC4uYmEyZWYyMDYxYzU2YjA5NzM4OWQ4ZmIyM2ViNmUxMzdj
YjkxYWYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmNwcApA
QCAtMzgzLDcgKzM4Myw3IEBAIHZvaWQgV2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RUcmVlRnJvbVRv
a2VuKERvY3VtZW50KiBkb2N1bWVudCkKICAgICAgICAgdW5zaWduZWQgcG9zaXRpb24gPSAwOwog
ICAgICAgICBkb3VibGUgdGltZSA9IGNvbGxlY3RUaW1lU3RhbXAobV90b2tlbi5jaGFyYWN0ZXJz
KCkuZGF0YSgpLCAmcG9zaXRpb24pOwogICAgICAgICBpZiAodGltZSAhPSBtYWxmb3JtZWRUaW1l
KQotICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQoUHJvY2Vzc2luZ0lu
c3RydWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQsICJ0aW1lc3RhbXAiLCBTdHJpbmcobV90b2tlbi5j
aGFyYWN0ZXJzKCkuZGF0YSgpLCBtX3Rva2VuLmNoYXJhY3RlcnMoKS5zaXplKCkpKSk7CisgICAg
ICAgICAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b246OmNyZWF0ZShkb2N1bWVudCwgInRpbWVzdGFtcCIsIFN0cmluZzo6bnVtYmVyKHRpbWUpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJkM2E3MDEwNWMy
MWM5ZGExMGI2ZGRjZmZiMmFjZmJlYTVjZDlkYjQuLjEyNmEzN2U4ZTYzOGU0NzBmZjEwYWNmOTk5
OTc5OWIzNTQ4N2YwYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0wMyAgVmljdG9y
IENhcmJ1bmUgIDx2aWN0b3JAcm9zZWR1Lm9yZz4KKworICAgICAgICBCYXNpYyBzdXBwb3J0IGZv
ciB0aW1lc3RhbXBzIHdpdGhpbiBhIFRleHRUcmFja0N1ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxODcKKworICAgICAgICBJbXBsZW1lbnRlZCBz
dXBwb3J0IGZvciB0aW1lc3RhbXBzIHdpdGhpbiBhIFRleHRUcmFja0N1ZS4KKyAgICAgICAgVGhp
cyBlbmFibGVzIHJlbmRlcmluZyBmdW5jdGlvbmFsaXR5IGZvciBLYXJhb2tlIGFuZCBQYWludC1v
biBjYXB0aW9ucy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3Rh
bXBzLnZ0dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmlu
Zy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
dHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTA2LTAzICBWYXJ1biBKYWluICA8dmFydW5qYWluQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBBZGQgbmV3IGdlc3R1cmUgdHlwZSAodHdvIGZpbmdlciB0YXApIHRoYXQg
dHJpZ2dlcnMgY29udGV4dCBtZW51LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFt
cHMudnR0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFhMGQ0NTVjYjE0NGI1ZmVkYjMzZjk5NzhmODc3YWQ3NTVjMTY1
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0aW9ucy13
ZWJ2dHQvY2FwdGlvbnMtaW5uZXItdGltZXN0YW1wcy52dHQKQEAgLTAsMCArMSwxMyBAQAor77u/
V0VCVlRUDQorDQorMQ0KKzAwOjAwOjAwLjAwMCAtLT4gMDA6MDA6MDAuOTUwDQorPDAwOjAwOjAw
LjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQ0K
Kw0KKzINCiswMDowMDowMS4wMDAgLS0+IDAwOjAwOjAzLjYwMA0KKzwwMDowMDowMS4yMDA+U29t
ZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwPmFuZCA8
MDA6MDA6MDIuNDU+b3RoZXJzIDwwMDowMDowMi45NT5mZWVsIDwwMDowMDowMy4yMD50aGUgPDAw
OjAwOjAzLjQ1PnBhaW4NCisNCiszDQorMDA6MDA6MDMuNzAwIC0tPiAwMDowMDowNC4yNTANCis8
MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6MDA6MDQuMDAwPlJhaW4NCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFt
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRl
cmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjc5MGIzZjgx
MGJlYzk1ZGFmYWI2MGU2MjdhMmY4NzBkYmJiZDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1NyBAQAorVGVzdCB0aGF0IFRleHRUcmFjaydzIGN1ZXMg
YXJlIHJlbmRlcmVkIGNvcnJlY3RseSB3aGVuIHRoZXkgY29udGFpbiBpbm5lciB0aW1lc3RhbXBz
LgorRVZFTlQoY2FucGxheXRocm91Z2gpCisKKyoqIEZpcnN0IGN1ZSAoZW1wdHkpICoqCitFVkVO
VChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAwCitQYXN0OiAKK0Z1dHVyZTog
Q2hvY29sYXRlIFJhaW4gS2FyYW9rZQorQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRl
IDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKKworKiogRmlyc3QgY3Vl
IChvbmUgd29yZCkgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6
IDAuMjUKK1Bhc3Q6IENob2NvbGF0ZSAKK0Z1dHVyZTogUmFpbiBLYXJhb2tlCitDb21wbGV0ZTog
PDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+
S2FyYW9rZQorCisqKiBGaXJzdCBjdWUgKHR3byB3b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKwor
KiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDAuNQorUGFzdDogQ2hvY29sYXRlIFJhaW4gCitGdXR1
cmU6IEthcmFva2UKK0NvbXBsZXRlOiA8MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAu
NDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCisKKyoqIEZpcnN0IGN1ZSAodGhyZWUgd29y
ZHMpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAwLjc1CitQ
YXN0OiBDaG9jb2xhdGUgUmFpbiBLYXJhb2tlCitGdXR1cmU6IAorQ29tcGxldGU6IDwwMDowMDow
MC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UK
KworKiogU2Vjb25kIGN1ZSAoZW1wdHkpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgor
Q3VycmVudCB0aW1lOiAxCitQYXN0OiAKK0Z1dHVyZTogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJz
IGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1
MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMD5hbmQgPDAwOjAwOjAyLjQ1Pm90
aGVycyA8MDA6MDA6MDIuOTU+ZmVlbCA8MDA6MDA6MDMuMjA+dGhlIDwwMDowMDowMy40NT5wYWlu
CisKKyoqIFNlY29uZCBjdWUgKG9uZSB3b3JkKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAw
ICoKK0N1cnJlbnQgdGltZTogMS4yNQorUGFzdDogU29tZSAKK0Z1dHVyZTogc3RheSBkcnkgYW5k
IG90aGVycyBmZWVsIHRoZSBwYWluCitDb21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjA+YW5kIDwwMDowMDow
Mi40NT5vdGhlcnMgPDAwOjAwOjAyLjk1PmZlZWwgPDAwOjAwOjAzLjIwPnRoZSA8MDA6MDA6MDMu
NDU+cGFpbgorCisqKiBTZWNvbmQgY3VlICh0d28gd29yZHMpICoqCitFVkVOVChzZWVrZWQpCisK
KyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjUKK1Bhc3Q6IFNvbWUgc3RheSAKK0Z1dHVyZTog
ZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgorQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29t
ZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwPmFuZCA8
MDA6MDA6MDIuNDU+b3RoZXJzIDwwMDowMDowMi45NT5mZWVsIDwwMDowMDowMy4yMD50aGUgPDAw
OjAwOjAzLjQ1PnBhaW4KKworKiogU2Vjb25kIGN1ZSAodGhyZWUgd29yZHMpICoqCitFVkVOVChz
ZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjc1CitQYXN0OiBTb21lIHN0YXkg
ZHJ5IAorRnV0dXJlOiBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6
MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDow
Mi4yMD5hbmQgPDAwOjAwOjAyLjQ1Pm90aGVycyA8MDA6MDA6MDIuOTU+ZmVlbCA8MDA6MDA6MDMu
MjA+dGhlIDwwMDowMDowMy40NT5wYWluCisKKyoqIFNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3Jl
KSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMgorUGFzdDog
U29tZSBzdGF5IGRyeSAKK0Z1dHVyZTogYW5kIG90aGVycyBmZWVsIHRoZSBwYWluCitDb21wbGV0
ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRy
eSA8MDA6MDA6MDIuMjA+YW5kIDwwMDowMDowMi40NT5vdGhlcnMgPDAwOjAwOjAyLjk1PmZlZWwg
PDAwOjAwOjAzLjIwPnRoZSA8MDA6MDA6MDMuNDU+cGFpbgorCisqKiBTZWNvbmQgY3VlIChmb3Vy
IHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMi4y
NQorUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgCitGdXR1cmU6IG90aGVycyBmZWVsIHRoZSBwYWlu
CitDb21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6
MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjA+YW5kIDwwMDowMDowMi40NT5vdGhlcnMgPDAwOjAwOjAy
Ljk1PmZlZWwgPDAwOjAwOjAzLjIwPnRoZSA8MDA6MDA6MDMuNDU+cGFpbgorCisqKiBTZWNvbmQg
Y3VlIChmaXZlIHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQg
dGltZTogMi41CitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgCitGdXR1cmU6IGZlZWwg
dGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5
IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMD5hbmQgPDAwOjAwOjAyLjQ1Pm90aGVycyA8
MDA6MDA6MDIuOTU+ZmVlbCA8MDA6MDA6MDMuMjA+dGhlIDwwMDowMDowMy40NT5wYWluCisKKyoq
IFNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3JlKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAw
ICoKK0N1cnJlbnQgdGltZTogMi43NQorUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIAor
RnV0dXJlOiBmZWVsIHRoZSBwYWluCitDb21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDow
MDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjA+YW5kIDwwMDowMDow
Mi40NT5vdGhlcnMgPDAwOjAwOjAyLjk1PmZlZWwgPDAwOjAwOjAzLjIwPnRoZSA8MDA6MDA6MDMu
NDU+cGFpbgorCisqKiBTZWNvbmQgY3VlIChzaXggd29yZHMpICoqCitFVkVOVChzZWVrZWQpCisK
KyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAzCitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhl
cnMgZmVlbCAKK0Z1dHVyZTogdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUg
PDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMD5hbmQgPDAw
OjAwOjAyLjQ1Pm90aGVycyA8MDA6MDA6MDIuOTU+ZmVlbCA8MDA6MDA6MDMuMjA+dGhlIDwwMDow
MDowMy40NT5wYWluCisKKyoqIFNlY29uZCBjdWUgKHNldmVuIHdvcmRzKSAqKgorRVZFTlQoc2Vl
a2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMy4yNQorUGFzdDogU29tZSBzdGF5IGRy
eSBhbmQgb3RoZXJzIGZlZWwgdGhlIAorRnV0dXJlOiBwYWluCitDb21wbGV0ZTogPDAwOjAwOjAx
LjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIu
MjA+YW5kIDwwMDowMDowMi40NT5vdGhlcnMgPDAwOjAwOjAyLjk1PmZlZWwgPDAwOjAwOjAzLjIw
PnRoZSA8MDA6MDA6MDMuNDU+cGFpbgorCisqKiBTZWNvbmQgY3VlIChlaWdodCB3b3JkcykgKioK
K0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDMuNQorUGFzdDogU29t
ZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0Z1dHVyZTogCitDb21wbGV0ZTog
PDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8
MDA6MDA6MDIuMjA+YW5kIDwwMDowMDowMi40NT5vdGhlcnMgPDAwOjAwOjAyLjk1PmZlZWwgPDAw
OjAwOjAzLjIwPnRoZSA8MDA6MDA6MDMuNDU+cGFpbgorCisqKiBUaGlyZCBjdWUgKG9uZSB3b3Jk
KSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMy43NQorUGFz
dDogQ2hvY29sYXRlIAorRnV0dXJlOiBSYWluCitDb21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9j
b2xhdGUgPDAwOjAwOjA0LjAwMD5SYWluCisKKyoqIFRoaXJkIGN1ZSAodHdvIHdvcmRzKSAqKgor
RVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogNAorUGFzdDogQ2hvY29s
YXRlIFJhaW4KK0Z1dHVyZTogCitDb21wbGV0ZTogPDAwOjAwOjAzLjc1MD5DaG9jb2xhdGUgPDAw
OjAwOjA0LjAwMD5SYWluCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1w
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlkY2MxZTg1ODlkNGVlNjJhZjFjZTFmMzIxZWViZWE0MTA2OTVl
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUt
cmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisKKyAg
ICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Li4vbWVkaWEtY29udHJvbHMuanM+PC9zY3JpcHQ+CisKKyAgICAgICAgPHNjcmlwdD4KKworICAg
ICAgICB2YXIgdGVzdFRyYWNrOworICAgICAgICB2YXIgY3VlRGlzcGxheUVsZW1lbnQ7CisgICAg
ICAgIHZhciBjdWVEaXNwbGF5Q29udGFpbmVyOworICAgICAgICB2YXIgc2Vla2VkQ291bnQgPSAw
OworCisgICAgICAgIHZhciB0ZXN0Q2FzZURlc2NyaXB0aW9uID0gWworICAgICAgICAgICAgICAg
ICJGaXJzdCBjdWUgKGVtcHR5KSIsCisgICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAob25lIHdv
cmQpIiwKKyAgICAgICAgICAgICAgICAiRmlyc3QgY3VlICh0d28gd29yZHMpIiwKKyAgICAgICAg
ICAgICAgICAiRmlyc3QgY3VlICh0aHJlZSB3b3JkcykiLAorICAgICAgICAgICAgICAgICJTZWNv
bmQgY3VlIChlbXB0eSkiLAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChvbmUgd29yZCki
LAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlICh0d28gd29yZHMpIiwKKyAgICAgICAgICAg
ICAgICAiU2Vjb25kIGN1ZSAodGhyZWUgd29yZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25k
IGN1ZSAoc2FtZSBhcyBiZWZvcmUpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZm91
ciB3b3JkcykiLAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChmaXZlIHdvcmRzKSIsCisg
ICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3JlKSIsCisgICAgICAgICAg
ICAgICAgIlNlY29uZCBjdWUgKHNpeCB3b3JkcykiLAorICAgICAgICAgICAgICAgICJTZWNvbmQg
Y3VlIChzZXZlbiB3b3JkcykiLAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChlaWdodCB3
b3JkcykiLAorICAgICAgICAgICAgICAgICJUaGlyZCBjdWUgKG9uZSB3b3JkKSIsCisgICAgICAg
ICAgICAgICAgIlRoaXJkIGN1ZSAodHdvIHdvcmRzKSIKKyAgICAgICAgXTsKKworICAgICAgICAv
LyBFYWNoIHRlc3QgY2FzZSBpcyBmb3VuZCBieSBpbmNyZW1lbnRpbmcgd2l0aCAwLjI1MCB0aGUg
Y3VycmVudCB0aW1lLgorICAgICAgICB2YXIgdGVzdENhc2VTZWVrVGltZSA9IFsKKyAgICAgICAg
XTsKKworICAgICAgICB2YXIgY3VycmVudFRlc3RDYXNlID0gMDsKKworICAgICAgICBmdW5jdGlv
biBzZWVrZWQoKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRl
c3RUcmFjay50cmFjay5hY3RpdmVDdWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAg
Y3VlRGlzcGxheUVsZW1lbnQgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Rpc3Bs
YXknLCBpKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCIqIEN1ZSAiICsgaSArICIgKiIpOworCisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCJDdXJyZW50IHRpbWU6ICIgKyB2aWRlby5jdXJyZW50VGltZSk7Cisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJQYXN0OiAiICsgY3VlRGlzcGxheUVsZW1lbnQu
Y2hpbGROb2Rlc1swXS5pbm5lckhUTUwpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
RnV0dXJlOiAiICsgY3VlRGlzcGxheUVsZW1lbnQuY2hpbGROb2Rlc1sxXS5pbm5lckhUTUwpOwor
CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCJDb21wbGV0ZTogIiArIHRlc3RUcmFjay50
cmFjay5hY3RpdmVDdWVzW2ldLnRleHQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy
dW5OZXh0VGVzdENhc2UoKTsKKyAgICAgICAgfTsKKworICAgICAgICBmdW5jdGlvbiBydW5OZXh0
VGVzdENhc2UoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY3VycmVudFRlc3RDYXNlID09
IHRlc3RDYXNlRGVzY3JpcHRpb24ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZW5kVGVzdCgp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiogIiArICB0ZXN0
Q2FzZURlc2NyaXB0aW9uW2N1cnJlbnRUZXN0Q2FzZV0gKyAiICoqIik7CisKKyAgICAgICAgICAg
IHZpZGVvLmN1cnJlbnRUaW1lID0gdGVzdENhc2VTZWVrVGltZVtjdXJyZW50VGVzdENhc2VdOwor
ICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdzZWVrZWQnLCBzZWVrZWQsIGZhbHNlLCB0cnVlKTsK
KworICAgICAgICAgICAgY3VycmVudFRlc3RDYXNlKys7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBsb2FkZWQoKQorICAgICAgICB7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRl
c3QgdGhhdCBUZXh0VHJhY2sncyBjdWVzIGFyZSByZW5kZXJlZCBjb3JyZWN0bHkgd2hlbiB0aGV5
IGNvbnRhaW4gaW5uZXIgdGltZXN0YW1wcy4iKTsKKworICAgICAgICAgICAgZmluZE1lZGlhRWxl
bWVudCgpOworICAgICAgICAgICAgdGVzdFRyYWNrID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
dHJhY2snKTsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywg
Jy4uL2NvbnRlbnQvdGVzdCcpOworCisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0
aHJvdWdoJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3VlRGlzcGxheUNvbnRhaW5l
ciA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKTsKKworICAgICAgICAgICAgICAgIGZv
ciAoaSA9IDAuMDsgaSA8IDQuNTAwOyBpICs9IDAuMjUwKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0Q2FzZVNlZWtUaW1lLnB1c2goaSk7CisKKyAgICAgICAgICAgICAgICBydW5OZXh0VGVzdENh
c2UoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorICAgICAgICA8dmlkZW8g
Y29udHJvbHM+CisgICAgICAgICAgICA8dHJhY2sgc3JjPSJjYXB0aW9ucy13ZWJ2dHQvY2FwdGlv
bnMtaW5uZXItdGltZXN0YW1wcy52dHQiIGtpbmQ9ImNhcHRpb25zIiBkZWZhdWx0PgorICAgICAg
ICA8L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145488</attachid>
            <date>2012-06-03 10:56:36 -0700</date>
            <delta_ts>2012-06-07 16:53:34 -0700</delta_ts>
            <desc>Corrected patch</desc>
            <filename>bug-88187-20120603205634.patch</filename>
            <type>text/plain</type>
            <size>24427</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzE5MjY5MDVmMDVmNDE0
MDk3NWJmNjcyNTkzMGY1MmY5YmUxYjcxNS4uYWNjZmMyNDQ4MTNmMTM4MWExZjM4ZDk3YmQxNjU3
ZGQ4NjczYzlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA2LTAzICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBOZWVkIGEgc2hvcnQg
ZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5k
ZXJpbmctaW5uZXItdGltZXN0YW1wcy5odG1sCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9s
cy5jc3M6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qtbm9k
ZXMpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9k
ZXMpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKToKKyAgICAg
ICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6
OmdldEN1ZUFzSFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OnVwZGF0ZURp
c3BsYXlUcmVlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrQ3VlOjpnZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuaDoKKyAgICAgICAgKFRleHRUcmFja0N1ZSk6CisgICAgICAgICogaHRtbC90cmFjay9XZWJW
VFRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRUUGFyc2VyOjpjb25zdHJ1Y3RU
cmVlRnJvbVRva2VuKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oOgorICAg
ICAgICAoV2ViVlRUUGFyc2VyKToKKworMjAxMi0wNi0wMyAgVmljdG9yIENhcmJ1bmUgIDx2aWN0
b3JAcm9zZWR1Lm9yZz4KKworICAgICAgICBCYXNpYyBzdXBwb3J0IGZvciB0aW1lc3RhbXBzIHdp
dGhpbiBhIFRleHRUcmFja0N1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODgxODcKKworICAgICAgICBJbXBsZW1lbnRlZCBzdXBwb3J0IGZvciB0aW1l
c3RhbXBzIHdpdGhpbiBhIFRleHRUcmFja0N1ZS4KKyAgICAgICAgVGhpcyBlbmFibGVzIHJlbmRl
cmluZyBmdW5jdGlvbmFsaXR5IGZvciBLYXJhb2tlIGFuZCBQYWludC1vbiBjYXB0aW9ucy4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBtZWRp
YS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbAorCisgICAg
ICAgICogY3NzL21lZGlhQ29udHJvbHMuY3NzOiBSZW1vdmUgdGhlIGJhY2tncm91bmQgc2hhZG93
IHBzZXVkby1pZCBhbmQKKyAgICAgICAgYWRkZWQgdHdvIG90aGVycywgd2hpY2ggY2FuIGJlIGZ1
cnRoZXIgdXNlZCBmb3Igc3R5bGluZyBwYXN0IC8gZnV0dXJlCisgICAgICAgIGNvbnRlbnRzIG9m
IHRoZSBjdWUuCisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qt
bm9kZXMpOiBVc2VkIHRvIHN0eWxlIGVsZW1lbnRzCisgICAgICAgIHdpdGhpbiB0aGUgY3VlIHRo
YXQgYXJlIGJlZm9yZSB0aGUgY3VycmVudCBtb3ZpZSB0aW1lLgorICAgICAgICAodmlkZW86Oi13
ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMpOiBVc2VkIHRvIHN0eWxlIGVsZW1l
bnRzCisgICAgICAgIHdpdGhpbiB0aGUgY3VlIHRoYXQgYXJlIGFmdGVyIHRoZSBjdXJyZW50IG1v
dmllIHRpbWUuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOiBS
ZWdhcmRsZXNzIG9mIHdoZXRoZXIKKyAgICAgICAgdGhlIGFjdGl2ZSBzZXQgY2hhbmdlZCBvciBu
b3QsIHRoZSBjdXJyZW50IGN1ZXMgbmVlZCB0byBiZSBpbmZvcm1lZCBvZiB0aGUgY3VycmVudAor
ICAgICAgICBtb3ZpZSB0aW1lLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKTogSW5pdGls
aWF6ZWQgcGFzdCBhbmQgZnV0dXJlIGNvbnRhaW5lcnMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0
VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCk6IENoZWNrZWQgd2hldGhlciB0aGUgY3VycmVudCBjdWUg
dGV4dCBoYXMKKyAgICAgICAgaW5uZXIgdGltZXN0YW1wcyBvciBub3QsIGluIG9yZGVyIHRvIHJl
bmRlciBmYXN0ZXIgaWYgbm8gdGltZXN0YW1wcyBhcmUgdGhlcmUuCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKTogQWRkZWQgbWV0aG9kIHRoYXQga2Vl
cHMgdGhlIHBhc3QgYW5kIGZ1dHVyZQorICAgICAgICBjb250YWluZXJzIHVwIHRvIGRhdGUsIGdp
dmVuIGEgY3VycmVudCBtb3ZpZSB0aW1lLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKTogUmVwbGFjZWQgdGhlIGN1ZSBi
YWNrZ3JvdW5kIGNvbnRhaW5lciB3aXRoIHRoZQorICAgICAgICBwYXN0IGN1ZXMgY29udGFpbmVy
LiBUaGUgKmludGVybmFsKiBkaXNwbGF5IHRyZWUgb2YgdGhlIGN1ZSBub3cgaGFzIHR3byBjb250
YWluZXJzLAorICAgICAgICByZXByZXNlbnRpbmcgcGFzdCBhbmQgZnV0dXJlIGVsZW1lbnRzLgor
ICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6IEFkZGVkIHNldmVyYWwgdmFyaWFi
bGVzIHRvIHN1cHBvcnQgdGhlIG5ldyBmdW5jdGlvbmFsaXR5LgorICAgICAgICAoVGV4dFRyYWNr
Q3VlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJWVFRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4pOiBVcGRhdGVkIHJl
cHJlc2VudGF0aW9uIGZvciB0aGlzIHBhdGNoLgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRU
UGFyc2VyLmg6CisgICAgICAgIChXZWJWVFRQYXJzZXIpOiBNYWRlIHB1YmxpYyB0aGUgY29sbGVj
dFRpbWVTdGFtcCBtZXRob2QsIGFzIHRoaXMgaXMgcmVxdWlyZWQgZm9yCisgICAgICAgIHBhcnNp
bmcgdGltZXN0YW1wcyB3aXRoaW4gYSBjdWUgYXMgd2VsbC4KKwogMjAxMi0wNi0wMyAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjExOTM1OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpp
bmRleCAxYjIwNTdmMDI5NzQ5NGEyNzJmOGE0NjFhYzcwZDFkNGVhYTQzMjYyLi43ZWRjNWFmYjU2
YWNlYzdhMGZmYmU0MjZhMTUxYjczZThmMDMyZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHMuY3NzCkBAIC0yMjUsMTAgKzIyNSwyNSBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0
LXRyYWNrLWNvbnRhaW5lciB7CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKIH0KIAotdmlkZW86
Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1iYWNrZ3JvdW5kIHsKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyB7CiAgICAgZGlzcGxheTogaW5saW5lOworCiAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgIHBhZGRpbmc6IDJweCAy
cHg7CisKKyAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIHsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47Cisg
ICAgZGlzcGxheTogaW5saW5lOworCisgICAgY29sb3I6IGdyZWVuOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKKworICAgIG1hcmdpbi1sZWZ0OiAtMnB4OworICAg
IHBhZGRpbmc6IDJweCAycHggMnB4IDBweDsKKwogICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMGFmNjA5
ZmY4ODczNjFlMmRhMjlkYWM5Njc3ZTgxODliOTBmZDhlNi4uN2I1NmRkYzA0Yjc3NTliYmI0ODc5
YjgzOGEwYThmY2MxZTQwZDg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC0xMTAxLDcgKzExMDEsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0
ZUFjdGl2ZVRleHRUcmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQogICAgICAgICBpZiAoIWN1cnJl
bnRDdWVzLmNvbnRhaW5zKHByZXZpb3VzQ3Vlc1tpXSkgJiYgcHJldmlvdXNDdWVzW2ldLmRhdGEo
KS0+aXNBY3RpdmUoKSkKICAgICAgICAgICAgIGFjdGl2ZVNldENoYW5nZWQgPSB0cnVlOwogCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7ICFhY3RpdmVTZXRDaGFuZ2VkICYmIGkgPCBjdXJyZW50Q3Vl
c1NpemU7ICsraSkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3VycmVudEN1ZXNTaXpl
OyArK2kpIHsKKyAgICAgICAgY3VycmVudEN1ZXNbaV0uZGF0YSgpLT51cGRhdGVEaXNwbGF5VHJl
ZShtb3ZpZVRpbWUpOworCiAgICAgICAgIGlmICghY3VycmVudEN1ZXNbaV0uZGF0YSgpLT5pc0Fj
dGl2ZSgpKQogICAgICAgICAgICAgYWN0aXZlU2V0Q2hhbmdlZCA9IHRydWU7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDg1YzdiMmM1MmFj
YWIwZmZmMDJjM2RlZjA0OTQzYmIwZWJjNjBjYjUuLmQyZGU0ZDNlNTQxMmRjNTFlMTVlOGViZGM3
ZTQyYTIxMDY1OWNkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dFRy
YWNrLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgpAQCAtOTksMTAgKzEwMCwxNCBA
QCBUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIGlkLCBkbwogICAgICwgbV9jdWVJbmRleChpbnZhbGlkQ3VlSW5k
ZXgpCiAgICAgLCBtX3dyaXRpbmdEaXJlY3Rpb24oSG9yaXpvbnRhbCkKICAgICAsIG1fY3VlQWxp
Z25tZW50KE1pZGRsZSkKKyAgICAsIG1fZG9jdW1lbnRGcmFnbWVudCgwKQogICAgICwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQogICAg
ICwgbV9wYXVzZU9uRXhpdChwYXVzZU9uRXhpdCkKICAgICAsIG1fc25hcFRvTGluZXModHJ1ZSkK
KyAgICAsIG1faGFzSW5uZXJUaW1lc3RhbXBzKGZhbHNlKQorICAgICwgbV9wYXN0RG9jdW1lbnRO
b2RlcyhIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4
dCkpKQorICAgICwgbV9mdXR1cmVEb2N1bWVudE5vZGVzKEhUTUxEaXZFbGVtZW50OjpjcmVhdGUo
c3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlUcmVlU2hv
dWxkQ2hhbmdlKHRydWUpCiAgICAgLCBtX2Rpc3BsYXlUcmVlKEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCiAgICAgLCBtX2Rpc3BsYXlYUG9z
aXRpb24odW5kZWZpbmVkUG9zaXRpb24pCkBAIC0zNzIsOSArMzc3LDE2IEBAIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gVGV4dFRyYWNrQ3VlOjpnZXRDdWVBc0hUTUwoKQogICAgIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBjbG9uZWRGcmFnbWVudDsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQ7CiAKLSAgICBpZiAoIW1fZG9jdW1lbnRGcmFnbWVudCkKKyAgICBpZiAoIW1fZG9jdW1lbnRG
cmFnbWVudCkgeworICAgICAgICBtX2hhc0lubmVyVGltZXN0YW1wcyA9IGZhbHNlOwogICAgICAg
ICBtX2RvY3VtZW50RnJhZ21lbnQgPSBXZWJWVFRQYXJzZXI6OmNyZWF0ZSgwLCBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50RnJvbUN1ZVRleHQobV9jb250
ZW50KTsKIAorICAgICAgICBmb3IgKE5vZGUgKmNoaWxkID0gbV9kb2N1bWVudEZyYWdtZW50LT5m
aXJzdENoaWxkKCk7ICFtX2hhc0lubmVyVGltZXN0YW1wcyAmJiBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09
ICJ0aW1lc3RhbXAiKQorICAgICAgICAgICAgICAgIG1faGFzSW5uZXJUaW1lc3RhbXBzID0gdHJ1
ZTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1l
bnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogCiAgICAgY2xvbmVkRnJhZ21lbnQgPSBE
b2N1bWVudEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpAQCAtNTI4LDkgKzU0MCw1MyBAQCB2
b2lkIFRleHRUcmFja0N1ZTo6Y2FsY3VsYXRlRGlzcGxheVBhcmFtZXRlcnMoKQogICAgIC8vIEZJ
WE1FKEJ1ZyA3OTkxNik6IENTUyB0b3AgYW5kIGxlZnQgcHJvcGVydGllcyBuZWVkIHRvIGJlIGFw
cGxpZWQuCiB9CiAKK3ZvaWQgVGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCBt
b3ZpZVRpbWUpCit7CisgICAgLy8gVGhlIGRpc3BsYXkgdHJlZSBtYXkgY29udGFpbiBXZWJWVFQg
dGltZXN0YW1wIG9iamVjdHMgcmVwcmVzZW50aW5nCisgICAgLy8gdGltZXN0YW1wcyAocHJvY2Vz
c2luZyBpbnN0cnVjdGlvbnMpLCBhbG9uZyB3aXRoIGRpc3BsYXlhYmxlIG5vZGVzLgorICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB0aW1lc3RhbXBUYWcsICgidGltZXN0YW1w
IikpOworCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRyYWNr
UGFzdE5vZGVzU2hhZG93UHNldWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXBhc3Qt
bm9kZXMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHRy
YWNrRnV0dXJlTm9kZXNTaGFkb3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2st
ZnV0dXJlLW5vZGVzIikpOworCisgICAgYm9vbCBpc1Bhc3ROb2RlID0gdHJ1ZTsKKworICAgIC8v
IENsZWFyIHRoZSBjb250ZW50cyBvZiB0aGUgdHdvIHNldHMuCisgICAgbV9mdXR1cmVEb2N1bWVu
dE5vZGVzLT5yZW1vdmVDaGlsZHJlbigpOworICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rlcy0+c2V0
U2hhZG93UHNldWRvSWQodHJhY2tGdXR1cmVOb2Rlc1NoYWRvd1BzZXVkb0lkKTsKKworICAgIG1f
cGFzdERvY3VtZW50Tm9kZXMtPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgbV9wYXN0RG9jdW1lbnRO
b2Rlcy0+c2V0U2hhZG93UHNldWRvSWQodHJhY2tQYXN0Tm9kZXNTaGFkb3dQc2V1ZG9JZCk7CisK
KyAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJlIFdl
YlZUVCBvYmplY3RzLgorICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VUcmVl
ID0gZ2V0Q3VlQXNIVE1MKCk7CisKKyAgICBpZiAoIW1faGFzSW5uZXJUaW1lc3RhbXBzKSB7Cisg
ICAgICAgIG1fcGFzdERvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRyZWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChOb2RlICpjaGlsZCA9IHJlZmVyZW5j
ZVRyZWUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkp
IHsKKyAgICAgICAgaWYgKGNoaWxkLT5ub2RlTmFtZSgpID09IHRpbWVzdGFtcFRhZykgeworICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgIFN0cmluZyB0
aW1lc3RhbXAgPSBjaGlsZC0+bm9kZVZhbHVlKCk7CisKKyAgICAgICAgICAgIGRvdWJsZSB0aW1l
c3RhbXBUaW1lID0gV2ViVlRUUGFyc2VyOjpjcmVhdGUoMCwgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KS0+Y29sbGVjdFRpbWVTdGFtcCh0aW1lc3RhbXAsICZwb3NpdGlvbik7CisgICAgICAgICAg
ICBBU1NFUlQodGltZXN0YW1wVGltZSAhPSAtMSk7CisKKyAgICAgICAgICAgIGlmICh0aW1lc3Rh
bXBUaW1lID4gbW92aWVUaW1lKQorICAgICAgICAgICAgICAgIGlzUGFzdE5vZGUgPSBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1Bhc3ROb2RlKQorICAgICAgICAgICAgbV9wYXN0
RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwgQVNTRVJU
X05PX0VYQ0VQVElPTiwgZmFsc2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Z1dHVy
ZURvY3VtZW50Tm9kZXMtPmFwcGVuZENoaWxkKGNoaWxkLT5jbG9uZU5vZGUodHJ1ZSksIEFTU0VS
VF9OT19FWENFUFRJT04sIGZhbHNlKTsKKyAgICB9Cit9CisKIFBhc3NSZWZQdHI8SFRNTERpdkVs
ZW1lbnQ+IFRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUoKQogewotICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0JhY2tncm91bmRTaGFkb3dQc2V1ZG9J
ZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYmFja2dyb3VuZCIpKTsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tEaXNwbGF5Qm94U2hhZG93UHNl
dWRvSWQsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkiKSk7CiAKICAgICBpZiAo
IW1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UpCkBAIC01NDIsNiArNTk4LDcgQEAgUGFzc1JlZlB0
cjxIVE1MRGl2RWxlbWVudD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAgICAgLy8g
MTAuMTEuIEFwcGx5IHRoZSB0ZXJtcyBvZiB0aGUgQ1NTIHNwZWNpZmljYXRpb25zIHRvIG5vZGVz
IHdpdGhpbiB0aGUKICAgICAvLyBmb2xsb3dpbmcgY29uc3RyYWludHMsIHRodXMgb2J0YWluaW5n
IGEgc2V0IG9mIENTUyBib3hlcyBwb3NpdGlvbmVkCiAgICAgLy8gcmVsYXRpdmUgdG8gYW4gaW5p
dGlhbCBjb250YWluaW5nIGJsb2NrOgorICAgIG1fZGlzcGxheVRyZWUtPnNldFNoYWRvd1BzZXVk
b0lkKHRyYWNrRGlzcGxheUJveFNoYWRvd1BzZXVkb0lkLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
ICAgICBtX2Rpc3BsYXlUcmVlLT5yZW1vdmVDaGlsZHJlbigpOwogCiAgICAgLy8gVGhlIGRvY3Vt
ZW50IHRyZWUgaXMgdGhlIHRyZWUgb2YgV2ViVlRUIE5vZGUgT2JqZWN0cyByb290ZWQgYXQgbm9k
ZXMuCkBAIC01NDksMTMgKzYwNiwxMCBAQCBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBUZXh0
VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKCkKICAgICAvLyBUaGUgY2hpbGRyZW4gb2YgdGhlIG5v
ZGVzIG11c3QgYmUgd3JhcHBlZCBpbiBhbiBhbm9ueW1vdXMgYm94IHdob3NlCiAgICAgLy8gJ2Rp
c3BsYXknIHByb3BlcnR5IGhhcyB0aGUgdmFsdWUgJ2lubGluZScuIFRoaXMgaXMgdGhlIFdlYlZU
VCBjdWUKICAgICAvLyBiYWNrZ3JvdW5kIGJveC4KLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+
IGN1ZUJhY2tncm91bmRCb3ggPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7CiAKLSAgICBjdWVCYWNrZ3JvdW5k
Qm94LT5zZXRTaGFkb3dQc2V1ZG9JZCh0cmFja0JhY2tncm91bmRTaGFkb3dQc2V1ZG9JZCk7Ci0g
ICAgY3VlQmFja2dyb3VuZEJveC0+YXBwZW5kQ2hpbGQoZ2V0Q3VlQXNIVE1MKCksIEFTU0VSVF9O
T19FWENFUFRJT04sIHRydWUpOwotCi0gICAgbV9kaXNwbGF5VHJlZS0+c2V0U2hhZG93UHNldWRv
SWQodHJhY2tEaXNwbGF5Qm94U2hhZG93UHNldWRvSWQsIEFTU0VSVF9OT19FWENFUFRJT04pOwot
ICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKGN1ZUJhY2tncm91bmRCb3gsIEFTU0VSVF9O
T19FWENFUFRJT04sIHRydWUpOworICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRl
ZmF1bHQgaW4gbV9wYXN0RG9jdW1lbnROb2Rlcy4KKyAgICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRD
aGlsZChtX3Bhc3REb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKKyAg
ICBtX2Rpc3BsYXlUcmVlLT5hcHBlbmRDaGlsZChtX2Z1dHVyZURvY3VtZW50Tm9kZXMsIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwogCiAgICAgLy8gRklYTUUoQlVHIDc5OTE2KTogUnVucyBv
ZiBjaGlsZHJlbiBvZiBXZWJWVFQgUnVieSBPYmplY3RzIHRoYXQgYXJlIG5vdAogICAgIC8vIFdl
YlZUVCBSdWJ5IFRleHQgT2JqZWN0cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW5vbnltb3VzIGJveGVz
IHdob3NlCkBAIC02MDEsNiArNjU1LDkgQEAgUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gVGV4
dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ1NTVmFsdWVQcmUpOwogICAgIH0KIAorICAgIGlmIChtX2hhc0lu
bmVyVGltZXN0YW1wcykKKyAgICAgICAgdXBkYXRlRGlzcGxheVRyZWUodHJhY2soKS0+bWVkaWFF
bGVtZW50KCktPmN1cnJlbnRUaW1lKCkpOworCiAgICAgbV9kaXNwbGF5VHJlZVNob3VsZENoYW5n
ZSA9IGZhbHNlOwogCiAgICAgLy8gMTAuMTUuIExldCBjdWUncyB0ZXh0IHRyYWNrIGN1ZSBkaXNw
bGF5IHN0YXRlIGhhdmUgdGhlIENTUyBib3hlcyBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlLmgKaW5kZXggYTJjZjMwYjFkY2NjODk3NzZmMTRmNzVhOWVhNzRjMGI4M2I3
MjI0Ny4uOWM1YmE1YjcxMTQ4ZThkYjNmODFkM2MwYjRjNjBhNzkxZGFkNzY3ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBnZXREaXNwbGF5VHJlZSgpOworICAgIHZvaWQgdXBkYXRlRGlzcGxheVRyZWUo
ZmxvYXQpOwogICAgIHZvaWQgcmVtb3ZlRGlzcGxheVRyZWUoKTsKIAogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBpbnRlcmZhY2VOYW1lKCkgY29uc3Q7CkBAIC0xNjcsNiArMTY4LDEw
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BhdXNlT25FeGl0OwogICAgIGJvb2wgbV9zbmFwVG9M
aW5lczsKIAorICAgIGJvb2wgbV9oYXNJbm5lclRpbWVzdGFtcHM7CisgICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBtX3Bhc3REb2N1bWVudE5vZGVzOworICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVu
dD4gbV9mdXR1cmVEb2N1bWVudE5vZGVzOworCiAgICAgYm9vbCBtX2Rpc3BsYXlUcmVlU2hvdWxk
Q2hhbmdlOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gbV9kaXNwbGF5VHJlZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuY3BwCmluZGV4IDMyYjc5ZjEwZTgy
MmY1NDE4YWIxOTE3MjM5NDNmOTdmNDllY2IyYmQuLjg3ZGMxMGYzYTlmNDI5NGYyZmY3M2U5ZWUw
ZjE3ZjE3ZTNhZWIxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNl
ci5jcHAKQEAgLTM4Myw3ICszODMsNyBAQCB2b2lkIFdlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbihEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgICAgIHVuc2lnbmVkIHBvc2l0aW9u
ID0gMDsKICAgICAgICAgZG91YmxlIHRpbWUgPSBjb2xsZWN0VGltZVN0YW1wKG1fdG9rZW4uY2hh
cmFjdGVycygpLmRhdGEoKSwgJnBvc2l0aW9uKTsKICAgICAgICAgaWYgKHRpbWUgIT0gbWFsZm9y
bWVkVGltZSkKLSAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKFByb2Nl
c3NpbmdJbnN0cnVjdGlvbjo6Y3JlYXRlKGRvY3VtZW50LCAidGltZXN0YW1wIiwgU3RyaW5nKG1f
dG9rZW4uY2hhcmFjdGVycygpLmRhdGEoKSwgbV90b2tlbi5jaGFyYWN0ZXJzKCkuc2l6ZSgpKSkp
OworICAgICAgICAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQoUHJvY2Vzc2luZ0lu
c3RydWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQsICJ0aW1lc3RhbXAiLCAgU3RyaW5nKG1fdG9rZW4u
Y2hhcmFjdGVycygpLmRhdGEoKSwgbV90b2tlbi5jaGFyYWN0ZXJzKCkuc2l6ZSgpKSkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFBhcnNlci5oCmluZGV4IDBiM2IwNjZhYWU2ODY0MTllZjRmY2FhYmI5YjZjNzQ3MGRm
YmU0YWMuLjUyMmJiZmZhNzg5ZGZkNWZlNGZmNjI4ODBmYThiZGVjYWVlZmQwM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaApAQCAtOTQsNiArOTQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBnZXROZXdDdWVzKFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+Jik7
CiAKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZURvY3VtZW50RnJhZ21l
bnRGcm9tQ3VlVGV4dChjb25zdCBTdHJpbmcmKTsKKyAgICBkb3VibGUgY29sbGVjdFRpbWVTdGFt
cChjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCopOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViVlRUUGFy
c2VyKFdlYlZUVFBhcnNlckNsaWVudCosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKQEAgLTEx
MCw3ICsxMTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVOZXdDdWUoKTsKICAgICB2
b2lkIHJlc2V0Q3VlVmFsdWVzKCk7Ci0gICAgZG91YmxlIGNvbGxlY3RUaW1lU3RhbXAoY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQqKTsKKwogICAgIHZvaWQgc2tpcFdoaXRlU3BhY2UoY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQqKTsKICAgICBzdGF0aWMgdm9pZCBza2lwTGluZVRlcm1pbmF0b3IoY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCopOwogICAgIHN0YXRpYyBT
dHJpbmcgY29sbGVjdE5leHRMaW5lKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3YmE5MmRmYWM1NDYwM2M5NmVjMTg0ZWYzMDY0ZWNkMzM1OTNh
ZmViLi5iYzVjODY1NTk3YmUzMDdmNDYxMjI0YTU5ODBhY2JhN2ZmNDdhNDhlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTItMDYtMDMgIFZpY3RvciBDYXJidW5lICA8dmljdG9yQHJvc2VkdS5v
cmc+CisKKyAgICAgICAgQmFzaWMgc3VwcG9ydCBmb3IgdGltZXN0YW1wcyB3aXRoaW4gYSBUZXh0
VHJhY2tDdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg4MTg3CisKKyAgICAgICAgSW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgdGltZXN0YW1wcyB3aXRo
aW4gYSBUZXh0VHJhY2tDdWUuCisgICAgICAgIFRoaXMgZW5hYmxlcyByZW5kZXJpbmcgZnVuY3Rp
b25hbGl0eSBmb3IgS2FyYW9rZSBhbmQgUGFpbnQtb24gY2FwdGlvbnMuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS90cmFjay9jYXB0aW9u
cy13ZWJ2dHQvY2FwdGlvbnMtaW5uZXItdGltZXN0YW1wcy52dHQ6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0YW1wcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmct
aW5uZXItdGltZXN0YW1wcy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0wMyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjExOTM1OS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2Nh
cHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dCBiL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMzM0MTk4ZDc2YTJkNTQ1YzU5MGYyYmFhMjUyMDJjYjQwMGU5M2ExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0
L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0CkBAIC0wLDAgKzEsMTMgQEAKK++7v1dFQlZU
VA0KKw0KKzENCiswMDowMDowMC4wMDAgLS0+IDAwOjAwOjAwLjk1MA0KKzwwMDowMDowMC4yMDA+
Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UNCisNCisy
DQorMDA6MDA6MDEuMDAwIC0tPiAwMDowMDowMy42MDANCis8MDA6MDA6MDEuMjAwPlNvbWUgPDAw
OjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDow
MDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6
MDA6MDMuNDUwPnBhaW4NCisNCiszDQorMDA6MDA6MDMuNzAwIC0tPiAwMDowMDowNC4yNTANCis8
MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6MDA6MDQuMDAwPlJhaW4NCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFt
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRl
cmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDg5M2I5N2Nm
ZDlmZWYzZjc0ODUzY2EwYzFmOTgxNWU3YTcxNzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1NyBAQAorVGVzdCB0aGF0IFRleHRUcmFjaydzIGN1ZXMg
YXJlIHJlbmRlcmVkIGNvcnJlY3RseSB3aGVuIHRoZXkgY29udGFpbiBpbm5lciB0aW1lc3RhbXBz
LgorRVZFTlQoY2FucGxheXRocm91Z2gpCisKKyoqIEZpcnN0IGN1ZSAoZW1wdHkpICoqCitFVkVO
VChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAwCitQYXN0OiAKK0Z1dHVyZTog
Q2hvY29sYXRlIFJhaW4gS2FyYW9rZQorQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRl
IDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKKworKiogRmlyc3QgY3Vl
IChvbmUgd29yZCkgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6
IDAuMjUKK1Bhc3Q6IENob2NvbGF0ZSAKK0Z1dHVyZTogUmFpbiBLYXJhb2tlCitDb21wbGV0ZTog
PDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAwOjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+
S2FyYW9rZQorCisqKiBGaXJzdCBjdWUgKHR3byB3b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKwor
KiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDAuNQorUGFzdDogQ2hvY29sYXRlIFJhaW4gCitGdXR1
cmU6IEthcmFva2UKK0NvbXBsZXRlOiA8MDA6MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAu
NDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJhb2tlCisKKyoqIEZpcnN0IGN1ZSAodGhyZWUgd29y
ZHMpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAwLjc1CitQ
YXN0OiBDaG9jb2xhdGUgUmFpbiBLYXJhb2tlCitGdXR1cmU6IAorQ29tcGxldGU6IDwwMDowMDow
MC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UK
KworKiogU2Vjb25kIGN1ZSAoZW1wdHkpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgor
Q3VycmVudCB0aW1lOiAxCitQYXN0OiAKK0Z1dHVyZTogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJz
IGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1
MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+
b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUw
PnBhaW4KKworKiogU2Vjb25kIGN1ZSAob25lIHdvcmQpICoqCitFVkVOVChzZWVrZWQpCisKKyog
Q3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjI1CitQYXN0OiBTb21lIAorRnV0dXJlOiBzdGF5IGRy
eSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUg
PDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDww
MDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8
MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSAqKgorRVZFTlQo
c2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMS41CitQYXN0OiBTb21lIHN0YXkg
CitGdXR1cmU6IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6
MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDow
Mi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6
MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAodGhyZWUgd29y
ZHMpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjc1CitQ
YXN0OiBTb21lIHN0YXkgZHJ5IAorRnV0dXJlOiBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0Nv
bXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43
MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45
NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25k
IGN1ZSAoc2FtZSBhcyBiZWZvcmUpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3Vy
cmVudCB0aW1lOiAyCitQYXN0OiBTb21lIHN0YXkgZHJ5IAorRnV0dXJlOiBhbmQgb3RoZXJzIGZl
ZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5z
dGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3Ro
ZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBh
aW4KKworKiogU2Vjb25kIGN1ZSAoZm91ciB3b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKworKiBD
dWUgMCAqCitDdXJyZW50IHRpbWU6IDIuMjUKK1Bhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIAorRnV0
dXJlOiBvdGhlcnMgZmVlbCB0aGUgcGFpbgorQ29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8
MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAxLjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAw
OjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAyLjk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDww
MDowMDowMy40NTA+cGFpbgorCisqKiBTZWNvbmQgY3VlIChmaXZlIHdvcmRzKSAqKgorRVZFTlQo
c2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMi41CitQYXN0OiBTb21lIHN0YXkg
ZHJ5IGFuZCBvdGhlcnMgCitGdXR1cmU6IGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6
MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDow
Mi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6
MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAoc2FtZSBhcyBi
ZWZvcmUpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAyLjc1
CitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgCitGdXR1cmU6IGZlZWwgdGhlIHBhaW4K
K0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDow
MS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDow
Mi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vj
b25kIGN1ZSAoc2l4IHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJl
bnQgdGltZTogMworUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgCitGdXR1cmU6
IHRoZSBwYWluCitDb21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3Rh
eSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVy
cyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWlu
CisKKyoqIFNlY29uZCBjdWUgKHNldmVuIHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1
ZSAwICoKK0N1cnJlbnQgdGltZTogMy4yNQorUGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJz
IGZlZWwgdGhlIAorRnV0dXJlOiBwYWluCitDb21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDww
MDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6
MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAw
OjAwOjAzLjQ1MD5wYWluCisKKyoqIFNlY29uZCBjdWUgKGVpZ2h0IHdvcmRzKSAqKgorRVZFTlQo
c2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMy41CitQYXN0OiBTb21lIHN0YXkg
ZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFpbgorRnV0dXJlOiAKK0NvbXBsZXRlOiA8MDA6MDA6
MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDow
Mi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6
MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogVGhpcmQgY3VlIChvbmUgd29yZCkg
KioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDMuNzUKK1Bhc3Q6
IENob2NvbGF0ZSAKK0Z1dHVyZTogUmFpbgorQ29tcGxldGU6IDwwMDowMDowMy43NTA+Q2hvY29s
YXRlIDwwMDowMDowNC4wMDA+UmFpbgorCisqKiBUaGlyZCBjdWUgKHR3byB3b3JkcykgKioKK0VW
RU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDQKK1Bhc3Q6IENob2NvbGF0
ZSBSYWluCitGdXR1cmU6IAorQ29tcGxldGU6IDwwMDowMDowMy43NTA+Q2hvY29sYXRlIDwwMDow
MDowNC4wMDA+UmFpbgorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZGNjMWU4NTg5ZDRlZTYyYWYxY2UxZjMyMWVlYmVhNDEwNjk1ZTEy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJl
bmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNv
bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorCisgICAg
ICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4u
L21lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAg
ICAgdmFyIHRlc3RUcmFjazsKKyAgICAgICAgdmFyIGN1ZURpc3BsYXlFbGVtZW50OworICAgICAg
ICB2YXIgY3VlRGlzcGxheUNvbnRhaW5lcjsKKyAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsK
KworICAgICAgICB2YXIgdGVzdENhc2VEZXNjcmlwdGlvbiA9IFsKKyAgICAgICAgICAgICAgICAi
Rmlyc3QgY3VlIChlbXB0eSkiLAorICAgICAgICAgICAgICAgICJGaXJzdCBjdWUgKG9uZSB3b3Jk
KSIsCisgICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAodHdvIHdvcmRzKSIsCisgICAgICAgICAg
ICAgICAgIkZpcnN0IGN1ZSAodGhyZWUgd29yZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25k
IGN1ZSAoZW1wdHkpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAob25lIHdvcmQpIiwK
KyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAodHdvIHdvcmRzKSIsCisgICAgICAgICAgICAg
ICAgIlNlY29uZCBjdWUgKHRocmVlIHdvcmRzKSIsCisgICAgICAgICAgICAgICAgIlNlY29uZCBj
dWUgKHNhbWUgYXMgYmVmb3JlKSIsCisgICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZvdXIg
d29yZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykiLAorICAg
ICAgICAgICAgICAgICJTZWNvbmQgY3VlIChzYW1lIGFzIGJlZm9yZSkiLAorICAgICAgICAgICAg
ICAgICJTZWNvbmQgY3VlIChzaXggd29yZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1
ZSAoc2V2ZW4gd29yZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZWlnaHQgd29y
ZHMpIiwKKyAgICAgICAgICAgICAgICAiVGhpcmQgY3VlIChvbmUgd29yZCkiLAorICAgICAgICAg
ICAgICAgICJUaGlyZCBjdWUgKHR3byB3b3JkcykiCisgICAgICAgIF07CisKKyAgICAgICAgLy8g
RWFjaCB0ZXN0IGNhc2UgaXMgZm91bmQgYnkgaW5jcmVtZW50aW5nIHdpdGggMC4yNTAgdGhlIGN1
cnJlbnQgdGltZS4KKyAgICAgICAgdmFyIHRlc3RDYXNlU2Vla1RpbWUgPSBbCisgICAgICAgIF07
CisKKyAgICAgICAgdmFyIGN1cnJlbnRUZXN0Q2FzZSA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24g
c2Vla2VkKCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0
VHJhY2sudHJhY2suYWN0aXZlQ3Vlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGN1
ZURpc3BsYXlFbGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5
JywgaSk7CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiKiBDdWUgIiArIGkgKyAiICoiKTsKKworICAgICAgICAgICAgICAg
IGNvbnNvbGVXcml0ZSgiQ3VycmVudCB0aW1lOiAiICsgdmlkZW8uY3VycmVudFRpbWUpOworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiUGFzdDogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNo
aWxkTm9kZXNbMF0uaW5uZXJIVE1MKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZ1
dHVyZTogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMV0uaW5uZXJIVE1MKTsKKwor
ICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ29tcGxldGU6ICIgKyB0ZXN0VHJhY2sudHJh
Y2suYWN0aXZlQ3Vlc1tpXS50ZXh0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcnVu
TmV4dFRlc3RDYXNlKCk7CisgICAgICAgIH07CisKKyAgICAgICAgZnVuY3Rpb24gcnVuTmV4dFRl
c3RDYXNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXN0Q2FzZSA9PSB0
ZXN0Q2FzZURlc2NyaXB0aW9uLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICBjb25zb2xlV3JpdGUoIioqICIgKyAgdGVzdENh
c2VEZXNjcmlwdGlvbltjdXJyZW50VGVzdENhc2VdICsgIiAqKiIpOworCisgICAgICAgICAgICB2
aWRlby5jdXJyZW50VGltZSA9IHRlc3RDYXNlU2Vla1RpbWVbY3VycmVudFRlc3RDYXNlXTsKKyAg
ICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vla2VkJywgc2Vla2VkLCBmYWxzZSwgdHJ1ZSk7CisK
KyAgICAgICAgICAgIGN1cnJlbnRUZXN0Q2FzZSsrOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gbG9hZGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0
IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUgcmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBj
b250YWluIGlubmVyIHRpbWVzdGFtcHMuIik7CisKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1l
bnQoKTsKKyAgICAgICAgICAgIHRlc3RUcmFjayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Ry
YWNrJyk7CisgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcu
Li9jb250ZW50L3Rlc3QnKTsKKworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhy
b3VnaCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlDb250YWluZXIg
PSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbyk7CisKKyAgICAgICAgICAgICAgICBmb3Ig
KGkgPSAwLjA7IGkgPCA0LjUwMDsgaSArPSAwLjI1MCkKKyAgICAgICAgICAgICAgICAgICAgdGVz
dENhc2VTZWVrVGltZS5wdXNoKGkpOworCisgICAgICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNl
KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIDwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGNv
bnRyb2xzPgorICAgICAgICAgICAgPHRyYWNrIHNyYz0iY2FwdGlvbnMtd2VidnR0L2NhcHRpb25z
LWlubmVyLXRpbWVzdGFtcHMudnR0IiBraW5kPSJjYXB0aW9ucyIgZGVmYXVsdD4KKyAgICAgICAg
PC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146418</attachid>
            <date>2012-06-07 16:53:42 -0700</date>
            <delta_ts>2012-06-09 10:01:59 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-88187-20120608025340.patch</filename>
            <type>text/plain</type>
            <size>22633</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMxYTRkNzM4OWE4ZmIw
YTc0NDAxNDZiNTkzYWQ5YzFkYTQzYmFjYy4uNDMwNDJkN2U4YjYxNjJhYzQyM2E4ZTAzM2Y4MjI0
Y2UwODc0ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA2LTA3ICBWaWN0
b3IgQ2FyYnVuZSAgPHZpY3RvckByb3NlZHUub3JnPgorCisgICAgICAgIEJhc2ljIHN1cHBvcnQg
Zm9yIHRpbWVzdGFtcHMgd2l0aGluIGEgVGV4dFRyYWNrQ3VlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE4NworCisgICAgICAgIEltcGxlbWVudGVk
IHN1cHBvcnQgZm9yIHRpbWVzdGFtcHMgd2l0aGluIGEgVGV4dFRyYWNrQ3VlLgorICAgICAgICBU
aGlzIGVuYWJsZXMgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIEthcmFva2UgYW5kIFBhaW50
LW9uIGNhcHRpb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaW5uZXItdGltZXN0
YW1wcy5odG1sCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6IFJlbW92ZSB0aGUg
YmFja2dyb3VuZCBzaGFkb3cgcHNldWRvLWlkIGFuZAorICAgICAgICBhZGRlZCB0d28gb3RoZXJz
LCB3aGljaCBjYW4gYmUgZnVydGhlciB1c2VkIGZvciBzdHlsaW5nIHBhc3QgLyBmdXR1cmUKKyAg
ICAgICAgY29udGVudHMgb2YgdGhlIGN1ZS4KKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlh
LXRleHQtdHJhY2stcGFzdC1ub2Rlcyk6IFVzZWQgdG8gc3R5bGUgZWxlbWVudHMKKyAgICAgICAg
d2l0aGluIHRoZSBjdWUgdGhhdCBhcmUgYmVmb3JlIHRoZSBjdXJyZW50IG1vdmllIHRpbWUuCisg
ICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWZ1dHVyZS1ub2Rlcyk6IFVz
ZWQgdG8gc3R5bGUgZWxlbWVudHMKKyAgICAgICAgd2l0aGluIHRoZSBjdWUgdGhhdCBhcmUgYWZ0
ZXIgdGhlIGN1cnJlbnQgbW92aWUgdGltZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZl
VGV4dFRyYWNrQ3Vlcyk6IFJlZ2FyZGxlc3Mgb2Ygd2hldGhlcgorICAgICAgICB0aGUgYWN0aXZl
IHNldCBjaGFuZ2VkIG9yIG5vdCwgdGhlIGN1cnJlbnQgY3VlcyBuZWVkIHRvIGJlIGluZm9ybWVk
IG9mIHRoZSBjdXJyZW50CisgICAgICAgIG1vdmllIHRpbWUuCisgICAgICAgICogaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpUZXh0
VHJhY2tDdWUpOiBJbml0aWxpYXplZCBwYXN0IGFuZCBmdXR1cmUgY29udGFpbmVycy4KKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0Q3VlQXNIVE1MKTogQ2hlY2tlZCB3aGV0aGVy
IHRoZSBjdXJyZW50IGN1ZSB0ZXh0IGhhcworICAgICAgICBpbm5lciB0aW1lc3RhbXBzIG9yIG5v
dCwgaW4gb3JkZXIgdG8gcmVuZGVyIGZhc3RlciBpZiBubyB0aW1lc3RhbXBzIGFyZSB0aGVyZS4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOiBBZGRl
ZCBtZXRob2QgdGhhdCBrZWVwcyB0aGUgcGFzdCBhbmQgZnV0dXJlCisgICAgICAgIGNvbnRhaW5l
cnMgdXAgdG8gZGF0ZSwgZ2l2ZW4gYSBjdXJyZW50IG1vdmllIHRpbWUuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUpOiBS
ZXBsYWNlZCB0aGUgY3VlIGJhY2tncm91bmQgY29udGFpbmVyIHdpdGggdGhlCisgICAgICAgIHBh
c3QgY3VlcyBjb250YWluZXIuIFRoZSAqaW50ZXJuYWwqIGRpc3BsYXkgdHJlZSBvZiB0aGUgY3Vl
IG5vdyBoYXMgdHdvIGNvbnRhaW5lcnMsCisgICAgICAgIHJlcHJlc2VudGluZyBwYXN0IGFuZCBm
dXR1cmUgZWxlbWVudHMuCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaDogQWRk
ZWQgc2V2ZXJhbCB2YXJpYWJsZXMgdG8gc3VwcG9ydCB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkuCisg
ICAgICAgIChUZXh0VHJhY2tDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svV2ViVlRUUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21U
b2tlbik6IFVwZGF0ZWQgcmVwcmVzZW50YXRpb24gZm9yIHRoaXMgcGF0Y2guCisgICAgICAgICog
aHRtbC90cmFjay9XZWJWVFRQYXJzZXIuaDoKKyAgICAgICAgKFdlYlZUVFBhcnNlcik6IE1hZGUg
cHVibGljIHRoZSBjb2xsZWN0VGltZVN0YW1wIG1ldGhvZCwgYXMgdGhpcyBpcyByZXF1aXJlZCBm
b3IKKyAgICAgICAgcGFyc2luZyB0aW1lc3RhbXBzIHdpdGhpbiBhIGN1ZSBhcyB3ZWxsLgorCiAy
MDEyLTA2LTA2ICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQWRkIG5ldyBQb2ludGVyIExvY2sgc3BlYyBldmVudHMgd2Via2l0cG9pbnRlcmxvY2tjaGFu
Z2UgYW5kIHdlYmtpdHBvaW50ZXJsb2NrZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xz
LmNzcwppbmRleCAxYjIwNTdmMDI5NzQ5NGEyNzJmOGE0NjFhYzcwZDFkNGVhYTQzMjYyLi5kYTFl
NmM4MzJlZWEwOGJiZDIzNThkYjM4ZjM3ZWNkYjBmNTA5ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21l
ZGlhQ29udHJvbHMuY3NzCkBAIC0yMjUsMTAgKzIyNSwyNCBAQCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS10ZXh0LXRyYWNrLWNvbnRhaW5lciB7CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKIH0KIAot
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1iYWNrZ3JvdW5kIHsKK3ZpZGVvOjotd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyB7CiAgICAgZGlzcGxheTogaW5saW5lOwor
CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgIHBhZGRpbmc6
IDJweCAycHg7CisKKyAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cit9CisKK3ZpZGVvOjotd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZnV0dXJlLW5vZGVzIHsKKyAgICB2aXNpYmlsaXR5OiBoaWRk
ZW47CisgICAgZGlzcGxheTogaW5saW5lOworCisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgw
LCAwLCAwLCAwLjgpOworCisgICAgbWFyZ2luLWxlZnQ6IC0ycHg7CisgICAgcGFkZGluZzogMnB4
IDJweCAycHggMHB4OworCiAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwN2ZkYzgwZDFjYWQxYWE2N2Qx
MTE4YzhiMGNhMDZkYzgzMWVlZWM0Li5hOTZmNTc1ZTNmYTdmZGNkYWY0ZGMwNzRmMDM0ZGE4NjUy
ZDRhYjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEx
MDEsNyArMTEwMSw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRy
YWNrQ3VlcyhmbG9hdCBtb3ZpZVRpbWUpCiAgICAgICAgIGlmICghY3VycmVudEN1ZXMuY29udGFp
bnMocHJldmlvdXNDdWVzW2ldKSAmJiBwcmV2aW91c0N1ZXNbaV0uZGF0YSgpLT5pc0FjdGl2ZSgp
KQogICAgICAgICAgICAgYWN0aXZlU2V0Q2hhbmdlZCA9IHRydWU7CiAKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgIWFjdGl2ZVNldENoYW5nZWQgJiYgaSA8IGN1cnJlbnRDdWVzU2l6ZTsgKytpKSB7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdXJyZW50Q3Vlc1NpemU7ICsraSkgeworICAg
ICAgICBjdXJyZW50Q3Vlc1tpXS5kYXRhKCktPnVwZGF0ZURpc3BsYXlUcmVlKG1vdmllVGltZSk7
CisKICAgICAgICAgaWYgKCFjdXJyZW50Q3Vlc1tpXS5kYXRhKCktPmlzQWN0aXZlKCkpCiAgICAg
ICAgICAgICBhY3RpdmVTZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggODVjN2IyYzUyYWNhYjBmZmYwMmMzZGVm
MDQ5NDNiYjBlYmM2MGNiNS4uZDJkZTRkM2U1NDEyZGM1MWUxNWU4ZWJkYzdlNDJhMjEwNjU5Y2Q2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKICNpbmNs
dWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCkBAIC05OSwxMCArMTAwLDE0IEBAIFRleHRUcmFja0N1
ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgaWQsIGRvCiAgICAgLCBtX2N1ZUluZGV4KGludmFsaWRDdWVJbmRleCkKICAgICAsIG1f
d3JpdGluZ0RpcmVjdGlvbihIb3Jpem9udGFsKQogICAgICwgbV9jdWVBbGlnbm1lbnQoTWlkZGxl
KQorICAgICwgbV9kb2N1bWVudEZyYWdtZW50KDApCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoY29udGV4dCkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25F
eGl0KHBhdXNlT25FeGl0KQogICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQorICAgICwgbV9oYXNJ
bm5lclRpbWVzdGFtcHMoZmFsc2UpCisgICAgLCBtX3Bhc3REb2N1bWVudE5vZGVzKEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCisgICAgLCBt
X2Z1dHVyZURvY3VtZW50Tm9kZXMoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UodHJ1
ZSkKICAgICAsIG1fZGlzcGxheVRyZWUoSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2Fz
dDxEb2N1bWVudCo+KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVhQb3NpdGlvbih1bmRlZmlu
ZWRQb3NpdGlvbikKQEAgLTM3Miw5ICszNzcsMTYgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBUZXh0VHJhY2tDdWU6OmdldEN1ZUFzSFRNTCgpCiAgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNsb25lZEZyYWdtZW50OwogICAgIERvY3VtZW50KiBkb2N1bWVudDsKIAotICAgIGlm
ICghbV9kb2N1bWVudEZyYWdtZW50KQorICAgIGlmICghbV9kb2N1bWVudEZyYWdtZW50KSB7Cisg
ICAgICAgIG1faGFzSW5uZXJUaW1lc3RhbXBzID0gZmFsc2U7CiAgICAgICAgIG1fZG9jdW1lbnRG
cmFnbWVudCA9IFdlYlZUVFBhcnNlcjo6Y3JlYXRlKDAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCktPmNyZWF0ZURvY3VtZW50RnJhZ21lbnRGcm9tQ3VlVGV4dChtX2NvbnRlbnQpOwogCisgICAg
ICAgIGZvciAoTm9kZSAqY2hpbGQgPSBtX2RvY3VtZW50RnJhZ21lbnQtPmZpcnN0Q2hpbGQoKTsg
IW1faGFzSW5uZXJUaW1lc3RhbXBzICYmIGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGlu
ZygpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGQtPm5vZGVOYW1lKCkgPT0gInRpbWVzdGFtcCIp
CisgICAgICAgICAgICAgICAgbV9oYXNJbm5lclRpbWVzdGFtcHMgPSB0cnVlOworICAgICAgICB9
CisgICAgfQorCiAgICAgZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CiAKICAgICBjbG9uZWRGcmFnbWVudCA9IERvY3VtZW50RnJhZ21l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CkBAIC01MjgsOSArNTQwLDUzIEBAIHZvaWQgVGV4dFRyYWNr
Q3VlOjpjYWxjdWxhdGVEaXNwbGF5UGFyYW1ldGVycygpCiAgICAgLy8gRklYTUUoQnVnIDc5OTE2
KTogQ1NTIHRvcCBhbmQgbGVmdCBwcm9wZXJ0aWVzIG5lZWQgdG8gYmUgYXBwbGllZC4KIH0KIAor
dm9pZCBUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKK3sK
KyAgICAvLyBUaGUgZGlzcGxheSB0cmVlIG1heSBjb250YWluIFdlYlZUVCB0aW1lc3RhbXAgb2Jq
ZWN0cyByZXByZXNlbnRpbmcKKyAgICAvLyB0aW1lc3RhbXBzIChwcm9jZXNzaW5nIGluc3RydWN0
aW9ucyksIGFsb25nIHdpdGggZGlzcGxheWFibGUgbm9kZXMuCisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIHRpbWVzdGFtcFRhZywgKCJ0aW1lc3RhbXAiKSk7CisKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tQYXN0Tm9kZXNTaGFk
b3dQc2V1ZG9JZCwgKCItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stcGFzdC1ub2RlcyIpKTsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgdHJhY2tGdXR1cmVOb2Rl
c1NoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1mdXR1cmUtbm9kZXMi
KSk7CisKKyAgICBib29sIGlzUGFzdE5vZGUgPSB0cnVlOworCisgICAgLy8gQ2xlYXIgdGhlIGNv
bnRlbnRzIG9mIHRoZSB0d28gc2V0cy4KKyAgICBtX2Z1dHVyZURvY3VtZW50Tm9kZXMtPnJlbW92
ZUNoaWxkcmVuKCk7CisgICAgbV9mdXR1cmVEb2N1bWVudE5vZGVzLT5zZXRTaGFkb3dQc2V1ZG9J
ZCh0cmFja0Z1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQpOworCisgICAgbV9wYXN0RG9jdW1lbnRO
b2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICBtX3Bhc3REb2N1bWVudE5vZGVzLT5zZXRTaGFk
b3dQc2V1ZG9JZCh0cmFja1Bhc3ROb2Rlc1NoYWRvd1BzZXVkb0lkKTsKKworICAgIC8vIFVwZGF0
ZSB0aGUgdHdvIHNldHMgY29udGFpbmluZyBwYXN0IGFuZCBmdXR1cmUgV2ViVlRUIG9iamVjdHMu
CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHJlZmVyZW5jZVRyZWUgPSBnZXRDdWVBc0hU
TUwoKTsKKworICAgIGlmICghbV9oYXNJbm5lclRpbWVzdGFtcHMpIHsKKyAgICAgICAgbV9wYXN0
RG9jdW1lbnROb2Rlcy0+YXBwZW5kQ2hpbGQocmVmZXJlbmNlVHJlZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBmb3IgKE5vZGUgKmNoaWxkID0gcmVmZXJlbmNlVHJlZS0+Zmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBp
ZiAoY2hpbGQtPm5vZGVOYW1lKCkgPT0gdGltZXN0YW1wVGFnKSB7CisgICAgICAgICAgICB1bnNp
Z25lZCBpbnQgcG9zaXRpb24gPSAwOworICAgICAgICAgICAgU3RyaW5nIHRpbWVzdGFtcCA9IGNo
aWxkLT5ub2RlVmFsdWUoKTsKKworICAgICAgICAgICAgZG91YmxlIHRpbWVzdGFtcFRpbWUgPSBX
ZWJWVFRQYXJzZXI6OmNyZWF0ZSgwLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLT5jb2xsZWN0
VGltZVN0YW1wKHRpbWVzdGFtcCwgJnBvc2l0aW9uKTsKKyAgICAgICAgICAgIEFTU0VSVCh0aW1l
c3RhbXBUaW1lICE9IC0xKTsKKworICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFRpbWUgPiBtb3Zp
ZVRpbWUpCisgICAgICAgICAgICAgICAgaXNQYXN0Tm9kZSA9IGZhbHNlOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKGlzUGFzdE5vZGUpCisgICAgICAgICAgICBtX3Bhc3REb2N1bWVudE5vZGVz
LT5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVOb2RlKHRydWUpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
LCBmYWxzZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZnV0dXJlRG9jdW1lbnROb2Rl
cy0+YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lTm9kZSh0cnVlKSwgQVNTRVJUX05PX0VYQ0VQVElP
TiwgZmFsc2UpOworICAgIH0KK30KKwogUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gVGV4dFRy
YWNrQ3VlOjpnZXREaXNwbGF5VHJlZSgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCBBdG9taWNTdHJpbmcsIHRyYWNrQmFja2dyb3VuZFNoYWRvd1BzZXVkb0lkLCAoIi13ZWJraXQt
bWVkaWEtdGV4dC10cmFjay1iYWNrZ3JvdW5kIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCB0cmFja0Rpc3BsYXlCb3hTaGFkb3dQc2V1ZG9JZCwgKCItd2Vi
a2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSIpKTsKIAogICAgIGlmICghbV9kaXNwbGF5VHJl
ZVNob3VsZENoYW5nZSkKQEAgLTU0Miw2ICs1OTgsNyBAQCBQYXNzUmVmUHRyPEhUTUxEaXZFbGVt
ZW50PiBUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKCkKICAgICAvLyAxMC4xMS4gQXBwbHkg
dGhlIHRlcm1zIG9mIHRoZSBDU1Mgc3BlY2lmaWNhdGlvbnMgdG8gbm9kZXMgd2l0aGluIHRoZQog
ICAgIC8vIGZvbGxvd2luZyBjb25zdHJhaW50cywgdGh1cyBvYnRhaW5pbmcgYSBzZXQgb2YgQ1NT
IGJveGVzIHBvc2l0aW9uZWQKICAgICAvLyByZWxhdGl2ZSB0byBhbiBpbml0aWFsIGNvbnRhaW5p
bmcgYmxvY2s6CisgICAgbV9kaXNwbGF5VHJlZS0+c2V0U2hhZG93UHNldWRvSWQodHJhY2tEaXNw
bGF5Qm94U2hhZG93UHNldWRvSWQsIEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIG1fZGlzcGxh
eVRyZWUtPnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAvLyBUaGUgZG9jdW1lbnQgdHJlZSBpcyB0
aGUgdHJlZSBvZiBXZWJWVFQgTm9kZSBPYmplY3RzIHJvb3RlZCBhdCBub2Rlcy4KQEAgLTU0OSwx
MyArNjA2LDEwIEBAIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IFRleHRUcmFja0N1ZTo6Z2V0
RGlzcGxheVRyZWUoKQogICAgIC8vIFRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZXMgbXVzdCBiZSB3
cmFwcGVkIGluIGFuIGFub255bW91cyBib3ggd2hvc2UKICAgICAvLyAnZGlzcGxheScgcHJvcGVy
dHkgaGFzIHRoZSB2YWx1ZSAnaW5saW5lJy4gVGhpcyBpcyB0aGUgV2ViVlRUIGN1ZQogICAgIC8v
IGJhY2tncm91bmQgYm94LgotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY3VlQmFja2dyb3Vu
ZEJveCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKIAotICAgIGN1ZUJhY2tncm91bmRCb3gtPnNldFNoYWRv
d1BzZXVkb0lkKHRyYWNrQmFja2dyb3VuZFNoYWRvd1BzZXVkb0lkKTsKLSAgICBjdWVCYWNrZ3Jv
dW5kQm94LT5hcHBlbmRDaGlsZChnZXRDdWVBc0hUTUwoKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
dHJ1ZSk7Ci0KLSAgICBtX2Rpc3BsYXlUcmVlLT5zZXRTaGFkb3dQc2V1ZG9JZCh0cmFja0Rpc3Bs
YXlCb3hTaGFkb3dQc2V1ZG9JZCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAgbV9kaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQoY3VlQmFja2dyb3VuZEJveCwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
dHJ1ZSk7CisgICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkgZGVmYXVsdCBpbiBtX3Bh
c3REb2N1bWVudE5vZGVzLgorICAgIG1fZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fcGFzdERv
Y3VtZW50Tm9kZXMsIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOworICAgIG1fZGlzcGxheVRy
ZWUtPmFwcGVuZENoaWxkKG1fZnV0dXJlRG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElP
TiwgdHJ1ZSk7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9m
IFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4
dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKQEAgLTYw
MSw2ICs2NTUsOSBAQCBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBUZXh0VHJhY2tDdWU6Omdl
dERpc3BsYXlUcmVlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDU1NWYWx1ZVByZSk7CiAgICAgfQogCisgICAgaWYgKG1faGFzSW5uZXJUaW1lc3RhbXBz
KQorICAgICAgICB1cGRhdGVEaXNwbGF5VHJlZSh0cmFjaygpLT5tZWRpYUVsZW1lbnQoKS0+Y3Vy
cmVudFRpbWUoKSk7CisKICAgICBtX2Rpc3BsYXlUcmVlU2hvdWxkQ2hhbmdlID0gZmFsc2U7CiAK
ICAgICAvLyAxMC4xNS4gTGV0IGN1ZSdzIHRleHQgdHJhY2sgY3VlIGRpc3BsYXkgc3RhdGUgaGF2
ZSB0aGUgQ1NTIGJveGVzIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
aAppbmRleCBhMmNmMzBiMWRjY2M4OTc3NmYxNGY3NWE5ZWE3NGMwYjgzYjcyMjQ3Li45YzViYTVi
NzExNDhlOGRiM2Y4MWQzYzBiNGM2MGE3OTFkYWQ3NjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRJc0FjdGl2ZShib29sKTsKIAogICAgIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGdl
dERpc3BsYXlUcmVlKCk7CisgICAgdm9pZCB1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCk7CiAgICAg
dm9pZCByZW1vdmVEaXNwbGF5VHJlZSgpOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGludGVyZmFjZU5hbWUoKSBjb25zdDsKQEAgLTE2Nyw2ICsxNjgsMTAgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcGF1c2VPbkV4aXQ7CiAgICAgYm9vbCBtX3NuYXBUb0xpbmVzOwogCisgICAg
Ym9vbCBtX2hhc0lubmVyVGltZXN0YW1wczsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG1f
cGFzdERvY3VtZW50Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Z1dHVyZURv
Y3VtZW50Tm9kZXM7CisKICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7CiAgICAg
UmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2Rpc3BsYXlUcmVlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRQYXJzZXIuaAppbmRleCAwYjNiMDY2YWFlNjg2NDE5ZWY0ZmNhYWJiOWI2
Yzc0NzBkZmJlNGFjLi41MjJiYmZmYTc4OWRmZDVmZTRmZjYyODgwZmE4YmRlY2FlZWZkMDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFBhcnNlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUUGFyc2VyLmgKQEAgLTk0LDYgKzk0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0TmV3Q3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1
ZT4gPiYpOwogCiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVEb2N1bWVu
dEZyYWdtZW50RnJvbUN1ZVRleHQoY29uc3QgU3RyaW5nJik7CisgICAgZG91YmxlIGNvbGxlY3RU
aW1lU3RhbXAoY29uc3QgU3RyaW5nJiwgdW5zaWduZWQqKTsKIAogcHJvdGVjdGVkOgogICAgIFdl
YlZUVFBhcnNlcihXZWJWVFRQYXJzZXJDbGllbnQqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CkBAIC0xMTAsNyArMTExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlTmV3Q3VlKCk7
CiAgICAgdm9pZCByZXNldEN1ZVZhbHVlcygpOwotICAgIGRvdWJsZSBjb2xsZWN0VGltZVN0YW1w
KGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkKik7CisKICAgICB2b2lkIHNraXBXaGl0ZVNwYWNlKGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkKik7CiAgICAgc3RhdGljIHZvaWQgc2tpcExpbmVUZXJtaW5h
dG9yKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQqKTsKICAgICBz
dGF0aWMgU3RyaW5nIGNvbGxlY3ROZXh0TGluZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBs
ZW5ndGgsIHVuc2lnbmVkKik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTkyMzU1ZGQzOTU0MzkwYTkzNjU5ZTkzODBmYzAz
NTgxNmYwYTAxMS4uYWEzNzliODAzN2QzN2FkYjQxM2MwZjIzZmNkMWM0NjgyMGE3ZTdjYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTA3ICBWaWN0b3IgQ2FyYnVuZSAgPHZpY3RvckBy
b3NlZHUub3JnPgorCisgICAgICAgIEJhc2ljIHN1cHBvcnQgZm9yIHRpbWVzdGFtcHMgd2l0aGlu
IGEgVGV4dFRyYWNrQ3VlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODE4NworCisgICAgICAgIEltcGxlbWVudGVkIHN1cHBvcnQgZm9yIHRpbWVzdGFt
cHMgd2l0aGluIGEgVGV4dFRyYWNrQ3VlLgorICAgICAgICBUaGlzIGVuYWJsZXMgcmVuZGVyaW5n
IGZ1bmN0aW9uYWxpdHkgZm9yIEthcmFva2UgYW5kIFBhaW50LW9uIGNhcHRpb25zLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2sv
Y2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0OiBBZGRlZC4KKyAg
ICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVu
ZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDcgIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3
ZWQsIG5ldyBiYXNlbGluZXMgZm9yIGNocm9taXVtLXdpbiBhZnRlciBmaXhpbmcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9jYXB0aW9ucy1pbm5l
ci10aW1lc3RhbXBzLnZ0dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0
dC9jYXB0aW9ucy1pbm5lci10aW1lc3RhbXBzLnZ0dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzM0MTk4ZDc2YTJk
NTQ1YzU5MGYyYmFhMjUyMDJjYjQwMGU5M2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMu
dnR0CkBAIC0wLDAgKzEsMTMgQEAKK++7v1dFQlZUVA0KKw0KKzENCiswMDowMDowMC4wMDAgLS0+
IDAwOjAwOjAwLjk1MA0KKzwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFp
biA8MDA6MDA6MDAuNzAwPkthcmFva2UNCisNCisyDQorMDA6MDA6MDEuMDAwIC0tPiAwMDowMDow
My42MDANCis8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43
MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45
NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4NCisNCiszDQorMDA6
MDA6MDMuNzAwIC0tPiAwMDowMDowNC4yNTANCis8MDA6MDA6MDMuNzUwPkNob2NvbGF0ZSA8MDA6
MDA6MDQuMDAwPlJhaW4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jdWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZDg5M2I5N2NmZDlmZWYzZjc0ODUzY2EwYzFmOTgxNWU3YTcx
NzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Vl
LXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1NyBA
QAorVGVzdCB0aGF0IFRleHRUcmFjaydzIGN1ZXMgYXJlIHJlbmRlcmVkIGNvcnJlY3RseSB3aGVu
IHRoZXkgY29udGFpbiBpbm5lciB0aW1lc3RhbXBzLgorRVZFTlQoY2FucGxheXRocm91Z2gpCisK
KyoqIEZpcnN0IGN1ZSAoZW1wdHkpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3Vy
cmVudCB0aW1lOiAwCitQYXN0OiAKK0Z1dHVyZTogQ2hvY29sYXRlIFJhaW4gS2FyYW9rZQorQ29t
cGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40NTA+UmFpbiA8MDA6MDA6
MDAuNzAwPkthcmFva2UKKworKiogRmlyc3QgY3VlIChvbmUgd29yZCkgKioKK0VWRU5UKHNlZWtl
ZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDAuMjUKK1Bhc3Q6IENob2NvbGF0ZSAKK0Z1
dHVyZTogUmFpbiBLYXJhb2tlCitDb21wbGV0ZTogPDAwOjAwOjAwLjIwMD5DaG9jb2xhdGUgPDAw
OjAwOjAwLjQ1MD5SYWluIDwwMDowMDowMC43MDA+S2FyYW9rZQorCisqKiBGaXJzdCBjdWUgKHR3
byB3b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDAu
NQorUGFzdDogQ2hvY29sYXRlIFJhaW4gCitGdXR1cmU6IEthcmFva2UKK0NvbXBsZXRlOiA8MDA6
MDA6MDAuMjAwPkNob2NvbGF0ZSA8MDA6MDA6MDAuNDUwPlJhaW4gPDAwOjAwOjAwLjcwMD5LYXJh
b2tlCisKKyoqIEZpcnN0IGN1ZSAodGhyZWUgd29yZHMpICoqCitFVkVOVChzZWVrZWQpCisKKyog
Q3VlIDAgKgorQ3VycmVudCB0aW1lOiAwLjc1CitQYXN0OiBDaG9jb2xhdGUgUmFpbiBLYXJhb2tl
CitGdXR1cmU6IAorQ29tcGxldGU6IDwwMDowMDowMC4yMDA+Q2hvY29sYXRlIDwwMDowMDowMC40
NTA+UmFpbiA8MDA6MDA6MDAuNzAwPkthcmFva2UKKworKiogU2Vjb25kIGN1ZSAoZW1wdHkpICoq
CitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAxCitQYXN0OiAKK0Z1
dHVyZTogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8
MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDww
MDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8
MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAob25l
IHdvcmQpICoqCitFVkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjI1
CitQYXN0OiBTb21lIAorRnV0dXJlOiBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4K
K0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDow
MS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDow
Mi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vj
b25kIGN1ZSAodHdvIHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJl
bnQgdGltZTogMS41CitQYXN0OiBTb21lIHN0YXkgCitGdXR1cmU6IGRyeSBhbmQgb3RoZXJzIGZl
ZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5z
dGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3Ro
ZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBh
aW4KKworKiogU2Vjb25kIGN1ZSAodGhyZWUgd29yZHMpICoqCitFVkVOVChzZWVrZWQpCisKKyog
Q3VlIDAgKgorQ3VycmVudCB0aW1lOiAxLjc1CitQYXN0OiBTb21lIHN0YXkgZHJ5IAorRnV0dXJl
OiBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUg
PDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDww
MDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8
MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUpICoqCitF
VkVOVChzZWVrZWQpCisKKyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAyCitQYXN0OiBTb21lIHN0
YXkgZHJ5IAorRnV0dXJlOiBhbmQgb3RoZXJzIGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6
MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDow
MDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6
MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAoZm91ciB3
b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitDdXJyZW50IHRpbWU6IDIuMjUK
K1Bhc3Q6IFNvbWUgc3RheSBkcnkgYW5kIAorRnV0dXJlOiBvdGhlcnMgZmVlbCB0aGUgcGFpbgor
Q29tcGxldGU6IDwwMDowMDowMS4yMDA+U29tZSA8MDA6MDA6MDEuNDUwPnN0YXkgPDAwOjAwOjAx
LjcwMD5kcnkgPDAwOjAwOjAyLjIwMD5hbmQgPDAwOjAwOjAyLjQ1MD5vdGhlcnMgPDAwOjAwOjAy
Ljk1MD5mZWVsIDwwMDowMDowMy4yMDA+dGhlIDwwMDowMDowMy40NTA+cGFpbgorCisqKiBTZWNv
bmQgY3VlIChmaXZlIHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJl
bnQgdGltZTogMi41CitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgCitGdXR1cmU6IGZl
ZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5z
dGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3Ro
ZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBh
aW4KKworKiogU2Vjb25kIGN1ZSAoc2FtZSBhcyBiZWZvcmUpICoqCitFVkVOVChzZWVrZWQpCisK
KyogQ3VlIDAgKgorQ3VycmVudCB0aW1lOiAyLjc1CitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBv
dGhlcnMgCitGdXR1cmU6IGZlZWwgdGhlIHBhaW4KK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNv
bWUgPDAwOjAwOjAxLjQ1MD5zdGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5k
IDwwMDowMDowMi40NTA+b3RoZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRo
ZSA8MDA6MDA6MDMuNDUwPnBhaW4KKworKiogU2Vjb25kIGN1ZSAoc2l4IHdvcmRzKSAqKgorRVZF
TlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMworUGFzdDogU29tZSBzdGF5
IGRyeSBhbmQgb3RoZXJzIGZlZWwgCitGdXR1cmU6IHRoZSBwYWluCitDb21wbGV0ZTogPDAwOjAw
OjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEuNzAwPmRyeSA8MDA6MDA6
MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIuOTUwPmZlZWwgPDAwOjAw
OjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCisKKyoqIFNlY29uZCBjdWUgKHNldmVuIHdv
cmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJlbnQgdGltZTogMy4yNQor
UGFzdDogU29tZSBzdGF5IGRyeSBhbmQgb3RoZXJzIGZlZWwgdGhlIAorRnV0dXJlOiBwYWluCitD
b21wbGV0ZTogPDAwOjAwOjAxLjIwMD5Tb21lIDwwMDowMDowMS40NTA+c3RheSA8MDA6MDA6MDEu
NzAwPmRyeSA8MDA6MDA6MDIuMjAwPmFuZCA8MDA6MDA6MDIuNDUwPm90aGVycyA8MDA6MDA6MDIu
OTUwPmZlZWwgPDAwOjAwOjAzLjIwMD50aGUgPDAwOjAwOjAzLjQ1MD5wYWluCisKKyoqIFNlY29u
ZCBjdWUgKGVpZ2h0IHdvcmRzKSAqKgorRVZFTlQoc2Vla2VkKQorCisqIEN1ZSAwICoKK0N1cnJl
bnQgdGltZTogMy41CitQYXN0OiBTb21lIHN0YXkgZHJ5IGFuZCBvdGhlcnMgZmVlbCB0aGUgcGFp
bgorRnV0dXJlOiAKK0NvbXBsZXRlOiA8MDA6MDA6MDEuMjAwPlNvbWUgPDAwOjAwOjAxLjQ1MD5z
dGF5IDwwMDowMDowMS43MDA+ZHJ5IDwwMDowMDowMi4yMDA+YW5kIDwwMDowMDowMi40NTA+b3Ro
ZXJzIDwwMDowMDowMi45NTA+ZmVlbCA8MDA6MDA6MDMuMjAwPnRoZSA8MDA6MDA6MDMuNDUwPnBh
aW4KKworKiogVGhpcmQgY3VlIChvbmUgd29yZCkgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUg
MCAqCitDdXJyZW50IHRpbWU6IDMuNzUKK1Bhc3Q6IENob2NvbGF0ZSAKK0Z1dHVyZTogUmFpbgor
Q29tcGxldGU6IDwwMDowMDowMy43NTA+Q2hvY29sYXRlIDwwMDowMDowNC4wMDA+UmFpbgorCisq
KiBUaGlyZCBjdWUgKHR3byB3b3JkcykgKioKK0VWRU5UKHNlZWtlZCkKKworKiBDdWUgMCAqCitD
dXJyZW50IHRpbWU6IDQKK1Bhc3Q6IENob2NvbGF0ZSBSYWluCitGdXR1cmU6IAorQ29tcGxldGU6
IDwwMDowMDowMy43NTA+Q2hvY29sYXRlIDwwMDowMDowNC4wMDA+UmFpbgorRU5EIE9GIFRFU1QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmlu
Zy1pbm5lci10aW1lc3RhbXBzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
dWUtcmVuZGVyaW5nLWlubmVyLXRpbWVzdGFtcHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGNjMWU4NTg5
ZDRlZTYyYWYxY2UxZjMyMWVlYmVhNDEwNjk1ZTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1pbm5lci10aW1lc3RhbXBzLmh0
bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9o
dG1sOyBjaGFyc2V0PXV0Zi04IiAvPgorCisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWZp
bGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL3ZpZGVvLXRlc3QuanM+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPS4uL21lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0
PgorCisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgdmFyIHRlc3RUcmFjazsKKyAgICAgICAg
dmFyIGN1ZURpc3BsYXlFbGVtZW50OworICAgICAgICB2YXIgY3VlRGlzcGxheUNvbnRhaW5lcjsK
KyAgICAgICAgdmFyIHNlZWtlZENvdW50ID0gMDsKKworICAgICAgICB2YXIgdGVzdENhc2VEZXNj
cmlwdGlvbiA9IFsKKyAgICAgICAgICAgICAgICAiRmlyc3QgY3VlIChlbXB0eSkiLAorICAgICAg
ICAgICAgICAgICJGaXJzdCBjdWUgKG9uZSB3b3JkKSIsCisgICAgICAgICAgICAgICAgIkZpcnN0
IGN1ZSAodHdvIHdvcmRzKSIsCisgICAgICAgICAgICAgICAgIkZpcnN0IGN1ZSAodGhyZWUgd29y
ZHMpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoZW1wdHkpIiwKKyAgICAgICAgICAg
ICAgICAiU2Vjb25kIGN1ZSAob25lIHdvcmQpIiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1
ZSAodHdvIHdvcmRzKSIsCisgICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHRocmVlIHdvcmRz
KSIsCisgICAgICAgICAgICAgICAgIlNlY29uZCBjdWUgKHNhbWUgYXMgYmVmb3JlKSIsCisgICAg
ICAgICAgICAgICAgIlNlY29uZCBjdWUgKGZvdXIgd29yZHMpIiwKKyAgICAgICAgICAgICAgICAi
U2Vjb25kIGN1ZSAoZml2ZSB3b3JkcykiLAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChz
YW1lIGFzIGJlZm9yZSkiLAorICAgICAgICAgICAgICAgICJTZWNvbmQgY3VlIChzaXggd29yZHMp
IiwKKyAgICAgICAgICAgICAgICAiU2Vjb25kIGN1ZSAoc2V2ZW4gd29yZHMpIiwKKyAgICAgICAg
ICAgICAgICAiU2Vjb25kIGN1ZSAoZWlnaHQgd29yZHMpIiwKKyAgICAgICAgICAgICAgICAiVGhp
cmQgY3VlIChvbmUgd29yZCkiLAorICAgICAgICAgICAgICAgICJUaGlyZCBjdWUgKHR3byB3b3Jk
cykiCisgICAgICAgIF07CisKKyAgICAgICAgLy8gRWFjaCB0ZXN0IGNhc2UgaXMgZm91bmQgYnkg
aW5jcmVtZW50aW5nIHdpdGggMC4yNTAgdGhlIGN1cnJlbnQgdGltZS4KKyAgICAgICAgdmFyIHRl
c3RDYXNlU2Vla1RpbWUgPSBbCisgICAgICAgIF07CisKKyAgICAgICAgdmFyIGN1cnJlbnRUZXN0
Q2FzZSA9IDA7CisKKyAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlcy5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlFbGVtZW50ID0gdGV4dFRyYWNr
RGlzcGxheUVsZW1lbnQodmlkZW8sICdkaXNwbGF5JywgaSk7CisKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiKiBDdWUgIiAr
IGkgKyAiICoiKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiQ3VycmVudCB0aW1l
OiAiICsgdmlkZW8uY3VycmVudFRpbWUpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
UGFzdDogIiArIGN1ZURpc3BsYXlFbGVtZW50LmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MKTsKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIkZ1dHVyZTogIiArIGN1ZURpc3BsYXlFbGVtZW50
LmNoaWxkTm9kZXNbMV0uaW5uZXJIVE1MKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiQ29tcGxldGU6ICIgKyB0ZXN0VHJhY2sudHJhY2suYWN0aXZlQ3Vlc1tpXS50ZXh0KTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7CisgICAgICAgIH07
CisKKyAgICAgICAgZnVuY3Rpb24gcnVuTmV4dFRlc3RDYXNlKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKGN1cnJlbnRUZXN0Q2FzZSA9PSB0ZXN0Q2FzZURlc2NyaXB0aW9uLmxlbmd0aCkg
eworICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIioqICIgKyAgdGVzdENhc2VEZXNjcmlwdGlvbltjdXJyZW50VGVzdENh
c2VdICsgIiAqKiIpOworCisgICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHRlc3RDYXNl
U2Vla1RpbWVbY3VycmVudFRlc3RDYXNlXTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnc2Vl
a2VkJywgc2Vla2VkLCBmYWxzZSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGN1cnJlbnRUZXN0Q2Fz
ZSsrOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgVGV4dFRyYWNrJ3MgY3VlcyBhcmUg
cmVuZGVyZWQgY29ycmVjdGx5IHdoZW4gdGhleSBjb250YWluIGlubmVyIHRpbWVzdGFtcHMuIik7
CisKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgIHRlc3RUcmFj
ayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7CisgICAgICAgICAgICB2aWRlby5z
cmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKKworICAgICAg
ICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGN1ZURpc3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2
aWRlbyk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwLjA7IGkgPCA0LjUwMDsgaSArPSAw
LjI1MCkKKyAgICAgICAgICAgICAgICAgICAgdGVzdENhc2VTZWVrVGltZS5wdXNoKGkpOworCisg
ICAgICAgICAgICAgICAgcnVuTmV4dFRlc3RDYXNlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9
ImxvYWRlZCgpIj4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzPgorICAgICAgICAgICAgPHRyYWNr
IHNyYz0iY2FwdGlvbnMtd2VidnR0L2NhcHRpb25zLWlubmVyLXRpbWVzdGFtcHMudnR0IiBraW5k
PSJjYXB0aW9ucyIgZGVmYXVsdD4KKyAgICAgICAgPC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>