<?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>229773</bug_id>
          
          <creation_ts>2021-09-01 14:49:13 -0700</creation_ts>
          <short_desc>[iOS] Simplify date picker logic for datetime-local inputs</short_desc>
          <delta_ts>2021-09-02 14:58:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789496</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 14:49:13 -0700</bug_when>
    <thetext>Share more code between datetime-local inputs and other input types in the date picker logic.

Remove unnecessary time zone conversions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789497</commentid>
    <comment_count>1</comment_count>
      <attachid>437071</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 14:50:37 -0700</bug_when>
    <thetext>Created attachment 437071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789540</commentid>
    <comment_count>2</comment_count>
      <attachid>437071</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-01 17:01:23 -0700</bug_when>
    <thetext>Comment on attachment 437071
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:563
&gt; +        NSString *timeString = [[value componentsSeparatedByString:@&quot;T&quot;] objectAtIndex:1];

This will throw an uncaught Objective-C exception and crash if there is no &quot;T&quot; at all in the string or if the only &quot;T&quot; is the last character.

&gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:564
&gt; +        NSString *sanitizedTimeString = [timeString substringToIndex:[kTimeFormatString length]];

This will throw an uncaught Objective-C exception and crash if timeString is shorter than [kTimeFormatString length].

Same problem with the existing code above; not sure why this isn’t a problem in practice.

&gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:596
&gt; +    RetainPtr&lt;NSDateFormatter&gt; dateFormatter = [self dateFormatterForPicker];

Should consider just using auto here. But also, why use a local variable at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789553</commentid>
    <comment_count>3</comment_count>
      <attachid>437092</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 17:26:45 -0700</bug_when>
    <thetext>Created attachment 437092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789555</commentid>
    <comment_count>4</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 17:33:08 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 437071 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437071&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:563
&gt; &gt; +        NSString *timeString = [[value componentsSeparatedByString:@&quot;T&quot;] objectAtIndex:1];
&gt; 
&gt; This will throw an uncaught Objective-C exception and crash if there is no
&gt; &quot;T&quot; at all in the string or if the only &quot;T&quot; is the last character.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:564
&gt; &gt; +        NSString *sanitizedTimeString = [timeString substringToIndex:[kTimeFormatString length]];
&gt; 
&gt; This will throw an uncaught Objective-C exception and crash if timeString is
&gt; shorter than [kTimeFormatString length].
&gt; 
&gt; Same problem with the existing code above; not sure why this isn’t a problem
&gt; in practice.

The value attribute of a time input will always be empty or contain a prefix of the format &quot;HH:mm&quot;. Similarly, the value attribute of a datetime-local input will either be empty of contain a prefix of the format &quot;yyyy-MM-dd&apos;T&apos;HH:mm&quot;. The value is passed in to this method is always non-empty, hence we&apos;re guaranteed those formats by the HTML spec.

I&apos;ve added an ASSERT([value length]) to make the non-empty case clear. Please let me know if you think addition assertions would be helpful.
 
&gt; &gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:596
&gt; &gt; +    RetainPtr&lt;NSDateFormatter&gt; dateFormatter = [self dateFormatterForPicker];
&gt; 
&gt; Should consider just using auto here. But also, why use a local variable at
&gt; all?

Removed the local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789556</commentid>
    <comment_count>5</comment_count>
      <attachid>437093</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 17:35:19 -0700</bug_when>
    <thetext>Created attachment 437093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789567</commentid>
    <comment_count>6</comment_count>
      <attachid>437071</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-01 17:48:16 -0700</bug_when>
    <thetext>Comment on attachment 437071
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:563
&gt;&gt;&gt; +        NSString *timeString = [[value componentsSeparatedByString:@&quot;T&quot;] objectAtIndex:1];
&gt;&gt; 
&gt;&gt; This will throw an uncaught Objective-C exception and crash if there is no &quot;T&quot; at all in the string or if the only &quot;T&quot; is the last character.
&gt; 
&gt; The value attribute of a time input will always be empty or contain a prefix of the format &quot;HH:mm&quot;. Similarly, the value attribute of a datetime-local input will either be empty of contain a prefix of the format &quot;yyyy-MM-dd&apos;T&apos;HH:mm&quot;. The value is passed in to this method is always non-empty, hence we&apos;re guaranteed those formats by the HTML spec.
&gt; 
&gt; I&apos;ve added an ASSERT([value length]) to make the non-empty case clear. Please let me know if you think addition assertions would be helpful.

I take your for for it that these values will be well formed.

I don’t understand when you say it is guaranteed &quot;by the HTML spec&quot;; surely it’s not the HTML specification that provides those guarantees in practice! The guarantee must come from where the string comes from, and how it constructs it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789589</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-01 19:20:49 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 437071 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437071&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/ios/forms/WKDateTimeInputControl.mm:563
&gt; &gt;&gt;&gt; +        NSString *timeString = [[value componentsSeparatedByString:@&quot;T&quot;] objectAtIndex:1];
&gt; &gt;&gt; 
&gt; &gt;&gt; This will throw an uncaught Objective-C exception and crash if there is no &quot;T&quot; at all in the string or if the only &quot;T&quot; is the last character.
&gt; &gt; 
&gt; &gt; The value attribute of a time input will always be empty or contain a prefix of the format &quot;HH:mm&quot;. Similarly, the value attribute of a datetime-local input will either be empty of contain a prefix of the format &quot;yyyy-MM-dd&apos;T&apos;HH:mm&quot;. The value is passed in to this method is always non-empty, hence we&apos;re guaranteed those formats by the HTML spec.
&gt; &gt; 
&gt; &gt; I&apos;ve added an ASSERT([value length]) to make the non-empty case clear. Please let me know if you think addition assertions would be helpful.
&gt; 
&gt; I take your for for it that these values will be well formed.
&gt; 
&gt; I don’t understand when you say it is guaranteed &quot;by the HTML spec&quot;; surely
&gt; it’s not the HTML specification that provides those guarantees in practice!
&gt; The guarantee must come from where the string comes from, and how it
&gt; constructs it.

Apologies for the poor explanation.

The string comes from HTMLInputElement::value(), which, in compliance with the specification,  returns either an empty string or the appropriately formatted strings described earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789800</commentid>
    <comment_count>8</comment_count>
      <attachid>437093</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-02 11:32:52 -0700</bug_when>
    <thetext>Comment on attachment 437093
Patch

Since this relies on the format of the string, I think we should consider comments in the code that guarantees the format, pointing here at code that depends on the format, in case we are changing it in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789884</commentid>
    <comment_count>9</comment_count>
      <attachid>437194</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-02 14:09:21 -0700</bug_when>
    <thetext>Created attachment 437194
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789889</commentid>
    <comment_count>10</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-02 14:10:50 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 437093 [details]
&gt; Patch
&gt; 
&gt; Since this relies on the format of the string, I think we should consider
&gt; comments in the code that guarantees the format, pointing here at code that
&gt; depends on the format, in case we are changing it in the future.

Due to the level of indirection involved, I’m not sure where to put such a comment. 

The value is guaranteed by HTMLInputElement::sanitizeValue -&gt; BaseDateAndTimeInputType::typeMismatchFor -&gt; BaseDateAndTimeInputType::parseToDateComponents -&gt; DateComponents::fromParsing* -&gt; DateComponents::parse*.

Additionally, it feels strange to point to UIProcess code from inside WebCore.

I did notice we were missing some links to the specification at the lowest level, so I’ve added those. But I understand that doesn’t address your concern.

Happy to address in a follow-up if you have any recommendations, or would prefer a more defensive style to avoid relying on the format.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789902</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-02 14:39:06 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #10)
&gt; Additionally, it feels strange to point to UIProcess code from inside
&gt; WebCore.

