<?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>89071</bug_id>
          
          <creation_ts>2012-06-14 01:03:44 -0700</creation_ts>
          <short_desc>JavaScript: Invalid date parse for ISO 8601 strings when no timezone given</short_desc>
          <delta_ts>2020-01-21 22:41:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206560</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Androsov">doochik</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>alecflett</cc>
    
    <cc>barraclough</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>florian</cc>
    
    <cc>haydenbraxton</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>othree</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tj</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>648910</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Androsov">doochik</who>
    <bug_when>2012-06-14 01:03:44 -0700</bug_when>
    <thetext>Standard: http://dotat.at/tmp/ISO_8601-2004_E.pdf
4.3.2: The zone designator is empty if use is made of local time in accordance with 4.2.2.2 through 4.2.2.4, it is the UTC designator [Z] if use is made of UTC of day in accordance with 4.2.4 and it is the difference-component if use is made of local time and the difference from UTC in accordance with 4.2.5.2.

My timezone is UTC+4, so date without timezone must be parsed as localtime.
Example: 2012-06-14T05:00:00 -&gt; 2012-06-14T05:00:00+04:00 -&gt; 2012-06-14T01:00:00Z

valid result (Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20100101 Firefox/13.0):
new Date(&apos;2012-06-14T05:00:00&apos;).toISOString() -&gt; &quot;2012-06-14T01:00:00.000Z&quot;

invalid result (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5):
new Date(&apos;2012-06-14T05:00:00&apos;).toISOString() -&gt; &quot;2012-06-14T05:00:00.000Z&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727935</commentid>
    <comment_count>1</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-09-25 13:52:45 -0700</bug_when>
    <thetext>OOI ecmascript date parsing is not ISO 8601 compliant, but we may be able to make this case work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600258</commentid>
    <comment_count>2</comment_count>
    <who name="">othree</who>
    <bug_when>2019-12-19 07:15:57 -0800</bug_when>
    <thetext>In latest ECMAScript spec 20.4.3.2 &lt;https://tc39.es/ecma262/#sec-date.parse&gt;

There is a line talked about date time string without timezone should be local time:

&quot;When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600380</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-12-19 10:49:53 -0800</bug_when>
    <thetext>Created a test262 issue as well, since there&apos;s currently no conformance test coverage for this case:
https://github.com/tc39/test262/issues/2450</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602608</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-03 15:17:06 -0800</bug_when>
    <thetext>*** Bug 205652 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602610</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-03 15:19:23 -0800</bug_when>
    <thetext>*** Bug 196894 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602731</commentid>
    <comment_count>6</comment_count>
      <attachid>386753</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-03 21:19:28 -0800</bug_when>
    <thetext>Created attachment 386753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602755</commentid>
    <comment_count>7</comment_count>
      <attachid>386760</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-04 00:24:37 -0800</bug_when>
    <thetext>Created attachment 386760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602777</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-04 12:59:43 -0800</bug_when>
    <thetext>iOS failures here are unrelated, see current test bot results here:
https://build.webkit.org/results/Apple%20iOS%2013%20Simulator%20Release%20WK2%20(Tests)/r254033%20(1806)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602815</commentid>
    <comment_count>9</comment_count>
      <attachid>386760</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-04 20:33:26 -0800</bug_when>
    <thetext>Comment on attachment 386760
Patch

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

Not a huge fan of &quot;out arguments&quot; but we should respect the style of this old-ish code, I suppose.

&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:218
&gt; +    int offset = isLocalTime ? localTimeOffset(vm, ms, WTF::LocalTime).offset : 0;
&gt; +    return ms - offset;

I don&apos;t think it’s great to use the trinary operator here. How about this?

    if (isLocalTime)
        ms -= localTimeOffset(vm, ms, WTF::LocalTime).offset;

    return ms;

Also, maybe instead of &quot;ms&quot; we could name the local variable &quot;value&quot;, or &quot;date&quot;, or &quot;time&quot;. I think a word is better than an SI unit for a variable name.

&gt; Source/WTF/wtf/DateMath.cpp:575
&gt; +    isLocalTime = false;

Why not do this at the very top of the function instead of down here?

&gt; Source/WTF/wtf/DateMath.cpp:653
&gt; +        isLocalTime = false;

Why not do this at the start of the function rather than here in this else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602823</commentid>
    <comment_count>10</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-04 23:59:30 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 386760 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386760&amp;action=review
&gt; 
&gt; Not a huge fan of &quot;out arguments&quot; but we should respect the style of this
&gt; old-ish code, I suppose.

Agreed.

&gt; &gt; Source/WTF/wtf/DateMath.cpp:575
&gt; &gt; +    isLocalTime = false;
&gt; 
&gt; Why not do this at the very top of the function instead of down here?
&gt; 
&gt; &gt; Source/WTF/wtf/DateMath.cpp:653
&gt; &gt; +        isLocalTime = false;
&gt; 
&gt; Why not do this at the start of the function rather than here in this else?

I thought the logic was easier to follow by keeping it more local, but I can move these up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602827</commentid>
    <comment_count>11</comment_count>
      <attachid>386783</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-05 00:11:17 -0800</bug_when>
    <thetext>Created attachment 386783
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602828</commentid>
    <comment_count>12</comment_count>
      <attachid>386783</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 00:55:39 -0800</bug_when>
    <thetext>Comment on attachment 386783
Patch for landing

Clearing flags on attachment: 386783

Committed r254038: &lt;https://trac.webkit.org/changeset/254038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602829</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 00:55:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602830</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-05 00:56:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/58321992&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608789</commentid>
    <comment_count>15</comment_count>
      <attachid>386783</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-20 09:52:07 -0800</bug_when>
    <thetext>Comment on attachment 386783
Patch for landing

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

&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:220
&gt; +    bool isLocalTime;
&gt; +    double value = WTF::parseES5DateFromNullTerminatedCharacters(dateString, isLocalTime);
&gt; +    if (std::isnan(value))
&gt; +        return std::numeric_limits&lt;double&gt;::quiet_NaN();
&gt; +
&gt; +    if (isLocalTime)
&gt; +        value -= localTimeOffset(vm, value, WTF::LocalTime).offset;
&gt; +
&gt; +    return value;

Had a small thought for refinement:

- When parseES5DateFromNullTerminatedCharacters returns a NaN, there’s no need to &quot;sanitize&quot; it.
- Calling localTimeOffset has no side effects.
- Subtracting a number from a NaN has no effect on the NaN.

Assuming I am correct, and all three of these are in fact true, we can remove the special case if statement for NaN with these effects:

- Slightly smaller code.
- Slightly faster for the non-NaN case.
- Slightly slower for the NaN case.

So, I think we should remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609119</commentid>
    <comment_count>16</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-21 10:15:38 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; Comment on attachment 386783 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386783&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:220
&gt; &gt; +    bool isLocalTime;
&gt; &gt; +    double value = WTF::parseES5DateFromNullTerminatedCharacters(dateString, isLocalTime);
&gt; &gt; +    if (std::isnan(value))
&gt; &gt; +        return std::numeric_limits&lt;double&gt;::quiet_NaN();
&gt; &gt; +
&gt; &gt; +    if (isLocalTime)
&gt; &gt; +        value -= localTimeOffset(vm, value, WTF::LocalTime).offset;
&gt; &gt; +
&gt; &gt; +    return value;
&gt; 
&gt; Had a small thought for refinement:
&gt; 
&gt; - When parseES5DateFromNullTerminatedCharacters returns a NaN, there’s no
&gt; need to &quot;sanitize&quot; it.
&gt; - Calling localTimeOffset has no side effects.
&gt; - Subtracting a number from a NaN has no effect on the NaN.
&gt; 
&gt; Assuming I am correct, and all three of these are in fact true, we can
&gt; remove the special case if statement for NaN with these effects:
&gt; 
&gt; - Slightly smaller code.
&gt; - Slightly faster for the non-NaN case.
&gt; - Slightly slower for the NaN case.
&gt; 
&gt; So, I think we should remove it.

Yeah, the NaN paths in both of those static functions are a bit sad since we call each from one place, and in particular, the latter only gets called if the former returned NaN.

I didn&apos;t realize that &quot;[s]ubtracting a number from a NaN has no effect on the NaN&quot; in C++, that&apos;s good to know. Calling `localTimeOffset` does have a caching side effect; not sure whether that changes your mind at all.

What I had considered myself here was merging the two static functions into one (and just returning the unsanitized NaN since we already know it&apos;s quiet_NaN), to avoid the icky redundancy of rechecking whether we took the NaN path on the first *after* returning from it. I could still do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609121</commentid>
    <comment_count>17</comment_count>
      <attachid>386783</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-21 10:21:40 -0800</bug_when>
    <thetext>Comment on attachment 386783
Patch for landing

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

&gt;&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:220
&gt;&gt; +    return value;
&gt; 
&gt; Had a small thought for refinement:
&gt; 
&gt; - When parseES5DateFromNullTerminatedCharacters returns a NaN, there’s no need to &quot;sanitize&quot; it.
&gt; - Calling localTimeOffset has no side effects.
&gt; - Subtracting a number from a NaN has no effect on the NaN.
&gt; 
&gt; Assuming I am correct, and all three of these are in fact true, we can remove the special case if statement for NaN with these effects:
&gt; 
&gt; - Slightly smaller code.
&gt; - Slightly faster for the non-NaN case.
&gt; - Slightly slower for the NaN case.
&gt; 
&gt; So, I think we should remove it.

We do care about the type of NaN we pass to jsNumber because it doesn&apos;t check that the NaN is pure when boxing (other than a debug assert). Although, in theory the C++ spec doesn&apos;t guarantee quient_NaN is also a pure NaN, so it might be reasonable to change the `std::numeric_limits&lt;double&gt;::quiet_NaN()` to `PNaN`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609122</commentid>
    <comment_count>18</comment_count>
      <attachid>386783</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-21 10:22:59 -0800</bug_when>
    <thetext>Comment on attachment 386783
Patch for landing

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:220
&gt;&gt;&gt;&gt; +    return value;
&gt;&gt;&gt; 
&gt;&gt;&gt; Had a small thought for refinement:
&gt;&gt;&gt; 
&gt;&gt;&gt; - When parseES5DateFromNullTerminatedCharacters returns a NaN, there’s no need to &quot;sanitize&quot; it.
&gt;&gt;&gt; - Calling localTimeOffset has no side effects.
&gt;&gt;&gt; - Subtracting a number from a NaN has no effect on the NaN.
&gt;&gt;&gt; 
&gt;&gt;&gt; Assuming I am correct, and all three of these are in fact true, we can remove the special case if statement for NaN with these effects:
&gt;&gt;&gt; 
&gt;&gt;&gt; - Slightly smaller code.
&gt;&gt;&gt; - Slightly faster for the non-NaN case.
&gt;&gt;&gt; - Slightly slower for the NaN case.
&gt;&gt;&gt; 
&gt;&gt;&gt; So, I think we should remove it.
&gt;&gt; 
&gt;&gt; Yeah, the NaN paths in both of those static functions are a bit sad since we call each from one place, and in particular, the latter only gets called if the former returned NaN.
&gt;&gt; 
&gt;&gt; I didn&apos;t realize that &quot;[s]ubtracting a number from a NaN has no effect on the NaN&quot; in C++, that&apos;s good to know. Calling `localTimeOffset` does have a caching side effect; not sure whether that changes your mind at all.
&gt;&gt; 
&gt;&gt; What I had considered myself here was merging the two static functions into one (and just returning the unsanitized NaN since we already know it&apos;s quiet_NaN), to avoid the icky redundancy of rechecking whether we took the NaN path on the first *after* returning from it. I could still do that.
&gt; 
&gt; We do care about the type of NaN we pass to jsNumber because it doesn&apos;t check that the NaN is pure when boxing (other than a debug assert). Although, in theory the C++ spec doesn&apos;t guarantee quient_NaN is also a pure NaN, so it might be reasonable to change the `std::numeric_limits&lt;double&gt;::quiet_NaN()` to `PNaN`.

I guess I should also mention that the result of this function is indirectly passed to jsNumber, in case that wasn&apos;t clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609128</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-21 10:30:35 -0800</bug_when>
    <thetext>That sounds wrong to me. I think we are guaranteed this is a pure NaN.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609189</commentid>
    <comment_count>20</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-21 12:03:48 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #19)
&gt; That sounds wrong to me. I think we are guaranteed this is a pure NaN.

I believe on MIPS, for instance, QNaN has the sign bit set so it will be impure. At least, that&apos;s my understanding from: https://github.com/WebAssembly/design/issues/976.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609190</commentid>
    <comment_count>21</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-01-21 12:05:20 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #20)
&gt; (In reply to Darin Adler from comment #19)
&gt; &gt; That sounds wrong to me. I think we are guaranteed this is a pure NaN.
&gt; 
&gt; I believe on MIPS, for instance, QNaN has the sign bit set so it will be
&gt; impure. At least, that&apos;s my understanding from:
&gt; https://github.com/WebAssembly/design/issues/976.

We could add a static_assert somewhere that quiet_NaN is pure though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609362</commentid>
    <comment_count>22</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-21 16:22:25 -0800</bug_when>
    <thetext>Created bug 206560 to address the &quot;excessive NaN checking&quot; concern. I&apos;m hoping the refactor presented there makes the direct issue moot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609455</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-21 22:41:47 -0800</bug_when>
    <thetext>*** Bug 160287 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386753</attachid>
            <date>2020-01-03 21:19:28 -0800</date>
            <delta_ts>2020-01-04 00:24:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89071-20200103211928.patch</filename>
            <type>text/plain</type>
            <size>13667</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTliNTZiMDY4ZTU3MGYzMGRjZDZmOWJhYTBlYzIwOWE1ZjhkNDU0Li43NzA2MGY2ZGRhYzg0MDFk
ZTI0Y2MyNzU4Yjc4ODVhZTIyYzM1MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wMS0wMyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDogSW52YWxpZCBkYXRlIHBhcnNlIGZvciBJU08g
ODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgRVMyMDE2LCB0aGUgc3BlY2lmaWNhdGlv
biBmb3IgRGF0ZS5wYXJzZSBoYXMgaW5jbHVkZWQgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6Cisg
ICAgICAgICAgV2hlbiB0aGUgVVRDIG9mZnNldCByZXByZXNlbnRhdGlvbiBpcyBhYnNlbnQsIGRh
dGUtb25seSBmb3JtcyBhcmUgaW50ZXJwcmV0ZWQgYXMgYSBVVEMgdGltZQorICAgICAgICAgIGFu
ZCBkYXRlLXRpbWUgZm9ybXMgYXJlIGludGVycHJldGVkIGFzIGEgbG9jYWwgdGltZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdXMgZnJvbSB0aGUgb2xkIEVTNSBiZWhhdmlvciwgd2hp
Y2ggdHJlYXRlZCBvZmZzZXRsZXNzIGRhdGUtdGltZSBmb3JtcyBhcyBVVEMuCisKKyAgICAgICAg
KiBydW50aW1lL0pTRGF0ZU1hdGguY3BwOgorICAgICAgICAoSlNDOjpwYXJzZURhdGVGcm9tTnVs
bFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTQzo6cGFyc2VFUzVEYXRlRnJvbU51
bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6IEFkZGVkLgorICAgICAgICAoSlNDOjpwYXJzZURhdGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5oOgorICAgICAgICBNYWtlIGEgbG9jYWwg
dGltZSBhZGp1c3RtZW50IGlmIG5lY2Vzc2FyeSBhZnRlciBjYWxsaW5nIFdURjo6cGFyc2VFUzVE
YXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycy4KKwogMjAyMC0wMS0wMiAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1hcmtlZEJsb2NrOjpI
YW5kbGUgYW5kIEJsb2NrRGlyZWN0b3J5IHNob3VsZCBiZSBzaHJ1bmsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOWFkYjEyN2Fj
MzA2MjhkMGYzYzQ5ZGNiZjU1YTJjZTI3YjUzOTY0YS4uODUyNzgyMmI2Y2NlNmJhMzU5NDAzMTdk
MGU0NDZiM2UwYzdkZDY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMS0wMyAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDog
SW52YWxpZCBkYXRlIHBhcnNlIGZvciBJU08gODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUg
Z2l2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJzZUVTNVRpbWVQb3J0aW9uKToKKyAg
ICAgICAgKFdURjo6cGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6Cisg
ICAgICAgICogd3RmL0RhdGVNYXRoLmg6CisgICAgICAgIEFkZCBhbiBvdXQgcGFyYW0gdG8gdGVs
bCBKU0Mgd2hldGhlciB3ZSBzdGlsbCBuZWVkIHRvIGRvIGEgbG9jYWwgdGltZSBhZGp1c3RtZW50
LgorCiAyMDIwLTAxLTAzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4
Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwCmluZGV4IDY0ODI2YWI5NmI1ZGIyMzBiZTI3NDRhMDU3YmRjODg4ZTQ3OTQyODMuLmFj
NmY5ZjVlMDZhYzQ0M2M1YzRjYzdlZTA4N2IwYjVmMTM3NWVlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9p
ZCBtc1RvR3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtLCBkb3VibGUgbXMsIFdURjo6VGltZVR5cGUg
b3V0cHV0VGltZVR5cGUsIEdyZWcKICAgICB0bSA9IEdyZWdvcmlhbkRhdGVUaW1lKG1zLCBsb2Nh
bFRpbWUpOwogfQogCi1kb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVy
cyhWTSYgdm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpCitzdGF0aWMgZG91YmxlIHBhcnNlRGF0
ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBkYXRlU3Ry
aW5nKQogewogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CkBAIC0yMDcsNiArMjA3
LDE3IEBAIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKFZNJiB2
bSwgY29uc3QgY2hhciogZGF0ZVN0cmluZykKICAgICByZXR1cm4gbG9jYWxUaW1lTVMgLSAob2Zm
c2V0ICogV1RGOjptc1Blck1pbnV0ZSk7CiB9CiAKK3N0YXRpYyBkb3VibGUgcGFyc2VFUzVEYXRl
RnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhWTSYgdm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJp
bmcpCit7CisgICAgYm9vbCBpc0xvY2FsVGltZTsKKyAgICBkb3VibGUgbXMgPSBXVEY6OnBhcnNl
RVM1RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoZGF0ZVN0cmluZywgaXNMb2NhbFRp
bWUpOworICAgIGlmIChzdGQ6OmlzbmFuKG1zKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisKKyAgICBpbnQgb2Zmc2V0ID0gaXNMb2Nh
bFRpbWUgPyBsb2NhbFRpbWVPZmZzZXQodm0sIG1zLCBXVEY6OkxvY2FsVGltZSkub2Zmc2V0IDog
MDsKKyAgICByZXR1cm4gbXMgLSBvZmZzZXQ7Cit9CisKIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI0LDcgKzIzNSw3
IEBAIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZt
LCBjb25zdCBTdHJpbmcmIGRhdGUpCiAgICAgfQogCiAgICAgYXV0byBkYXRlVXRmOCA9IGV4cGVj
dGVkU3RyaW5nLnZhbHVlKCk7Ci0gICAgZG91YmxlIHZhbHVlID0gV1RGOjpwYXJzZUVTNURhdGVG
cm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGRhdGVVdGY4LmRhdGEoKSk7CisgICAgZG91Ymxl
IHZhbHVlID0gcGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwgZGF0
ZVV0ZjguZGF0YSgpKTsKICAgICBpZiAoc3RkOjppc25hbih2YWx1ZSkpCiAgICAgICAgIHZhbHVl
ID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwgZGF0ZVV0ZjguZGF0
YSgpKTsKICAgICB2bS5jYWNoZWREYXRlU3RyaW5nID0gZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAppbmRleCAxMjc1NTU2NGU3ZDFjY2M0NTMwMGMyOWRj
YmUwZGM4MzVkMmM0NTcxLi5jNTkyNTU4NWYxMDM5ZGRkOWZjODEyOGNjY2I1ODBmM2I3N2M3ZWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCkBAIC00Nywx
NCArNDcsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIENhbGxGcmFtZTsKIGNsYXNz
IEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgVk07CiAKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgbXNU
b0dyZWdvcmlhbkRhdGVUaW1lKFZNJiwgZG91YmxlLCBXVEY6OlRpbWVUeXBlIG91dHB1dFRpbWVU
eXBlLCBHcmVnb3JpYW5EYXRlVGltZSYpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGdyZWdv
cmlhbkRhdGVUaW1lVG9NUyhWTSYsIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiwgZG91YmxlLCBX
VEY6OlRpbWVUeXBlIGlucHV0VGltZVR5cGUpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGdl
dFVUQ09mZnNldChWTSYpOwotSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKTsKIEpT
X0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqLCBWTSYsIGNv
bnN0IFdURjo6U3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmlu
ZGV4IDRkZjcwYzNkNzIwMTQ1OGYwZjc4ZjM0ZmMyNjljZGYxOGUyOTBjMGYuLjRhZWU2ZTMzMzE0
ZmM0NThkM2UxMGI5MmJiNDYyOGFkZDhlNDFjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTUyMSw3
ICs1MjEsNyBAQCBzdGF0aWMgY2hhciogcGFyc2VFUzVEYXRlUG9ydGlvbihjb25zdCBjaGFyKiBj
dXJyZW50UG9zaXRpb24sIGludCYgeWVhciwgbG9uZyYgbQogLy8gUGFyc2VzIGEgdGltZSB3aXRo
IHRoZSBmb3JtYXQgSEg6bW1bOnNzWy5zc3NdXVtafCgrfC0pMDA6MDBdLgogLy8gRnJhY3Rpb25h
bCBzZWNvbmRzIHBhcnNpbmcgaXMgbGVuaWVudCwgYWxsb3dzIGFueSBudW1iZXIgb2YgZGlnaXRz
LgogLy8gUmV0dXJucyAwIGlmIGEgcGFyc2UgZXJyb3Igb2NjdXJzLCBlbHNlIHJldHVybnMgdGhl
IGVuZCBvZiB0aGUgcGFyc2VkIHBvcnRpb24gb2YgdGhlIHN0cmluZy4KLXN0YXRpYyBjaGFyKiBw
YXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlvbiwgbG9uZyYgaG91cnMsIGxv
bmcmIG1pbnV0ZXMsIGRvdWJsZSYgc2Vjb25kcywgbG9uZyYgdGltZVpvbmVTZWNvbmRzKQorc3Rh
dGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hhciogY3VycmVudFBvc2l0aW9uLCBsb25n
JiBob3VycywgbG9uZyYgbWludXRlcywgZG91YmxlJiBzZWNvbmRzLCBib29sJiBpc0xvY2FsVGlt
ZSwgbG9uZyYgdGltZVpvbmVTZWNvbmRzKQogewogICAgIGNoYXIqIHBvc3RQYXJzZVBvc2l0aW9u
OwogICAgIGlmICghaXNBU0NJSURpZ2l0KCpjdXJyZW50UG9zaXRpb24pKQpAQCAtNTcyLDYgKzU3
Miw3IEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3Np
dGlvbiwgbG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0CiAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9
IHBvc3RQYXJzZVBvc2l0aW9uOwogICAgIH0KIAorICAgIGlzTG9jYWxUaW1lID0gZmFsc2U7CiAg
ICAgaWYgKCpjdXJyZW50UG9zaXRpb24gPT0gJ1onKQogICAgICAgICByZXR1cm4gY3VycmVudFBv
c2l0aW9uICsgMTsKIApAQCAtNTgwLDggKzU4MSwxMCBAQCBzdGF0aWMgY2hhciogcGFyc2VFUzVU
aW1lUG9ydGlvbihjaGFyKiBjdXJyZW50UG9zaXRpb24sIGxvbmcmIGhvdXJzLCBsb25nJiBtaW51
dAogICAgICAgICB0ek5lZ2F0aXZlID0gdHJ1ZTsKICAgICBlbHNlIGlmICgqY3VycmVudFBvc2l0
aW9uID09ICcrJykKICAgICAgICAgdHpOZWdhdGl2ZSA9IGZhbHNlOwotICAgIGVsc2UKLSAgICAg
ICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsgLy8gbm8gdGltZXpvbmUKKyAgICBlbHNlIHsKKyAg
ICAgICAgaXNMb2NhbFRpbWUgPSB0cnVlOworICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9u
OworICAgIH0KICAgICArK2N1cnJlbnRQb3NpdGlvbjsKICAgICAKICAgICBsb25nIHR6SG91cnM7
CkBAIC02MTcsNyArNjIwLDcgQEAgc3RhdGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hh
ciogY3VycmVudFBvc2l0aW9uLCBsb25nJiBob3VycywgbG9uZyYgbWludXQKICAgICByZXR1cm4g
Y3VycmVudFBvc2l0aW9uOwogfQogCi1kb3VibGUgcGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5h
dGVkQ2hhcmFjdGVycyhjb25zdCBjaGFyKiBkYXRlU3RyaW5nKQorZG91YmxlIHBhcnNlRVM1RGF0
ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0cmluZywgYm9v
bCYgaXNMb2NhbFRpbWUpCiB7CiAgICAgLy8gVGhpcyBwYXJzZXMgYSBkYXRlIG9mIHRoZSBmb3Jt
IGRlZmluZWQgaW4gZWNtYTI2Mi8jc2VjLWRhdGUtdGltZS1zdHJpbmctZm9ybWF0CiAgICAgLy8g
KHNpbWlsYXIgdG8gUkZDIDMzMzkgLyBJU08gODYwMTogWVlZWS1NTS1ERFRISDptbTpzc1suc3Nz
XVopLgpAQCAtNjM4LDEzICs2NDEsMTcgQEAgZG91YmxlIHBhcnNlRVM1RGF0ZUZyb21OdWxsVGVy
bWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0cmluZykKICAgICBjaGFyKiBjdXJy
ZW50UG9zaXRpb24gPSBwYXJzZUVTNURhdGVQb3J0aW9uKGRhdGVTdHJpbmcsIHllYXIsIG1vbnRo
LCBkYXkpOwogICAgIGlmICghY3VycmVudFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKwogICAgIC8vIExvb2sgZm9yIGEg
dGltZSBwb3J0aW9uLgorICAgIC8vIE5vdGU6IEFzIG9mIEVTMjAxNiwgd2hlbiBhIFVUQyBvZmZz
ZXQgaXMgbWlzc2luZywgZGF0ZS10aW1lIGZvcm1zIGFyZSBsb2NhbCB0aW1lIHdoaWxlIGRhdGUt
b25seSBmb3JtcyBhcmUgVVRDLgogICAgIGlmICgqY3VycmVudFBvc2l0aW9uID09ICdUJykgewog
ICAgICAgICAvLyBQYXJzZSB0aGUgdGltZSBISDptbVs6c3NbLnNzc11dW1p8KCt8LSkwMDowMF0K
LSAgICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlvbihjdXJyZW50UG9z
aXRpb24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgdGltZVpvbmVTZWNvbmRzKTsKKyAg
ICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlvbihjdXJyZW50UG9zaXRp
b24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgaXNMb2NhbFRpbWUsIHRpbWVab25lU2Vj
b25kcyk7CiAgICAgICAgIGlmICghY3VycmVudFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgfQorICAgIH0g
ZWxzZQorICAgICAgICBpc0xvY2FsVGltZSA9IGZhbHNlOworCiAgICAgLy8gQ2hlY2sgdGhhdCB3
ZSBoYXZlIHBhcnNlZCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgogICAgIGlmICgqY3Vy
cmVudFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmggYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCmluZGV4IDVhZDhjMzM2MWEyMGY1MWI4Y2NiYmI1ZDUy
ZWI3ZjQyOTA5M2QxZTkuLjA0NWI2YTQwODhkNTI1NzRiYzVjZjg2MDEyNWRmZTNhMGFlNTI1M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKKysrIGIvU291cmNlL1dURi93
dGYvRGF0ZU1hdGguaApAQCAtODksNyArODksNyBAQCB2b2lkIGluaXRpYWxpemVEYXRlcygpOwog
aW50IGVxdWl2YWxlbnRZZWFyRm9yRFNUKGludCB5ZWFyKTsKIAogLy8gTm90IHJlYWxseSBtYXRo
IHJlbGF0ZWQsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSB0aGUgb25seSBzaGFyZWQgcGxhY2UgdG8g
cHV0IHRoZXNlLgotV1RGX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVs
bFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpOworV1RGX0VYUE9S
VF9QUklWQVRFIGRvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJz
KGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcsIGJvb2wmIGlzTG9jYWxUaW1lKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBkb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhjb25z
dCBjaGFyKiBkYXRlU3RyaW5nKTsKIFdURl9FWFBPUlRfUFJJVkFURSBkb3VibGUgcGFyc2VEYXRl
RnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhjb25zdCBjaGFyKiBkYXRlU3RyaW5nLCBib29s
JiBoYXZlVFosIGludCYgb2Zmc2V0KTsKIC8vIGRheU9mV2VlazogWzAsIDZdIDAgYmVpbmcgTW9u
ZGF5LCBkYXk6IFsxLCAzMV0sIG1vbnRoOiBbMCwgMTFdLCB5ZWFyOiBleDogMjAxMSwgaG91cnM6
IFswLCAyM10sIG1pbnV0ZXM6IFswLCA1OV0sIHNlY29uZHM6IFswLCA1OV0sIHV0Y09mZnNldDog
Wy03MjAsNzIwXS4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjBiOTAwNGUxZGYxZWRlZDM4MzFmMjczMTJkY2MzNjViYjA3
MWZkMi4uNWQ3YmY4ODJmY2YyNWNjOTdiMjU3NWM3MzFjN2FiYzczZDgzNzEzZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIwLTAxLTAzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bz
b255LmNvbT4KKworICAgICAgICBKYXZhU2NyaXB0OiBJbnZhbGlkIGRhdGUgcGFyc2UgZm9yIElT
TyA4NjAxIHN0cmluZ3Mgd2hlbiBubyB0aW1lem9uZSBnaXZlbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkwNzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5qczoKKyAg
ICAgICAgVXBkYXRlIHRlc3QgdG8gbWF0Y2ggbmV3IGJlaGF2aW9yLgorCiAyMDIwLTAxLTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgZG9tL25vZGVzL0RvY3Vt
ZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLmh0bWwgV1BUIHRlc3QgaXMgZmFpbGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZGF0ZS1wYXJzZS10ZXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2pzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3RlZC50eHQKaW5kZXggZGFmMTRjZWIy
MGZkZDdjYmRkYWUwOTk0ODIwYmUyYWVjOGYzMzlkOC4uYzUxOWRiOGYxYTNmNmEwYzk4ZDQzNWRj
ZjYxMjBlODA0NDEzMmRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZGF0ZS1wYXJzZS10
ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kYXRlLXBhcnNlLXRlc3QtZXhw
ZWN0ZWQudHh0CkBAIC0zMiwxNSArMzIsMTUgQEAgUEFTUyBEYXRlLnBhcnNlKCIxOTk1LTEyLTI1
VDAxOjMwOjAweiIpIGlzIE5hTgogUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MCcpKSBpcyAw
CiBQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxJykpIGlzIDAKIFBBU1MgTnVtYmVyKERh
dGUucGFyc2UoJzE5NzAtMDEtMDEnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3
MFQwMDowMCcpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwJykp
IGlzIDAKLVBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDAnKSkgaXMgMAot
UEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMCcpKSBpcyAwCi1QQVNTIE51bWJl
cihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwJykpIGlzIDAKLVBBU1MgTnVtYmVyKERhdGUu
cGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJz
ZSgnMTk3MFQwMDowMDowMC4wMDAnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3
MC0wMVQwMDowMDowMC4wMDAnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0w
MS0wMVQwMDowMDowMC4wMDAnKSkgaXMgMAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQw
MDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0w
MVQwMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3
MC0wMS0wMVQwMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJz
ZSgnMTk3MFQwMDowMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5w
YXJzZSgnMTk3MC0wMVQwMDowMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIo
RGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFT
UyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMC4wMDAnKSkgaXMgdGltZVpvbmVPZmZz
ZXQKK1BBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDA6MDAuMDAwJykpIGlzIHRp
bWVab25lT2Zmc2V0CitQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwOjAw
LjAwMCcpKSBpcyB0aW1lWm9uZU9mZnNldAogUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQw
MDowMFonKSkgaXMgMAogUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMFonKSkg
aXMgMAogUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMFonKSkgaXMgMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5q
cyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kYXRlLXBhcnNlLXRlc3QuanMKaW5kZXgg
NzQwYjc2M2Y4ZjVmMTMyOThhYjAxYjNkMDg0NTYwMWY4YTIwNDczYS4uMjMxZjhhZGVjMWQxMDYw
NzQ1NTczZDJlNzJlMTg1YTA5Mjk4ZTE3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQt
dGVzdHMvZGF0ZS1wYXJzZS10ZXN0LmpzCkBAIC0zNyw2ICszNyw3IEBAIGZ1bmN0aW9uIHRlc3RE
YXRlUGFyc2VFeGFjdChkYXRlLCBudW1lcmljUmVzdWx0KQogICAgIH0KIH0KIAordmFyIHRpbWVa
b25lT2Zmc2V0ID0gRGF0ZS5wYXJzZSgiIERlYyAyNSAxOTk1IDE6MzAgIikgLSBEYXRlLnBhcnNl
KCIgRGVjIDI1IDE5OTUgMTozMCBHTVQgIik7CiAKIC8vIHRlc3QgRUNNQVNjcmlwdCA1IHN0YW5k
YXJkIGRhdGUgcGFyc2luZwogdGVzdERhdGVQYXJzZUV4YWN0KCIxOTk1LTEyLTI1VDAxOjMwOjAw
WiIsICI4MTk4NTUwMDAwMDAiKTsKQEAgLTczLDE1ICs3NCwxNSBAQCBzaG91bGRCZSgiTnVtYmVy
KERhdGUucGFyc2UoJzE5NzAnKSkiLCAnMCcpOwogc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxJykpIiwgJzAnKTsKIHNob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0w
MS0wMScpKSIsICcwJyk7CiAvLyBEYXRlLXRpbWUgZGF0ZXMKLXNob3VsZEJlKCJOdW1iZXIoRGF0
ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVtYmVyKERhdGUucGFy
c2UoJzE5NzAtMDFUMDA6MDAnKSkiLCAnMCcpOwotc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxLTAxVDAwOjAwJykpIiwgJzAnKTsKLXNob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJz
ZSgnMTk3MFQwMDowMDowMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2Uo
JzE5NzAtMDFUMDA6MDA6MDAnKSkiLCAnMCcpOwotc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxLTAxVDAwOjAwOjAwJykpIiwgJzAnKTsKLXNob3VsZEJlKCJOdW1iZXIoRGF0ZS5w
YXJzZSgnMTk3MFQwMDowMDowMC4wMDAnKSkiLCAnMCcpOwotc2hvdWxkQmUoIk51bWJlcihEYXRl
LnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwLjAwMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVtYmVy
KERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwJykpIiwgJzAnKTsKK3Nob3VsZEJl
KCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOwor
c2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwJykpIiwgJ3RpbWVab25l
T2Zmc2V0Jyk7CitzaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDAn
KSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3
MFQwMDowMDowMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOworc2hvdWxkQmUoIk51bWJlcihEYXRl
LnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwJykpIiwgJ3RpbWVab25lT2Zmc2V0Jyk7CitzaG91bGRC
ZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAnKSkiLCAndGltZVpvbmVP
ZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMC4wMDAn
KSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3
MC0wMVQwMDowMDowMC4wMDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMC4wMDAnKSkiLCAndGltZVpvbmVPZmZz
ZXQnKTsKIC8vIERhdGUtdGltZSBkYXRlcyB3aXRoIFVUQyB0aW1lem9uZQogc2hvdWxkQmUoIk51
bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwWicpKSIsICcwJyk7CiBzaG91bGRCZSgiTnVtYmVy
KERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDBaJykpIiwgJzAnKTsKQEAgLTEzNiw4ICsxMzcsNiBA
QCBzaG91bGRCZSgiU3RyaW5nKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwKzA6
MCcpKSIsICciTmFOIicpOwogCiAvLyB0ZXN0IG9sZCBpbXBsZW1lbnRhdGlvbiBmYWxsYmFjawog
Ci12YXIgdGltZVpvbmVPZmZzZXQgPSBEYXRlLnBhcnNlKCIgRGVjIDI1IDE5OTUgMTozMCAiKSAt
IERhdGUucGFyc2UoIiBEZWMgMjUgMTk5NSAxOjMwIEdNVCAiKTsKLQogdGVzdERhdGVQYXJzZSgi
RGVjIDI1IDE5OTUgR01UIiwgIjgxOTg0OTYwMDAwMCIpOwogdGVzdERhdGVQYXJzZSgiRGVjIDI1
IDE5OTUiLCAiODE5ODQ5NjAwMDAwICsgdGltZVpvbmVPZmZzZXQiKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386760</attachid>
            <date>2020-01-04 00:24:37 -0800</date>
            <delta_ts>2020-01-05 00:11:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89071-20200104002436.patch</filename>
            <type>text/plain</type>
            <size>16789</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTliNTZiMDY4ZTU3MGYzMGRjZDZmOWJhYTBlYzIwOWE1ZjhkNDU0Li5mN2ViNWUwYTI5Mzk5ODM1
YWE5NmYwZWMzYzE3ZDYyNTgyYjdmZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wMS0wNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDogSW52YWxpZCBkYXRlIHBhcnNlIGZvciBJU08g
ODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgRVMyMDE2LCB0aGUgc3BlY2lmaWNhdGlv
biBmb3IgRGF0ZS5wYXJzZSBoYXMgaW5jbHVkZWQgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6Cisg
ICAgICAgICAgV2hlbiB0aGUgVVRDIG9mZnNldCByZXByZXNlbnRhdGlvbiBpcyBhYnNlbnQsIGRh
dGUtb25seSBmb3JtcyBhcmUgaW50ZXJwcmV0ZWQgYXMgYSBVVEMgdGltZQorICAgICAgICAgIGFu
ZCBkYXRlLXRpbWUgZm9ybXMgYXJlIGludGVycHJldGVkIGFzIGEgbG9jYWwgdGltZS4KKworICAg
ICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdXMgZnJvbSB0aGUgb2xkIEVTNSBiZWhhdmlvciwgd2hp
Y2ggdHJlYXRlZCBvZmZzZXRsZXNzIGRhdGUtdGltZSBmb3JtcyBhcyBVVEMuCisKKyAgICAgICAg
KiBydW50aW1lL0pTRGF0ZU1hdGguY3BwOgorICAgICAgICAoSlNDOjpwYXJzZURhdGVGcm9tTnVs
bFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTQzo6cGFyc2VFUzVEYXRlRnJvbU51
bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6IEFkZGVkLgorICAgICAgICAoSlNDOjpwYXJzZURhdGUp
OgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5oOgorICAgICAgICBNYWtlIGEgbG9jYWwg
dGltZSBhZGp1c3RtZW50IGlmIG5lY2Vzc2FyeSBhZnRlciBjYWxsaW5nIFdURjo6cGFyc2VFUzVE
YXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycy4KKwogMjAyMC0wMS0wMiAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1hcmtlZEJsb2NrOjpI
YW5kbGUgYW5kIEJsb2NrRGlyZWN0b3J5IHNob3VsZCBiZSBzaHJ1bmsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOWFkYjEyN2Fj
MzA2MjhkMGYzYzQ5ZGNiZjU1YTJjZTI3YjUzOTY0YS4uN2Q4NzVmOTdhYTIyMWY4MjY3YmM3ZTZj
MWNhMGNkMDU4YTlkZmM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMS0wNCAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDog
SW52YWxpZCBkYXRlIHBhcnNlIGZvciBJU08gODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUg
Z2l2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJzZUVTNVRpbWVQb3J0aW9uKToKKyAg
ICAgICAgKFdURjo6cGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6Cisg
ICAgICAgICogd3RmL0RhdGVNYXRoLmg6CisgICAgICAgIEFkZCBhbiBvdXQgcGFyYW0gdG8gdGVs
bCBKU0Mgd2hldGhlciB3ZSBzdGlsbCBuZWVkIHRvIGRvIGEgbG9jYWwgdGltZSBhZGp1c3RtZW50
LgorCiAyMDIwLTAxLTAzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4
Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwCmluZGV4IDY0ODI2YWI5NmI1ZGIyMzBiZTI3NDRhMDU3YmRjODg4ZTQ3OTQyODMuLmFj
NmY5ZjVlMDZhYzQ0M2M1YzRjYzdlZTA4N2IwYjVmMTM3NWVlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9p
ZCBtc1RvR3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtLCBkb3VibGUgbXMsIFdURjo6VGltZVR5cGUg
b3V0cHV0VGltZVR5cGUsIEdyZWcKICAgICB0bSA9IEdyZWdvcmlhbkRhdGVUaW1lKG1zLCBsb2Nh
bFRpbWUpOwogfQogCi1kb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVy
cyhWTSYgdm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpCitzdGF0aWMgZG91YmxlIHBhcnNlRGF0
ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBkYXRlU3Ry
aW5nKQogewogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CkBAIC0yMDcsNiArMjA3
LDE3IEBAIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKFZNJiB2
bSwgY29uc3QgY2hhciogZGF0ZVN0cmluZykKICAgICByZXR1cm4gbG9jYWxUaW1lTVMgLSAob2Zm
c2V0ICogV1RGOjptc1Blck1pbnV0ZSk7CiB9CiAKK3N0YXRpYyBkb3VibGUgcGFyc2VFUzVEYXRl
RnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhWTSYgdm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJp
bmcpCit7CisgICAgYm9vbCBpc0xvY2FsVGltZTsKKyAgICBkb3VibGUgbXMgPSBXVEY6OnBhcnNl
RVM1RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoZGF0ZVN0cmluZywgaXNMb2NhbFRp
bWUpOworICAgIGlmIChzdGQ6OmlzbmFuKG1zKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisKKyAgICBpbnQgb2Zmc2V0ID0gaXNMb2Nh
bFRpbWUgPyBsb2NhbFRpbWVPZmZzZXQodm0sIG1zLCBXVEY6OkxvY2FsVGltZSkub2Zmc2V0IDog
MDsKKyAgICByZXR1cm4gbXMgLSBvZmZzZXQ7Cit9CisKIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI0LDcgKzIzNSw3
IEBAIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZt
LCBjb25zdCBTdHJpbmcmIGRhdGUpCiAgICAgfQogCiAgICAgYXV0byBkYXRlVXRmOCA9IGV4cGVj
dGVkU3RyaW5nLnZhbHVlKCk7Ci0gICAgZG91YmxlIHZhbHVlID0gV1RGOjpwYXJzZUVTNURhdGVG
cm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGRhdGVVdGY4LmRhdGEoKSk7CisgICAgZG91Ymxl
IHZhbHVlID0gcGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwgZGF0
ZVV0ZjguZGF0YSgpKTsKICAgICBpZiAoc3RkOjppc25hbih2YWx1ZSkpCiAgICAgICAgIHZhbHVl
ID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwgZGF0ZVV0ZjguZGF0
YSgpKTsKICAgICB2bS5jYWNoZWREYXRlU3RyaW5nID0gZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAppbmRleCAxMjc1NTU2NGU3ZDFjY2M0NTMwMGMyOWRj
YmUwZGM4MzVkMmM0NTcxLi5jNTkyNTU4NWYxMDM5ZGRkOWZjODEyOGNjY2I1ODBmM2I3N2M3ZWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCkBAIC00Nywx
NCArNDcsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIENhbGxGcmFtZTsKIGNsYXNz
IEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgVk07CiAKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgbXNU
b0dyZWdvcmlhbkRhdGVUaW1lKFZNJiwgZG91YmxlLCBXVEY6OlRpbWVUeXBlIG91dHB1dFRpbWVU
eXBlLCBHcmVnb3JpYW5EYXRlVGltZSYpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGdyZWdv
cmlhbkRhdGVUaW1lVG9NUyhWTSYsIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiwgZG91YmxlLCBX
VEY6OlRpbWVUeXBlIGlucHV0VGltZVR5cGUpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGdl
dFVUQ09mZnNldChWTSYpOwotSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKTsKIEpT
X0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqLCBWTSYsIGNv
bnN0IFdURjo6U3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwCmlu
ZGV4IDRkZjcwYzNkNzIwMTQ1OGYwZjc4ZjM0ZmMyNjljZGYxOGUyOTBjMGYuLjRhZWU2ZTMzMzE0
ZmM0NThkM2UxMGI5MmJiNDYyOGFkZDhlNDFjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTUyMSw3
ICs1MjEsNyBAQCBzdGF0aWMgY2hhciogcGFyc2VFUzVEYXRlUG9ydGlvbihjb25zdCBjaGFyKiBj
dXJyZW50UG9zaXRpb24sIGludCYgeWVhciwgbG9uZyYgbQogLy8gUGFyc2VzIGEgdGltZSB3aXRo
IHRoZSBmb3JtYXQgSEg6bW1bOnNzWy5zc3NdXVtafCgrfC0pMDA6MDBdLgogLy8gRnJhY3Rpb25h
bCBzZWNvbmRzIHBhcnNpbmcgaXMgbGVuaWVudCwgYWxsb3dzIGFueSBudW1iZXIgb2YgZGlnaXRz
LgogLy8gUmV0dXJucyAwIGlmIGEgcGFyc2UgZXJyb3Igb2NjdXJzLCBlbHNlIHJldHVybnMgdGhl
IGVuZCBvZiB0aGUgcGFyc2VkIHBvcnRpb24gb2YgdGhlIHN0cmluZy4KLXN0YXRpYyBjaGFyKiBw
YXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlvbiwgbG9uZyYgaG91cnMsIGxv
bmcmIG1pbnV0ZXMsIGRvdWJsZSYgc2Vjb25kcywgbG9uZyYgdGltZVpvbmVTZWNvbmRzKQorc3Rh
dGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hhciogY3VycmVudFBvc2l0aW9uLCBsb25n
JiBob3VycywgbG9uZyYgbWludXRlcywgZG91YmxlJiBzZWNvbmRzLCBib29sJiBpc0xvY2FsVGlt
ZSwgbG9uZyYgdGltZVpvbmVTZWNvbmRzKQogewogICAgIGNoYXIqIHBvc3RQYXJzZVBvc2l0aW9u
OwogICAgIGlmICghaXNBU0NJSURpZ2l0KCpjdXJyZW50UG9zaXRpb24pKQpAQCAtNTcyLDYgKzU3
Miw3IEBAIHN0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3Np
dGlvbiwgbG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0CiAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9
IHBvc3RQYXJzZVBvc2l0aW9uOwogICAgIH0KIAorICAgIGlzTG9jYWxUaW1lID0gZmFsc2U7CiAg
ICAgaWYgKCpjdXJyZW50UG9zaXRpb24gPT0gJ1onKQogICAgICAgICByZXR1cm4gY3VycmVudFBv
c2l0aW9uICsgMTsKIApAQCAtNTgwLDggKzU4MSwxMCBAQCBzdGF0aWMgY2hhciogcGFyc2VFUzVU
aW1lUG9ydGlvbihjaGFyKiBjdXJyZW50UG9zaXRpb24sIGxvbmcmIGhvdXJzLCBsb25nJiBtaW51
dAogICAgICAgICB0ek5lZ2F0aXZlID0gdHJ1ZTsKICAgICBlbHNlIGlmICgqY3VycmVudFBvc2l0
aW9uID09ICcrJykKICAgICAgICAgdHpOZWdhdGl2ZSA9IGZhbHNlOwotICAgIGVsc2UKLSAgICAg
ICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsgLy8gbm8gdGltZXpvbmUKKyAgICBlbHNlIHsKKyAg
ICAgICAgaXNMb2NhbFRpbWUgPSB0cnVlOworICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9u
OworICAgIH0KICAgICArK2N1cnJlbnRQb3NpdGlvbjsKICAgICAKICAgICBsb25nIHR6SG91cnM7
CkBAIC02MTcsNyArNjIwLDcgQEAgc3RhdGljIGNoYXIqIHBhcnNlRVM1VGltZVBvcnRpb24oY2hh
ciogY3VycmVudFBvc2l0aW9uLCBsb25nJiBob3VycywgbG9uZyYgbWludXQKICAgICByZXR1cm4g
Y3VycmVudFBvc2l0aW9uOwogfQogCi1kb3VibGUgcGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5h
dGVkQ2hhcmFjdGVycyhjb25zdCBjaGFyKiBkYXRlU3RyaW5nKQorZG91YmxlIHBhcnNlRVM1RGF0
ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0cmluZywgYm9v
bCYgaXNMb2NhbFRpbWUpCiB7CiAgICAgLy8gVGhpcyBwYXJzZXMgYSBkYXRlIG9mIHRoZSBmb3Jt
IGRlZmluZWQgaW4gZWNtYTI2Mi8jc2VjLWRhdGUtdGltZS1zdHJpbmctZm9ybWF0CiAgICAgLy8g
KHNpbWlsYXIgdG8gUkZDIDMzMzkgLyBJU08gODYwMTogWVlZWS1NTS1ERFRISDptbTpzc1suc3Nz
XVopLgpAQCAtNjM4LDEzICs2NDEsMTcgQEAgZG91YmxlIHBhcnNlRVM1RGF0ZUZyb21OdWxsVGVy
bWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0cmluZykKICAgICBjaGFyKiBjdXJy
ZW50UG9zaXRpb24gPSBwYXJzZUVTNURhdGVQb3J0aW9uKGRhdGVTdHJpbmcsIHllYXIsIG1vbnRo
LCBkYXkpOwogICAgIGlmICghY3VycmVudFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKwogICAgIC8vIExvb2sgZm9yIGEg
dGltZSBwb3J0aW9uLgorICAgIC8vIE5vdGU6IEFzIG9mIEVTMjAxNiwgd2hlbiBhIFVUQyBvZmZz
ZXQgaXMgbWlzc2luZywgZGF0ZS10aW1lIGZvcm1zIGFyZSBsb2NhbCB0aW1lIHdoaWxlIGRhdGUt
b25seSBmb3JtcyBhcmUgVVRDLgogICAgIGlmICgqY3VycmVudFBvc2l0aW9uID09ICdUJykgewog
ICAgICAgICAvLyBQYXJzZSB0aGUgdGltZSBISDptbVs6c3NbLnNzc11dW1p8KCt8LSkwMDowMF0K
LSAgICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlvbihjdXJyZW50UG9z
aXRpb24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgdGltZVpvbmVTZWNvbmRzKTsKKyAg
ICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlvbihjdXJyZW50UG9zaXRp
b24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgaXNMb2NhbFRpbWUsIHRpbWVab25lU2Vj
b25kcyk7CiAgICAgICAgIGlmICghY3VycmVudFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgfQorICAgIH0g
ZWxzZQorICAgICAgICBpc0xvY2FsVGltZSA9IGZhbHNlOworCiAgICAgLy8gQ2hlY2sgdGhhdCB3
ZSBoYXZlIHBhcnNlZCBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLgogICAgIGlmICgqY3Vy
cmVudFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmggYi9T
b3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCmluZGV4IDVhZDhjMzM2MWEyMGY1MWI4Y2NiYmI1ZDUy
ZWI3ZjQyOTA5M2QxZTkuLjA0NWI2YTQwODhkNTI1NzRiYzVjZjg2MDEyNWRmZTNhMGFlNTI1M2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKKysrIGIvU291cmNlL1dURi93
dGYvRGF0ZU1hdGguaApAQCAtODksNyArODksNyBAQCB2b2lkIGluaXRpYWxpemVEYXRlcygpOwog
aW50IGVxdWl2YWxlbnRZZWFyRm9yRFNUKGludCB5ZWFyKTsKIAogLy8gTm90IHJlYWxseSBtYXRo
IHJlbGF0ZWQsIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSB0aGUgb25seSBzaGFyZWQgcGxhY2UgdG8g
cHV0IHRoZXNlLgotV1RGX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVs
bFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpOworV1RGX0VYUE9S
VF9QUklWQVRFIGRvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJz
KGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcsIGJvb2wmIGlzTG9jYWxUaW1lKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBkb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhjb25z
dCBjaGFyKiBkYXRlU3RyaW5nKTsKIFdURl9FWFBPUlRfUFJJVkFURSBkb3VibGUgcGFyc2VEYXRl
RnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhjb25zdCBjaGFyKiBkYXRlU3RyaW5nLCBib29s
JiBoYXZlVFosIGludCYgb2Zmc2V0KTsKIC8vIGRheU9mV2VlazogWzAsIDZdIDAgYmVpbmcgTW9u
ZGF5LCBkYXk6IFsxLCAzMV0sIG1vbnRoOiBbMCwgMTFdLCB5ZWFyOiBleDogMjAxMSwgaG91cnM6
IFswLCAyM10sIG1pbnV0ZXM6IFswLCA1OV0sIHNlY29uZHM6IFswLCA1OV0sIHV0Y09mZnNldDog
Wy03MjAsNzIwXS4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjBiOTAwNGUxZGYxZWRlZDM4MzFmMjczMTJkY2MzNjViYjA3
MWZkMi4uODEzNDkxMDY2NzNlZTIzZDE2ZmMwYjNkZDc3MzdlMDcxZTViMzJmNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDIwLTAxLTA0ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bz
b255LmNvbT4KKworICAgICAgICBKYXZhU2NyaXB0OiBJbnZhbGlkIGRhdGUgcGFyc2UgZm9yIElT
TyA4NjAxIHN0cmluZ3Mgd2hlbiBubyB0aW1lem9uZSBnaXZlbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkwNzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5qczoKKyAg
ICAgICAgVXBkYXRlIHRlc3QgdG8gbWF0Y2ggbmV3IGJlaGF2aW9yLgorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kYXRlLWJhc2ljLmpzOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvZ2V0LWtleXJhbmdlLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUt
ZGVsZXRlLTEuanM6CisgICAgICAgIEZpeCB0ZXN0cyByZWx5aW5nIG9uIG9ic29sZXRlIGJlaGF2
aW9yLgorCiAyMDIwLTAxLTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLmh0bWwgV1BU
IHRlc3QgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZGF0ZS1wYXJzZS10
ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3Rl
ZC50eHQKaW5kZXggZGFmMTRjZWIyMGZkZDdjYmRkYWUwOTk0ODIwYmUyYWVjOGYzMzlkOC4uYzUx
OWRiOGYxYTNmNmEwYzk4ZDQzNWRjZjYxMjBlODA0NDEzMmRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvanMvZGF0ZS1wYXJzZS10ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kYXRlLXBhcnNlLXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0zMiwxNSArMzIsMTUgQEAgUEFTUyBE
YXRlLnBhcnNlKCIxOTk1LTEyLTI1VDAxOjMwOjAweiIpIGlzIE5hTgogUEFTUyBOdW1iZXIoRGF0
ZS5wYXJzZSgnMTk3MCcpKSBpcyAwCiBQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxJykp
IGlzIDAKIFBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDEnKSkgaXMgMAotUEFTUyBO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBh
cnNlKCcxOTcwLTAxVDAwOjAwJykpIGlzIDAKLVBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAt
MDEtMDFUMDA6MDAnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDow
MCcpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwJykpIGlz
IDAKLVBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAnKSkgaXMgMAot
UEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMC4wMDAnKSkgaXMgMAotUEFTUyBO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMDowMC4wMDAnKSkgaXMgMAotUEFTUyBOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMC4wMDAnKSkgaXMgMAorUEFTUyBOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAorUEFTUyBO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNldAor
UEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMCcpKSBpcyB0aW1lWm9uZU9mZnNl
dAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMDowMCcpKSBpcyB0aW1lWm9u
ZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMCcpKSBp
cyB0aW1lWm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMC4w
MDAnKSkgaXMgdGltZVpvbmVPZmZzZXQKK1BBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFU
MDA6MDA6MDAuMDAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNTIE51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCcpKSBpcyB0aW1lWm9uZU9mZnNldAogUEFTUyBOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMFonKSkgaXMgMAogUEFTUyBOdW1iZXIoRGF0ZS5wYXJz
ZSgnMTk3MC0wMVQwMDowMFonKSkgaXMgMAogUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0w
MS0wMVQwMDowMFonKSkgaXMgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2RhdGUtcGFyc2UtdGVzdC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kYXRl
LXBhcnNlLXRlc3QuanMKaW5kZXggNzQwYjc2M2Y4ZjVmMTMyOThhYjAxYjNkMDg0NTYwMWY4YTIw
NDczYS4uMjMxZjhhZGVjMWQxMDYwNzQ1NTczZDJlNzJlMTg1YTA5Mjk4ZTE3ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGF0ZS1wYXJzZS10ZXN0LmpzCkBAIC0zNyw2ICsz
Nyw3IEBAIGZ1bmN0aW9uIHRlc3REYXRlUGFyc2VFeGFjdChkYXRlLCBudW1lcmljUmVzdWx0KQog
ICAgIH0KIH0KIAordmFyIHRpbWVab25lT2Zmc2V0ID0gRGF0ZS5wYXJzZSgiIERlYyAyNSAxOTk1
IDE6MzAgIikgLSBEYXRlLnBhcnNlKCIgRGVjIDI1IDE5OTUgMTozMCBHTVQgIik7CiAKIC8vIHRl
c3QgRUNNQVNjcmlwdCA1IHN0YW5kYXJkIGRhdGUgcGFyc2luZwogdGVzdERhdGVQYXJzZUV4YWN0
KCIxOTk1LTEyLTI1VDAxOjMwOjAwWiIsICI4MTk4NTUwMDAwMDAiKTsKQEAgLTczLDE1ICs3NCwx
NSBAQCBzaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAnKSkiLCAnMCcpOwogc2hvdWxk
QmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxJykpIiwgJzAnKTsKIHNob3VsZEJlKCJOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMScpKSIsICcwJyk7CiAvLyBEYXRlLXRpbWUgZGF0ZXMK
LXNob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSIsICcwJyk7Ci1zaG91
bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDAnKSkiLCAnMCcpOwotc2hvdWxk
QmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwJykpIiwgJzAnKTsKLXNob3Vs
ZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMCcpKSIsICcwJyk7Ci1zaG91bGRC
ZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDA6MDAnKSkiLCAnMCcpOwotc2hvdWxk
QmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwOjAwJykpIiwgJzAnKTsKLXNo
b3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMC4wMDAnKSkiLCAnMCcpOwot
c2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwLjAwMCcpKSIsICcw
Jyk7Ci1zaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAuMDAw
JykpIiwgJzAnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMCcpKSIs
ICd0aW1lWm9uZU9mZnNldCcpOworc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAx
VDAwOjAwJykpIiwgJ3RpbWVab25lT2Zmc2V0Jyk7CitzaG91bGRCZSgiTnVtYmVyKERhdGUucGFy
c2UoJzE5NzAtMDEtMDFUMDA6MDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MFQwMDowMDowMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOwor
c2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwJykpIiwgJ3RpbWVa
b25lT2Zmc2V0Jyk7CitzaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6
MDA6MDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJz
ZSgnMTk3MFQwMDowMDowMC4wMDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMDowMC4wMDAnKSkiLCAndGltZVpvbmVPZmZz
ZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMC4w
MDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsKIC8vIERhdGUtdGltZSBkYXRlcyB3aXRoIFVUQyB0
aW1lem9uZQogc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwWicpKSIsICcw
Jyk7CiBzaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDBaJykpIiwgJzAn
KTsKQEAgLTEzNiw4ICsxMzcsNiBAQCBzaG91bGRCZSgiU3RyaW5nKERhdGUucGFyc2UoJzE5NzAt
MDEtMDFUMDA6MDA6MDAuMDAwKzA6MCcpKSIsICciTmFOIicpOwogCiAvLyB0ZXN0IG9sZCBpbXBs
ZW1lbnRhdGlvbiBmYWxsYmFjawogCi12YXIgdGltZVpvbmVPZmZzZXQgPSBEYXRlLnBhcnNlKCIg
RGVjIDI1IDE5OTUgMTozMCAiKSAtIERhdGUucGFyc2UoIiBEZWMgMjUgMTk5NSAxOjMwIEdNVCAi
KTsKLQogdGVzdERhdGVQYXJzZSgiRGVjIDI1IDE5OTUgR01UIiwgIjgxOTg0OTYwMDAwMCIpOwog
dGVzdERhdGVQYXJzZSgiRGVjIDI1IDE5OTUiLCAiODE5ODQ5NjAwMDAwICsgdGltZVpvbmVPZmZz
ZXQiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9kYXRlLWJhc2ljLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3Jlc291cmNlcy9kYXRlLWJhc2ljLmpzCmluZGV4IDBiNzk1YTU1MTNkMWIzY2VkY2Jj
YTFkMDcxZjM5ZDIxZmVlOWM3OGUuLmZmYWQ1OGEyODFmNzgxZjgyNGVlZWU0OGFkNWVhMjlmNTU4
M2I2ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9y
ZXNvdXJjZXMvZGF0ZS1iYXNpYy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RhdGUtYmFzaWMuanMKQEAgLTEwLDkgKzEwLDkgQEAgZnVuY3Rp
b24gZG9uZSgpCiAKIHZhciBkYXRhYmFzZTsKIAotdmFyIGRhdGUxID0gbmV3IERhdGUoIjE5NTUt
MTEtMDVUMDA6MDA6MDAiKTsKLXZhciBkYXRlMiA9IG5ldyBEYXRlKCIxOTU1LTExLTEyVDE4OjAw
OjAwIik7Ci12YXIgZGF0ZTMgPSBuZXcgRGF0ZSgiMjAxNS0xMC0yMVQxNjowMDowMCIpOwordmFy
IGRhdGUxID0gbmV3IERhdGUoIjE5NTUtMTEtMDVUMDA6MDA6MDBaIik7Cit2YXIgZGF0ZTIgPSBu
ZXcgRGF0ZSgiMTk1NS0xMS0xMlQxODowMDowMFoiKTsKK3ZhciBkYXRlMyA9IG5ldyBEYXRlKCIy
MDE1LTEwLTIxVDE2OjAwOjAwWiIpOwogICAgIAogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2
ZW50KQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcwppbmRleCAwNDBmMjE5NzhkNzAyZTJl
ZjNhZWIyOTg5M2EwMDEzMmJkNWNlMjliLi5lZDkzZDg0OGI4OTVhYzBhYTlkYTkxNWRhNzkzMThm
MTM5MDQyMTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcwpAQCAtMTAsOSArMTAsOSBA
QCBmdW5jdGlvbiBkb25lKCkKIAogdmFyIGRhdGFiYXNlOwogCi12YXIgZGF0ZTEgPSBuZXcgRGF0
ZSgiMTk1NS0xMS0wNVQwMDowMDowMCIpOwotdmFyIGRhdGUyID0gbmV3IERhdGUoIjE5NTUtMTEt
MTJUMTg6MDA6MDAiKTsKLXZhciBkYXRlMyA9IG5ldyBEYXRlKCIyMDE1LTEwLTIxVDE2OjAwOjAw
Iik7Cit2YXIgZGF0ZTEgPSBuZXcgRGF0ZSgiMTk1NS0xMS0wNVQwMDowMDowMFoiKTsKK3ZhciBk
YXRlMiA9IG5ldyBEYXRlKCIxOTU1LTExLTEyVDE4OjAwOjAwWiIpOwordmFyIGRhdGUzID0gbmV3
IERhdGUoIjIwMTUtMTAtMjFUMTY6MDA6MDBaIik7CiAgICAgCiBmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoZXZlbnQpIHsKICAgICBkZWJ1ZygiSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZl
cnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lvbiArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQu
bmV3VmVyc2lvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1kZWxldGUt
MS5qcwppbmRleCBmNWI5YWRlZmUyYTFiMjFjNmU3OWE3ZTQzMmVjNTBkZTMyZWIzODhjLi41YTVl
ZGFhYWU5NTNjZDU0MTlhNTgzMjUwN2ZjZDlhZTBkOGU0OGVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRl
bGV0ZS0xLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEuanMKQEAgLTI0LDE0ICsyNCwxNCBAQCBmdW5j
dGlvbiBkb25lKCkKIHZhciBkYXRhYmFzZTsKIHZhciBvYmplY3RTdG9yZTsKIAotdmFyIGRhdGUx
ID0gbmV3IERhdGUoIjE5OTktMTItMjhUMjM6MDA6MDAiKTsKLXZhciBkYXRlMiA9IG5ldyBEYXRl
KCIxOTk5LTEyLTI5VDIzOjAwOjAwIik7Ci12YXIgZGF0ZTMgPSBuZXcgRGF0ZSgiMTk5OS0xMi0z
MFQyMzowMDowMCIpOwotdmFyIGRhdGU0ID0gbmV3IERhdGUoIjE5OTktMTItMzFUMjM6MDA6MDAi
KTsKLXZhciBkYXRlNSA9IG5ldyBEYXRlKCIyMDAwLTAxLTAxVDAwOjAwOjAwIik7Ci12YXIgZGF0
ZTYgPSBuZXcgRGF0ZSgiMjAwMC0wMS0wMlQwMDowMDowMCIpOwotdmFyIGRhdGU3ID0gbmV3IERh
dGUoIjIwMDAtMDEtMDNUMDA6MDA6MDAiKTsKLXZhciBkYXRlOCA9IG5ldyBEYXRlKCIyMDAwLTAx
LTA0VDAwOjAwOjAwIik7Cit2YXIgZGF0ZTEgPSBuZXcgRGF0ZSgiMTk5OS0xMi0yOFQyMzowMDow
MFoiKTsKK3ZhciBkYXRlMiA9IG5ldyBEYXRlKCIxOTk5LTEyLTI5VDIzOjAwOjAwWiIpOwordmFy
IGRhdGUzID0gbmV3IERhdGUoIjE5OTktMTItMzBUMjM6MDA6MDBaIik7Cit2YXIgZGF0ZTQgPSBu
ZXcgRGF0ZSgiMTk5OS0xMi0zMVQyMzowMDowMFoiKTsKK3ZhciBkYXRlNSA9IG5ldyBEYXRlKCIy
MDAwLTAxLTAxVDAwOjAwOjAwWiIpOwordmFyIGRhdGU2ID0gbmV3IERhdGUoIjIwMDAtMDEtMDJU
MDA6MDA6MDBaIik7Cit2YXIgZGF0ZTcgPSBuZXcgRGF0ZSgiMjAwMC0wMS0wM1QwMDowMDowMFoi
KTsKK3ZhciBkYXRlOCA9IG5ldyBEYXRlKCIyMDAwLTAxLTA0VDAwOjAwOjAwWiIpOwogCiBmdW5j
dGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386783</attachid>
            <date>2020-01-05 00:11:17 -0800</date>
            <delta_ts>2020-01-05 00:55:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-89071-20200105001116.patch</filename>
            <type>text/plain</type>
            <size>16434</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTliNTZiMDY4ZTU3MGYzMGRjZDZmOWJhYTBlYzIwOWE1ZjhkNDU0Li5lNDM5NmVlMjIyMTRkZjhl
NzBmMDhmNjJkMjRlNjI3Y2Y4OGI4ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wMS0wNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDogSW52YWxpZCBkYXRlIHBhcnNlIGZvciBJU08g
ODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgU2luY2UgRVMyMDE2LCB0aGUgc3BlY2lmaWNhdGlvbiBm
b3IgRGF0ZS5wYXJzZSBoYXMgaW5jbHVkZWQgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQ6CisgICAg
ICAgICAgV2hlbiB0aGUgVVRDIG9mZnNldCByZXByZXNlbnRhdGlvbiBpcyBhYnNlbnQsIGRhdGUt
b25seSBmb3JtcyBhcmUgaW50ZXJwcmV0ZWQgYXMgYSBVVEMgdGltZQorICAgICAgICAgIGFuZCBk
YXRlLXRpbWUgZm9ybXMgYXJlIGludGVycHJldGVkIGFzIGEgbG9jYWwgdGltZS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHVwZGF0ZXMgdXMgZnJvbSB0aGUgb2xkIEVTNSBiZWhhdmlvciwgd2hpY2gg
dHJlYXRlZCBvZmZzZXRsZXNzIGRhdGUtdGltZSBmb3JtcyBhcyBVVEMuCisKKyAgICAgICAgKiBy
dW50aW1lL0pTRGF0ZU1hdGguY3BwOgorICAgICAgICAoSlNDOjpwYXJzZURhdGVGcm9tTnVsbFRl
cm1pbmF0ZWRDaGFyYWN0ZXJzKToKKyAgICAgICAgKEpTQzo6cGFyc2VFUzVEYXRlRnJvbU51bGxU
ZXJtaW5hdGVkQ2hhcmFjdGVycyk6IEFkZGVkLgorICAgICAgICAoSlNDOjpwYXJzZURhdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5oOgorICAgICAgICBNYWtlIGEgbG9jYWwgdGlt
ZSBhZGp1c3RtZW50IGlmIG5lY2Vzc2FyeSBhZnRlciBjYWxsaW5nIFdURjo6cGFyc2VFUzVEYXRl
RnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycy4KKwogMjAyMC0wMS0wMiAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1hcmtlZEJsb2NrOjpIYW5k
bGUgYW5kIEJsb2NrRGlyZWN0b3J5IHNob3VsZCBiZSBzaHJ1bmsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOWFkYjEyN2FjMzA2
MjhkMGYzYzQ5ZGNiZjU1YTJjZTI3YjUzOTY0YS4uMzI5NDY3ZTZhNTRjODg4MGE1NDI1MzRhYmZl
ZjYxODU1NzUyNzU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMS0wNSAgUm9zcyBLaXJz
bGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgSmF2YVNjcmlwdDogSW52
YWxpZCBkYXRlIHBhcnNlIGZvciBJU08gODYwMSBzdHJpbmdzIHdoZW4gbm8gdGltZXpvbmUgZ2l2
ZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDcx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiB3dGYvRGF0
ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJzZUVTNVRpbWVQb3J0aW9uKToKKyAgICAgICAg
KFdURjo6cGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyk6CisgICAgICAg
ICogd3RmL0RhdGVNYXRoLmg6CisgICAgICAgIEFkZCBhbiBvdXQgcGFyYW0gdG8gdGVsbCBKU0Mg
d2hldGhlciB3ZSBzdGlsbCBuZWVkIHRvIGRvIGEgbG9jYWwgdGltZSBhZGp1c3RtZW50LgorCiAy
MDIwLTAxLTAzICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2Vi
R0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4Y2VwdCBz
aW11bGF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rh
dGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3Bw
CmluZGV4IDY0ODI2YWI5NmI1ZGIyMzBiZTI3NDRhMDU3YmRjODg4ZTQ3OTQyODMuLjM3ZjE1OTU2
NWI0OTVhYzljMzE1NTIzZGE0ZjU2YjgzMDE2ZjY1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBtc1Rv
R3JlZ29yaWFuRGF0ZVRpbWUoVk0mIHZtLCBkb3VibGUgbXMsIFdURjo6VGltZVR5cGUgb3V0cHV0
VGltZVR5cGUsIEdyZWcKICAgICB0bSA9IEdyZWdvcmlhbkRhdGVUaW1lKG1zLCBsb2NhbFRpbWUp
OwogfQogCi1kb3VibGUgcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhWTSYg
dm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpCitzdGF0aWMgZG91YmxlIHBhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mIHZtLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKQog
ewogICAgIGJvb2wgaGF2ZVRaOwogICAgIGludCBvZmZzZXQ7CkBAIC0yMDcsNiArMjA3LDE5IEBA
IGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKFZNJiB2bSwgY29u
c3QgY2hhciogZGF0ZVN0cmluZykKICAgICByZXR1cm4gbG9jYWxUaW1lTVMgLSAob2Zmc2V0ICog
V1RGOjptc1Blck1pbnV0ZSk7CiB9CiAKK3N0YXRpYyBkb3VibGUgcGFyc2VFUzVEYXRlRnJvbU51
bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyhWTSYgdm0sIGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcpCit7
CisgICAgYm9vbCBpc0xvY2FsVGltZTsKKyAgICBkb3VibGUgdmFsdWUgPSBXVEY6OnBhcnNlRVM1
RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoZGF0ZVN0cmluZywgaXNMb2NhbFRpbWUp
OworICAgIGlmIChzdGQ6OmlzbmFuKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisKKyAgICBpZiAoaXNMb2NhbFRpbWUpCisg
ICAgICAgIHZhbHVlIC09IGxvY2FsVGltZU9mZnNldCh2bSwgdmFsdWUsIFdURjo6TG9jYWxUaW1l
KS5vZmZzZXQ7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIGRvdWJsZSBwYXJzZURhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCiB7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI0LDcgKzIz
Nyw3IEBAIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0m
IHZtLCBjb25zdCBTdHJpbmcmIGRhdGUpCiAgICAgfQogCiAgICAgYXV0byBkYXRlVXRmOCA9IGV4
cGVjdGVkU3RyaW5nLnZhbHVlKCk7Ci0gICAgZG91YmxlIHZhbHVlID0gV1RGOjpwYXJzZUVTNURh
dGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGRhdGVVdGY4LmRhdGEoKSk7CisgICAgZG91
YmxlIHZhbHVlID0gcGFyc2VFUzVEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwg
ZGF0ZVV0ZjguZGF0YSgpKTsKICAgICBpZiAoc3RkOjppc25hbih2YWx1ZSkpCiAgICAgICAgIHZh
bHVlID0gcGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVycyh2bSwgZGF0ZVV0Zjgu
ZGF0YSgpKTsKICAgICB2bS5jYWNoZWREYXRlU3RyaW5nID0gZGF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAppbmRleCAxMjc1NTU2NGU3ZDFjY2M0NTMwMGMy
OWRjYmUwZGM4MzVkMmM0NTcxLi5jNTkyNTU4NWYxMDM5ZGRkOWZjODEyOGNjY2I1ODBmM2I3N2M3
ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRo
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCkBAIC00
NywxNCArNDcsMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIENhbGxGcmFtZTsKIGNs
YXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgVk07CiAKIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQg
bXNUb0dyZWdvcmlhbkRhdGVUaW1lKFZNJiwgZG91YmxlLCBXVEY6OlRpbWVUeXBlIG91dHB1dFRp
bWVUeXBlLCBHcmVnb3JpYW5EYXRlVGltZSYpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIGdy
ZWdvcmlhbkRhdGVUaW1lVG9NUyhWTSYsIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lJiwgZG91Ymxl
LCBXVEY6OlRpbWVUeXBlIGlucHV0VGltZVR5cGUpOwogSlNfRVhQT1JUX1BSSVZBVEUgZG91Ymxl
IGdldFVUQ09mZnNldChWTSYpOwotSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNlRGF0ZUZy
b21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoVk0mLCBjb25zdCBjaGFyKiBkYXRlU3RyaW5nKTsK
IEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGUoSlNHbG9iYWxPYmplY3QqLCBWTSYs
IGNvbnN0IFdURjo6U3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGF0ZU1hdGguY3BwIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguY3Bw
CmluZGV4IDRkZjcwYzNkNzIwMTQ1OGYwZjc4ZjM0ZmMyNjljZGYxOGUyOTBjMGYuLjEwNjI1N2Vl
NmYwYjIyNzdmMjk4OWY5MGI1ZGU1ZTRjM2YwOWMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0RhdGVNYXRoLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5jcHAKQEAgLTUy
MSw4ICs1MjEsMTAgQEAgc3RhdGljIGNoYXIqIHBhcnNlRVM1RGF0ZVBvcnRpb24oY29uc3QgY2hh
ciogY3VycmVudFBvc2l0aW9uLCBpbnQmIHllYXIsIGxvbmcmIG0KIC8vIFBhcnNlcyBhIHRpbWUg
d2l0aCB0aGUgZm9ybWF0IEhIOm1tWzpzc1suc3NzXV1bWnwoK3wtKTAwOjAwXS4KIC8vIEZyYWN0
aW9uYWwgc2Vjb25kcyBwYXJzaW5nIGlzIGxlbmllbnQsIGFsbG93cyBhbnkgbnVtYmVyIG9mIGRp
Z2l0cy4KIC8vIFJldHVybnMgMCBpZiBhIHBhcnNlIGVycm9yIG9jY3VycywgZWxzZSByZXR1cm5z
IHRoZSBlbmQgb2YgdGhlIHBhcnNlZCBwb3J0aW9uIG9mIHRoZSBzdHJpbmcuCi1zdGF0aWMgY2hh
ciogcGFyc2VFUzVUaW1lUG9ydGlvbihjaGFyKiBjdXJyZW50UG9zaXRpb24sIGxvbmcmIGhvdXJz
LCBsb25nJiBtaW51dGVzLCBkb3VibGUmIHNlY29uZHMsIGxvbmcmIHRpbWVab25lU2Vjb25kcykK
K3N0YXRpYyBjaGFyKiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlvbiwg
bG9uZyYgaG91cnMsIGxvbmcmIG1pbnV0ZXMsIGRvdWJsZSYgc2Vjb25kcywgYm9vbCYgaXNMb2Nh
bFRpbWUsIGxvbmcmIHRpbWVab25lU2Vjb25kcykKIHsKKyAgICBpc0xvY2FsVGltZSA9IGZhbHNl
OworCiAgICAgY2hhciogcG9zdFBhcnNlUG9zaXRpb247CiAgICAgaWYgKCFpc0FTQ0lJRGlnaXQo
KmN1cnJlbnRQb3NpdGlvbikpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTgwLDggKzU4MiwxMCBA
QCBzdGF0aWMgY2hhciogcGFyc2VFUzVUaW1lUG9ydGlvbihjaGFyKiBjdXJyZW50UG9zaXRpb24s
IGxvbmcmIGhvdXJzLCBsb25nJiBtaW51dAogICAgICAgICB0ek5lZ2F0aXZlID0gdHJ1ZTsKICAg
ICBlbHNlIGlmICgqY3VycmVudFBvc2l0aW9uID09ICcrJykKICAgICAgICAgdHpOZWdhdGl2ZSA9
IGZhbHNlOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsgLy8gbm8g
dGltZXpvbmUKKyAgICBlbHNlIHsKKyAgICAgICAgaXNMb2NhbFRpbWUgPSB0cnVlOworICAgICAg
ICByZXR1cm4gY3VycmVudFBvc2l0aW9uOworICAgIH0KICAgICArK2N1cnJlbnRQb3NpdGlvbjsK
ICAgICAKICAgICBsb25nIHR6SG91cnM7CkBAIC02MTcsOCArNjIxLDEwIEBAIHN0YXRpYyBjaGFy
KiBwYXJzZUVTNVRpbWVQb3J0aW9uKGNoYXIqIGN1cnJlbnRQb3NpdGlvbiwgbG9uZyYgaG91cnMs
IGxvbmcmIG1pbnV0CiAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKIH0KIAotZG91YmxlIHBh
cnNlRVM1RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0
cmluZykKK2RvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGNv
bnN0IGNoYXIqIGRhdGVTdHJpbmcsIGJvb2wmIGlzTG9jYWxUaW1lKQogeworICAgIGlzTG9jYWxU
aW1lID0gZmFsc2U7CisKICAgICAvLyBUaGlzIHBhcnNlcyBhIGRhdGUgb2YgdGhlIGZvcm0gZGVm
aW5lZCBpbiBlY21hMjYyLyNzZWMtZGF0ZS10aW1lLXN0cmluZy1mb3JtYXQKICAgICAvLyAoc2lt
aWxhciB0byBSRkMgMzMzOSAvIElTTyA4NjAxOiBZWVlZLU1NLUREVEhIOm1tOnNzWy5zc3NdWiku
CiAgICAgLy8gSW4gbW9zdCBjYXNlcyBpdCBpcyBpbnRlbnRpb25hbGx5IHN0cmljdCAoZS5nLiBj
b3JyZWN0IGZpZWxkIHdpZHRocywgbm8gc3RyYXkgd2hpdGVzcGFjZSkuCkBAIC02MzksOSArNjQ1
LDEwIEBAIGRvdWJsZSBwYXJzZUVTNURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGNv
bnN0IGNoYXIqIGRhdGVTdHJpbmcpCiAgICAgaWYgKCFjdXJyZW50UG9zaXRpb24pCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogICAgIC8v
IExvb2sgZm9yIGEgdGltZSBwb3J0aW9uLgorICAgIC8vIE5vdGU6IEFzIG9mIEVTMjAxNiwgd2hl
biBhIFVUQyBvZmZzZXQgaXMgbWlzc2luZywgZGF0ZS10aW1lIGZvcm1zIGFyZSBsb2NhbCB0aW1l
IHdoaWxlIGRhdGUtb25seSBmb3JtcyBhcmUgVVRDLgogICAgIGlmICgqY3VycmVudFBvc2l0aW9u
ID09ICdUJykgewogICAgICAgICAvLyBQYXJzZSB0aGUgdGltZSBISDptbVs6c3NbLnNzc11dW1p8
KCt8LSkwMDowMF0KLSAgICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlv
bihjdXJyZW50UG9zaXRpb24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgdGltZVpvbmVT
ZWNvbmRzKTsKKyAgICAgICAgY3VycmVudFBvc2l0aW9uID0gcGFyc2VFUzVUaW1lUG9ydGlvbihj
dXJyZW50UG9zaXRpb24gKyAxLCBob3VycywgbWludXRlcywgc2Vjb25kcywgaXNMb2NhbFRpbWUs
IHRpbWVab25lU2Vjb25kcyk7CiAgICAgICAgIGlmICghY3VycmVudFBvc2l0aW9uKQogICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaCBiL1NvdXJjZS9XVEYv
d3RmL0RhdGVNYXRoLmgKaW5kZXggNWFkOGMzMzYxYTIwZjUxYjhjY2JiYjVkNTJlYjdmNDI5MDkz
ZDFlOS4uMDQ1YjZhNDA4OGQ1MjU3NGJjNWNmODYwMTI1ZGZlM2EwYWU1MjUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0
aC5oCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgaW5pdGlhbGl6ZURhdGVzKCk7CiBpbnQgZXF1aXZh
bGVudFllYXJGb3JEU1QoaW50IHllYXIpOwogCiAvLyBOb3QgcmVhbGx5IG1hdGggcmVsYXRlZCwg
YnV0IHRoaXMgaXMgY3VycmVudGx5IHRoZSBvbmx5IHNoYXJlZCBwbGFjZSB0byBwdXQgdGhlc2Uu
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNlRVM1RGF0ZUZyb21OdWxsVGVybWluYXRl
ZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZVN0cmluZyk7CitXVEZfRVhQT1JUX1BSSVZBVEUg
ZG91YmxlIHBhcnNlRVM1RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hh
ciogZGF0ZVN0cmluZywgYm9vbCYgaXNMb2NhbFRpbWUpOwogV1RGX0VYUE9SVF9QUklWQVRFIGRv
dWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKGNvbnN0IGNoYXIqIGRh
dGVTdHJpbmcpOwogV1RGX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRl
cm1pbmF0ZWRDaGFyYWN0ZXJzKGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcsIGJvb2wmIGhhdmVUWiwg
aW50JiBvZmZzZXQpOwogLy8gZGF5T2ZXZWVrOiBbMCwgNl0gMCBiZWluZyBNb25kYXksIGRheTog
WzEsIDMxXSwgbW9udGg6IFswLCAxMV0sIHllYXI6IGV4OiAyMDExLCBob3VyczogWzAsIDIzXSwg
bWludXRlczogWzAsIDU5XSwgc2Vjb25kczogWzAsIDU5XSwgdXRjT2Zmc2V0OiBbLTcyMCw3MjBd
LiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBiMGI5MDA0ZTFkZjFlZGVkMzgzMWYyNzMxMmRjYzM2NWJiMDcxZmQyLi5kYWU4
MDQ0MzZhYzgxZDhmNTZjZTg5N2Q5YzBmNDNmMWJjYTVlOWIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjAtMDEtMDUgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgor
CisgICAgICAgIEphdmFTY3JpcHQ6IEludmFsaWQgZGF0ZSBwYXJzZSBmb3IgSVNPIDg2MDEgc3Ry
aW5ncyB3aGVuIG5vIHRpbWV6b25lIGdpdmVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTA3MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgICoganMvZGF0ZS1wYXJzZS10ZXN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9zY3JpcHQtdGVzdHMvZGF0ZS1wYXJzZS10ZXN0LmpzOgorICAgICAgICBVcGRhdGUg
dGVzdCB0byBtYXRjaCBuZXcgYmVoYXZpb3IuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vcmVzb3VyY2VzL2RhdGUtYmFzaWMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanM6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmplY3RzdG9yZS1kZWxldGUtMS5qczoK
KyAgICAgICAgRml4IHRlc3RzIHJlbHlpbmcgb24gb2Jzb2xldGUgYmVoYXZpb3IuCisKIDIwMjAt
MDEtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBkb20vbm9k
ZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVudC1uYW1lc3BhY2UuaHRtbCBXUFQgdGVzdCBpcyBmYWls
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kYXRlLXBhcnNlLXRlc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvanMvZGF0ZS1wYXJzZS10ZXN0LWV4cGVjdGVkLnR4dAppbmRleCBk
YWYxNGNlYjIwZmRkN2NiZGRhZTA5OTQ4MjBiZTJhZWM4ZjMzOWQ4Li5jNTE5ZGI4ZjFhM2Y2YTBj
OThkNDM1ZGNmNjEyMGU4MDQ0MTMyZGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kYXRl
LXBhcnNlLXRlc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RhdGUtcGFyc2Ut
dGVzdC1leHBlY3RlZC50eHQKQEAgLTMyLDE1ICszMiwxNSBAQCBQQVNTIERhdGUucGFyc2UoIjE5
OTUtMTItMjVUMDE6MzA6MDB6IikgaXMgTmFOCiBQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcw
JykpIGlzIDAKIFBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEnKSkgaXMgMAogUEFTUyBO
dW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMScpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBh
cnNlKCcxOTcwVDAwOjAwJykpIGlzIDAKLVBBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFU
MDA6MDAnKSkgaXMgMAotUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMCcp
KSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwJykpIGlzIDAKLVBB
U1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDA6MDAnKSkgaXMgMAotUEFTUyBOdW1i
ZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMCcpKSBpcyAwCi1QQVNTIE51bWJlcihE
YXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwLjAwMCcpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBh
cnNlKCcxOTcwLTAxVDAwOjAwOjAwLjAwMCcpKSBpcyAwCi1QQVNTIE51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCcpKSBpcyAwCitQQVNTIE51bWJlcihEYXRlLnBhcnNl
KCcxOTcwVDAwOjAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNTIE51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxVDAwOjAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNTIE51bWJlcihEYXRlLnBh
cnNlKCcxOTcwLTAxLTAxVDAwOjAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNTIE51bWJlcihE
YXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNTIE51bWJl
cihEYXRlLnBhcnNlKCcxOTcwLTAxVDAwOjAwOjAwJykpIGlzIHRpbWVab25lT2Zmc2V0CitQQVNT
IE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwOjAwJykpIGlzIHRpbWVab25lT2Zm
c2V0CitQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwLjAwMCcpKSBpcyB0aW1l
Wm9uZU9mZnNldAorUEFTUyBOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMDowMC4wMDAn
KSkgaXMgdGltZVpvbmVPZmZzZXQKK1BBU1MgTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDEtMDFU
MDA6MDA6MDAuMDAwJykpIGlzIHRpbWVab25lT2Zmc2V0CiBQQVNTIE51bWJlcihEYXRlLnBhcnNl
KCcxOTcwVDAwOjAwWicpKSBpcyAwCiBQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxVDAw
OjAwWicpKSBpcyAwCiBQQVNTIE51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwWicp
KSBpcyAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGF0ZS1wYXJz
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RhdGUtcGFyc2UtdGVzdC5q
cwppbmRleCA3NDBiNzYzZjhmNWYxMzI5OGFiMDFiM2QwODQ1NjAxZjhhMjA0NzNhLi4yMzFmOGFk
ZWMxZDEwNjA3NDU1NzNkMmU3MmUxODVhMDkyOThlMTdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvZGF0ZS1wYXJzZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy9kYXRlLXBhcnNlLXRlc3QuanMKQEAgLTM3LDYgKzM3LDcgQEAgZnVuY3Rp
b24gdGVzdERhdGVQYXJzZUV4YWN0KGRhdGUsIG51bWVyaWNSZXN1bHQpCiAgICAgfQogfQogCit2
YXIgdGltZVpvbmVPZmZzZXQgPSBEYXRlLnBhcnNlKCIgRGVjIDI1IDE5OTUgMTozMCAiKSAtIERh
dGUucGFyc2UoIiBEZWMgMjUgMTk5NSAxOjMwIEdNVCAiKTsKIAogLy8gdGVzdCBFQ01BU2NyaXB0
IDUgc3RhbmRhcmQgZGF0ZSBwYXJzaW5nCiB0ZXN0RGF0ZVBhcnNlRXhhY3QoIjE5OTUtMTItMjVU
MDE6MzA6MDBaIiwgIjgxOTg1NTAwMDAwMCIpOwpAQCAtNzMsMTUgKzc0LDE1IEBAIHNob3VsZEJl
KCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MCcpKSIsICcwJyk7CiBzaG91bGRCZSgiTnVtYmVyKERh
dGUucGFyc2UoJzE5NzAtMDEnKSkiLCAnMCcpOwogc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNl
KCcxOTcwLTAxLTAxJykpIiwgJzAnKTsKIC8vIERhdGUtdGltZSBkYXRlcwotc2hvdWxkQmUoIk51
bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwJykpIiwgJzAnKTsKLXNob3VsZEJlKCJOdW1iZXIo
RGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVtYmVyKERh
dGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDAnKSkiLCAnMCcpOwotc2hvdWxkQmUoIk51bWJlcihE
YXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwJykpIiwgJzAnKTsKLXNob3VsZEJlKCJOdW1iZXIoRGF0
ZS5wYXJzZSgnMTk3MC0wMVQwMDowMDowMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVtYmVyKERh
dGUucGFyc2UoJzE5NzAtMDEtMDFUMDA6MDA6MDAnKSkiLCAnMCcpOwotc2hvdWxkQmUoIk51bWJl
cihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwOjAwLjAwMCcpKSIsICcwJyk7Ci1zaG91bGRCZSgiTnVt
YmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDA6MDAuMDAwJykpIiwgJzAnKTsKLXNob3VsZEJl
KCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMC4wMDAnKSkiLCAnMCcpOwor
c2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAwJykpIiwgJ3RpbWVab25lT2Zm
c2V0Jyk7CitzaG91bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDAnKSkiLCAn
dGltZVpvbmVPZmZzZXQnKTsKK3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0w
MVQwMDowMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOworc2hvdWxkQmUoIk51bWJlcihEYXRlLnBh
cnNlKCcxOTcwVDAwOjAwOjAwJykpIiwgJ3RpbWVab25lT2Zmc2V0Jyk7CitzaG91bGRCZSgiTnVt
YmVyKERhdGUucGFyc2UoJzE5NzAtMDFUMDA6MDA6MDAnKSkiLCAndGltZVpvbmVPZmZzZXQnKTsK
K3Nob3VsZEJlKCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDowMCcpKSIsICd0
aW1lWm9uZU9mZnNldCcpOworc2hvdWxkQmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwVDAwOjAw
OjAwLjAwMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOworc2hvdWxkQmUoIk51bWJlcihEYXRlLnBh
cnNlKCcxOTcwLTAxVDAwOjAwOjAwLjAwMCcpKSIsICd0aW1lWm9uZU9mZnNldCcpOworc2hvdWxk
QmUoIk51bWJlcihEYXRlLnBhcnNlKCcxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCcpKSIsICd0aW1l
Wm9uZU9mZnNldCcpOwogLy8gRGF0ZS10aW1lIGRhdGVzIHdpdGggVVRDIHRpbWV6b25lCiBzaG91
bGRCZSgiTnVtYmVyKERhdGUucGFyc2UoJzE5NzBUMDA6MDBaJykpIiwgJzAnKTsKIHNob3VsZEJl
KCJOdW1iZXIoRGF0ZS5wYXJzZSgnMTk3MC0wMVQwMDowMFonKSkiLCAnMCcpOwpAQCAtMTM2LDgg
KzEzNyw2IEBAIHNob3VsZEJlKCJTdHJpbmcoRGF0ZS5wYXJzZSgnMTk3MC0wMS0wMVQwMDowMDow
MC4wMDArMDowJykpIiwgJyJOYU4iJyk7CiAKIC8vIHRlc3Qgb2xkIGltcGxlbWVudGF0aW9uIGZh
bGxiYWNrCiAKLXZhciB0aW1lWm9uZU9mZnNldCA9IERhdGUucGFyc2UoIiBEZWMgMjUgMTk5NSAx
OjMwICIpIC0gRGF0ZS5wYXJzZSgiIERlYyAyNSAxOTk1IDE6MzAgR01UICIpOwotCiB0ZXN0RGF0
ZVBhcnNlKCJEZWMgMjUgMTk5NSBHTVQiLCAiODE5ODQ5NjAwMDAwIik7CiB0ZXN0RGF0ZVBhcnNl
KCJEZWMgMjUgMTk5NSIsICI4MTk4NDk2MDAwMDAgKyB0aW1lWm9uZU9mZnNldCIpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2Rh
dGUtYmFzaWMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3Vy
Y2VzL2RhdGUtYmFzaWMuanMKaW5kZXggMGI3OTVhNTUxM2QxYjNjZWRjYmNhMWQwNzFmMzlkMjFm
ZWU5Yzc4ZS4uZmZhZDU4YTI4MWY3ODFmODI0ZWVlZTQ4YWQ1ZWEyOWY1NTgzYjZkMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9kYXRl
LWJhc2ljLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvZGF0ZS1iYXNpYy5qcwpAQCAtMTAsOSArMTAsOSBAQCBmdW5jdGlvbiBkb25lKCkKIAog
dmFyIGRhdGFiYXNlOwogCi12YXIgZGF0ZTEgPSBuZXcgRGF0ZSgiMTk1NS0xMS0wNVQwMDowMDow
MCIpOwotdmFyIGRhdGUyID0gbmV3IERhdGUoIjE5NTUtMTEtMTJUMTg6MDA6MDAiKTsKLXZhciBk
YXRlMyA9IG5ldyBEYXRlKCIyMDE1LTEwLTIxVDE2OjAwOjAwIik7Cit2YXIgZGF0ZTEgPSBuZXcg
RGF0ZSgiMTk1NS0xMS0wNVQwMDowMDowMFoiKTsKK3ZhciBkYXRlMiA9IG5ldyBEYXRlKCIxOTU1
LTExLTEyVDE4OjAwOjAwWiIpOwordmFyIGRhdGUzID0gbmV3IERhdGUoIjIwMTUtMTAtMjFUMTY6
MDA6MDBaIik7CiAgICAgCiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCiB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2dl
dC1rZXlyYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNv
dXJjZXMvZ2V0LWtleXJhbmdlLmpzCmluZGV4IDA0MGYyMTk3OGQ3MDJlMmVmM2FlYjI5ODkzYTAw
MTMyYmQ1Y2UyOWIuLmVkOTNkODQ4Yjg5NWFjMGFhOWRhOTE1ZGE3OTMxOGYxMzkwNDIxNDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMv
Z2V0LWtleXJhbmdlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9yZXNvdXJjZXMvZ2V0LWtleXJhbmdlLmpzCkBAIC0xMCw5ICsxMCw5IEBAIGZ1bmN0aW9uIGRv
bmUoKQogCiB2YXIgZGF0YWJhc2U7CiAKLXZhciBkYXRlMSA9IG5ldyBEYXRlKCIxOTU1LTExLTA1
VDAwOjAwOjAwIik7Ci12YXIgZGF0ZTIgPSBuZXcgRGF0ZSgiMTk1NS0xMS0xMlQxODowMDowMCIp
OwotdmFyIGRhdGUzID0gbmV3IERhdGUoIjIwMTUtMTAtMjFUMTY6MDA6MDAiKTsKK3ZhciBkYXRl
MSA9IG5ldyBEYXRlKCIxOTU1LTExLTA1VDAwOjAwOjAwWiIpOwordmFyIGRhdGUyID0gbmV3IERh
dGUoIjE5NTUtMTEtMTJUMTg6MDA6MDBaIik7Cit2YXIgZGF0ZTMgPSBuZXcgRGF0ZSgiMjAxNS0x
MC0yMVQxNjowMDowMFoiKTsKICAgICAKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkg
ewogICAgIGRlYnVnKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBl
dmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXNvdXJj
ZXMvaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vcmVzb3VyY2VzL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLmpzCmluZGV4IGY1
YjlhZGVmZTJhMWIyMWM2ZTc5YTdlNDMyZWM1MGRlMzJlYjM4OGMuLjVhNWVkYWFhZTk1M2NkNTQx
OWE1ODMyNTA3ZmNkOWFlMGQ4ZTQ4ZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9yZXNvdXJjZXMvaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Jlc291cmNlcy9pZGJvYmpl
Y3RzdG9yZS1kZWxldGUtMS5qcwpAQCAtMjQsMTQgKzI0LDE0IEBAIGZ1bmN0aW9uIGRvbmUoKQog
dmFyIGRhdGFiYXNlOwogdmFyIG9iamVjdFN0b3JlOwogCi12YXIgZGF0ZTEgPSBuZXcgRGF0ZSgi
MTk5OS0xMi0yOFQyMzowMDowMCIpOwotdmFyIGRhdGUyID0gbmV3IERhdGUoIjE5OTktMTItMjlU
MjM6MDA6MDAiKTsKLXZhciBkYXRlMyA9IG5ldyBEYXRlKCIxOTk5LTEyLTMwVDIzOjAwOjAwIik7
Ci12YXIgZGF0ZTQgPSBuZXcgRGF0ZSgiMTk5OS0xMi0zMVQyMzowMDowMCIpOwotdmFyIGRhdGU1
ID0gbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAiKTsKLXZhciBkYXRlNiA9IG5ldyBEYXRl
KCIyMDAwLTAxLTAyVDAwOjAwOjAwIik7Ci12YXIgZGF0ZTcgPSBuZXcgRGF0ZSgiMjAwMC0wMS0w
M1QwMDowMDowMCIpOwotdmFyIGRhdGU4ID0gbmV3IERhdGUoIjIwMDAtMDEtMDRUMDA6MDA6MDAi
KTsKK3ZhciBkYXRlMSA9IG5ldyBEYXRlKCIxOTk5LTEyLTI4VDIzOjAwOjAwWiIpOwordmFyIGRh
dGUyID0gbmV3IERhdGUoIjE5OTktMTItMjlUMjM6MDA6MDBaIik7Cit2YXIgZGF0ZTMgPSBuZXcg
RGF0ZSgiMTk5OS0xMi0zMFQyMzowMDowMFoiKTsKK3ZhciBkYXRlNCA9IG5ldyBEYXRlKCIxOTk5
LTEyLTMxVDIzOjAwOjAwWiIpOwordmFyIGRhdGU1ID0gbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6
MDA6MDBaIik7Cit2YXIgZGF0ZTYgPSBuZXcgRGF0ZSgiMjAwMC0wMS0wMlQwMDowMDowMFoiKTsK
K3ZhciBkYXRlNyA9IG5ldyBEYXRlKCIyMDAwLTAxLTAzVDAwOjAwOjAwWiIpOwordmFyIGRhdGU4
ID0gbmV3IERhdGUoIjIwMDAtMDEtMDRUMDA6MDA6MDBaIik7CiAKIGZ1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZShldmVudCkKIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>