This is exactly why we need the comment. Someone modifying WebCore because of an update to a specification would never dream that there is code depending on this in WebKit. Comments need not obey architecture boundaries and layering, which is why they are so useful!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789906</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-02 14:49:32 -0700</bug_when>
    <thetext>Committed r281955 (241262@main): &lt;https://commits.webkit.org/241262@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437194.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789907</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-02 14:50:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/82694572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789908</commentid>
    <comment_count>14</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-02 14:52:04 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; (In reply to Aditya Keerthi from comment #10)
&gt; &gt; Additionally, it feels strange to point to UIProcess code from inside
&gt; &gt; WebCore.
&gt; 
&gt; This is exactly why we need the comment. Someone modifying WebCore because
&gt; of an update to a specification would never dream that there is code
&gt; depending on this in WebKit. Comments need not obey architecture boundaries
&gt; and layering, which is why they are so useful!

It&apos;s also worth noting that it&apos;s highly unlikely (certainly undesirable) the format/spec changes, since it would cause compatibility issues on websites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789913</commentid>
    <comment_count>15</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-09-02 14:55:54 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #14)
&gt; (In reply to Darin Adler from comment #11)
&gt; &gt; (In reply to Aditya Keerthi from comment #10)
&gt; &gt; &gt; Additionally, it feels strange to point to UIProcess code from inside
&gt; &gt; &gt; WebCore.
&gt; &gt; 
&gt; &gt; This is exactly why we need the comment. Someone modifying WebCore because
&gt; &gt; of an update to a specification would never dream that there is code
&gt; &gt; depending on this in WebKit. Comments need not obey architecture boundaries
&gt; &gt; and layering, which is why they are so useful!
&gt; 
&gt; It&apos;s also worth noting that it&apos;s highly unlikely (certainly undesirable) the
&gt; format/spec changes, since it would cause compatibility issues on websites.

That said, how does adding the comment &quot;Any changes to the following parsing logic should be made with caution, as date pickers in the UIProcess depend on the existing format.&quot; to each of the parsing methods in DateComponents.cpp sound?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789915</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-02 14:58:53 -0700</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #14)
&gt; It&apos;s also worth noting that it&apos;s highly unlikely (certainly undesirable) the
&gt; format/spec changes, since it would cause compatibility issues on websites.

OK, if that’s right, the comment isn’t needed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437071</attachid>
            <date>2021-09-01 14:50:37 -0700</date>
            <delta_ts>2021-09-01 17:26:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229773-20210901175036.patch</filename>
            <type>text/plain</type>
            <size>14931</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5ZDBiNDY5NjdmN2UyMjU3
ZmM1YTAwZDA3YTk1YjU3NTkzOWE2OTcuLjkyNGJjMzRhMjkzZGRlNDYyZDk4NGY0ODk3ZTY0NDdh
YmMxZWUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDktMDEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNpbXBsaWZ5IGRh
dGUgcGlja2VyIGxvZ2ljIGZvciBkYXRldGltZS1sb2NhbCBpbnB1dHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTc3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGRhdGUgcGlj
a2VyIGxvZ2ljIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgZGF0
ZXRpbWUtbG9jYWwgaW5wdXQgcmVsaWVzIG9uIHRoZSBudW1lcmljIHZhbHVlIG9mIGlucHV0LiBU
aGlzCisgICAgICAgIGxvZ2ljIGRpZmZlcnMgZnJvbSBsb2dpYyBmb3IgZGF0ZSwgdGltZSwgYW5k
IG1vbnRoIGlucHV0cywgd2hlcmUgd2UgdXNlCisgICAgICAgIHRoZSBzdHJpbmcgdmFsdWUgb2Yg
dGhlIGlucHV0LiBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIGNvZGUgYnkgdXNpbmcKKyAgICAg
ICAgc3RyaW5nIHZhbHVlcyBmb3IgYWxsIHRoZSBkYXRlL3RpbWUgaW5wdXQgdHlwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJ
bnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhWaWV3
OmRhdGVQaWNrZXJNb2RlOl0pOgorCisgICAgICAgIFNldCB0aGUgZm9ybWF0IHN0cmluZyBmb3Ig
ZGF0ZXRpbWUtbG9jYWwgaW5wdXRzLCBtYXRjaGluZyB0aGUgc3BlYy4KKworICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIF9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6XSk6CisKKyAg
ICAgICAgU2FuaXRpemUgZGF0ZXRpbWUtbG9jYWwgdmFsdWVzIHRvIHJlbW92ZSBzZWNvbmRzIGFu
ZCBtaWxsaXNlY29uZHMKKyAgICAgICAgaW5mb3JtYXRpb24uIFVJS2l0IGRvZXMgbm90IHN1cHBv
cnQgYW55dGhpbmcgYmV5b25kIG1pbnV0ZSBncmFudWxhcml0eS4KKworICAgICAgICAoLVtXS0Rh
dGVUaW1lUGlja2VyIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdKToKKyAgICAgICAgKC1bV0tEYXRl
VGltZVBpY2tlciBfZGF0ZUNoYW5nZWRdKToKKworICAgICAgICBBbHdheXMgdXNlIHNldFZhbHVl
QXNTdHJpbmcsIG1hdGNoaW5nIHRoZSBvdGhlciBkYXRlL3RpbWUgaW5wdXRzLgorCisgICAgICAg
IFRpbWUgem9uZSBjb252ZXJzaW9uIGJlZm9yZSBzZW5kaW5nIHRoZSBkYXRlIGJhY2sgdG8gdGhl
IHdlYiBwcm9jZXNzCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBzZXREYXRlVGltZVBpY2tlclRvSW5pdGlhbFZhbHVlXSk6CisKKyAg
ICAgICAgVGltZSB6b25lIGNvbnZlcnNpb24gd2hlbiByZXRyaWV2aW5nIHRoZSBkYXRlIGZyb20g
dGhlIHdlYiBwcm9jZXNzIGlzIG5vCisgICAgICAgIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBjb250cm9sQmVnaW5FZGl0aW5nXSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisKIDIwMjEtMDgtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIFBob3RvIHBpY2tlciBhcHBlYXJzIGF0IGluY29ycmVj
dCBsb2NhdGlvbnMgd2hlbiBvcGVuZWQgdXNpbmcgYSB0cmFja3BhZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyNmI4MDZjMzZiYWZjZDcyOTMxNzY0NmM5ZmY2ZGVm
NmI5ZDEzMjdmLi4yYjAwZjkyNmRkZWE2OTdlYmE4MDY0NWM0MTA2MDU4Nzg4ZDBkZmY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODM4LDcgKzgzOCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNhdmVJbWFnZVRvTGlicmFyeShjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYgaW1hZ2VIYW5kbGUpOwogICAgIHZvaWQgZm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQo
Ym9vbCBpc0ZvcndhcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAg
ICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNO
dW1iZXIoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBkb3VibGUpOwogICAgIHZvaWQg
c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNl
KTsKICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiAgICAgdm9pZCBh
cHBsaWNhdGlvbkRpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKaW5kZXggMzU1NmRmN2QyN2U4NmM2ZTg4MzZmZGQ5ZjhlY2NhMDQ1OGE5NTdk
Zi4uM2M2ZTYxZDdlODcwOWFkZjU1YzUyNjc2YTI4MDc5ZjExMGI5ZmJmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aApAQCAtNjcyLDcgKzY3Miw2IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJ
T04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKWFj
Y2Vzc29yeU9wZW47CiAKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzQ29sb3I6
KFVJQ29sb3IgKil2YWx1ZTsKLS0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVt
YmVyOihkb3VibGUpdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6KE5T
U3RyaW5nICopdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRl
eDoodWludDMyX3QpaW5kZXggYWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246KGJvb2wpYWxsb3dzTXVs
dGlwbGVTZWxlY3Rpb247CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhE
YXRhTGlzdERyb3Bkb3duOihCT09MKXZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjE1YWU2Mzgz
NGU1YWFiMjQxNDY2OWNkZjViY2IwODU0NDI2YjA4Zi4uNzA2OWMyODEyMzVmNzZhYjk1MzQ3NWUz
MTBlNmM4NWYyYTdkY2VhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00ODU4LDEyICs0ODU4LDYgQEAg
c3RhdGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZFdpdGhUb3VjaChXS0NvbnRlbnRWaWV3ICp2aWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2kKICAgICBfcGFnZS0+c2V0SXNTaG93aW5nSW5wdXRWaWV3
Rm9yRm9jdXNlZEVsZW1lbnQoZmFsc2UpOwogfQogCi0tICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcjooZG91YmxlKXZhbHVlCi17Ci0gICAgX3BhZ2UtPnNldEZvY3VzZWRF
bGVtZW50VmFsdWVBc051bWJlcihfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29u
dGV4dCwgdmFsdWUpOwotICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNOdW1i
ZXIgPSB2YWx1ZTsKLX0KLQogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOihOU1N0
cmluZyAqKXZhbHVlCiB7CiAgICAgX3BhZ2UtPnNldEZvY3VzZWRFbGVtZW50VmFsdWUoX2ZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQsIHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDdiMDc5ODU4ZTgx
MWEwODJjNTE4NzAyZDAyMTNiYTliMThlMTU0MDQuLjZmNGRiZTNhMzg3MmI2NzEzMTAyZjk5MTU4
Zjg4NGRlNzQ0ZWI0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtOTY3LDExICs5NjcsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4
dAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50VmFsdWUoY29u
dGV4dCwgdmFsdWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRFbGVtZW50
VmFsdWVBc051bWJlcihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgZG91
YmxlIHZhbHVlKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcihjb250ZXh0LCB2YWx1ZSkpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0
aW9uKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50U2Vs
ZWN0ZWRJbmRleChjb250ZXh0LCBpbmRleCwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1
dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQppbmRleCA3YmQ1MjdmNTMyY2U2MWNkNzBiM2Q4ZjI4YjBhY2EzNzI4
Y2FiZTNkLi5mMDhkNjI3MDVlN2Y4OTk5YzVkNDBmNzIyODZjNzBhYzM5OWQ4NDZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29u
dHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQpAQCAtMjI5LDggKzIyOSw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGtEYXRlVGltZVBpY2tlclRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogPiB7CiAgICAgTlNTdHJp
bmcgKl9mb3JtYXRTdHJpbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW5pdGlhbFZhbHVl
OwotICAgIE5TVGltZUludGVydmFsIF9pbml0aWFsVmFsdWVBc051bWJlcjsKLSAgICBCT09MIF9z
aG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uOwogICAgIFdLQ29udGVudFZpZXcgKl92aWV3
OwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7CiAgICAgUmV0YWluUHRyPFVJRGF0ZVBp
Y2tlcj4gX2RhdGVQaWNrZXI7CkBAIC0yNTksNiArMjU3LDcgQEAgc3RhdGljIGNvbnN0IENHRmxv
YXQga0RhdGVUaW1lUGlja2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiBzdGF0aWMgTlNTdHJp
bmcgKiBjb25zdCBrRGF0ZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCI7IC8vICIyMDExLTAx
LTI3Ii4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtNb250aEZvcm1hdFN0cmluZyA9IEAieXl5
eS1NTSI7IC8vICIyMDExLTAxIi4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtUaW1lRm9ybWF0
U3RyaW5nID0gQCJISDptbSI7IC8vICIxMzo0NSIuCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBr
RGF0ZVRpbWVGb3JtYXRTdHJpbmcgPSBAInl5eXktTU0tZGQnVCdISDptbSI7IC8vICIyMDExLTAx
LTI3VDEzOjQ1Igogc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtNaWxsaXNlY29uZHNQZXJT
ZWNvbmQgPSAxMDAwOwogCiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250
cm9sTWFyZ2luID0gNjsKQEAgLTI3MCw3ICsyNjksNiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIAogICAgIF92aWV3ID0gdmlldzsKICAg
ICBfaW50ZXJhY3Rpb25Qb2ludCA9IFtfdmlldyBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbl07Ci0g
ICAgX3Nob3VsZFJlbW92ZVRpbWVab25lSW5mb3JtYXRpb24gPSBOTzsKIAogICAgIHN3aXRjaCAo
dmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlKSB7CiAgICAgY2FzZSBX
ZWJLaXQ6OklucHV0VHlwZTo6RGF0ZToKQEAgLTI4Myw3ICsyODEsNyBAQCBzdGF0aWMgY29uc3Qg
Q0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgX2Zvcm1h
dFN0cmluZyA9IGtUaW1lRm9ybWF0U3RyaW5nOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YktpdDo6SW5wdXRUeXBlOjpEYXRlVGltZUxvY2FsOgotICAgICAgICBfc2hvdWxkUmVtb3ZlVGlt
ZVpvbmVJbmZvcm1hdGlvbiA9IFlFUzsKKyAgICAgICAgX2Zvcm1hdFN0cmluZyA9IGtEYXRlVGlt
ZUZvcm1hdFN0cmluZzsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CkBAIC01NTMsMjEgKzU1MSwyMCBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQ
aWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKE5T
SW50ZWdlcilfdGltZVpvbmVPZmZzZXRGcm9tR01UOihOU0RhdGUgKilkYXRlCi17Ci0gICAgaWYg
KCFfc2hvdWxkUmVtb3ZlVGltZVpvbmVJbmZvcm1hdGlvbikKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICByZXR1cm4gW1tfZGF0ZVBpY2tlciB0aW1lWm9uZV0gc2Vjb25kc0Zyb21HTVRGb3JEYXRl
OmRhdGVdOwotfQotCiAtIChOU1N0cmluZyAqKV9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0
ZXI6KE5TU3RyaW5nICopdmFsdWUKIHsKLSAgICAvLyBUaGUgInRpbWUiIGlucHV0IHR5cGUgbWF5
IGhhdmUgc2Vjb25kcyBhbmQgbWlsbGlzZWNvbmRzIGluZm9ybWF0aW9uIHdoaWNoIHdlCi0gICAg
Ly8ganVzdCBpZ25vcmUuIEZvciBleGFtcGxlOiAiMDE6NTY6MjAuMzkxIiBpcyBzaG9ydGVuZWQg
dG8ganVzdCAiMDE6NTYiLgorICAgIC8vIFRpbWVzIG1heSBoYXZlIHNlY29uZHMgYW5kIG1pbGxp
c2Vjb25kcyBpbmZvcm1hdGlvbiB3aGljaCB3ZSBqdXN0CisgICAgLy8gaWdub3JlLiBGb3IgZXhh
bXBsZTogIjAxOjU2OjIwLjM5MSIgaXMgc2hvcnRlbmVkIHRvIGp1c3QgIjAxOjU2Ii4KKwogICAg
IGlmIChfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktp
dDo6SW5wdXRUeXBlOjpUaW1lKQogICAgICAgICByZXR1cm4gW3ZhbHVlIHN1YnN0cmluZ1RvSW5k
ZXg6W2tUaW1lRm9ybWF0U3RyaW5nIGxlbmd0aF1dOwogCisgICAgaWYgKF92aWV3LmZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJbnB1dFR5cGU6OkRhdGVU
aW1lTG9jYWwpIHsKKyAgICAgICAgTlNTdHJpbmcgKnRpbWVTdHJpbmcgPSBbW3ZhbHVlIGNvbXBv
bmVudHNTZXBhcmF0ZWRCeVN0cmluZzpAIlQiXSBvYmplY3RBdEluZGV4OjFdOworICAgICAgICBO
U1N0cmluZyAqc2FuaXRpemVkVGltZVN0cmluZyA9IFt0aW1lU3RyaW5nIHN1YnN0cmluZ1RvSW5k
ZXg6W2tUaW1lRm9ybWF0U3RyaW5nIGxlbmd0aF1dOworICAgICAgICByZXR1cm4gW3ZhbHVlIHN0
cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzp0aW1lU3RyaW5nIHdpdGhTdHJpbmc6
c2FuaXRpemVkVGltZVN0cmluZ107CisgICAgfQorCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCkBA
IC01NzcsNTIgKzU3NCwyOCBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJD
b250cm9sTWFyZ2luID0gNjsKICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9y
bWF0dGVyID0gYWRvcHROUyhbW05TRGF0ZUZvcm1hdHRlciBhbGxvY10gaW5pdF0pOwogICAgIFtk
YXRlRm9ybWF0dGVyIHNldFRpbWVab25lOltfZGF0ZVBpY2tlciB0aW1lWm9uZV1dOwogICAgIFtk
YXRlRm9ybWF0dGVyIHNldERhdGVGb3JtYXQ6X2Zvcm1hdFN0cmluZ107CisgICAgLy8gRm9yY2Ug
RW5nbGlzaCBsb2NhbGUgYmVjYXVzZSB0aGF0IGlzIHdoYXQgSFRNTDUgdmFsdWUgcGFyc2luZyBl
eHBlY3RzLgogICAgIFtkYXRlRm9ybWF0dGVyIHNldExvY2FsZTplbmdsaXNoTG9jYWxlLmdldCgp
XTsKICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlcjsKIH0KIAotLSAodm9pZClfZGF0ZUNoYW5nZWRT
ZXRBc051bWJlcgotewotICAgIE5TRGF0ZSAqZGF0ZSA9IFtfZGF0ZVBpY2tlciBkYXRlXTsKLSAg
ICBbX3ZpZXcgdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyOihkYXRlLnRpbWVJbnRl
cnZhbFNpbmNlMTk3MCArIFtzZWxmIF90aW1lWm9uZU9mZnNldEZyb21HTVQ6ZGF0ZV0pICoga01p
bGxpc2Vjb25kc1BlclNlY29uZF07Ci19Ci0KLS0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNTdHJp
bmcKKy0gKHZvaWQpX2RhdGVDaGFuZ2VkCiB7Ci0gICAgLy8gRm9yY2UgRW5nbGlzaCBsb2NhbGUg
YmVjYXVzZSB0aGF0IGlzIHdoYXQgSFRNTDUgdmFsdWUgcGFyc2luZyBleHBlY3RzLgogICAgIFJl
dGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBbc2VsZiBkYXRlRm9ybWF0
dGVyRm9yUGlja2VyXTsKICAgICBbX3ZpZXcgdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZTpbZGF0
ZUZvcm1hdHRlciBzdHJpbmdGcm9tRGF0ZTpbX2RhdGVQaWNrZXIgZGF0ZV1dXTsKIH0KIAotLSAo
dm9pZClfZGF0ZUNoYW5nZWQKLXsKLSAgICAvLyBJbnRlcm5hbGx5LCBET01IVE1MSW5wdXRFbGVt
ZW50IHNldFZhbHVlQXMqIGVhY2ggdGFrZSBkaWZmZXJlbnQgdmFsdWVzIGZvcgotICAgIC8vIGRp
ZmZlcmVudCBkYXRlIHR5cGVzLiBJdCBpcyBzb21ldGltZXMgZWFzaWVyIHRvIHNldCB0aGUgZGF0
ZSBpbiBkaWZmZXJlbnQgd2F5czoKLSAgICAvLyAgIC0gdXNlIHNldFZhbHVlQXNTdHJpbmcgZm9y
ICJkYXRlIiwgIm1vbnRoIiwgYW5kICJ0aW1lIi4KLSAgICAvLyAgIC0gdXNlIHNldFZhbHVlQXNO
dW1iZXIgZm9yICJkYXRldGltZS1sb2NhbCIuCi0gICAgaWYgKF9mb3JtYXRTdHJpbmcpCi0gICAg
ICAgIFtzZWxmIF9kYXRlQ2hhbmdlZFNldEFzU3RyaW5nXTsKLSAgICBlbHNlCi0gICAgICAgIFtz
ZWxmIF9kYXRlQ2hhbmdlZFNldEFzTnVtYmVyXTsKLX0KLQogLSAodm9pZClzZXREYXRlVGltZVBp
Y2tlclRvSW5pdGlhbFZhbHVlCiB7Ci0gICAgaWYgKFtfaW5pdGlhbFZhbHVlIGlzRXF1YWw6IEAi
Il0pIHsKKyAgICBpZiAoW19pbml0aWFsVmFsdWUgaXNFcXVhbDpAIiJdKSB7CiAgICAgICAgIFtf
ZGF0ZVBpY2tlciBzZXREYXRlOltOU0RhdGUgZGF0ZV1dOwogICAgICAgICBbc2VsZiBfZGF0ZUNo
YW5nZWRdOwotICAgIH0gZWxzZSBpZiAoX2Zvcm1hdFN0cmluZykgewotICAgICAgICAvLyBDb252
ZXJ0IHRoZSBzdHJpbmcgdmFsdWUgdG8gYSBkYXRlIG9iamVjdCBmb3IgdGhlIGZpZWxkcyB3aGVy
ZSB3ZSBoYXZlIGEgZm9ybWF0IHN0cmluZy4KLSAgICAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1h
dHRlcj4gZGF0ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwotICAg
ICAgICBOU0RhdGUgKnBhcnNlZERhdGUgPSBbZGF0ZUZvcm1hdHRlciBkYXRlRnJvbVN0cmluZzpb
c2VsZiBfc2FuaXRpemVJbnB1dFZhbHVlRm9yRm9ybWF0dGVyOl9pbml0aWFsVmFsdWUuZ2V0KCld
XTsKLSAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGU6cGFyc2VkRGF0ZSA/IHBhcnNlZERhdGUg
OiBbTlNEYXRlIGRhdGVdXTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBDb252ZXJ0IHRoZSBu
dW1iZXIgdmFsdWUgdG8gYSBkYXRlIG9iamVjdCBmb3IgdGhlIGZpZWxkcyBhZmZlY3RlZCBieSB0
aW1lem9uZXMuCi0gICAgICAgIE5TVGltZUludGVydmFsIHNlY29uZHNTaW5jZTE5NzAgPSBfaW5p
dGlhbFZhbHVlQXNOdW1iZXIgLyBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kOwotICAgICAgICBOU0lu
dGVnZXIgdGltZVpvbmVPZmZzZXQgPSBbc2VsZiBfdGltZVpvbmVPZmZzZXRGcm9tR01UOltOU0Rh
dGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6c2Vjb25kc1NpbmNlMTk3MF1dOwotICAg
ICAgICBOU1RpbWVJbnRlcnZhbCBhZGp1c3RlZFNlY29uZHNTaW5jZTE5NzAgPSBzZWNvbmRzU2lu
Y2UxOTcwIC0gdGltZVpvbmVPZmZzZXQ7Ci0gICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOltO
U0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6YWRqdXN0ZWRTZWNvbmRzU2luY2Ux
OTcwXV07CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBSZXRhaW5QdHI8TlNEYXRlRm9y
bWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gW3NlbGYgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl07Cisg
ICAgTlNEYXRlICpwYXJzZWREYXRlID0gW2RhdGVGb3JtYXR0ZXIgZGF0ZUZyb21TdHJpbmc6W3Nl
bGYgX3Nhbml0aXplSW5wdXRWYWx1ZUZvckZvcm1hdHRlcjpfaW5pdGlhbFZhbHVlLmdldCgpXV07
CisgICAgW19kYXRlUGlja2VyIHNldERhdGU6cGFyc2VkRGF0ZSA/IHBhcnNlZERhdGUgOiBbTlNE
YXRlIGRhdGVdXTsKIH0KIAogLSAoVUlWaWV3ICopY29udHJvbFZpZXcKQEAgLTY0Miw3ICs2MTUs
NiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0g
NjsKICAgICAvLyBDdXJyZW50bHkgbm8gdmFsdWUgZm9yIHRoZSA8aW5wdXQ+LiBTdGFydCB0aGUg
cGlja2VyIHdpdGggdGhlIGN1cnJlbnQgdGltZS4KICAgICAvLyBBbHNvLCB1cGRhdGUgdGhlIGFj
dHVhbCA8aW5wdXQ+IHZhbHVlLgogICAgIF9pbml0aWFsVmFsdWUgPSBfdmlldy5mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLnZhbHVlOwotICAgIF9pbml0aWFsVmFsdWVBc051bWJlciA9IF92aWV3
LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24udmFsdWVBc051bWJlcjsKICAgICBbc2VsZiBzZXRE
YXRlVGltZVBpY2tlclRvSW5pdGlhbFZhbHVlXTsKIAogICAgIFtzZWxmIHNob3dEYXRlVGltZVBp
Y2tlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
MWU2MTRjNzM5ZWE1MzRmOTEzOTYxOTExY2M5NWQ3ZmRhODg1M2IxMy4uZDEyMzNmZDVhOGQ0MGYz
ODBjN2FmYTI1ZTU5YmY3ZDQwYjg3MjU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzkzLDcgKzc5Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZv
Y3VzTmV4dEZvY3VzZWRFbGVtZW50KGJvb2wgaXNGb3J3YXJkLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgYXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25z
dCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
JiwgZG91YmxlKTsKICAgICB2b2lkIHNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleChjb25z
dCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVs
dGlwbGVTZWxlY3Rpb24pOwogICAgIHZvaWQgc2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNl
ZEVsZW1lbnQoYm9vbCk7CiAgICAgYm9vbCBpc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1l
bnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IGEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFjMjQ5MjU1OWQ0
MzYuLmY5MjZlZTAzMWViNzFkYTBmN2MxY2YzZjdkYjM2NGE0ODM5NGZhZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtOTUsNyArOTUsNiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBGb2N1c05leHRGb2N1c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCkgLT4gKCkgQXN5bmMKICAg
ICBBdXRvZmlsbExvZ2luQ3JlZGVudGlhbHMoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dv
cmQpCiAgICAgU2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZShzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQgY29udGV4dCwgU3RyaW5nIHZhbHVlKQotICAgIFNldEZvY3VzZWRFbGVtZW50VmFsdWVB
c051bWJlcihzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgZG91YmxlIHZh
bHVlKQogICAgIFNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleChzdHJ1Y3QgV2ViQ29yZTo6
RWxlbWVudENvbnRleHQgY29udGV4dCwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBs
ZVNlbGVjdGlvbikKICAgICBBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKGJvb2wgaXNTdXNwZW5kZWRVbmRlckxvY2spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IGMzNzE2NTQ0YjE1ODY4OWUwNmQwMWQ4NGVmYjZmMGJkNmUzODIzOWMuLjBjYTE3YWM5ODc5
ZjI3Nzc0MjJlMDJlYmQyNWQwZjg4MzE1OGNlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMjU1LDEzICsxMjU1LDYg
QEAgdm9pZCBXZWJQYWdlOjpzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnRDb250ZXh0JiBjb250ZXh0LCBjb24KICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpLnNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZl
bnQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldEZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcihj
b25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgZG91YmxlIHZhbHVlKQotewot
ICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZWxlbWVudEZvckNvbnRleHQoY29udGV4dCk7
Ci0gICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQotICAgICAgICBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuc2V0VmFsdWVBc051bWJlcih2YWx1ZSwgRGlz
cGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsKLX0KLQogdm9pZCBXZWJQYWdlOjpzZXRGb2N1c2Vk
RWxlbWVudFNlbGVjdGVkSW5kZXgoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIGNvbnRl
eHQsIHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCiB7CiAgICAg
UmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQgPSBlbGVtZW50Rm9yQ29udGV4dChjb250ZXh0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437092</attachid>
            <date>2021-09-01 17:26:45 -0700</date>
            <delta_ts>2021-09-01 17:35:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229773-20210901202644.patch</filename>
            <type>text/plain</type>
            <size>14960</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5ZDBiNDY5NjdmN2UyMjU3
ZmM1YTAwZDA3YTk1YjU3NTkzOWE2OTcuLjkyNGJjMzRhMjkzZGRlNDYyZDk4NGY0ODk3ZTY0NDdh
YmMxZWUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDktMDEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNpbXBsaWZ5IGRh
dGUgcGlja2VyIGxvZ2ljIGZvciBkYXRldGltZS1sb2NhbCBpbnB1dHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTc3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGRhdGUgcGlj
a2VyIGxvZ2ljIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgZGF0
ZXRpbWUtbG9jYWwgaW5wdXQgcmVsaWVzIG9uIHRoZSBudW1lcmljIHZhbHVlIG9mIGlucHV0LiBU
aGlzCisgICAgICAgIGxvZ2ljIGRpZmZlcnMgZnJvbSBsb2dpYyBmb3IgZGF0ZSwgdGltZSwgYW5k
IG1vbnRoIGlucHV0cywgd2hlcmUgd2UgdXNlCisgICAgICAgIHRoZSBzdHJpbmcgdmFsdWUgb2Yg
dGhlIGlucHV0LiBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIGNvZGUgYnkgdXNpbmcKKyAgICAg
ICAgc3RyaW5nIHZhbHVlcyBmb3IgYWxsIHRoZSBkYXRlL3RpbWUgaW5wdXQgdHlwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJ
bnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhWaWV3
OmRhdGVQaWNrZXJNb2RlOl0pOgorCisgICAgICAgIFNldCB0aGUgZm9ybWF0IHN0cmluZyBmb3Ig
ZGF0ZXRpbWUtbG9jYWwgaW5wdXRzLCBtYXRjaGluZyB0aGUgc3BlYy4KKworICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIF9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6XSk6CisKKyAg
ICAgICAgU2FuaXRpemUgZGF0ZXRpbWUtbG9jYWwgdmFsdWVzIHRvIHJlbW92ZSBzZWNvbmRzIGFu
ZCBtaWxsaXNlY29uZHMKKyAgICAgICAgaW5mb3JtYXRpb24uIFVJS2l0IGRvZXMgbm90IHN1cHBv
cnQgYW55dGhpbmcgYmV5b25kIG1pbnV0ZSBncmFudWxhcml0eS4KKworICAgICAgICAoLVtXS0Rh
dGVUaW1lUGlja2VyIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdKToKKyAgICAgICAgKC1bV0tEYXRl
VGltZVBpY2tlciBfZGF0ZUNoYW5nZWRdKToKKworICAgICAgICBBbHdheXMgdXNlIHNldFZhbHVl
QXNTdHJpbmcsIG1hdGNoaW5nIHRoZSBvdGhlciBkYXRlL3RpbWUgaW5wdXRzLgorCisgICAgICAg
IFRpbWUgem9uZSBjb252ZXJzaW9uIGJlZm9yZSBzZW5kaW5nIHRoZSBkYXRlIGJhY2sgdG8gdGhl
IHdlYiBwcm9jZXNzCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBzZXREYXRlVGltZVBpY2tlclRvSW5pdGlhbFZhbHVlXSk6CisKKyAg
ICAgICAgVGltZSB6b25lIGNvbnZlcnNpb24gd2hlbiByZXRyaWV2aW5nIHRoZSBkYXRlIGZyb20g
dGhlIHdlYiBwcm9jZXNzIGlzIG5vCisgICAgICAgIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBjb250cm9sQmVnaW5FZGl0aW5nXSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisKIDIwMjEtMDgtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIFBob3RvIHBpY2tlciBhcHBlYXJzIGF0IGluY29ycmVj
dCBsb2NhdGlvbnMgd2hlbiBvcGVuZWQgdXNpbmcgYSB0cmFja3BhZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyNmI4MDZjMzZiYWZjZDcyOTMxNzY0NmM5ZmY2ZGVm
NmI5ZDEzMjdmLi4yYjAwZjkyNmRkZWE2OTdlYmE4MDY0NWM0MTA2MDU4Nzg4ZDBkZmY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODM4LDcgKzgzOCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNhdmVJbWFnZVRvTGlicmFyeShjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYgaW1hZ2VIYW5kbGUpOwogICAgIHZvaWQgZm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQo
Ym9vbCBpc0ZvcndhcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAg
ICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNO
dW1iZXIoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBkb3VibGUpOwogICAgIHZvaWQg
c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNl
KTsKICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiAgICAgdm9pZCBh
cHBsaWNhdGlvbkRpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKaW5kZXggMzU1NmRmN2QyN2U4NmM2ZTg4MzZmZGQ5ZjhlY2NhMDQ1OGE5NTdk
Zi4uM2M2ZTYxZDdlODcwOWFkZjU1YzUyNjc2YTI4MDc5ZjExMGI5ZmJmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aApAQCAtNjcyLDcgKzY3Miw2IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJ
T04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKWFj
Y2Vzc29yeU9wZW47CiAKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzQ29sb3I6
KFVJQ29sb3IgKil2YWx1ZTsKLS0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVt
YmVyOihkb3VibGUpdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6KE5T
U3RyaW5nICopdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRl
eDoodWludDMyX3QpaW5kZXggYWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246KGJvb2wpYWxsb3dzTXVs
dGlwbGVTZWxlY3Rpb247CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhE
YXRhTGlzdERyb3Bkb3duOihCT09MKXZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjE1YWU2Mzgz
NGU1YWFiMjQxNDY2OWNkZjViY2IwODU0NDI2YjA4Zi4uNzA2OWMyODEyMzVmNzZhYjk1MzQ3NWUz
MTBlNmM4NWYyYTdkY2VhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00ODU4LDEyICs0ODU4LDYgQEAg
c3RhdGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZFdpdGhUb3VjaChXS0NvbnRlbnRWaWV3ICp2aWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2kKICAgICBfcGFnZS0+c2V0SXNTaG93aW5nSW5wdXRWaWV3
Rm9yRm9jdXNlZEVsZW1lbnQoZmFsc2UpOwogfQogCi0tICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcjooZG91YmxlKXZhbHVlCi17Ci0gICAgX3BhZ2UtPnNldEZvY3VzZWRF
bGVtZW50VmFsdWVBc051bWJlcihfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29u
dGV4dCwgdmFsdWUpOwotICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNOdW1i
ZXIgPSB2YWx1ZTsKLX0KLQogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOihOU1N0
cmluZyAqKXZhbHVlCiB7CiAgICAgX3BhZ2UtPnNldEZvY3VzZWRFbGVtZW50VmFsdWUoX2ZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQsIHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDdiMDc5ODU4ZTgx
MWEwODJjNTE4NzAyZDAyMTNiYTliMThlMTU0MDQuLjZmNGRiZTNhMzg3MmI2NzEzMTAyZjk5MTU4
Zjg4NGRlNzQ0ZWI0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtOTY3LDExICs5NjcsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4
dAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50VmFsdWUoY29u
dGV4dCwgdmFsdWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRFbGVtZW50
VmFsdWVBc051bWJlcihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgZG91
YmxlIHZhbHVlKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcihjb250ZXh0LCB2YWx1ZSkpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0
aW9uKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50U2Vs
ZWN0ZWRJbmRleChjb250ZXh0LCBpbmRleCwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1
dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQppbmRleCA3YmQ1MjdmNTMyY2U2MWNkNzBiM2Q4ZjI4YjBhY2EzNzI4
Y2FiZTNkLi43YzYyODZkYzgwM2Y1YzEyMWZjYjIwNGYyMDdiMzY4MWY2Y2IxMzcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29u
dHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQpAQCAtMjI5LDggKzIyOSw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGtEYXRlVGltZVBpY2tlclRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogPiB7CiAgICAgTlNTdHJp
bmcgKl9mb3JtYXRTdHJpbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW5pdGlhbFZhbHVl
OwotICAgIE5TVGltZUludGVydmFsIF9pbml0aWFsVmFsdWVBc051bWJlcjsKLSAgICBCT09MIF9z
aG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uOwogICAgIFdLQ29udGVudFZpZXcgKl92aWV3
OwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7CiAgICAgUmV0YWluUHRyPFVJRGF0ZVBp
Y2tlcj4gX2RhdGVQaWNrZXI7CkBAIC0yNTksNiArMjU3LDcgQEAgc3RhdGljIGNvbnN0IENHRmxv
YXQga0RhdGVUaW1lUGlja2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiBzdGF0aWMgTlNTdHJp
bmcgKiBjb25zdCBrRGF0ZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCI7IC8vICIyMDExLTAx
LTI3Ii4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtNb250aEZvcm1hdFN0cmluZyA9IEAieXl5
eS1NTSI7IC8vICIyMDExLTAxIi4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtUaW1lRm9ybWF0
U3RyaW5nID0gQCJISDptbSI7IC8vICIxMzo0NSIuCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBr
RGF0ZVRpbWVGb3JtYXRTdHJpbmcgPSBAInl5eXktTU0tZGQnVCdISDptbSI7IC8vICIyMDExLTAx
LTI3VDEzOjQ1Igogc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtNaWxsaXNlY29uZHNQZXJT
ZWNvbmQgPSAxMDAwOwogCiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250
cm9sTWFyZ2luID0gNjsKQEAgLTI3MCw3ICsyNjksNiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIAogICAgIF92aWV3ID0gdmlldzsKICAg
ICBfaW50ZXJhY3Rpb25Qb2ludCA9IFtfdmlldyBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbl07Ci0g
ICAgX3Nob3VsZFJlbW92ZVRpbWVab25lSW5mb3JtYXRpb24gPSBOTzsKIAogICAgIHN3aXRjaCAo
dmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlKSB7CiAgICAgY2FzZSBX
ZWJLaXQ6OklucHV0VHlwZTo6RGF0ZToKQEAgLTI4Myw3ICsyODEsNyBAQCBzdGF0aWMgY29uc3Qg
Q0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgX2Zvcm1h
dFN0cmluZyA9IGtUaW1lRm9ybWF0U3RyaW5nOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YktpdDo6SW5wdXRUeXBlOjpEYXRlVGltZUxvY2FsOgotICAgICAgICBfc2hvdWxkUmVtb3ZlVGlt
ZVpvbmVJbmZvcm1hdGlvbiA9IFlFUzsKKyAgICAgICAgX2Zvcm1hdFN0cmluZyA9IGtEYXRlVGlt
ZUZvcm1hdFN0cmluZzsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CkBAIC01NTMsMjEgKzU1MSwyMiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQ
aWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKE5T
SW50ZWdlcilfdGltZVpvbmVPZmZzZXRGcm9tR01UOihOU0RhdGUgKilkYXRlCistIChOU1N0cmlu
ZyAqKV9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6KE5TU3RyaW5nICopdmFsdWUKIHsK
LSAgICBpZiAoIV9zaG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uKQotICAgICAgICByZXR1
cm4gMDsKKyAgICBBU1NFUlQoW3ZhbHVlIGxlbmd0aF0pOwogCi0gICAgcmV0dXJuIFtbX2RhdGVQ
aWNrZXIgdGltZVpvbmVdIHNlY29uZHNGcm9tR01URm9yRGF0ZTpkYXRlXTsKLX0KKyAgICAvLyBU
aW1lcyBtYXkgaGF2ZSBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMgaW5mb3JtYXRpb24gd2hpY2gg
d2UganVzdAorICAgIC8vIGlnbm9yZS4gRm9yIGV4YW1wbGU6ICIwMTo1NjoyMC4zOTEiIGlzIHNo
b3J0ZW5lZCB0byBqdXN0ICIwMTo1NiIuCiAKLS0gKE5TU3RyaW5nICopX3Nhbml0aXplSW5wdXRW
YWx1ZUZvckZvcm1hdHRlcjooTlNTdHJpbmcgKil2YWx1ZQotewotICAgIC8vIFRoZSAidGltZSIg
aW5wdXQgdHlwZSBtYXkgaGF2ZSBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMgaW5mb3JtYXRpb24g
d2hpY2ggd2UKLSAgICAvLyBqdXN0IGlnbm9yZS4gRm9yIGV4YW1wbGU6ICIwMTo1NjoyMC4zOTEi
IGlzIHNob3J0ZW5lZCB0byBqdXN0ICIwMTo1NiIuCiAgICAgaWYgKF92aWV3LmZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJbnB1dFR5cGU6OlRpbWUpCiAg
ICAgICAgIHJldHVybiBbdmFsdWUgc3Vic3RyaW5nVG9JbmRleDpba1RpbWVGb3JtYXRTdHJpbmcg
bGVuZ3RoXV07CiAKKyAgICBpZiAoX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVt
ZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6RGF0ZVRpbWVMb2NhbCkgeworICAgICAgICBO
U1N0cmluZyAqdGltZVN0cmluZyA9IFtbdmFsdWUgY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5n
OkAiVCJdIG9iamVjdEF0SW5kZXg6MV07CisgICAgICAgIE5TU3RyaW5nICpzYW5pdGl6ZWRUaW1l
U3RyaW5nID0gW3RpbWVTdHJpbmcgc3Vic3RyaW5nVG9JbmRleDpba1RpbWVGb3JtYXRTdHJpbmcg
bGVuZ3RoXV07CisgICAgICAgIHJldHVybiBbdmFsdWUgc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJl
bmNlc09mU3RyaW5nOnRpbWVTdHJpbmcgd2l0aFN0cmluZzpzYW5pdGl6ZWRUaW1lU3RyaW5nXTsK
KyAgICB9CisKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKQEAgLTU3Nyw1MiArNTc2LDI3IEBAIHN0
YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAg
IFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBhZG9wdE5TKFtbTlNE
YXRlRm9ybWF0dGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW2RhdGVGb3JtYXR0ZXIgc2V0VGltZVpv
bmU6W19kYXRlUGlja2VyIHRpbWVab25lXV07CiAgICAgW2RhdGVGb3JtYXR0ZXIgc2V0RGF0ZUZv
cm1hdDpfZm9ybWF0U3RyaW5nXTsKKyAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNl
IHRoYXQgaXMgd2hhdCBIVE1MNSB2YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgW2RhdGVGb3Jt
YXR0ZXIgc2V0TG9jYWxlOmVuZ2xpc2hMb2NhbGUuZ2V0KCldOwogICAgIHJldHVybiBkYXRlRm9y
bWF0dGVyOwogfQogCi0tICh2b2lkKV9kYXRlQ2hhbmdlZFNldEFzTnVtYmVyCi17Ci0gICAgTlNE
YXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwotICAgIFtfdmlldyB1cGRhdGVGb2N1c2Vk
RWxlbWVudFZhbHVlQXNOdW1iZXI6KGRhdGUudGltZUludGVydmFsU2luY2UxOTcwICsgW3NlbGYg
X3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kXTsK
LX0KLQotLSAodm9pZClfZGF0ZUNoYW5nZWRTZXRBc1N0cmluZworLSAodm9pZClfZGF0ZUNoYW5n
ZWQKIHsKLSAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNlIHRoYXQgaXMgd2hhdCBI
VE1MNSB2YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRl
cj4gZGF0ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwogICAgIFtf
dmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOltkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21E
YXRlOltfZGF0ZVBpY2tlciBkYXRlXV1dOwogfQogCi0tICh2b2lkKV9kYXRlQ2hhbmdlZAotewot
ICAgIC8vIEludGVybmFsbHksIERPTUhUTUxJbnB1dEVsZW1lbnQgc2V0VmFsdWVBcyogZWFjaCB0
YWtlIGRpZmZlcmVudCB2YWx1ZXMgZm9yCi0gICAgLy8gZGlmZmVyZW50IGRhdGUgdHlwZXMuIEl0
IGlzIHNvbWV0aW1lcyBlYXNpZXIgdG8gc2V0IHRoZSBkYXRlIGluIGRpZmZlcmVudCB3YXlzOgot
ICAgIC8vICAgLSB1c2Ugc2V0VmFsdWVBc1N0cmluZyBmb3IgImRhdGUiLCAibW9udGgiLCBhbmQg
InRpbWUiLgotICAgIC8vICAgLSB1c2Ugc2V0VmFsdWVBc051bWJlciBmb3IgImRhdGV0aW1lLWxv
Y2FsIi4KLSAgICBpZiAoX2Zvcm1hdFN0cmluZykKLSAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2Vk
U2V0QXNTdHJpbmddOwotICAgIGVsc2UKLSAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkU2V0QXNO
dW1iZXJdOwotfQotCiAtICh2b2lkKXNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFsVmFsdWUKIHsK
LSAgICBpZiAoW19pbml0aWFsVmFsdWUgaXNFcXVhbDogQCIiXSkgeworICAgIGlmIChbX2luaXRp
YWxWYWx1ZSBpc0VxdWFsOkAiIl0pIHsKICAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGU6W05T
RGF0ZSBkYXRlXV07CiAgICAgICAgIFtzZWxmIF9kYXRlQ2hhbmdlZF07Ci0gICAgfSBlbHNlIGlm
IChfZm9ybWF0U3RyaW5nKSB7Ci0gICAgICAgIC8vIENvbnZlcnQgdGhlIHN0cmluZyB2YWx1ZSB0
byBhIGRhdGUgb2JqZWN0IGZvciB0aGUgZmllbGRzIHdoZXJlIHdlIGhhdmUgYSBmb3JtYXQgc3Ry
aW5nLgotICAgICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0g
W3NlbGYgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl07Ci0gICAgICAgIE5TRGF0ZSAqcGFyc2VkRGF0
ZSA9IFtkYXRlRm9ybWF0dGVyIGRhdGVGcm9tU3RyaW5nOltzZWxmIF9zYW5pdGl6ZUlucHV0VmFs
dWVGb3JGb3JtYXR0ZXI6X2luaXRpYWxWYWx1ZS5nZXQoKV1dOwotICAgICAgICBbX2RhdGVQaWNr
ZXIgc2V0RGF0ZTpwYXJzZWREYXRlID8gcGFyc2VkRGF0ZSA6IFtOU0RhdGUgZGF0ZV1dOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIC8vIENvbnZlcnQgdGhlIG51bWJlciB2YWx1ZSB0byBhIGRhdGUg
b2JqZWN0IGZvciB0aGUgZmllbGRzIGFmZmVjdGVkIGJ5IHRpbWV6b25lcy4KLSAgICAgICAgTlNU
aW1lSW50ZXJ2YWwgc2Vjb25kc1NpbmNlMTk3MCA9IF9pbml0aWFsVmFsdWVBc051bWJlciAvIGtN
aWxsaXNlY29uZHNQZXJTZWNvbmQ7Ci0gICAgICAgIE5TSW50ZWdlciB0aW1lWm9uZU9mZnNldCA9
IFtzZWxmIF90aW1lWm9uZU9mZnNldEZyb21HTVQ6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZh
bFNpbmNlMTk3MDpzZWNvbmRzU2luY2UxOTcwXV07Ci0gICAgICAgIE5TVGltZUludGVydmFsIGFk
anVzdGVkU2Vjb25kc1NpbmNlMTk3MCA9IHNlY29uZHNTaW5jZTE5NzAgLSB0aW1lWm9uZU9mZnNl
dDsKLSAgICAgICAgW19kYXRlUGlja2VyIHNldERhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRl
cnZhbFNpbmNlMTk3MDphZGp1c3RlZFNlY29uZHNTaW5jZTE5NzBdXTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KKworICAgIE5TRGF0ZSAqcGFyc2VkRGF0ZSA9IFtbc2VsZiBkYXRlRm9ybWF0dGVy
Rm9yUGlja2VyXSBkYXRlRnJvbVN0cmluZzpbc2VsZiBfc2FuaXRpemVJbnB1dFZhbHVlRm9yRm9y
bWF0dGVyOl9pbml0aWFsVmFsdWUuZ2V0KCldXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpw
YXJzZWREYXRlID8gcGFyc2VkRGF0ZSA6IFtOU0RhdGUgZGF0ZV1dOwogfQogCiAtIChVSVZpZXcg
Kiljb250cm9sVmlldwpAQCAtNjQyLDcgKzYxNiw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtE
YXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgIC8vIEN1cnJlbnRseSBubyB2YWx1
ZSBmb3IgdGhlIDxpbnB1dD4uIFN0YXJ0IHRoZSBwaWNrZXIgd2l0aCB0aGUgY3VycmVudCB0aW1l
LgogICAgIC8vIEFsc28sIHVwZGF0ZSB0aGUgYWN0dWFsIDxpbnB1dD4gdmFsdWUuCiAgICAgX2lu
aXRpYWxWYWx1ZSA9IF92aWV3LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24udmFsdWU7Ci0gICAg
X2luaXRpYWxWYWx1ZUFzTnVtYmVyID0gX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi52
YWx1ZUFzTnVtYmVyOwogICAgIFtzZWxmIHNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFsVmFsdWVd
OwogCiAgICAgW3NlbGYgc2hvd0RhdGVUaW1lUGlja2VyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxZTYxNGM3MzllYTUzNGY5MTM5NjE5MTFjYzk1
ZDdmZGE4ODUzYjEzLi5kMTIzM2ZkNWE4ZDQwZjM4MGM3YWZhMjVlNTliZjdkNDBiODcyNTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03OTMsNyAr
NzkzLDYgQEAgcHVibGljOgogICAgIHZvaWQgZm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQoYm9vbCBp
c0ZvcndhcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhdXRvZmls
bExvZ2luQ3JlZGVudGlhbHMoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0Jiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNOdW1iZXIo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBkb3VibGUpOwogICAgIHZvaWQgc2V0Rm9j
dXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0Jiwg
dWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbik7CiAgICAgdm9pZCBz
ZXRJc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudChib29sKTsKICAgICBib29sIGlz
U2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1No
b3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTBhYTU1NGY3
NDk4MjAyZDBiYjA2Y2Y5NzcwMWMyNDkyNTU5ZDQzNi4uZjkyNmVlMDMxZWI3MWRhMGY3YzFjZjNm
N2RiMzY0YTQ4Mzk0ZmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC05NSw3ICs5NSw2IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEZvY3VzTmV4dEZvY3VzZWRFbGVtZW50KGJv
b2wgaXNGb3J3YXJkKSAtPiAoKSBBc3luYwogICAgIEF1dG9maWxsTG9naW5DcmVkZW50aWFscyhT
dHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKICAgICBTZXRGb2N1c2VkRWxlbWVudFZh
bHVlKHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCBTdHJpbmcgdmFsdWUp
Ci0gICAgU2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKHN0cnVjdCBXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dCBjb250ZXh0LCBkb3VibGUgdmFsdWUpCiAgICAgU2V0Rm9jdXNlZEVsZW1lbnRT
ZWxlY3RlZEluZGV4KHN0cnVjdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBjb250ZXh0LCB1aW50
MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKQogICAgIEFwcGxpY2F0aW9u
V2lsbFJlc2lnbkFjdGl2ZSgpCiAgICAgQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoYm9v
bCBpc1N1c3BlbmRlZFVuZGVyTG9jaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYzM3MTY1NDRiMTU4Njg5ZTA2ZDAxZDg0
ZWZiNmYwYmQ2ZTM4MjM5Yy4uMGNhMTdhYzk4NzlmMjc3NzQyMmUwMmViZDI1ZDBmODgzMTU4Y2Vh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTEyNTUsMTMgKzEyNTUsNiBAQCB2b2lkIFdlYlBhZ2U6OnNldEZvY3VzZWRF
bGVtZW50VmFsdWUoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIGNvbnRleHQsIGNvbgog
ICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuc2V0VmFsdWUodmFs
dWUsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
JiBjb250ZXh0LCBkb3VibGUgdmFsdWUpCi17Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQg
PSBlbGVtZW50Rm9yQ29udGV4dChjb250ZXh0KTsKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVu
dD4oZWxlbWVudCkpCi0gICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KS5zZXRWYWx1ZUFzTnVtYmVyKHZhbHVlLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwot
fQotCiB2b2lkIFdlYlBhZ2U6OnNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleChjb25zdCBX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxs
b3dNdWx0aXBsZVNlbGVjdGlvbikKIHsKICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGVs
ZW1lbnRGb3JDb250ZXh0KGNvbnRleHQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437093</attachid>
            <date>2021-09-01 17:35:19 -0700</date>
            <delta_ts>2021-09-02 11:32:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229773-20210901203518.patch</filename>
            <type>text/plain</type>
            <size>14956</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5ZDBiNDY5NjdmN2UyMjU3
ZmM1YTAwZDA3YTk1YjU3NTkzOWE2OTcuLjkyNGJjMzRhMjkzZGRlNDYyZDk4NGY0ODk3ZTY0NDdh
YmMxZWUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjEtMDktMDEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNpbXBsaWZ5IGRh
dGUgcGlja2VyIGxvZ2ljIGZvciBkYXRldGltZS1sb2NhbCBpbnB1dHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTc3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGRhdGUgcGlj
a2VyIGxvZ2ljIGZvciBnZXR0aW5nL3NldHRpbmcgdGhlIHZhbHVlIG9mIGEKKyAgICAgICAgZGF0
ZXRpbWUtbG9jYWwgaW5wdXQgcmVsaWVzIG9uIHRoZSBudW1lcmljIHZhbHVlIG9mIGlucHV0LiBU
aGlzCisgICAgICAgIGxvZ2ljIGRpZmZlcnMgZnJvbSBsb2dpYyBmb3IgZGF0ZSwgdGltZSwgYW5k
IG1vbnRoIGlucHV0cywgd2hlcmUgd2UgdXNlCisgICAgICAgIHRoZSBzdHJpbmcgdmFsdWUgb2Yg
dGhlIGlucHV0LiBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIGNvZGUgYnkgdXNpbmcKKyAgICAg
ICAgc3RyaW5nIHZhbHVlcyBmb3IgYWxsIHRoZSBkYXRlL3RpbWUgaW5wdXQgdHlwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJ
bnB1dENvbnRyb2wubW06CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgaW5pdFdpdGhWaWV3
OmRhdGVQaWNrZXJNb2RlOl0pOgorCisgICAgICAgIFNldCB0aGUgZm9ybWF0IHN0cmluZyBmb3Ig
ZGF0ZXRpbWUtbG9jYWwgaW5wdXRzLCBtYXRjaGluZyB0aGUgc3BlYy4KKworICAgICAgICAoLVtX
S0RhdGVUaW1lUGlja2VyIF9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6XSk6CisKKyAg
ICAgICAgU2FuaXRpemUgZGF0ZXRpbWUtbG9jYWwgdmFsdWVzIHRvIHJlbW92ZSBzZWNvbmRzIGFu
ZCBtaWxsaXNlY29uZHMKKyAgICAgICAgaW5mb3JtYXRpb24uIFVJS2l0IGRvZXMgbm90IHN1cHBv
cnQgYW55dGhpbmcgYmV5b25kIG1pbnV0ZSBncmFudWxhcml0eS4KKworICAgICAgICAoLVtXS0Rh
dGVUaW1lUGlja2VyIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdKToKKyAgICAgICAgKC1bV0tEYXRl
VGltZVBpY2tlciBfZGF0ZUNoYW5nZWRdKToKKworICAgICAgICBBbHdheXMgdXNlIHNldFZhbHVl
QXNTdHJpbmcsIG1hdGNoaW5nIHRoZSBvdGhlciBkYXRlL3RpbWUgaW5wdXRzLgorCisgICAgICAg
IFRpbWUgem9uZSBjb252ZXJzaW9uIGJlZm9yZSBzZW5kaW5nIHRoZSBkYXRlIGJhY2sgdG8gdGhl
IHdlYiBwcm9jZXNzCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKC1b
V0tEYXRlVGltZVBpY2tlciBzZXREYXRlVGltZVBpY2tlclRvSW5pdGlhbFZhbHVlXSk6CisKKyAg
ICAgICAgVGltZSB6b25lIGNvbnZlcnNpb24gd2hlbiByZXRyaWV2aW5nIHRoZSBkYXRlIGZyb20g
dGhlIHdlYiBwcm9jZXNzIGlzIG5vCisgICAgICAgIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBjb250cm9sQmVnaW5FZGl0aW5nXSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisKIDIwMjEtMDgtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIFBob3RvIHBpY2tlciBhcHBlYXJzIGF0IGluY29ycmVj
dCBsb2NhdGlvbnMgd2hlbiBvcGVuZWQgdXNpbmcgYSB0cmFja3BhZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyNmI4MDZjMzZiYWZjZDcyOTMxNzY0NmM5ZmY2ZGVm
NmI5ZDEzMjdmLi4yYjAwZjkyNmRkZWE2OTdlYmE4MDY0NWM0MTA2MDU4Nzg4ZDBkZmY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODM4LDcgKzgzOCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNhdmVJbWFnZVRvTGlicmFyeShjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYgaW1hZ2VIYW5kbGUpOwogICAgIHZvaWQgZm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQo
Ym9vbCBpc0ZvcndhcmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAg
ICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNO
dW1iZXIoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBkb3VibGUpOwogICAgIHZvaWQg
c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250
ZXh0JiwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNl
KTsKICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiAgICAgdm9pZCBh
cHBsaWNhdGlvbkRpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKaW5kZXggMzU1NmRmN2QyN2U4NmM2ZTg4MzZmZGQ5ZjhlY2NhMDQ1OGE5NTdk
Zi4uM2M2ZTYxZDdlODcwOWFkZjU1YzUyNjc2YTI4MDc5ZjExMGI5ZmJmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aApAQCAtNjcyLDcgKzY3Miw2IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJ
T04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKWFj
Y2Vzc29yeU9wZW47CiAKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzQ29sb3I6
KFVJQ29sb3IgKil2YWx1ZTsKLS0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVt
YmVyOihkb3VibGUpdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6KE5T
U3RyaW5nICopdmFsdWU7CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRl
eDoodWludDMyX3QpaW5kZXggYWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246KGJvb2wpYWxsb3dzTXVs
dGlwbGVTZWxlY3Rpb247CiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50Rm9jdXNlZFdpdGhE
YXRhTGlzdERyb3Bkb3duOihCT09MKXZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjE1YWU2Mzgz
NGU1YWFiMjQxNDY2OWNkZjViY2IwODU0NDI2YjA4Zi4uNzA2OWMyODEyMzVmNzZhYjk1MzQ3NWUz
MTBlNmM4NWYyYTdkY2VhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00ODU4LDEyICs0ODU4LDYgQEAg
c3RhdGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZFdpdGhUb3VjaChXS0NvbnRlbnRWaWV3ICp2aWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2kKICAgICBfcGFnZS0+c2V0SXNTaG93aW5nSW5wdXRWaWV3
Rm9yRm9jdXNlZEVsZW1lbnQoZmFsc2UpOwogfQogCi0tICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcjooZG91YmxlKXZhbHVlCi17Ci0gICAgX3BhZ2UtPnNldEZvY3VzZWRF
bGVtZW50VmFsdWVBc051bWJlcihfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29u
dGV4dCwgdmFsdWUpOwotICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNOdW1i
ZXIgPSB2YWx1ZTsKLX0KLQogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOihOU1N0
cmluZyAqKXZhbHVlCiB7CiAgICAgX3BhZ2UtPnNldEZvY3VzZWRFbGVtZW50VmFsdWUoX2ZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQsIHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDdiMDc5ODU4ZTgx
MWEwODJjNTE4NzAyZDAyMTNiYTliMThlMTU0MDQuLjZmNGRiZTNhMzg3MmI2NzEzMTAyZjk5MTU4
Zjg4NGRlNzQ0ZWI0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtOTY3LDExICs5NjcsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4
dAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50VmFsdWUoY29u
dGV4dCwgdmFsdWUpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRFbGVtZW50
VmFsdWVBc051bWJlcihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgZG91
YmxlIHZhbHVlKQotewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVt
ZW50VmFsdWVBc051bWJlcihjb250ZXh0LCB2YWx1ZSkpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0
aW9uKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZvY3VzZWRFbGVtZW50U2Vs
ZWN0ZWRJbmRleChjb250ZXh0LCBpbmRleCwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRGF0ZVRpbWVJbnB1
dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQppbmRleCA3YmQ1MjdmNTMyY2U2MWNkNzBiM2Q4ZjI4YjBhY2EzNzI4
Y2FiZTNkLi5lNTUyMmFlNWE3NWNlZTcxN2M2NTU0ZGMxMjc5NzVlOGM2MWMzMTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGltZUlucHV0Q29u
dHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tEYXRlVGlt
ZUlucHV0Q29udHJvbC5tbQpAQCAtMjI5LDggKzIyOSw2IEBAIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IGtEYXRlVGltZVBpY2tlclRpbWVDb250cm9sSGVpZ2h0ID0gMTcyOwogPiB7CiAgICAgTlNTdHJp
bmcgKl9mb3JtYXRTdHJpbmc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfaW5pdGlhbFZhbHVl
OwotICAgIE5TVGltZUludGVydmFsIF9pbml0aWFsVmFsdWVBc051bWJlcjsKLSAgICBCT09MIF9z
aG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uOwogICAgIFdLQ29udGVudFZpZXcgKl92aWV3
OwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7CiAgICAgUmV0YWluUHRyPFVJRGF0ZVBp
Y2tlcj4gX2RhdGVQaWNrZXI7CkBAIC0yNTksNiArMjU3LDcgQEAgc3RhdGljIGNvbnN0IENHRmxv
YXQga0RhdGVUaW1lUGlja2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiBzdGF0aWMgTlNTdHJp
bmcgKiBjb25zdCBrRGF0ZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCI7IC8vICIyMDExLTAx
LTI3Ii4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtNb250aEZvcm1hdFN0cmluZyA9IEAieXl5
eS1NTSI7IC8vICIyMDExLTAxIi4KIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtUaW1lRm9ybWF0
U3RyaW5nID0gQCJISDptbSI7IC8vICIxMzo0NSIuCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBr
RGF0ZVRpbWVGb3JtYXRTdHJpbmcgPSBAInl5eXktTU0tZGQnVCdISDptbSI7IC8vICIyMDExLTAx
LTI3VDEzOjQ1Igogc3RhdGljIGNvbnN0IE5TVGltZUludGVydmFsIGtNaWxsaXNlY29uZHNQZXJT
ZWNvbmQgPSAxMDAwOwogCiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250
cm9sTWFyZ2luID0gNjsKQEAgLTI3MCw3ICsyNjksNiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBr
RGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKIAogICAgIF92aWV3ID0gdmlldzsKICAg
ICBfaW50ZXJhY3Rpb25Qb2ludCA9IFtfdmlldyBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbl07Ci0g
ICAgX3Nob3VsZFJlbW92ZVRpbWVab25lSW5mb3JtYXRpb24gPSBOTzsKIAogICAgIHN3aXRjaCAo
dmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlKSB7CiAgICAgY2FzZSBX
ZWJLaXQ6OklucHV0VHlwZTo6RGF0ZToKQEAgLTI4Myw3ICsyODEsNyBAQCBzdGF0aWMgY29uc3Qg
Q0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAgICAgX2Zvcm1h
dFN0cmluZyA9IGtUaW1lRm9ybWF0U3RyaW5nOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YktpdDo6SW5wdXRUeXBlOjpEYXRlVGltZUxvY2FsOgotICAgICAgICBfc2hvdWxkUmVtb3ZlVGlt
ZVpvbmVJbmZvcm1hdGlvbiA9IFlFUzsKKyAgICAgICAgX2Zvcm1hdFN0cmluZyA9IGtEYXRlVGlt
ZUZvcm1hdFN0cmluZzsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJl
YWs7CkBAIC01NTMsMjEgKzU1MSwyMiBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQ
aWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKE5T
SW50ZWdlcilfdGltZVpvbmVPZmZzZXRGcm9tR01UOihOU0RhdGUgKilkYXRlCistIChOU1N0cmlu
ZyAqKV9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0ZXI6KE5TU3RyaW5nICopdmFsdWUKIHsK
LSAgICBpZiAoIV9zaG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uKQotICAgICAgICByZXR1
cm4gMDsKKyAgICBBU1NFUlQoW3ZhbHVlIGxlbmd0aF0pOwogCi0gICAgcmV0dXJuIFtbX2RhdGVQ
aWNrZXIgdGltZVpvbmVdIHNlY29uZHNGcm9tR01URm9yRGF0ZTpkYXRlXTsKLX0KKyAgICAvLyBU
aW1lcyBtYXkgaGF2ZSBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMgaW5mb3JtYXRpb24gd2hpY2gg
d2UganVzdAorICAgIC8vIGlnbm9yZS4gRm9yIGV4YW1wbGU6ICIwMTo1NjoyMC4zOTEiIGlzIHNo
b3J0ZW5lZCB0byBqdXN0ICIwMTo1NiIuCiAKLS0gKE5TU3RyaW5nICopX3Nhbml0aXplSW5wdXRW
YWx1ZUZvckZvcm1hdHRlcjooTlNTdHJpbmcgKil2YWx1ZQotewotICAgIC8vIFRoZSAidGltZSIg
aW5wdXQgdHlwZSBtYXkgaGF2ZSBzZWNvbmRzIGFuZCBtaWxsaXNlY29uZHMgaW5mb3JtYXRpb24g
d2hpY2ggd2UKLSAgICAvLyBqdXN0IGlnbm9yZS4gRm9yIGV4YW1wbGU6ICIwMTo1NjoyMC4zOTEi
IGlzIHNob3J0ZW5lZCB0byBqdXN0ICIwMTo1NiIuCiAgICAgaWYgKF92aWV3LmZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJbnB1dFR5cGU6OlRpbWUpCiAg
ICAgICAgIHJldHVybiBbdmFsdWUgc3Vic3RyaW5nVG9JbmRleDpba1RpbWVGb3JtYXRTdHJpbmcg
bGVuZ3RoXV07CiAKKyAgICBpZiAoX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVt
ZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6RGF0ZVRpbWVMb2NhbCkgeworICAgICAgICBO
U1N0cmluZyAqdGltZVN0cmluZyA9IFtbdmFsdWUgY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5n
OkAiVCJdIG9iamVjdEF0SW5kZXg6MV07CisgICAgICAgIE5TU3RyaW5nICpzYW5pdGl6ZWRUaW1l
U3RyaW5nID0gW3RpbWVTdHJpbmcgc3Vic3RyaW5nVG9JbmRleDpba1RpbWVGb3JtYXRTdHJpbmcg
bGVuZ3RoXV07CisgICAgICAgIHJldHVybiBbdmFsdWUgc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJl
bmNlc09mU3RyaW5nOnRpbWVTdHJpbmcgd2l0aFN0cmluZzpzYW5pdGl6ZWRUaW1lU3RyaW5nXTsK
KyAgICB9CisKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKQEAgLTU3Nyw1MiArNTc2LDI3IEBAIHN0
YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAg
IFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBhZG9wdE5TKFtbTlNE
YXRlRm9ybWF0dGVyIGFsbG9jXSBpbml0XSk7CiAgICAgW2RhdGVGb3JtYXR0ZXIgc2V0VGltZVpv
bmU6W19kYXRlUGlja2VyIHRpbWVab25lXV07CiAgICAgW2RhdGVGb3JtYXR0ZXIgc2V0RGF0ZUZv
cm1hdDpfZm9ybWF0U3RyaW5nXTsKKyAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNl
IHRoYXQgaXMgd2hhdCBIVE1MNSB2YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgW2RhdGVGb3Jt
YXR0ZXIgc2V0TG9jYWxlOmVuZ2xpc2hMb2NhbGUuZ2V0KCldOwogICAgIHJldHVybiBkYXRlRm9y
bWF0dGVyOwogfQogCi0tICh2b2lkKV9kYXRlQ2hhbmdlZFNldEFzTnVtYmVyCi17Ci0gICAgTlNE
YXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwotICAgIFtfdmlldyB1cGRhdGVGb2N1c2Vk
RWxlbWVudFZhbHVlQXNOdW1iZXI6KGRhdGUudGltZUludGVydmFsU2luY2UxOTcwICsgW3NlbGYg
X3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kXTsK
LX0KLQotLSAodm9pZClfZGF0ZUNoYW5nZWRTZXRBc1N0cmluZworLSAodm9pZClfZGF0ZUNoYW5n
ZWQKIHsKLSAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNlIHRoYXQgaXMgd2hhdCBI
VE1MNSB2YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRl
cj4gZGF0ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwogICAgIFtf
dmlldyB1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOltkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21E
YXRlOltfZGF0ZVBpY2tlciBkYXRlXV1dOwogfQogCi0tICh2b2lkKV9kYXRlQ2hhbmdlZAotewot
ICAgIC8vIEludGVybmFsbHksIERPTUhUTUxJbnB1dEVsZW1lbnQgc2V0VmFsdWVBcyogZWFjaCB0
YWtlIGRpZmZlcmVudCB2YWx1ZXMgZm9yCi0gICAgLy8gZGlmZmVyZW50IGRhdGUgdHlwZXMuIEl0
IGlzIHNvbWV0aW1lcyBlYXNpZXIgdG8gc2V0IHRoZSBkYXRlIGluIGRpZmZlcmVudCB3YXlzOgot
ICAgIC8vICAgLSB1c2Ugc2V0VmFsdWVBc1N0cmluZyBmb3IgImRhdGUiLCAibW9udGgiLCBhbmQg
InRpbWUiLgotICAgIC8vICAgLSB1c2Ugc2V0VmFsdWVBc051bWJlciBmb3IgImRhdGV0aW1lLWxv
Y2FsIi4KLSAgICBpZiAoX2Zvcm1hdFN0cmluZykKLSAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2Vk
U2V0QXNTdHJpbmddOwotICAgIGVsc2UKLSAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkU2V0QXNO
dW1iZXJdOwotfQotCiAtICh2b2lkKXNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFsVmFsdWUKIHsK
LSAgICBpZiAoW19pbml0aWFsVmFsdWUgaXNFcXVhbDogQCIiXSkgeworICAgIGlmICghW19pbml0
aWFsVmFsdWUgbGVuZ3RoXSkgewogICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNEYXRl
IGRhdGVdXTsKICAgICAgICAgW3NlbGYgX2RhdGVDaGFuZ2VkXTsKLSAgICB9IGVsc2UgaWYgKF9m
b3JtYXRTdHJpbmcpIHsKLSAgICAgICAgLy8gQ29udmVydCB0aGUgc3RyaW5nIHZhbHVlIHRvIGEg
ZGF0ZSBvYmplY3QgZm9yIHRoZSBmaWVsZHMgd2hlcmUgd2UgaGF2ZSBhIGZvcm1hdCBzdHJpbmcu
Ci0gICAgICAgIFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGRhdGVGb3JtYXR0ZXIgPSBbc2Vs
ZiBkYXRlRm9ybWF0dGVyRm9yUGlja2VyXTsKLSAgICAgICAgTlNEYXRlICpwYXJzZWREYXRlID0g
W2RhdGVGb3JtYXR0ZXIgZGF0ZUZyb21TdHJpbmc6W3NlbGYgX3Nhbml0aXplSW5wdXRWYWx1ZUZv
ckZvcm1hdHRlcjpfaW5pdGlhbFZhbHVlLmdldCgpXV07Ci0gICAgICAgIFtfZGF0ZVBpY2tlciBz
ZXREYXRlOnBhcnNlZERhdGUgPyBwYXJzZWREYXRlIDogW05TRGF0ZSBkYXRlXV07Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgLy8gQ29udmVydCB0aGUgbnVtYmVyIHZhbHVlIHRvIGEgZGF0ZSBvYmpl
Y3QgZm9yIHRoZSBmaWVsZHMgYWZmZWN0ZWQgYnkgdGltZXpvbmVzLgotICAgICAgICBOU1RpbWVJ
bnRlcnZhbCBzZWNvbmRzU2luY2UxOTcwID0gX2luaXRpYWxWYWx1ZUFzTnVtYmVyIC8ga01pbGxp
c2Vjb25kc1BlclNlY29uZDsKLSAgICAgICAgTlNJbnRlZ2VyIHRpbWVab25lT2Zmc2V0ID0gW3Nl
bGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2lu
Y2UxOTcwOnNlY29uZHNTaW5jZTE5NzBdXTsKLSAgICAgICAgTlNUaW1lSW50ZXJ2YWwgYWRqdXN0
ZWRTZWNvbmRzU2luY2UxOTcwID0gc2Vjb25kc1NpbmNlMTk3MCAtIHRpbWVab25lT2Zmc2V0Owot
ICAgICAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFs
U2luY2UxOTcwOmFkanVzdGVkU2Vjb25kc1NpbmNlMTk3MF1dOworICAgICAgICByZXR1cm47CiAg
ICAgfQorCisgICAgTlNEYXRlICpwYXJzZWREYXRlID0gW1tzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQ
aWNrZXJdIGRhdGVGcm9tU3RyaW5nOltzZWxmIF9zYW5pdGl6ZUlucHV0VmFsdWVGb3JGb3JtYXR0
ZXI6X2luaXRpYWxWYWx1ZS5nZXQoKV1dOworICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOnBhcnNl
ZERhdGUgPyBwYXJzZWREYXRlIDogW05TRGF0ZSBkYXRlXV07CiB9CiAKIC0gKFVJVmlldyAqKWNv
bnRyb2xWaWV3CkBAIC02NDIsNyArNjE2LDYgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVU
aW1lUGlja2VyQ29udHJvbE1hcmdpbiA9IDY7CiAgICAgLy8gQ3VycmVudGx5IG5vIHZhbHVlIGZv
ciB0aGUgPGlucHV0Pi4gU3RhcnQgdGhlIHBpY2tlciB3aXRoIHRoZSBjdXJyZW50IHRpbWUuCiAg
ICAgLy8gQWxzbywgdXBkYXRlIHRoZSBhY3R1YWwgPGlucHV0PiB2YWx1ZS4KICAgICBfaW5pdGlh
bFZhbHVlID0gX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi52YWx1ZTsKLSAgICBfaW5p
dGlhbFZhbHVlQXNOdW1iZXIgPSBfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVl
QXNOdW1iZXI7CiAgICAgW3NlbGYgc2V0RGF0ZVRpbWVQaWNrZXJUb0luaXRpYWxWYWx1ZV07CiAK
ICAgICBbc2VsZiBzaG93RGF0ZVRpbWVQaWNrZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDFlNjE0YzczOWVhNTM0ZjkxMzk2MTkxMWNjOTVkN2Zk
YTg4NTNiMTMuLmQxMjMzZmQ1YThkNDBmMzgwYzdhZmEyNWU1OWJmN2Q0MGI4NzI1NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc5Myw3ICs3OTMs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c05leHRGb2N1c2VkRWxlbWVudChib29sIGlzRm9y
d2FyZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGF1dG9maWxsTG9n
aW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNl
dEZvY3VzZWRFbGVtZW50VmFsdWUoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldEZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcihjb25z
dCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGRvdWJsZSk7CiAgICAgdm9pZCBzZXRGb2N1c2Vk
RWxlbWVudFNlbGVjdGVkSW5kZXgoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCB1aW50
MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKTsKICAgICB2b2lkIHNldElz
U2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50KGJvb2wpOwogICAgIGJvb2wgaXNTaG93
aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2lzU2hvd2lu
Z0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBhMGFhNTU0Zjc0OTgy
MDJkMGJiMDZjZjk3NzAxYzI0OTI1NTlkNDM2Li5mOTI2ZWUwMzFlYjcxZGEwZjdjMWNmM2Y3ZGIz
NjRhNDgzOTRmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTk1LDcgKzk1LDYgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRm9jdXNOZXh0Rm9jdXNlZEVsZW1lbnQoYm9vbCBp
c0ZvcndhcmQpIC0+ICgpIEFzeW5jCiAgICAgQXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKFN0cmlu
ZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKQogICAgIFNldEZvY3VzZWRFbGVtZW50VmFsdWUo
c3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQsIFN0cmluZyB2YWx1ZSkKLSAg
ICBTZXRGb2N1c2VkRWxlbWVudFZhbHVlQXNOdW1iZXIoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0IGNvbnRleHQsIGRvdWJsZSB2YWx1ZSkKICAgICBTZXRGb2N1c2VkRWxlbWVudFNlbGVj
dGVkSW5kZXgoc3RydWN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0IGNvbnRleHQsIHVpbnQzMl90
IGluZGV4LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCiAgICAgQXBwbGljYXRpb25XaWxs
UmVzaWduQWN0aXZlKCkKICAgICBBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZChib29sIGlz
U3VzcGVuZGVkVW5kZXJMb2NrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjMzcxNjU0NGIxNTg2ODllMDZkMDFkODRlZmI2
ZjBiZDZlMzgyMzljLi4wY2ExN2FjOTg3OWYyNzc3NDIyZTAyZWJkMjVkMGY4ODMxNThjZWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMTI1NSwxMyArMTI1NSw2IEBAIHZvaWQgV2ViUGFnZTo6c2V0Rm9jdXNlZEVsZW1l
bnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYgY29udGV4dCwgY29uCiAgICAg
ICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5zZXRWYWx1ZSh2YWx1ZSwg
RGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRGb2N1
c2VkRWxlbWVudFZhbHVlQXNOdW1iZXIoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIGNv
bnRleHQsIGRvdWJsZSB2YWx1ZSkKLXsKLSAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudCA9IGVs
ZW1lbnRGb3JDb250ZXh0KGNvbnRleHQpOwotICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihl
bGVtZW50KSkKLSAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLnNl
dFZhbHVlQXNOdW1iZXIodmFsdWUsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7Ci19Ci0K
IHZvaWQgV2ViUGFnZTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnRDb250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011
bHRpcGxlU2VsZWN0aW9uKQogewogICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gZWxlbWVu
dEZvckNvbnRleHQoY29udGV4dCk7Cg==
</data>
<flag name="review"
          id="460218"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437194</attachid>
            <date>2021-09-02 14:09:21 -0700</date>
            <delta_ts>2021-09-02 14:49:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229773-20210902170920.patch</filename>
            <type>text/plain</type>
            <size>18504</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYyYTZiZDRjY2QwYTNh
ZWU4Zjg5OTcyNzE0YTQwMzVjZmVlNWM0ZS4uNTk3NGMwZmJjNjcxOWYzNDFkZTYwODkxYWE1YjU0
ZmRjYWU4Y2RkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTAyICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTaW1wbGlm
eSBkYXRlIHBpY2tlciBsb2dpYyBmb3IgZGF0ZXRpbWUtbG9jYWwgaW5wdXRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3NzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHBsYXRmb3JtL0RhdGVDb21wb25l
bnRzLmNwcDoKKworICAgICAgICBBZGQgY29tbWVudHMgcG9pbnRpbmcgdG8gdGhlIHNwZWNpZmlj
YXRpb24gZm9yIHBhcnNpbmcgZGF0ZS90aW1lIGluZm9ybWF0aW9uLgorCiAyMDIxLTA4LTMxICBB
ZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBpZnJhbWVzIHNo
b3VsZCBnZXQgYW4gb3BhcXVlIGJhY2tncm91bmQgd2hlbiB0aGUgZW1iZWRkaW5nIGVsZW1lbnQg
YW5kIGVtYmVkZGVkIHJvb3QgY29sb3Itc2NoZW1lcyBkbyBub3QgbWF0Y2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YjlkMGI0Njk2N2Y3ZTIyNTdmYzVhMDBkMDdhOTViNTc1OTM5YTY5Ny4uNDVlZGJjNDEwMDE5Mzc1
ZTc1OGM0ZGVkOTMxNDE2YWUzYTEwZWE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAy
MS0wOS0wMiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPU10gU2ltcGxpZnkgZGF0ZSBwaWNrZXIgbG9naWMgZm9yIGRhdGV0aW1lLWxvY2FsIGlucHV0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5Nzcz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ3VycmVudGx5
LCB0aGUgZGF0ZSBwaWNrZXIgbG9naWMgZm9yIGdldHRpbmcvc2V0dGluZyB0aGUgdmFsdWUgb2Yg
YQorICAgICAgICBkYXRldGltZS1sb2NhbCBpbnB1dCByZWxpZXMgb24gdGhlIG51bWVyaWMgdmFs
dWUgb2YgaW5wdXQuIFRoaXMKKyAgICAgICAgbG9naWMgZGlmZmVycyBmcm9tIGxvZ2ljIGZvciBk
YXRlLCB0aW1lLCBhbmQgbW9udGggaW5wdXRzLCB3aGVyZSB3ZSB1c2UKKyAgICAgICAgdGhlIHN0
cmluZyB2YWx1ZSBvZiB0aGUgaW5wdXQuIFRoaXMgcGF0Y2ggc2ltcGxpZmllcyB0aGUgY29kZSBi
eSB1c2luZworICAgICAgICBzdHJpbmcgdmFsdWVzIGZvciBhbGwgdGhlIGRhdGUvdGltZSBpbnB1
dCB0eXBlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tEYXRlVGltZUlucHV0Q29udHJvbC5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tl
ciBpbml0V2l0aFZpZXc6ZGF0ZVBpY2tlck1vZGU6XSk6CisKKyAgICAgICAgU2V0IHRoZSBmb3Jt
YXQgc3RyaW5nIGZvciBkYXRldGltZS1sb2NhbCBpbnB1dHMsIG1hdGNoaW5nIHRoZSBzcGVjLgor
CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgX3Nhbml0aXplSW5wdXRWYWx1ZUZvckZvcm1h
dHRlcjpdKToKKworICAgICAgICBTYW5pdGl6ZSBkYXRldGltZS1sb2NhbCB2YWx1ZXMgdG8gcmVt
b3ZlIHNlY29uZHMgYW5kIG1pbGxpc2Vjb25kcworICAgICAgICBpbmZvcm1hdGlvbi4gVUlLaXQg
ZG9lcyBub3Qgc3VwcG9ydCBhbnl0aGluZyBiZXlvbmQgbWludXRlIGdyYW51bGFyaXR5LgorCisg
ICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIgZGF0ZUZvcm1hdHRlckZvclBpY2tlcl0pOgorICAg
ICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIF9kYXRlQ2hhbmdlZF0pOgorCisgICAgICAgIEFsd2F5
cyB1c2Ugc2V0VmFsdWVBc1N0cmluZywgbWF0Y2hpbmcgdGhlIG90aGVyIGRhdGUvdGltZSBpbnB1
dHMuCisKKyAgICAgICAgVGltZSB6b25lIGNvbnZlcnNpb24gYmVmb3JlIHNlbmRpbmcgdGhlIGRh
dGUgYmFjayB0byB0aGUgd2ViIHByb2Nlc3MKKyAgICAgICAgaXMgbm8gbG9uZ2VyIG5lZWRlZC4K
KworICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHNldERhdGVUaW1lUGlja2VyVG9Jbml0aWFs
VmFsdWVdKToKKworICAgICAgICBUaW1lIHpvbmUgY29udmVyc2lvbiB3aGVuIHJldHJpZXZpbmcg
dGhlIGRhdGUgZnJvbSB0aGUgd2ViIHByb2Nlc3MgaXMgbm8KKyAgICAgICAgbG9uZ2VyIG5lZWRl
ZC4KKworICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGNvbnRyb2xCZWdpbkVkaXRpbmddKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKwogMjAyMS0wOC0yNiAgQWRpdHlhIEtlZXJ0aGkg
IDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUGhvdG8gcGlja2VyIGFwcGVh
cnMgYXQgaW5jb3JyZWN0IGxvY2F0aW9ucyB3aGVuIG9wZW5lZCB1c2luZyBhIHRyYWNrcGFkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAKaW5kZXggYzA2YjQ5YzNm
NzBjNzM3ZDJiYzNjOTlkYTEwYzg2N2I2MjA5MzQ0MC4uZWFiMWY0MDQzNWNlNjQwMDNiMGRhM2M2
YzI4ZTg3MTBlMjU5OGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0
ZUNvbXBvbmVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25l
bnRzLmNwcApAQCAtMTM2LDYgKzEzNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGludD4gcGFyc2VJbnRXaXRoaW5MaW1pdHMoCiAgICAg
cmV0dXJuIHZhbHVlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI21vbnRocwogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gYm9vbCBEYXRlQ29tcG9uZW50czo6cGFyc2VZZWFyKFN0cmluZ1BhcnNp
bmdCdWZmZXI8Q2hhcmFjdGVyVHlwZT4mIGJ1ZmZlcikKIHsKICAgICB1bnNpZ25lZCBkaWdpdHNM
ZW5ndGggPSBjb3VudERpZ2l0cyhidWZmZXIpOwpAQCAtMzM3LDYgKzMzOCw3IEBAIGJvb2wgRGF0
ZUNvbXBvbmVudHM6OmFkZE1pbnV0ZShpbnQgbWludXRlKQogICAgIHJldHVybiB0cnVlOwogfQog
CisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jb21tb24tbWljcm9z
eW50YXhlcy5odG1sI3RpbWUtem9uZXMKIC8vIFBhcnNlcyBhIHRpbWV6b25lIHBhcnQsIGFuZCBh
ZGp1c3QgeWVhciwgbW9udGgsIG1vbnRoRGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlz
ZWNvbmQuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25l
bnRzOjpwYXJzZVRpbWVab25lKFN0cmluZ1BhcnNpbmdCdWZmZXI8Q2hhcmFjdGVyVHlwZT4mIGJ1
ZmZlcikKIHsKQEAgLTM3Myw2ICszNzUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVRpbWVab25lKFN0cmluZ1BhcnNpbgogICAg
IHJldHVybiB0cnVlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI21vbnRocwogdGVtcGxhdGU8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4gYm9vbCBEYXRlQ29tcG9uZW50czo6cGFyc2VNb250aChTdHJpbmdQYXJz
aW5nQnVmZmVyPENoYXJhY3RlclR5cGU+JiBidWZmZXIpCiB7CiAgICAgaWYgKCFwYXJzZVllYXIo
YnVmZmVyKSkKQEAgLTM5NCw2ICszOTcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJU
eXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZU1vbnRoKFN0cmluZ1BhcnNpbmdCdQogICAg
IHJldHVybiB0cnVlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI2RhdGVzCiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZURhdGUoU3RyaW5nUGFyc2lu
Z0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYgYnVmZmVyKQogewogICAgIGlmICghcGFyc2VNb250aChi
dWZmZXIpKQpAQCAtNDE0LDYgKzQxOCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlRGF0ZShTdHJpbmdQYXJzaW5nQnVmCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL2NvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjd2Vla3MKIHRlbXBsYXRlPHR5cGVuYW1lIENo
YXJhY3RlclR5cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlV2VlayhTdHJpbmdQYXJzaW5n
QnVmZmVyPENoYXJhY3RlclR5cGU+JiBidWZmZXIpCiB7CiAgICAgaWYgKCFwYXJzZVllYXIoYnVm
ZmVyKSkKQEAgLTQzNiw2ICs0NDEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBl
PiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVdlZWsoU3RyaW5nUGFyc2luZ0J1ZgogICAgIHJl
dHVybiB0cnVlOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI3RpbWVzCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVRpbWUoU3RyaW5nUGFyc2luZ0J1
ZmZlcjxDaGFyYWN0ZXJUeXBlPiYgYnVmZmVyKQogewogICAgIGF1dG8gaG91ciA9IHBhcnNlSW50
V2l0aGluTGltaXRzKGJ1ZmZlciwgMiwgMCwgMjMpOwpAQCAtNDk2LDYgKzUwMiw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlVGlt
ZShTdHJpbmdQYXJzaW5nQnVmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2NvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjbG9j
YWwtZGF0ZXMtYW5kLXRpbWVzCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29s
IERhdGVDb21wb25lbnRzOjpwYXJzZURhdGVUaW1lTG9jYWwoU3RyaW5nUGFyc2luZ0J1ZmZlcjxD
aGFyYWN0ZXJUeXBlPiYgYnVmZmVyKQogewogICAgIGlmICghcGFyc2VEYXRlKGJ1ZmZlcikpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI2YjgwNmMzNmJhZmNkNzI5
MzE3NjQ2YzlmZjZkZWY2YjlkMTMyN2YuLjJiMDBmOTI2ZGRlYTY5N2ViYTgwNjQ1YzQxMDYwNTg3
ODhkMGRmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04Mzgs
NyArODM4LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZUltYWdlVG9MaWJyYXJ5KGNvbnN0IFNo
YXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpbWFnZUhhbmRsZSk7CiAgICAgdm9pZCBmb2N1c05leHRG
b2N1c2VkRWxlbWVudChib29sIGlzRm9yd2FyZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
ID0gW10geyB9KTsKICAgICB2b2lkIHNldEZvY3VzZWRFbGVtZW50VmFsdWUoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldEZvY3VzZWRF
bGVtZW50VmFsdWVBc051bWJlcihjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGRvdWJs
ZSk7CiAgICAgdm9pZCBzZXRGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXgoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudENvbnRleHQmLCB1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2Vs
ZWN0aW9uID0gZmFsc2UpOwogICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQo
KTsKICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRlcmlu
Z0JhY2tncm91bmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCAzNTU2ZGY3ZDI3ZTg2YzZlODgzNmZkZDlm
OGVjY2EwNDU4YTk1N2RmLi4zYzZlNjFkN2U4NzA5YWRmNTVjNTI2NzZhMjgwNzlmMTEwYjlmYmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCkBAIC02NzIsNyArNjcyLDYgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NP
TlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklF
VykKIC0gKHZvaWQpYWNjZXNzb3J5T3BlbjsKIAogLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVu
dFZhbHVlQXNDb2xvcjooVUlDb2xvciAqKXZhbHVlOwotLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxl
bWVudFZhbHVlQXNOdW1iZXI6KGRvdWJsZSl2YWx1ZTsKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVs
ZW1lbnRWYWx1ZTooTlNTdHJpbmcgKil2YWx1ZTsKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1l
bnRTZWxlY3RlZEluZGV4Oih1aW50MzJfdClpbmRleCBhbGxvd3NNdWx0aXBsZVNlbGVjdGlvbjoo
Ym9vbClhbGxvd3NNdWx0aXBsZVNlbGVjdGlvbjsKIC0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1l
bnRGb2N1c2VkV2l0aERhdGFMaXN0RHJvcGRvd246KEJPT0wpdmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCAyMTVhZTYzODM0ZTVhYWIyNDE0NjY5Y2RmNWJjYjA4NTQ0MjZiMDhmLi43MDY5YzI4MTIz
NWY3NmFiOTUzNDc1ZTMxMGU2Yzg1ZjJhN2RjZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ4NTgs
MTIgKzQ4NTgsNiBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkV2l0aFRvdWNoKFdLQ29u
dGVudFZpZXcgKnZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFBvaQogICAgIF9wYWdlLT5zZXRJc1No
b3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudChmYWxzZSk7CiB9CiAKLS0gKHZvaWQpdXBk
YXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyOihkb3VibGUpdmFsdWUKLXsKLSAgICBfcGFn
ZS0+c2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uLmVsZW1lbnRDb250ZXh0LCB2YWx1ZSk7Ci0gICAgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24udmFsdWVBc051bWJlciA9IHZhbHVlOwotfQotCiAtICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVt
ZW50VmFsdWU6KE5TU3RyaW5nICopdmFsdWUKIHsKICAgICBfcGFnZS0+c2V0Rm9jdXNlZEVsZW1l
bnRWYWx1ZShfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCwgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggN2IwNzk4NThlODExYTA4MmM1MTg3MDJkMDIxM2JhOWIxOGUxNTQwNC4uNmY0ZGJlM2EzODcy
YjY3MTMxMDJmOTkxNThmODg0ZGU3NDRlYjRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC05NjcsMTEgKzk2Nyw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0JiBjb250ZXh0CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVs
ZW1lbnRWYWx1ZShjb250ZXh0LCB2YWx1ZSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0
Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
JiBjb250ZXh0LCBkb3VibGUgdmFsdWUpCi17Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKGNvbnRleHQsIHZhbHVlKSk7Ci19Ci0KIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXgoY29uc3QgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQmIGNvbnRleHQsIHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93
TXVsdGlwbGVTZWxlY3Rpb24pCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9j
dXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGNvbnRleHQsIGluZGV4LCBhbGxvd011bHRpcGxlU2Vs
ZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tEYXRlVGltZUlucHV0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0RhdGVUaW1lSW5wdXRDb250cm9sLm1tCmluZGV4IDdiZDUyN2Y1MzJjZTYxY2Q3MGIz
ZDhmMjhiMGFjYTM3MjhjYWJlM2QuLmU1NTIyYWU1YTc1Y2VlNzE3YzY1NTRkYzEyNzk3NWU4YzYx
YzMxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Rh
dGVUaW1lSW5wdXRDb250cm9sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0RhdGVUaW1lSW5wdXRDb250cm9sLm1tCkBAIC0yMjksOCArMjI5LDYgQEAgc3RhdGlj
IGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2VyVGltZUNvbnRyb2xIZWlnaHQgPSAxNzI7CiA+
IHsKICAgICBOU1N0cmluZyAqX2Zvcm1hdFN0cmluZzsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+
IF9pbml0aWFsVmFsdWU7Ci0gICAgTlNUaW1lSW50ZXJ2YWwgX2luaXRpYWxWYWx1ZUFzTnVtYmVy
OwotICAgIEJPT0wgX3Nob3VsZFJlbW92ZVRpbWVab25lSW5mb3JtYXRpb247CiAgICAgV0tDb250
ZW50VmlldyAqX3ZpZXc7CiAgICAgQ0dQb2ludCBfaW50ZXJhY3Rpb25Qb2ludDsKICAgICBSZXRh
aW5QdHI8VUlEYXRlUGlja2VyPiBfZGF0ZVBpY2tlcjsKQEAgLTI1OSw2ICsyNTcsNyBAQCBzdGF0
aWMgY29uc3QgQ0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJUaW1lQ29udHJvbEhlaWdodCA9IDE3MjsK
IHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGtEYXRlRm9ybWF0U3RyaW5nID0gQCJ5eXl5LU1NLWRk
IjsgLy8gIjIwMTEtMDEtMjciLgogc3RhdGljIE5TU3RyaW5nICogY29uc3Qga01vbnRoRm9ybWF0
U3RyaW5nID0gQCJ5eXl5LU1NIjsgLy8gIjIwMTEtMDEiLgogc3RhdGljIE5TU3RyaW5nICogY29u
c3Qga1RpbWVGb3JtYXRTdHJpbmcgPSBAIkhIOm1tIjsgLy8gIjEzOjQ1Ii4KK3N0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IGtEYXRlVGltZUZvcm1hdFN0cmluZyA9IEAieXl5eS1NTS1kZCdUJ0hIOm1t
IjsgLy8gIjIwMTEtMDEtMjdUMTM6NDUiCiBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwga01p
bGxpc2Vjb25kc1BlclNlY29uZCA9IDEwMDA7CiAKIHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRl
VGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwpAQCAtMjcwLDcgKzI2OSw2IEBAIHN0YXRpYyBj
b25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogCiAgICAgX3Zp
ZXcgPSB2aWV3OwogICAgIF9pbnRlcmFjdGlvblBvaW50ID0gW192aWV3IGxhc3RJbnRlcmFjdGlv
bkxvY2F0aW9uXTsKLSAgICBfc2hvdWxkUmVtb3ZlVGltZVpvbmVJbmZvcm1hdGlvbiA9IE5POwog
CiAgICAgc3dpdGNoICh2aWV3LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUp
IHsKICAgICBjYXNlIFdlYktpdDo6SW5wdXRUeXBlOjpEYXRlOgpAQCAtMjgzLDcgKzI4MSw3IEBA
IHN0YXRpYyBjb25zdCBDR0Zsb2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2Owog
ICAgICAgICBfZm9ybWF0U3RyaW5nID0ga1RpbWVGb3JtYXRTdHJpbmc7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2ViS2l0OjpJbnB1dFR5cGU6OkRhdGVUaW1lTG9jYWw6Ci0gICAgICAgIF9z
aG91bGRSZW1vdmVUaW1lWm9uZUluZm9ybWF0aW9uID0gWUVTOworICAgICAgICBfZm9ybWF0U3Ry
aW5nID0ga0RhdGVUaW1lRm9ybWF0U3RyaW5nOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBicmVhazsKQEAgLTU1MywyMSArNTUxLDIyIEBAIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IGtEYXRlVGltZVBpY2tlckNvbnRyb2xNYXJnaW4gPSA2OwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIAotLSAoTlNJbnRlZ2VyKV90aW1lWm9uZU9mZnNldEZyb21HTVQ6KE5TRGF0ZSAqKWRh
dGUKKy0gKE5TU3RyaW5nICopX3Nhbml0aXplSW5wdXRWYWx1ZUZvckZvcm1hdHRlcjooTlNTdHJp
bmcgKil2YWx1ZQogewotICAgIGlmICghX3Nob3VsZFJlbW92ZVRpbWVab25lSW5mb3JtYXRpb24p
Ci0gICAgICAgIHJldHVybiAwOworICAgIEFTU0VSVChbdmFsdWUgbGVuZ3RoXSk7CiAKLSAgICBy
ZXR1cm4gW1tfZGF0ZVBpY2tlciB0aW1lWm9uZV0gc2Vjb25kc0Zyb21HTVRGb3JEYXRlOmRhdGVd
OwotfQorICAgIC8vIFRpbWVzIG1heSBoYXZlIHNlY29uZHMgYW5kIG1pbGxpc2Vjb25kcyBpbmZv
cm1hdGlvbiB3aGljaCB3ZSBqdXN0CisgICAgLy8gaWdub3JlLiBGb3IgZXhhbXBsZTogIjAxOjU2
OjIwLjM5MSIgaXMgc2hvcnRlbmVkIHRvIGp1c3QgIjAxOjU2Ii4KIAotLSAoTlNTdHJpbmcgKilf
c2FuaXRpemVJbnB1dFZhbHVlRm9yRm9ybWF0dGVyOihOU1N0cmluZyAqKXZhbHVlCi17Ci0gICAg
Ly8gVGhlICJ0aW1lIiBpbnB1dCB0eXBlIG1heSBoYXZlIHNlY29uZHMgYW5kIG1pbGxpc2Vjb25k
cyBpbmZvcm1hdGlvbiB3aGljaCB3ZQotICAgIC8vIGp1c3QgaWdub3JlLiBGb3IgZXhhbXBsZTog
IjAxOjU2OjIwLjM5MSIgaXMgc2hvcnRlbmVkIHRvIGp1c3QgIjAxOjU2Ii4KICAgICBpZiAoX3Zp
ZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0
VHlwZTo6VGltZSkKICAgICAgICAgcmV0dXJuIFt2YWx1ZSBzdWJzdHJpbmdUb0luZGV4OltrVGlt
ZUZvcm1hdFN0cmluZyBsZW5ndGhdXTsKIAorICAgIGlmIChfdmlldy5mb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpEYXRlVGltZUxvY2Fs
KSB7CisgICAgICAgIE5TU3RyaW5nICp0aW1lU3RyaW5nID0gW1t2YWx1ZSBjb21wb25lbnRzU2Vw
YXJhdGVkQnlTdHJpbmc6QCJUIl0gb2JqZWN0QXRJbmRleDoxXTsKKyAgICAgICAgTlNTdHJpbmcg
KnNhbml0aXplZFRpbWVTdHJpbmcgPSBbdGltZVN0cmluZyBzdWJzdHJpbmdUb0luZGV4OltrVGlt
ZUZvcm1hdFN0cmluZyBsZW5ndGhdXTsKKyAgICAgICAgcmV0dXJuIFt2YWx1ZSBzdHJpbmdCeVJl
cGxhY2luZ09jY3VycmVuY2VzT2ZTdHJpbmc6dGltZVN0cmluZyB3aXRoU3RyaW5nOnNhbml0aXpl
ZFRpbWVTdHJpbmddOworICAgIH0KKwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApAQCAtNTc3LDUy
ICs1NzYsMjcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQga0RhdGVUaW1lUGlja2VyQ29udHJvbE1h
cmdpbiA9IDY7CiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZGF0ZUZvcm1hdHRlciA9
IGFkb3B0TlMoW1tOU0RhdGVGb3JtYXR0ZXIgYWxsb2NdIGluaXRdKTsKICAgICBbZGF0ZUZvcm1h
dHRlciBzZXRUaW1lWm9uZTpbX2RhdGVQaWNrZXIgdGltZVpvbmVdXTsKICAgICBbZGF0ZUZvcm1h
dHRlciBzZXREYXRlRm9ybWF0Ol9mb3JtYXRTdHJpbmddOworICAgIC8vIEZvcmNlIEVuZ2xpc2gg
bG9jYWxlIGJlY2F1c2UgdGhhdCBpcyB3aGF0IEhUTUw1IHZhbHVlIHBhcnNpbmcgZXhwZWN0cy4K
ICAgICBbZGF0ZUZvcm1hdHRlciBzZXRMb2NhbGU6ZW5nbGlzaExvY2FsZS5nZXQoKV07CiAgICAg
cmV0dXJuIGRhdGVGb3JtYXR0ZXI7CiB9CiAKLS0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNOdW1i
ZXIKLXsKLSAgICBOU0RhdGUgKmRhdGUgPSBbX2RhdGVQaWNrZXIgZGF0ZV07Ci0gICAgW192aWV3
IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcjooZGF0ZS50aW1lSW50ZXJ2YWxTaW5j
ZTE5NzAgKyBbc2VsZiBfdGltZVpvbmVPZmZzZXRGcm9tR01UOmRhdGVdKSAqIGtNaWxsaXNlY29u
ZHNQZXJTZWNvbmRdOwotfQotCi0tICh2b2lkKV9kYXRlQ2hhbmdlZFNldEFzU3RyaW5nCistICh2
b2lkKV9kYXRlQ2hhbmdlZAogewotICAgIC8vIEZvcmNlIEVuZ2xpc2ggbG9jYWxlIGJlY2F1c2Ug
dGhhdCBpcyB3aGF0IEhUTUw1IHZhbHVlIHBhcnNpbmcgZXhwZWN0cy4KICAgICBSZXRhaW5QdHI8
TlNEYXRlRm9ybWF0dGVyPiBkYXRlRm9ybWF0dGVyID0gW3NlbGYgZGF0ZUZvcm1hdHRlckZvclBp
Y2tlcl07CiAgICAgW192aWV3IHVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWU6W2RhdGVGb3JtYXR0
ZXIgc3RyaW5nRnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXV07CiB9CiAKLS0gKHZvaWQpX2Rh
dGVDaGFuZ2VkCi17Ci0gICAgLy8gSW50ZXJuYWxseSwgRE9NSFRNTElucHV0RWxlbWVudCBzZXRW
YWx1ZUFzKiBlYWNoIHRha2UgZGlmZmVyZW50IHZhbHVlcyBmb3IKLSAgICAvLyBkaWZmZXJlbnQg
ZGF0ZSB0eXBlcy4gSXQgaXMgc29tZXRpbWVzIGVhc2llciB0byBzZXQgdGhlIGRhdGUgaW4gZGlm
ZmVyZW50IHdheXM6Ci0gICAgLy8gICAtIHVzZSBzZXRWYWx1ZUFzU3RyaW5nIGZvciAiZGF0ZSIs
ICJtb250aCIsIGFuZCAidGltZSIuCi0gICAgLy8gICAtIHVzZSBzZXRWYWx1ZUFzTnVtYmVyIGZv
ciAiZGF0ZXRpbWUtbG9jYWwiLgotICAgIGlmIChfZm9ybWF0U3RyaW5nKQotICAgICAgICBbc2Vs
ZiBfZGF0ZUNoYW5nZWRTZXRBc1N0cmluZ107Ci0gICAgZWxzZQotICAgICAgICBbc2VsZiBfZGF0
ZUNoYW5nZWRTZXRBc051bWJlcl07Ci19Ci0KIC0gKHZvaWQpc2V0RGF0ZVRpbWVQaWNrZXJUb0lu
aXRpYWxWYWx1ZQogewotICAgIGlmIChbX2luaXRpYWxWYWx1ZSBpc0VxdWFsOiBAIiJdKSB7Cisg
ICAgaWYgKCFbX2luaXRpYWxWYWx1ZSBsZW5ndGhdKSB7CiAgICAgICAgIFtfZGF0ZVBpY2tlciBz
ZXREYXRlOltOU0RhdGUgZGF0ZV1dOwogICAgICAgICBbc2VsZiBfZGF0ZUNoYW5nZWRdOwotICAg
IH0gZWxzZSBpZiAoX2Zvcm1hdFN0cmluZykgewotICAgICAgICAvLyBDb252ZXJ0IHRoZSBzdHJp
bmcgdmFsdWUgdG8gYSBkYXRlIG9iamVjdCBmb3IgdGhlIGZpZWxkcyB3aGVyZSB3ZSBoYXZlIGEg
Zm9ybWF0IHN0cmluZy4KLSAgICAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZGF0ZUZv
cm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwotICAgICAgICBOU0RhdGUg
KnBhcnNlZERhdGUgPSBbZGF0ZUZvcm1hdHRlciBkYXRlRnJvbVN0cmluZzpbc2VsZiBfc2FuaXRp
emVJbnB1dFZhbHVlRm9yRm9ybWF0dGVyOl9pbml0aWFsVmFsdWUuZ2V0KCldXTsKLSAgICAgICAg
W19kYXRlUGlja2VyIHNldERhdGU6cGFyc2VkRGF0ZSA/IHBhcnNlZERhdGUgOiBbTlNEYXRlIGRh
dGVdXTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBDb252ZXJ0IHRoZSBudW1iZXIgdmFsdWUg
dG8gYSBkYXRlIG9iamVjdCBmb3IgdGhlIGZpZWxkcyBhZmZlY3RlZCBieSB0aW1lem9uZXMuCi0g
ICAgICAgIE5TVGltZUludGVydmFsIHNlY29uZHNTaW5jZTE5NzAgPSBfaW5pdGlhbFZhbHVlQXNO
dW1iZXIgLyBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kOwotICAgICAgICBOU0ludGVnZXIgdGltZVpv
bmVPZmZzZXQgPSBbc2VsZiBfdGltZVpvbmVPZmZzZXRGcm9tR01UOltOU0RhdGUgZGF0ZVdpdGhU
aW1lSW50ZXJ2YWxTaW5jZTE5NzA6c2Vjb25kc1NpbmNlMTk3MF1dOwotICAgICAgICBOU1RpbWVJ
bnRlcnZhbCBhZGp1c3RlZFNlY29uZHNTaW5jZTE5NzAgPSBzZWNvbmRzU2luY2UxOTcwIC0gdGlt
ZVpvbmVPZmZzZXQ7Ci0gICAgICAgIFtfZGF0ZVBpY2tlciBzZXREYXRlOltOU0RhdGUgZGF0ZVdp
dGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6YWRqdXN0ZWRTZWNvbmRzU2luY2UxOTcwXV07CisgICAg
ICAgIHJldHVybjsKICAgICB9CisKKyAgICBOU0RhdGUgKnBhcnNlZERhdGUgPSBbW3NlbGYgZGF0
ZUZvcm1hdHRlckZvclBpY2tlcl0gZGF0ZUZyb21TdHJpbmc6W3NlbGYgX3Nhbml0aXplSW5wdXRW
YWx1ZUZvckZvcm1hdHRlcjpfaW5pdGlhbFZhbHVlLmdldCgpXV07CisgICAgW19kYXRlUGlja2Vy
IHNldERhdGU6cGFyc2VkRGF0ZSA/IHBhcnNlZERhdGUgOiBbTlNEYXRlIGRhdGVdXTsKIH0KIAog
LSAoVUlWaWV3ICopY29udHJvbFZpZXcKQEAgLTY0Miw3ICs2MTYsNiBAQCBzdGF0aWMgY29uc3Qg
Q0dGbG9hdCBrRGF0ZVRpbWVQaWNrZXJDb250cm9sTWFyZ2luID0gNjsKICAgICAvLyBDdXJyZW50
bHkgbm8gdmFsdWUgZm9yIHRoZSA8aW5wdXQ+LiBTdGFydCB0aGUgcGlja2VyIHdpdGggdGhlIGN1
cnJlbnQgdGltZS4KICAgICAvLyBBbHNvLCB1cGRhdGUgdGhlIGFjdHVhbCA8aW5wdXQ+IHZhbHVl
LgogICAgIF9pbml0aWFsVmFsdWUgPSBfdmlldy5mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZh
bHVlOwotICAgIF9pbml0aWFsVmFsdWVBc051bWJlciA9IF92aWV3LmZvY3VzZWRFbGVtZW50SW5m
b3JtYXRpb24udmFsdWVBc051bWJlcjsKICAgICBbc2VsZiBzZXREYXRlVGltZVBpY2tlclRvSW5p
dGlhbFZhbHVlXTsKIAogICAgIFtzZWxmIHNob3dEYXRlVGltZVBpY2tlcl07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWU2MTRjNzM5ZWE1MzRmOTEz
OTYxOTExY2M5NWQ3ZmRhODg1M2IxMy4uZDEyMzNmZDVhOGQ0MGYzODBjN2FmYTI1ZTU5YmY3ZDQw
Yjg3MjU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtNzkzLDcgKzc5Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvY3VzTmV4dEZvY3VzZWRFbGVt
ZW50KGJvb2wgaXNGb3J3YXJkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgYXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgc2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZShjb25zdCBXZWJDb3JlOjpFbGVtZW50
Q29udGV4dCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0Rm9jdXNlZEVsZW1lbnRWYWx1
ZUFzTnVtYmVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgZG91YmxlKTsKICAgICB2
b2lkIHNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleChjb25zdCBXZWJDb3JlOjpFbGVtZW50
Q29udGV4dCYsIHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pOwog
ICAgIHZvaWQgc2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQoYm9vbCk7CiAg
ICAgYm9vbCBpc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNTaG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IGEwYWE1NTRmNzQ5ODIwMmQwYmIwNmNmOTc3MDFjMjQ5MjU1OWQ0MzYuLmY5MjZlZTAzMWViNzFk
YTBmN2MxY2YzZjdkYjM2NGE0ODM5NGZhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtOTUsNyArOTUsNiBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBGb2N1c05leHRGb2N1c2Vk
RWxlbWVudChib29sIGlzRm9yd2FyZCkgLT4gKCkgQXN5bmMKICAgICBBdXRvZmlsbExvZ2luQ3Jl
ZGVudGlhbHMoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCiAgICAgU2V0Rm9jdXNl
ZEVsZW1lbnRWYWx1ZShzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgU3Ry
aW5nIHZhbHVlKQotICAgIFNldEZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcihzdHJ1Y3QgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQgY29udGV4dCwgZG91YmxlIHZhbHVlKQogICAgIFNldEZvY3Vz
ZWRFbGVtZW50U2VsZWN0ZWRJbmRleChzdHJ1Y3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQgY29u
dGV4dCwgdWludDMyX3QgaW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikKICAgICBB
cHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogICAgIEFwcGxpY2F0aW9uRGlkRW50ZXJCYWNr
Z3JvdW5kKGJvb2wgaXNTdXNwZW5kZWRVbmRlckxvY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGMzNzE2NTQ0YjE1ODY4
OWUwNmQwMWQ4NGVmYjZmMGJkNmUzODIzOWMuLjBjYTE3YWM5ODc5ZjI3Nzc0MjJlMDJlYmQyNWQw
Zjg4MzE1OGNlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMjU1LDEzICsxMjU1LDYgQEAgdm9pZCBXZWJQYWdlOjpz
ZXRGb2N1c2VkRWxlbWVudFZhbHVlKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiBjb250
ZXh0LCBjb24KICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLnNl
dFZhbHVlKHZhbHVlLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOwogfQogCi12b2lkIFdl
YlBhZ2U6OnNldEZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcihjb25zdCBXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dCYgY29udGV4dCwgZG91YmxlIHZhbHVlKQotewotICAgIFJlZlB0cjxFbGVtZW50
PiBlbGVtZW50ID0gZWxlbWVudEZvckNvbnRleHQoY29udGV4dCk7Ci0gICAgaWYgKGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQotICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50
PigqZWxlbWVudCkuc2V0VmFsdWVBc051bWJlcih2YWx1ZSwgRGlzcGF0Y2hJbnB1dEFuZENoYW5n
ZUV2ZW50KTsKLX0KLQogdm9pZCBXZWJQYWdlOjpzZXRGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5k
ZXgoY29uc3QgV2ViQ29yZTo6RWxlbWVudENvbnRleHQmIGNvbnRleHQsIHVpbnQzMl90IGluZGV4
LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCiB7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IGVs
ZW1lbnQgPSBlbGVtZW50Rm9yQ29udGV4dChjb250ZXh0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>