<?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>160821</bug_id>
          
          <creation_ts>2016-08-12 14:29:02 -0700</creation_ts>
          <short_desc>Rename DocumentLoadTiming and ResourceLoadTiming</short_desc>
          <delta_ts>2016-08-12 15:55:03 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Johan K. Jensen">jj</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jj</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219706</commentid>
    <comment_count>0</comment_count>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-12 14:29:02 -0700</bug_when>
    <thetext>Rename ResourceLoadTiming to reflect that it only has timing about the network request.
Rename DocumentLoadTiming to handle generic timing information for both the main document and subresources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219719</commentid>
    <comment_count>1</comment_count>
      <attachid>285954</attachid>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-12 14:47:33 -0700</bug_when>
    <thetext>Created attachment 285954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219726</commentid>
    <comment_count>2</comment_count>
      <attachid>285954</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-12 14:53:57 -0700</bug_when>
    <thetext>Comment on attachment 285954
Patch

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

&gt; Source/WebCore/CMakeLists.txt:1915
&gt; +    loader/LoadTiming.cpp

This should be put in correct alphabetical order.

&gt; Source/WebCore/loader/DocumentLoader.h:259
&gt; +        void resetTiming() { m_loadTiming = LoadTiming(); }

Does { } work?

&gt; Source/WebCore/loader/LoadTiming.h:27
&gt; +#ifndef LoadTiming_h
&gt; +#define LoadTiming_h

#pragma once

&gt; Source/WebCore/platform/network/NetworkLoadTiming.h:28
&gt; +#ifndef NetworkLoadTiming_h
&gt; +#define NetworkLoadTiming_h

#pragma once, as long as we&apos;re touching this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219732</commentid>
    <comment_count>3</comment_count>
      <attachid>285959</attachid>
    <who name="Johan K. Jensen">jj</who>
    <bug_when>2016-08-12 15:05:45 -0700</bug_when>
    <thetext>Created attachment 285959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219757</commentid>
    <comment_count>4</comment_count>
      <attachid>285959</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-12 15:54:59 -0700</bug_when>
    <thetext>Comment on attachment 285959
Patch

Clearing flags on attachment: 285959

Committed r204429: &lt;http://trac.webkit.org/changeset/204429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219758</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-12 15:55:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285954</attachid>
            <date>2016-08-12 14:47:33 -0700</date>
            <delta_ts>2016-08-12 15:05:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160821-20160812144553.patch</filename>
            <type>text/plain</type>
            <size>97134</size>
            <attacher name="Johan K. Jensen">jj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzZTVlNzk4MmJjODFi
MWNmMmQxOTgxZGEzODhkYWI1ZWNjNDQ4Zi4uOWNlNmY4Zjc3YmJjZjlhMmM4MjBjNmQ3YTA5Yzk4
OTIzNmIwM2YzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAxNi0wOC0xMiAgSm9o
YW4gSy4gSmVuc2VuICA8am9oYW5famVuc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUg
RG9jdW1lbnRMb2FkVGltaW5nIGFuZCBSZXNvdXJjZUxvYWRUaW1pbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDgyMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZXMgUmVzb3VyY2VMb2FkVGlt
aW5nIHRvIE5ldHdvcmtMb2FkVGltaW5nLgorICAgICAgICBSZW5hbWVzIERvY3VtZW50TG9hZFRp
bWluZyB0byBMb2FkVGltaW5nIGFzIHdlbGwgYXMKKyAgICAgICAgbmF2aWdhdGlvblN0YXJ0KCkg
dG8gc3RhcnRUaW1lKCksIHNvIGl0J3MgZ2VuZXJpYyBmb3IKKyAgICAgICAgYm90aCB0aGUgbWFp
biByZXNvdXJjZSBhbmQgc3VicmVzb3VyY2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6ZnJvbSk6CisgICAgICAgICogUGxhdGZvcm1N
YWMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRP
YmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGluZ01h
aW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6dGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjpyZXNldFRpbWluZyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZy
b21DYWNoZWRQYWdlKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZFRpbWluZy5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OkxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TG9hZFRpbWluZzo6bW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6Om1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6Om1hcmtTdGFydFRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICAqIGxvYWRlci9Mb2Fk
VGltaW5nLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmguCisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJrVW5sb2FkRXZlbnRT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJrVW5sb2FkRXZlbnRFbmQp
OgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bWFya1JlZGlyZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bWFya1JlZGlyZWN0RW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRUaW1pbmc6Om1hcmtGZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okxv
YWRUaW1pbmc6OnNldFJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6
Om1hcmtMb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJr
TG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OnNldEhhc1NhbWVP
cmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6
c3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OnVubG9hZEV2ZW50U3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpMb2FkVGltaW5nOjpyZWRpcmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGlt
aW5nOjpyZWRpcmVjdENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OmZldGNo
U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6cmVzcG9uc2VFbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZFRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRU
aW1pbmc6Omhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRp
bWluZzo6aGFzU2FtZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2FkVGltaW5nOjpyZWZlcmVuY2VNb25vdG9uaWNUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRUaW1pbmc6OnJlZmVyZW5jZVdhbGxUaW1lKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTG9hZEV2ZW50KToK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQpOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGltZVRvRG9j
dW1lbnRNaWxsaXNlY29uZHMpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VU
aW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6
OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRp
bWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
OjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2
ZW50U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVu
dEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bG9hZFRpbWluZyk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oOgor
ICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlVzZXJUaW1pbmc6OmZpbmRFeGlzdGluZ01hcmtTdGFydFRpbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRUaW1pbmcuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmguCisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrTG9hZFRpbWluZzo6TmV0d29ya0xvYWRUaW1pbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya0xvYWRUaW1pbmc6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrTG9hZFRpbWluZzo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtM
b2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtMb2FkVGlt
aW5nOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRUaW1pbmc6OmRlY29k
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmNyb3NzVGhyZWFkRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZnJvbUNyb3NzVGhyZWFkRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6Y29tcGFyZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Om5ldHdvcmtMb2FkVGltaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya0xvYWRUaW1pbmcubW06IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNl
TG9hZFRpbWluZy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OnRpbWluZ1ZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvcHlUaW1pbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENvbGxlY3Rz
VGltaW5nRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVXZWJUaW1pbmdJbmZv
cm1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25U
aW1pbmdEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVB
c0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVE
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Om5ldHdvcmtFdmVu
dENhbGxiYWNrKToKKwogMjAxNi0wOC0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwNDQwNC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQzYzQ0ZDUwLi44OGE2
OGMyNDUyOGE3NjY2Zjg5OWM4NTZkM2MxZmQ3NWNkODJhOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTYtMDgtMTIgIEpvaGFuIEsuIEplbnNlbiAgPGpvaGFuX2plbnNlbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50TG9hZFRpbWluZyBhbmQgUmVzb3VyY2VM
b2FkVGltaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjA4MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW5hbWUgUmVzb3VyY2VMb2FkVGltaW5nIHRvIE5ldHdvcmtMb2FkVGltaW5nLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAg
ICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0YVRhc2s6ZGlkUmVj
ZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDE2LTA4LTExICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBEb24ndCBtb25pdG9y
IGdhbWVwYWRzIGF0IGFsbCB1bmxlc3MgYW4gaW50ZXJlc3RlZCBXZWJQYWdlUHJveHkgaXMgaW4g
dGhlIGFjdGl2ZSB3aW5kb3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNkZWEwNDlkNjkxZDlk
YTdhZjEyZjYzYWVhM2VjMDVkY2MzNWEwOTEuLmEzMWZiOWE0MGNiY2ZiN2NjYzNjZDk3YTAzMmJl
MzY5ZWIyYTM0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTEyLDcgKzE5MTIsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAogICAgIGxvYWRl
ci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAotICAgIGxvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuY3BwCisgICAgbG9hZGVyL0xvYWRUaW1pbmcuY3BwCiAgICAgbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAogICAgIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
CiAgICAgbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCmluZGV4IGQwZDE2MzZlZDU2ZTU3
OWNlZGZhYmVhMDU4YjQ1NTExMjQyNjJiYmMuLjg1ZjFiZjVlOTBlYWVkZDNjOTFlNzlmYzY5ZTli
OTFmMGVmYTc0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQv
TmF2aWdhdG9yR2FtZXBhZC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgTmF2aWdhdG9yR2FtZXBhZCog
TmF2aWdhdG9yR2FtZXBhZDo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKIAogICAgICAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gbmF2aWdhdG9yLT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAo
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCkpCi0gICAgICAgICAgICAgICAgc3VwcGxlbWVudC0+bV9uYXZpZ2F0aW9uU3RhcnQg
PSBkb2N1bWVudExvYWRlci0+dGltaW5nKCkubmF2aWdhdGlvblN0YXJ0KCk7CisgICAgICAgICAg
ICAgICAgc3VwcGxlbWVudC0+bV9uYXZpZ2F0aW9uU3RhcnQgPSBkb2N1bWVudExvYWRlci0+dGlt
aW5nKCkuc3RhcnRUaW1lKCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHN1cHBsZW1l
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDc1NTJjZDc1Y2QxNWM4YmY2MWFmN2Qy
YTBlYTlmYjkxN2ZlMDdlMzkuLjYyOGVlZjJmMzdmNGUwMmM5ZmIxNGYzNjkwYTdmNjUyODUyNTE0
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC02NTMsOCArNjUzLDggQEAgbGlzdChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91
c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCiAKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5tbQorICAgIHBsYXRmb3JtL25ldHdvcmsv
Y29jb2EvTmV0d29ya0xvYWRUaW1pbmcubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1By
b3RlY3Rpb25TcGFjZUNvY29hLm1tCi0gICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJj
ZUxvYWRUaW1pbmcubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVz
dENvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlc3BvbnNlQ29j
b2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3NzQ3MDA4MzY3ZmU2NTBkYjg2ZGU0ZDA5MThjYTE0NDljOGE5N2M2Li41NzUxZDFiYzcw
OGM3ZmE4NjA4N2FmMzU1ZjFjMjAyNWI4NmFjMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDA5LDcgKzI0MDksNyBAQAog
CQk1QzdDODhEODFEMEYxRjRBMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M4OEQ3MUQwRjFGMkIwMDlE
MkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTVDOUE3QTc1MUFBMEY2RUEwMDk1OEFDRiAvKiBERkFCeXRlY29k
ZUNvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDMzkzMDVFMUFBMEY2QTkwMDI5QzgxNiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmNwcCAq
LzsgfTsKIAkJNUM5QTdBNzYxQUEwRjZFRDAwOTU4QUNGIC8qIERGQUJ5dGVjb2RlSW50ZXJwcmV0
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMz
OTMwNjAxQUEwRjZBOTAwMjlDODE2IC8qIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwICovOyB9
OwotCQk1QzlCODYwQzFDMjFFM0M5MDAxMTBGMzYgLyogUmVzb3VyY2VMb2FkVGltaW5nLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5Qjg2MEIxQzIx
RTNDNjAwMTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSAqLzsgfTsKKwkJNUM5Qjg2MEMx
QzIxRTNDOTAwMTEwRjM2IC8qIE5ldHdvcmtMb2FkVGltaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8q
IE5ldHdvcmtMb2FkVGltaW5nLm1tICovOyB9OwogCQk1Q0IzN0ZGRTFDNjJEMjhDMDBGMjAxODgg
LyogU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDQjM3RkZDMUM2MkQyNzgwMEYyMDE4OCAvKiBTY3JvbGxBbmltYXRv
ck1vY2suY3BwICovOyB9OwogCQk1Q0IzN0ZGRjFDNjJEMkExMDBGMjAxODggLyogU2Nyb2xsQW5p
bWF0b3JNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1Q0IzN0ZGRDFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmggKi87IH07
CiAJCTVDQkM4REFDMUFBQTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGlu
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0JD
OERBQTFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuY3BwICov
OyB9OwpAQCAtMzM1NCw3ICszMzU0LDcgQEAKIAkJODVGNzRFMEEwQUE4REY4QzAwMERDMjg0IC8q
IERPTUNTU1Vua25vd25SdWxlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0QgLyogRE9N
Q1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKIAkJODVGRjMxNUEwQUFGQkZDQjAwMzc0RjM4IC8qIERP
TUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVGRjMxNUIw
QUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1OTBBQUZCRkNCMDAzNzRGMzggLyog
RE9NS2V5Ym9hcmRFdmVudC5tbSAqLzsgfTsKLQkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8q
IERvY3VtZW50TG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGlt
aW5nLmNwcCAqLzsgfTsKKwkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYxQzJF
QTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4NjJGMTI5RTE4
QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQxOEMxNTcyQzAwNUM1NEFGIC8q
IENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0QUYgLyogSHlzdGVyZXNpc0Fj
dGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODY1MTJFREUxNTRBMkFF
RjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2
IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovOyB9OwpAQCAtMzM3NywxMyArMzM3
NywxMyBAQAogCQk4OUI1RUFBMjExRTgwMDNEMDBGMjM2N0UgLyogTGluZUVuZGluZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlCNUVBQTAxMUU4MDAz
RDAwRjIzNjdFIC8qIExpbmVFbmRpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4OUY2MEIxMTE1N0Y2ODZFMDA3NUUxNTcgLyogRE9NV2luZG93
UXVvdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
RjYwQjBBMTU3RjY4NkQwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90YS5oICovOyB9OwogCQk4OUY2
MENEQTE1ODA5RDc2MDA3NUUxNTcgLyogSlNTdG9yYWdlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlGNjBDRDIxNTgwOUQ3NjAwNzVFMTU3IC8q
IEpTU3RvcmFnZUluZm8uaCAqLzsgfTsKLQkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCThBMTJF
MzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogTG9h
ZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEEzMDlDOUUx
MjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi87IH07CiAJCThB
NDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAv
KiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIw
N0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovOyB9OwogCQk4QTdDQzk2QjEyMDc2
RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdT
Y3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTdDQzk2RjEyMDc2RjhBMDAx
RDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87IH07Ci0JCThBODFCRjg1MTFEQ0ZEOTAwMERB
MkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxv
YWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogTmV0d29ya0xvYWRUaW1pbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZE
OTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBODQ0RDA1MTFEM0MxOEUwMDE0MDY1QyAvKiBQ
ZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1hbmNlLmggKi87IH07CiAJCThB
OUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTlBNTg2RTExRTg0
QzM1MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwICovOyB9OwogCQk4QTlB
NTg3MTExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBOUE1ODZGMTFFODRDMzYw
MDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5oICovOyB9OwpAQCAtOTc3MSw3ICs5
NzcxLDcgQEAKIAkJNUM2RTY1M0YxRDVDRURDOTAwRjc4NjJFIC8qIFVSTFBhcnNlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxQYXJzZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZFNjU0MDFENUNFREM5MDBGNzg2MkUgLyogVVJMUGFy
c2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVSTFBhcnNlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29j
a2V0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0UHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM5Qjg2MEIxQzIxRTNDNjAw
MTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8qIE5ldHdvcmtMb2FkVGltaW5n
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya0xvYWRU
aW1pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjM3RkZDMUM2MkQyNzgw
MEYyMDE4OCAvKiBTY3JvbGxBbmltYXRvck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNCMzdGRkQxQzYyRDI3ODAwRjIwMTg4IC8qIFNjcm9sbEFuaW1hdG9yTW9j
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxBbmltYXRvck1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzhEQUExQUFBMzAyMjAwRTFDODAz
IC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODI4LDcgKzEwODI4LDcgQEAKIAkJODVGNTZBNzkwQTk4
Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAv
KiBET01LZXlib2FyZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRp
bmcgPSAwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsg
fTsKIAkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERP
TUtleWJvYXJkRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVj
aWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwotCQk4NjFDMkVBMzEz
RkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5n
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRUaW1pbmcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYg
LyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2
MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0aXZpdHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2aXR5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA4NjYsMTMgKzEwODY2LDEzIEBACiAJCTg5RjYwQjBBMTU3RjY4NkQwMDc1RTE1NyAv
KiBET01XaW5kb3dRdW90YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01X
aW5kb3dRdW90YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4OUY2MENEMjE1ODA5
RDc2MDA3NUUxNTcgLyogSlNTdG9yYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1N0b3JhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5
RkQ1OEQ4MTZFRURCRDQwMEUxODNGMCAvKiBOYXZpZ2F0b3JTdG9yYWdlUXVvdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yU3RvcmFnZVF1b3RhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1
bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1l
bnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBMTJFMzVDMTFG
QTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzMDlD
OUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3Jp
cHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UnVubmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2
RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5
NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nU2NyaXB0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291
cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE4MUJGODQxMURD
RkQ5MDAwREEyQjk4IC8qIE5ldHdvcmtMb2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThBODQ0RDAyMTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5jZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4QTg0NEQwMzExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9ybWFuY2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOEE5QTU4NkUxMUU4NEMzNTAwOEFDRkQxIC8qIEpTUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVy
Zm9ybWFuY2VOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3
OTUyLDcgKzE3OTUyLDcgQEAKIAkJCQk1MTRDNzY2NjBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTUxRTQxNDMyMTZBNjU5NTEwMEM2MzNDNyAvKiBS
ZXNvdXJjZUhhbmRsZVR5cGVzLmggKi8sCiAJCQkJRTQyOTVGQTMxMkIwNjE0RTAwRDFBQ0UwIC8q
IFJlc291cmNlTG9hZFByaW9yaXR5LmggKi8sCi0JCQkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4
IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovLAorCQkJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5
OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oICovLAogCQkJCTUxNEM3NjY3MENFOTIzQTEwMDdFRjND
RCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCAqLywKIAkJCQk1MTRDNzY2ODBDRTkyM0ExMDA3
RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5oICovLAogCQkJCTUxNEM3NjY5MENFOTIzQTEw
MDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgKi8sCkBAIC0xODM1Niw3ICsxODM1
Niw3IEBACiAJCQkJMzc5MjkxN0IxOTg3Njc4RjAwRjRCNjYxIC8qIENyZWRlbnRpYWxDb2NvYS5t
bSAqLywKIAkJCQkzNzJBREEzNzE5N0Y0N0I5MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29j
b2EuaCAqLywKIAkJCQkzNzJBREEzOTE5N0Y2ODc2MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0gKi8sCi0JCQkJNUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8qIFJlc291cmNlTG9h
ZFRpbWluZy5tbSAqLywKKwkJCQk1QzlCODYwQjFDMjFFM0M2MDAxMTBGMzYgLyogTmV0d29ya0xv
YWRUaW1pbmcubW0gKi8sCiAJCQkJN0U3REUxRkMxOTVDRUYyNjAwMzUzNjNCIC8qIFJlc291cmNl
UmVxdWVzdENvY29hLm1tICovLAogCQkJCUExRjc4RDBCMUMyNTQyMkMwMDI0NTQ0NiAvKiBSZXNv
dXJjZVJlc3BvbnNlQ29jb2EubW0gKi8sCiAJCQkJQ0QyMjVDMEExQzQ2RkJGNDAwMTQwNzYxIC8q
IFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLywKQEAgLTIyMzk2LDggKzIyMzk2LDggQEAKIAkJCQlF
MUM0MTVEOTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5oICovLAogCQkJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5j
cHAgKi8sCiAJCQkJNjU2RDM3MUUwQURCQTVERTAwQTQ1NTREIC8qIERvY3VtZW50TG9hZGVyLmgg
Ki8sCi0JCQkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5j
cHAgKi8sCi0JCQkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5oICovLAorCQkJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCAq
LywKKwkJCQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogTG9hZFRpbWluZy5oICovLAogCQkJ
CTBCOTA1NjE1MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
ICovLAogCQkJCTBCOTA1NjE2MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuaCAqLywKIAkJCQk5NzM4ODk5RTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0
ZXIuY3BwICovLApAQCAtMjUyOTYsNyArMjUyOTYsNyBAQAogCQkJCUEzQkI1OUY0MTQ1N0E0MEQw
MEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1
RjNEMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1lbnRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1p
bmcuaCBpbiBIZWFkZXJzICovLAorCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2Fk
VGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5QTI0QjkxMDA2QzBBQzQgLyog
RG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMDU3RkE2MTIyMDczMTEwMEE0
NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OTQ3RkZFMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjczNTksNyArMjczNTksNyBAQAogCQkJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNF
MCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E5MjlDQTcx
QzU5OEFBOTAwNERGMjI2IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBRDNDRERBMUM4QTAxQTQwMEYxMjY5OCAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaCBpbiBIZWFkZXJzICovLAotCQkJCThBODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBS
ZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCThBODFCRjg1MTFEQ0ZEOTAw
MERBMkI5OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VFNjg0
NkQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE0Qzc2N0QwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdEJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFRTY4NDZGMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVl
c3RDRk5ldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTExNSw3ICsyOTExNSw3IEBACiAJCQkJQTgx
ODVGM0YwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTNFMjI3RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFDMjY0OTdBMEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExv
YWRlck1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NjFDMkVBNDEzRkI0RkREMDAwNjJBQkIg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg2MUMyRUE0MTNG
QjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3ODFD
NkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRTA1N0ZBNTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1
bWVudE9yZGVyZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTAxOCw3ICszMTAxOCw3IEBA
CiAJCQkJNkI2OTNBMzQxQzUxQTk1RDAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTI5Q0E2MUM1OThBOUUwMDRERjIyNiAvKiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBRDNDREQ5MUM4QTAwMkYw
MEYxMjY5OCAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNUM5Qjg2MEMxQzIxRTNDOTAwMTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTVDOUI4NjBDMUMyMUUzQzkwMDExMEYzNiAvKiBOZXR3b3JrTG9h
ZFRpbWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3NjdDMENFOTIzQTEwMDdFRjNDRCAv
KiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZFMTJE
MjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3RTdERTFGRDE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggZTE3NDY5YTQ3YzRlZGZkZmQyZGRjZWQ1MTlkY2I3MjUw
MzIxNTA0OC4uOWUwMzBjOWYwYTYzMDdhN2FkNTM4ZTU1NTY4OGZiOWE2MzFlMDEwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAK
QEAgLTE4NCwxMCArMTg0LDEwIEBAIHN0YXRpYyBSZWY8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9i
amVjdEZvckhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYgaGVhZGVycykKICAgICByZXR1cm4g
aGVhZGVyc09iamVjdDsKIH0KIAotc3RhdGljIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3
b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1pbmcoY29uc3QgUmVzb3VyY2VM
b2FkVGltaW5nJiB0aW1pbmcsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCitzdGF0aWMgUmVmPElu
c3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OlJlc291cmNlVGltaW5nPiBidWlsZE9iamVjdEZv
clRpbWluZyhjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nLCBEb2N1bWVudExvYWRlciog
bG9hZGVyKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3RvY29sOjpOZXR3b3JrOjpSZXNv
dXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldE5hdmlnYXRpb25TdGFydChsb2FkZXIt
PnRpbWluZygpLm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAuc2V0TmF2aWdhdGlvblN0YXJ0
KGxvYWRlci0+dGltaW5nKCkuc3RhcnRUaW1lKCkpCiAgICAgICAgIC5zZXREb21haW5Mb29rdXBT
dGFydCh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQpCiAgICAgICAgIC5zZXREb21haW5Mb29rdXBF
bmQodGltaW5nLmRvbWFpbkxvb2t1cEVuZCkKICAgICAgICAgLnNldENvbm5lY3RTdGFydCh0aW1p
bmcuY29ubmVjdFN0YXJ0KQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VS
ZXNwCiAgICAgICAgIC5yZWxlYXNlKCk7CiAKICAgICByZXNwb25zZU9iamVjdC0+c2V0RnJvbURp
c2tDYWNoZShyZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OkRp
c2tDYWNoZSB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6
OkRpc2tDYWNoZUFmdGVyVmFsaWRhdGlvbik7Ci0gICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWlu
ZyhidWlsZE9iamVjdEZvclRpbWluZyhyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSwgbG9h
ZGVyKSk7CisgICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWlu
ZyhyZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLCBsb2FkZXIpKTsKIAogICAgIHJldHVybiBX
VEZNb3ZlKHJlc3BvbnNlT2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZFRpbWluZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNGY2ODAz
MDc2MDAzOTQ2MzQzNjkwMzA0MTgzNTU5ZGMyMGU3MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZFRpbWluZy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50Lmgi
Ci0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1Eb2N1bWVudExvYWRUaW1pbmc6OkRvY3VtZW50TG9hZFRpbWluZygpCi0gICAgOiBt
X3JlZmVyZW5jZU1vbm90b25pY1RpbWUoMC4wKQotICAgICwgbV9yZWZlcmVuY2VXYWxsVGltZSgw
LjApCi0gICAgLCBtX25hdmlnYXRpb25TdGFydCgwLjApCi0gICAgLCBtX3VubG9hZEV2ZW50U3Rh
cnQoMC4wKQotICAgICwgbV91bmxvYWRFdmVudEVuZCgwLjApCi0gICAgLCBtX3JlZGlyZWN0U3Rh
cnQoMC4wKQotICAgICwgbV9yZWRpcmVjdEVuZCgwLjApCi0gICAgLCBtX3JlZGlyZWN0Q291bnQo
MCkKLSAgICAsIG1fZmV0Y2hTdGFydCgwLjApCi0gICAgLCBtX3Jlc3BvbnNlRW5kKDAuMCkKLSAg
ICAsIG1fbG9hZEV2ZW50U3RhcnQoMC4wKQotICAgICwgbV9sb2FkRXZlbnRFbmQoMC4wKQotICAg
ICwgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0KGZhbHNlKQotICAgICwgbV9oYXNTYW1lT3JpZ2lu
QXNQcmV2aW91c0RvY3VtZW50KGZhbHNlKQotewotfQotCi1kb3VibGUgRG9jdW1lbnRMb2FkVGlt
aW5nOjptb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRpbWUoZG91YmxlIG1vbm90b25p
Y1RpbWUpIGNvbnN0Ci17Ci0gICAgaWYgKCFtb25vdG9uaWNUaW1lKQotICAgICAgICByZXR1cm4g
MC4wOwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1l
OwotfQotCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjptb25vdG9uaWNUaW1lVG9Qc2V1ZG9X
YWxsVGltZShkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKLXsKLSAgICBpZiAoIW1vbm90b25p
Y1RpbWUpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1fcmVmZXJlbmNlV2FsbFRp
bWUgKyBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwotfQotCi12b2lk
IERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TdGFydCgpCi17Ci0gICAgQVNTRVJU
KCFtX25hdmlnYXRpb25TdGFydCAmJiAhbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lICYmICFtX3Jl
ZmVyZW5jZVdhbGxUaW1lKTsKLQotICAgIG1fbmF2aWdhdGlvblN0YXJ0ID0gbV9yZWZlcmVuY2VN
b25vdG9uaWNUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgbV9yZWZl
cmVuY2VXYWxsVGltZSA9IGN1cnJlbnRUaW1lKCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRMb2FkVGlt
aW5nOjphZGRSZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJl
ZGlyZWN0ZWRVcmwpCi17Ci0gICAgbV9yZWRpcmVjdENvdW50Kys7Ci0gICAgaWYgKCFtX3JlZGly
ZWN0U3RhcnQpCi0gICAgICAgIG1fcmVkaXJlY3RTdGFydCA9IG1fZmV0Y2hTdGFydDsKLSAgICBt
X3JlZGlyZWN0RW5kID0gbV9mZXRjaFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7Ci0gICAgLy8gQ2hlY2sgaWYgdGhlIHJlZGlyZWN0ZWQgdXJsIGlzIGFsbG93ZWQgdG8gYWNj
ZXNzIHRoZSByZWRpcmVjdGluZyB1cmwncyB0aW1pbmcgaW5mb3JtYXRpb24uCi0gICAgUmVmPFNl
Y3VyaXR5T3JpZ2luPiByZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShyZWRpcmVjdGVkVXJsKSk7Ci0gICAgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0gIXJl
ZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi5nZXQoKS5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5nVXJsKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZFRpbWluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjdkOWQ3YmIz
ZDYxZDUzZTQ4YWM4MmUwY2UzMzMyMjRhMjVmYWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRU
aW1pbmcuaAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgRG9jdW1lbnRMb2FkVGlt
aW5nX2gKLSNkZWZpbmUgRG9jdW1lbnRMb2FkVGltaW5nX2gKLQotI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZyYW1lOwotY2xhc3Mg
VVJMOwotCi1jbGFzcyBEb2N1bWVudExvYWRUaW1pbmcgewotcHVibGljOgotICAgIERvY3VtZW50
TG9hZFRpbWluZygpOwotCi0gICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3Vt
ZW50VGltZShkb3VibGUpIGNvbnN0OwotICAgIGRvdWJsZSBtb25vdG9uaWNUaW1lVG9Qc2V1ZG9X
YWxsVGltZShkb3VibGUpIGNvbnN0OwotCi0gICAgdm9pZCBtYXJrTmF2aWdhdGlvblN0YXJ0KCk7
Ci0gICAgdm9pZCBhZGRSZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5nVXJsLCBjb25zdCBV
UkwmIHJlZGlyZWN0ZWRVcmwpOwotCi0gICAgdm9pZCBtYXJrVW5sb2FkRXZlbnRTdGFydCgpIHsg
bV91bmxvYWRFdmVudFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KLSAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudEVuZCgpIHsgbV91bmxvYWRFdmVudEVuZCA9IG1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9Ci0gICAgdm9pZCBtYXJrUmVkaXJlY3RTdGFydCgpIHsg
bV9yZWRpcmVjdFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KLSAgICB2
b2lkIG1hcmtSZWRpcmVjdEVuZCgpIHsgbV9yZWRpcmVjdEVuZCA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOyB9Ci0gICAgdm9pZCBtYXJrRmV0Y2hTdGFydCgpIHsgbV9mZXRjaFN0YXJ0
ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KLSAgICB2b2lkIHNldFJlc3BvbnNl
RW5kKGRvdWJsZSBtb25vdG9uaWNUaW1lKSB7IG1fcmVzcG9uc2VFbmQgPSBtb25vdG9uaWNUaW1l
OyB9Ci0gICAgdm9pZCBtYXJrTG9hZEV2ZW50U3RhcnQoKSB7IG1fbG9hZEV2ZW50U3RhcnQgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQotICAgIHZvaWQgbWFya0xvYWRFdmVudEVu
ZCgpIHsgbV9sb2FkRXZlbnRFbmQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQot
Ci0gICAgdm9pZCBzZXRIYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KGJvb2wgdmFsdWUp
IHsgbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50ID0gdmFsdWU7IH0KLQotICAgIGRv
dWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25TdGFydDsg
fQotICAgIGRvdWJsZSB1bmxvYWRFdmVudFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV91bmxvYWRF
dmVudFN0YXJ0OyB9Ci0gICAgZG91YmxlIHVubG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4g
bV91bmxvYWRFdmVudEVuZDsgfQotICAgIGRvdWJsZSByZWRpcmVjdFN0YXJ0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWRpcmVjdFN0YXJ0OyB9Ci0gICAgZG91YmxlIHJlZGlyZWN0RW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9yZWRpcmVjdEVuZDsgfQotICAgIHNob3J0IHJlZGlyZWN0Q291bnQoKSBjb25z
dCB7IHJldHVybiBtX3JlZGlyZWN0Q291bnQ7IH0KLSAgICBkb3VibGUgZmV0Y2hTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFydDsgfQotICAgIGRvdWJsZSByZXNwb25zZUVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VFbmQ7IH0KLSAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudFN0YXJ0OyB9Ci0gICAgZG91YmxlIGxvYWRFdmVu
dEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RW5kOyB9Ci0gICAgYm9vbCBoYXNDcm9z
c09yaWdpblJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0
OyB9Ci0gICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OyB9Ci0KLSAgICBkb3VibGUg
cmVmZXJlbmNlTW9ub3RvbmljVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJlbmNlTW9ub3Rv
bmljVGltZTsgfQotICAgIGRvdWJsZSByZWZlcmVuY2VXYWxsVGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJlbmNlV2FsbFRpbWU7IH0KLQotcHJpdmF0ZToKLSAgICBkb3VibGUgbV9yZWZlcmVu
Y2VNb25vdG9uaWNUaW1lOwotICAgIGRvdWJsZSBtX3JlZmVyZW5jZVdhbGxUaW1lOwotICAgIGRv
dWJsZSBtX25hdmlnYXRpb25TdGFydDsKLSAgICBkb3VibGUgbV91bmxvYWRFdmVudFN0YXJ0Owot
ICAgIGRvdWJsZSBtX3VubG9hZEV2ZW50RW5kOwotICAgIGRvdWJsZSBtX3JlZGlyZWN0U3RhcnQ7
Ci0gICAgZG91YmxlIG1fcmVkaXJlY3RFbmQ7Ci0gICAgc2hvcnQgbV9yZWRpcmVjdENvdW50Owot
ICAgIGRvdWJsZSBtX2ZldGNoU3RhcnQ7Ci0gICAgZG91YmxlIG1fcmVzcG9uc2VFbmQ7Ci0gICAg
ZG91YmxlIG1fbG9hZEV2ZW50U3RhcnQ7Ci0gICAgZG91YmxlIG1fbG9hZEV2ZW50RW5kOwotICAg
IGJvb2wgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0OwotICAgIGJvb2wgbV9oYXNTYW1lT3JpZ2lu
QXNQcmV2aW91c0RvY3VtZW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDhiNzRkNjQx
N2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLjJjYzg4Y2IxNjQxYjYyYTk1YTVkM2Qy
MjAyYmZkYTVjMzIxNGQ3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcApAQCAtMTQ2Niw3ICsxNDY2LDcgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2Fk
RW1wdHkoKQogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291cmNlKCkK
IHsKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gUmVzb3VyY2VFcnJvcigpOwotICAgIHRpbWlu
ZygpLm1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKKyAgICB0aW1pbmcoKS5tYXJrU3RhcnRUaW1lKCk7
CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZSk7CiAgICAgQVNTRVJUKCFtX2xvYWRpbmdNYWlu
UmVzb3VyY2UpOwogICAgIG1fbG9hZGluZ01haW5SZXNvdXJjZSA9IHRydWU7CkBAIC0xNDg0LDcg
KzE0ODQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2Uo
KQogICAgIC8vIGJlY2F1c2Ugd2UgcGFzcyBhIHdyb25nIGxvYWRUeXBlIChzZWUgRklYTUUgaW4g
YWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoKSkuCiAgICAgZnJhbWVMb2FkZXIo
KS0+YWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QobV9yZXF1ZXN0KTsKIAotICAg
IEFTU0VSVCh0aW1pbmcoKS5uYXZpZ2F0aW9uU3RhcnQoKSk7CisgICAgQVNTRVJUKHRpbWluZygp
LnN0YXJ0VGltZSgpKTsKICAgICBBU1NFUlQoIXRpbWluZygpLmZldGNoU3RhcnQoKSk7CiAgICAg
dGltaW5nKCkubWFya0ZldGNoU3RhcnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaAppbmRleCBkZDliMDRiYWViZjhmZGM1Yzk3ZDRiZTdjNDgxNTg4YzZkNGM1N2UxLi43
MDk1NDQ3YjAwYzNmNDQzNTJlZjYzZWExYzYxYzc2Njc5N2VkMDg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMzEsOSArMzEsOSBAQAogCiAjaW5jbHVkZSAiQ2Fj
aGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50V3Jp
dGVyLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQmFzZS5oIgorI2luY2x1ZGUgIkxvYWRUaW1p
bmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VF
cnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgpAQCAtMjU1LDggKzI1
NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCByZWNvcmRNZW1vcnlDYWNo
ZUxvYWRGb3JGdXR1cmVDbGllbnROb3RpZmljYXRpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgICAgIHZvaWQgdGFrZU1lbW9yeUNhY2hlTG9hZHNGb3JDbGllbnROb3RpZmljYXRpb24o
VmVjdG9yPFJlc291cmNlUmVxdWVzdD4mIGxvYWRzKTsKIAotICAgICAgICBEb2N1bWVudExvYWRU
aW1pbmcmIHRpbWluZygpIHsgcmV0dXJuIG1fZG9jdW1lbnRMb2FkVGltaW5nOyB9Ci0gICAgICAg
IHZvaWQgcmVzZXRUaW1pbmcoKSB7IG1fZG9jdW1lbnRMb2FkVGltaW5nID0gRG9jdW1lbnRMb2Fk
VGltaW5nKCk7IH0KKyAgICAgICAgTG9hZFRpbWluZyYgdGltaW5nKCkgeyByZXR1cm4gbV9sb2Fk
VGltaW5nOyB9CisgICAgICAgIHZvaWQgcmVzZXRUaW1pbmcoKSB7IG1fbG9hZFRpbWluZyA9IExv
YWRUaW1pbmcoKTsgfQogCiAgICAgICAgIC8vIFRoZSBXZWJLaXQgbGF5ZXIgY2FsbHMgdGhpcyBm
dW5jdGlvbiB3aGVuIGl0J3MgcmVhZHkgZm9yIHRoZSBkYXRhIHRvCiAgICAgICAgIC8vIGFjdHVh
bGx5IGJlIGFkZGVkIHRvIHRoZSBkb2N1bWVudC4KQEAgLTQyNiw3ICs0MjYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9kaWRDcmVhdGVHbG9iYWxIaXN0b3J5RW50cnk7
CiAKICAgICAgICAgYm9vbCBtX2xvYWRpbmdNYWluUmVzb3VyY2U7Ci0gICAgICAgIERvY3VtZW50
TG9hZFRpbWluZyBtX2RvY3VtZW50TG9hZFRpbWluZzsKKyAgICAgICAgTG9hZFRpbWluZyBtX2xv
YWRUaW1pbmc7CiAKICAgICAgICAgZG91YmxlIG1fdGltZU9mTGFzdERhdGFSZWNlaXZlZDsKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXJGb3JMb2FkV2l0aG91dFJlc291cmNlTG9h
ZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZWZiMDFiMDY3ODg5
MGY5YzVjNzIxZTA5ZDU2YmE0NDlmYTg4MTg4MS4uZjM2ZjczNGJmMzk1NWNmMjcxN2FhOTQxNTJj
MTU2ZjllZDJmMDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC01
MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNs
dWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCkBAIC04Miw2
ICs4MSw3IEBACiAjaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVu
dGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxvYWRUaW1pbmcuaCIKICNpbmNsdWRl
ICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCkBAIC0yOTMzLDEyICsyOTMzLDEyIEBAIHZvaWQgRnJhbWVMb2FkZXI6
OmRpc3BhdGNoVW5sb2FkRXZlbnRzKFVubG9hZEV2ZW50UG9saWN5IHVubG9hZEV2ZW50UG9saWN5
KQogCiAgICAgICAgICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKS0+aW5QYWdlQ2FjaGUoKSkg
ewogICAgICAgICAgICAgICAgIFJlZjxFdmVudD4gdW5sb2FkRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkudW5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwotICAgICAgICAgICAgICAg
IC8vIFRoZSBEb2N1bWVudExvYWRlciAoYW5kIHRodXMgaXRzIERvY3VtZW50TG9hZFRpbWluZykg
bWlnaHQgZ2V0IGRlc3Ryb3llZAorICAgICAgICAgICAgICAgIC8vIFRoZSBEb2N1bWVudExvYWRl
ciAoYW5kIHRodXMgaXRzIExvYWRUaW1pbmcpIG1pZ2h0IGdldCBkZXN0cm95ZWQKICAgICAgICAg
ICAgICAgICAvLyB3aGlsZSBkaXNwYXRjaGluZyB0aGUgZXZlbnQsIHNvIHByb3RlY3QgaXQgdG8g
cHJldmVudCB3cml0aW5nIHRoZSBlbmQKICAgICAgICAgICAgICAgICAvLyB0aW1lIGludG8gZnJl
ZWQgbWVtb3J5LgogICAgICAgICAgICAgICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gZG9jdW1l
bnRMb2FkZXIgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI7CiAgICAgICAgICAgICAgICAg
bV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSBQYWdlRGlzbWlzc2FsVHlwZTo6
VW5sb2FkOwotICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudExvYWRlciAmJiBkb2N1bWVudExv
YWRlci0+dGltaW5nKCkubmF2aWdhdGlvblN0YXJ0KCkgJiYgIWRvY3VtZW50TG9hZGVyLT50aW1p
bmcoKS51bmxvYWRFdmVudFN0YXJ0KCkgJiYgIWRvY3VtZW50TG9hZGVyLT50aW1pbmcoKS51bmxv
YWRFdmVudEVuZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50TG9hZGVyICYmIGRv
Y3VtZW50TG9hZGVyLT50aW1pbmcoKS5zdGFydFRpbWUoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnRp
bWluZygpLnVubG9hZEV2ZW50U3RhcnQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnRpbWluZygpLnVu
bG9hZEV2ZW50RW5kKCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byYgdGltaW5nID0gZG9j
dW1lbnRMb2FkZXItPnRpbWluZygpOwogICAgICAgICAgICAgICAgICAgICB0aW1pbmcubWFya1Vu
bG9hZEV2ZW50U3RhcnQoKTsKICAgICAgICAgICAgICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgp
LT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudCh1bmxvYWRFdmVudCwgbV9mcmFtZS5kb2N1bWVu
dCgpKTsKQEAgLTMyNDEsOSArMzI0MSw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQcm92aXNp
b25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpCiAgICAgbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgPSB0
cnVlOwogCiAgICAgLy8gU2hvdWxkIGhhdmUgdGltaW5nIGRhdGEgZnJvbSBwcmV2aW91cyB0aW1l
KHMpIHRoZSBwYWdlIHdhcyBzaG93bi4KLSAgICBBU1NFUlQocHJvdmlzaW9uYWxMb2FkZXItPnRp
bWluZygpLm5hdmlnYXRpb25TdGFydCgpKTsKKyAgICBBU1NFUlQocHJvdmlzaW9uYWxMb2FkZXIt
PnRpbWluZygpLnN0YXJ0VGltZSgpKTsKICAgICBwcm92aXNpb25hbExvYWRlci0+cmVzZXRUaW1p
bmcoKTsKLSAgICBwcm92aXNpb25hbExvYWRlci0+dGltaW5nKCkubWFya05hdmlnYXRpb25TdGFy
dCgpOworICAgIHByb3Zpc2lvbmFsTG9hZGVyLT50aW1pbmcoKS5tYXJrU3RhcnRUaW1lKCk7CiAK
ICAgICBwcm92aXNpb25hbExvYWRlci0+c2V0Q29tbWl0dGVkKHRydWUpOwogICAgIGNvbW1pdFBy
b3Zpc2lvbmFsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRU
aW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRUaW1pbmcuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU0ZTRhNDQ4NGU3NjU2ZDJmZDhjNTIzYTE2ZDdjZDU3NDViZWYxYTIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZFRpbWluZy5jcHAKQEAgLTAsMCArMSw5
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9hZFRpbWluZy5oIgorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0xvYWRUaW1pbmc6OkxvYWRUaW1pbmcoKQorICAgIDogbV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lKDAuMCkKKyAgICAsIG1fcmVmZXJlbmNlV2FsbFRpbWUoMC4wKQor
ICAgICwgbV9zdGFydFRpbWUoMC4wKQorICAgICwgbV91bmxvYWRFdmVudFN0YXJ0KDAuMCkKKyAg
ICAsIG1fdW5sb2FkRXZlbnRFbmQoMC4wKQorICAgICwgbV9yZWRpcmVjdFN0YXJ0KDAuMCkKKyAg
ICAsIG1fcmVkaXJlY3RFbmQoMC4wKQorICAgICwgbV9yZWRpcmVjdENvdW50KDApCisgICAgLCBt
X2ZldGNoU3RhcnQoMC4wKQorICAgICwgbV9yZXNwb25zZUVuZCgwLjApCisgICAgLCBtX2xvYWRF
dmVudFN0YXJ0KDAuMCkKKyAgICAsIG1fbG9hZEV2ZW50RW5kKDAuMCkKKyAgICAsIG1faGFzQ3Jv
c3NPcmlnaW5SZWRpcmVjdChmYWxzZSkKKyAgICAsIG1faGFzU2FtZU9yaWdpbkFzUHJldmlvdXNE
b2N1bWVudChmYWxzZSkKK3sKK30KKworZG91YmxlIExvYWRUaW1pbmc6Om1vbm90b25pY1RpbWVU
b1plcm9CYXNlZERvY3VtZW50VGltZShkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKK3sKKyAg
ICBpZiAoIW1vbm90b25pY1RpbWUpCisgICAgICAgIHJldHVybiAwLjA7CisgICAgcmV0dXJuIG1v
bm90b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7Cit9CisKK2RvdWJsZSBMb2Fk
VGltaW5nOjptb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUgbW9ub3RvbmljVGlt
ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1vbm90b25pY1RpbWUpCisgICAgICAgIHJldHVybiAwLjA7
CisgICAgcmV0dXJuIG1fcmVmZXJlbmNlV2FsbFRpbWUgKyBtb25vdG9uaWNUaW1lIC0gbV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lOworfQorCit2b2lkIExvYWRUaW1pbmc6Om1hcmtTdGFydFRpbWUo
KQoreworICAgIEFTU0VSVCghbV9zdGFydFRpbWUgJiYgIW1fcmVmZXJlbmNlTW9ub3RvbmljVGlt
ZSAmJiAhbV9yZWZlcmVuY2VXYWxsVGltZSk7CisKKyAgICBtX3N0YXJ0VGltZSA9IG1fcmVmZXJl
bmNlTW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1f
cmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOworfQorCit2b2lkIExvYWRUaW1pbmc6
OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJl
Y3RlZFVybCkKK3sKKyAgICBtX3JlZGlyZWN0Q291bnQrKzsKKyAgICBpZiAoIW1fcmVkaXJlY3RT
dGFydCkKKyAgICAgICAgbV9yZWRpcmVjdFN0YXJ0ID0gbV9mZXRjaFN0YXJ0OworICAgIG1fcmVk
aXJlY3RFbmQgPSBtX2ZldGNoU3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
KyAgICAvLyBDaGVjayBpZiB0aGUgcmVkaXJlY3RlZCB1cmwgaXMgYWxsb3dlZCB0byBhY2Nlc3Mg
dGhlIHJlZGlyZWN0aW5nIHVybCdzIHRpbWluZyBpbmZvcm1hdGlvbi4KKyAgICBSZWY8U2VjdXJp
dHlPcmlnaW4+IHJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KHJlZGlyZWN0ZWRVcmwpKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSAhcmVkaXJl
Y3RlZFNlY3VyaXR5T3JpZ2luLmdldCgpLmNhblJlcXVlc3QocmVkaXJlY3RpbmdVcmwpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTG9hZFRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRUaW1pbmcuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYWUwZTRmY2VjNjI1NWVhMjgwY2YwMWRjZGRjM2VjYTc1ZTdjYjc0Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRUaW1pbmcuaApAQCAtMCwwICsx
LDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIExvYWRUaW1pbmdfaAorI2RlZmluZSBMb2FkVGltaW5nX2gKKworI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
OworY2xhc3MgVVJMOworCitjbGFzcyBMb2FkVGltaW5nIHsKK3B1YmxpYzoKKyAgICBMb2FkVGlt
aW5nKCk7CisKKyAgICBkb3VibGUgbW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1l
KGRvdWJsZSkgY29uc3Q7CisgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1l
KGRvdWJsZSkgY29uc3Q7CisKKyAgICB2b2lkIG1hcmtTdGFydFRpbWUoKTsKKyAgICB2b2lkIGFk
ZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3Rl
ZFVybCk7CisKKyAgICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50
U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgbWFya1Vu
bG9hZEV2ZW50RW5kKCkgeyBtX3VubG9hZEV2ZW50RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7IH0KKyAgICB2b2lkIG1hcmtSZWRpcmVjdFN0YXJ0KCkgeyBtX3JlZGlyZWN0U3Rh
cnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgbWFya1JlZGly
ZWN0RW5kKCkgeyBtX3JlZGlyZWN0RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
IH0KKyAgICB2b2lkIG1hcmtGZXRjaFN0YXJ0KCkgeyBtX2ZldGNoU3RhcnQgPSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgc2V0UmVzcG9uc2VFbmQoZG91YmxlIG1v
bm90b25pY1RpbWUpIHsgbV9yZXNwb25zZUVuZCA9IG1vbm90b25pY1RpbWU7IH0KKyAgICB2b2lk
IG1hcmtMb2FkRXZlbnRTdGFydCgpIHsgbV9sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOyB9CisgICAgdm9pZCBtYXJrTG9hZEV2ZW50RW5kKCkgeyBtX2xvYWRF
dmVudEVuZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9CisKKyAgICB2b2lkIHNl
dEhhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc1NhbWVP
cmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQorCisgICAgZG91YmxlIHN0YXJ0VGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CisgICAgZG91YmxlIHVubG9hZEV2ZW50
U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUg
dW5sb2FkRXZlbnRFbmQoKSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50RW5kOyB9CisgICAg
ZG91YmxlIHJlZGlyZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0U3RhcnQ7IH0K
KyAgICBkb3VibGUgcmVkaXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0RW5kOyB9
CisgICAgc2hvcnQgcmVkaXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3Vu
dDsgfQorICAgIGRvdWJsZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaFN0YXJ0
OyB9CisgICAgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUVu
ZDsgfQorICAgIGRvdWJsZSBsb2FkRXZlbnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2
ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUgbG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4gbV9s
b2FkRXZlbnRFbmQ7IH0KKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7IH0KKyAgICBib29sIGhhc1NhbWVPcmln
aW5Bc1ByZXZpb3VzRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1NhbWVPcmlnaW5Bc1By
ZXZpb3VzRG9jdW1lbnQ7IH0KKworICAgIGRvdWJsZSByZWZlcmVuY2VNb25vdG9uaWNUaW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOyB9CisgICAgZG91YmxlIHJl
ZmVyZW5jZVdhbGxUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZTsgfQor
Citwcml2YXRlOgorICAgIGRvdWJsZSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7CisgICAgZG91
YmxlIG1fcmVmZXJlbmNlV2FsbFRpbWU7CisgICAgZG91YmxlIG1fc3RhcnRUaW1lOworICAgIGRv
dWJsZSBtX3VubG9hZEV2ZW50U3RhcnQ7CisgICAgZG91YmxlIG1fdW5sb2FkRXZlbnRFbmQ7Cisg
ICAgZG91YmxlIG1fcmVkaXJlY3RTdGFydDsKKyAgICBkb3VibGUgbV9yZWRpcmVjdEVuZDsKKyAg
ICBzaG9ydCBtX3JlZGlyZWN0Q291bnQ7CisgICAgZG91YmxlIG1fZmV0Y2hTdGFydDsKKyAgICBk
b3VibGUgbV9yZXNwb25zZUVuZDsKKyAgICBkb3VibGUgbV9sb2FkRXZlbnRTdGFydDsKKyAgICBk
b3VibGUgbV9sb2FkRXZlbnRFbmQ7CisgICAgYm9vbCBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7
CisgICAgYm9vbCBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IDExODc2ZDZmOGFhYzQ5OGQzMWQxMzIwZjU2NWJlMmQ1MzcwZDU1ZDIuLmI5ZTI2MTgzNmM0
Zjg3NTBkNjgwNDU0YmJkMmMzNmIyNjYxMmQ3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTE4NjgsMTAgKzE4NjgsMTAgQEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoTG9hZEV2
ZW50KCkKIHsKICAgICBSZWY8RXZlbnQ+IGxvYWRFdmVudCA9IEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKTsKICAgICBpZiAobV9mcmFtZSAmJiBtX2Zy
YW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpICYmICFtX2ZyYW1lLT5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpLT50aW1pbmcoKS5sb2FkRXZlbnRTdGFydCgpKSB7Ci0gICAgICAgIC8vIFRo
ZSBEb2N1bWVudExvYWRlciAoYW5kIHRodXMgaXRzIERvY3VtZW50TG9hZFRpbWluZykgbWlnaHQg
Z2V0IGRlc3Ryb3llZCB3aGlsZSBkaXNwYXRjaGluZworICAgICAgICAvLyBUaGUgRG9jdW1lbnRM
b2FkZXIgKGFuZCB0aHVzIGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVzdHJveWVkIHdoaWxl
IGRpc3BhdGNoaW5nCiAgICAgICAgIC8vIHRoZSBldmVudCwgc28gcHJvdGVjdCBpdCB0byBwcmV2
ZW50IHdyaXRpbmcgdGhlIGVuZCB0aW1lIGludG8gZnJlZWQgbWVtb3J5LgogICAgICAgICBSZWZQ
dHI8RG9jdW1lbnRMb2FkZXI+IGRvY3VtZW50TG9hZGVyID0gbV9mcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKTsKLSAgICAgICAgRG9jdW1lbnRMb2FkVGltaW5nJiB0aW1pbmcgPSBkb2N1
bWVudExvYWRlci0+dGltaW5nKCk7CisgICAgICAgIExvYWRUaW1pbmcmIHRpbWluZyA9IGRvY3Vt
ZW50TG9hZGVyLT50aW1pbmcoKTsKICAgICAgICAgdGltaW5nLm1hcmtMb2FkRXZlbnRTdGFydCgp
OwogICAgICAgICBkaXNwYXRjaEV2ZW50KGxvYWRFdmVudCwgZG9jdW1lbnQoKSk7CiAgICAgICAg
IHRpbWluZy5tYXJrTG9hZEV2ZW50RW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTmF2aWdhdGlvbi5jcHAKaW5kZXggYmU0NzJhMDVjNzYwMmZlNmI0YmIwNWM5NjIxZmM2
ZGUzN2U3NzMyYy4uNmM2MGUzMjM5NTA4NjY5ZmZjYmZlN2ZiZGZlYmMyNmFjMzVhMWZkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcApAQCAtNzMs
NyArNzMsNyBAQCB1bnNpZ25lZCBzaG9ydCBQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0
Q291bnQoKSBjb25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IERvY3VtZW50TG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT50aW1pbmcoKTsKKyAgICBMb2Fk
VGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnRpbWluZygpOwogICAgIGlmICh0aW1pbmcuaGFzQ3Jv
c3NPcmlnaW5SZWRpcmVjdCgpKQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKaW5kZXggNGIwZTA3Zjhk
MTdiNDgwMDE3ZWRiOGNmNjVlY2FiYzkzM2ZlYzllMi4uNWRiMmNjM2M2Nzg0YTg0NzVhNWM1YjRk
ZTFjMzZiNmM3N2QyZDFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAjaWYgRU5BQkxFKFdFQl9U
SU1JTkcpCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZFRp
bWluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRl
ck5hbWVzLmgiCisjaW5jbHVkZSAiTG9hZFRpbWluZy5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIK
QEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIGJvb2wgcGFzc2VzVGltaW5nQWxsb3dDaGVjayhjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRG9jdW1lbnQqIHIKIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWF0b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBm
aW5pc2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQogICAgIDogUGVyZm9ybWFu
Y2VFbnRyeShyZXF1ZXN0LnVybCgpLnN0cmluZygpLCAicmVzb3VyY2UiLCBtb25vdG9uaWNUaW1l
VG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhyZXF1ZXN0aW5nRG9jdW1lbnQsIGluaXRpYXRpb25UaW1l
KSwgbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMocmVxdWVzdGluZ0RvY3VtZW50
LCBmaW5pc2hUaW1lKSkKICAgICAsIG1faW5pdGlhdG9yVHlwZShpbml0aWF0b3JUeXBlKQotICAg
ICwgbV90aW1pbmcocmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpCisgICAgLCBtX3RpbWlu
ZyhyZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpKQogICAgICwgbV9maW5pc2hUaW1lKGZpbmlz
aFRpbWUpCiAgICAgLCBtX3Nob3VsZFJlcG9ydERldGFpbHMocGFzc2VzVGltaW5nQWxsb3dDaGVj
ayhyZXNwb25zZSwgcmVxdWVzdGluZ0RvY3VtZW50KSkKICAgICAsIG1fcmVxdWVzdGluZ0RvY3Vt
ZW50KHJlcXVlc3RpbmdEb2N1bWVudCkKQEAgLTE5NSw3ICsxOTUsNyBAQCBkb3VibGUgUGVyZm9y
bWFuY2VSZXNvdXJjZVRpbWluZzo6cmVzb3VyY2VUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhp
bnQgZGVsdGFNaQogewogICAgIGlmICghZGVsdGFNaWxsaXNlY29uZHMpCiAgICAgICAgIHJldHVy
biAwLjA7Ci0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKG1f
cmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3JlcXVlc3RpbmdEb2N1bWVudC0+bG9hZGVyKCkt
PnRpbWluZygpLm5hdmlnYXRpb25TdGFydCgpKSArIGRlbHRhTWlsbGlzZWNvbmRzOworICAgIHJl
dHVybiBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhtX3JlcXVlc3RpbmdEb2N1
bWVudC5nZXQoKSwgbV9yZXF1ZXN0aW5nRG9jdW1lbnQtPmxvYWRlcigpLT50aW1pbmcoKS5zdGFy
dFRpbWUoKSkgKyBkZWx0YU1pbGxpc2Vjb25kczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApp
bmRleCA4MjQ4NWIyZjcyZjZiNTBmYWEzN2FkN2NmNWQyYTRlODAwMWFjZThmLi44YmMzNDg0ZThk
NmI5ZDUwNzJkMTJkMDNjOTE4MGY0OTk0ZWFhZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApAQCAtMzQsOCArMzQsOCBAQAogCiAjaWYg
RU5BQkxFKFdFQl9USU1JTkcpCiAKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFRpbWluZy5oIgogI2lu
Y2x1ZGUgIlBlcmZvcm1hbmNlRW50cnkuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFVSTDsKLWNsYXNzIFJlc291
cmNlTG9hZFRpbWluZzsKK2NsYXNzIE5ldHdvcmtMb2FkVGltaW5nOwogY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIApAQCAtNzcsNyArNzcsNyBAQCBwcml2
YXRlOgogICAgIGRvdWJsZSByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGludCBk
ZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CiAKICAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JU
eXBlOwotICAgIFJlc291cmNlTG9hZFRpbWluZyBtX3RpbWluZzsKKyAgICBOZXR3b3JrTG9hZFRp
bWluZyBtX3RpbWluZzsKICAgICBkb3VibGUgbV9maW5pc2hUaW1lOwogICAgIGJvb2wgbV9zaG91
bGRSZXBvcnREZXRhaWxzOwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9yZXF1ZXN0aW5nRG9jdW1l
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmluZGV4IDdkNTcx
YjVmM2NmYzNjYmMwMTAwN2NhY2IzODY1ODQ0YTg3NmI0MmIuLmE5YTJhMTUwOGM4MmQ3ZmVkNWQz
MTM4MzVmZmZiNmU1MzBjYjRlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuY3BwCkBAIC0zNCwxMiArMzQsMTIgQEAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWluZy5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJS
ZXNvdXJjZUxvYWRUaW1pbmcuaCIKKyNpbmNsdWRlICJMb2FkVGltaW5nLmgiCisjaW5jbHVkZSAi
TmV0d29ya0xvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKQEAgLTU4LDE2ICs1OCwxNiBAQCBQZXJmb3JtYW5j
ZVRpbWluZzo6UGVyZm9ybWFuY2VUaW1pbmcoRnJhbWUqIGZyYW1lKQogCiB1bnNpZ25lZCBsb25n
IGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCgpIGNvbnN0CiB7Ci0gICAg
RG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1pbmcoKTsKKyAgICBM
b2FkVGltaW5nKiB0aW1pbmcgPSBsb2FkVGltaW5nKCk7CiAgICAgaWYgKCF0aW1pbmcpCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNl
Y29uZHModGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQoKSk7CisgICAgcmV0dXJuIG1vbm90b25pY1Rp
bWVUb0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5zdGFydFRpbWUoKSk7CiB9CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0
CiB7Ci0gICAgRG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1pbmco
KTsKKyAgICBMb2FkVGltaW5nKiB0aW1pbmcgPSBsb2FkVGltaW5nKCk7CiAgICAgaWYgKCF0aW1p
bmcpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC03OSw3ICs3OSw3IEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCgpIGNvbnN0CiAKIHVuc2ln
bmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdAog
ewotICAgIERvY3VtZW50TG9hZFRpbWluZyogdGltaW5nID0gZG9jdW1lbnRMb2FkVGltaW5nKCk7
CisgICAgTG9hZFRpbWluZyogdGltaW5nID0gbG9hZFRpbWluZygpOwogICAgIGlmICghdGltaW5n
KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtOTEsNyArOTEsNyBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKIAogdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KCkgY29uc3QKIHsKLSAg
ICBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOworICAg
IExvYWRUaW1pbmcqIHRpbWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWluZykKICAg
ICAgICAgcmV0dXJuIDA7CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQoKSBjb25zdAogCiB1bnNpZ25lZCBsb25n
IGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29uc3QKIHsKLSAgICBEb2N1
bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOworICAgIExvYWRU
aW1pbmcqIHRpbWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWluZykKICAgICAgICAg
cmV0dXJuIDA7CiAKQEAgLTExNSw3ICsxMTUsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9y
bWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29uc3QKIAogdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KCkgY29uc3QKIHsKLSAgICBEb2N1bWVudExvYWRU
aW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOworICAgIExvYWRUaW1pbmcqIHRp
bWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7
CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1p
bmc6OmRvbWFpbkxvb2t1cFN0YXJ0KCkgY29uc3QKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAg
cmV0dXJuIGZldGNoU3RhcnQoKTsKICAgICAKLSAgICBjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcm
IHRpbWluZyA9IGxvYWRlci0+cmVzcG9uc2UoKS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBj
b25zdCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLm5ldHdv
cmtMb2FkVGltaW5nKCk7CiAgICAgCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBETlMg
cmVxdWVzdCBpcyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEg
c3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0aCBm
ZXRjaFN0YXJ0LgpAQCAtMTQ0LDcgKzE0NCw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKCkgY29uc3QKICAgICBpZiAoIWxvYWRlcikKICAg
ICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0KCk7CiAgICAgCi0gICAgY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkucmVzb3VyY2VMb2FkVGlt
aW5nKCk7CisgICAgY29uc3QgTmV0d29ya0xvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVz
cG9uc2UoKS5uZXR3b3JrTG9hZFRpbWluZygpOwogICAgIAogICAgIC8vIFRoaXMgd2lsbCBiZSAt
MSB3aGVuIGEgRE5TIHJlcXVlc3QgaXMgbm90IHBlcmZvcm1lZC4KICAgICAvLyBSYXRoZXIgdGhh
biBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgbm8gRE5TLCB3ZSAiYmFj
a2ZpbGwiIHdpdGggZG9tYWluTG9va3VwU3RhcnQuCkBAIC0xNjAsNyArMTYwLDcgQEAgdW5zaWdu
ZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpjb25uZWN0U3RhcnQoKSBjb25zdAogICAg
IGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwRW5kKCk7CiAKLSAgICBj
b25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVzcG9uc2UoKS5yZXNv
dXJjZUxvYWRUaW1pbmcoKTsKKyAgICBjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nID0g
bG9hZGVyLT5yZXNwb25zZSgpLm5ldHdvcmtMb2FkVGltaW5nKCk7CiAgICAgCiAgICAgLy8gY29u
bmVjdFN0YXJ0IHdpbGwgYmUgLTEgd2hlbiBhIG5ldHdvcmsgcmVxdWVzdCBpcyBub3QgbWFkZS4K
ICAgICAvLyBSYXRoZXIgdGhhbiBleHBvc2luZyBhIHNwZWNpYWwgdmFsdWUgdGhhdCBpbmRpY2F0
ZXMgbm8gbmV3IGNvbm5lY3Rpb24sIHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29rdXBFbmQu
CkBAIC0xNjgsNyArMTY4LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
Ojpjb25uZWN0U3RhcnQoKSBjb25zdAogICAgIGlmIChjb25uZWN0U3RhcnQgPCAwKQogICAgICAg
ICByZXR1cm4gZG9tYWluTG9va3VwRW5kKCk7CiAKLSAgICAvLyBSZXNvdXJjZUxvYWRUaW1pbmcn
cyBjb25uZWN0IHBoYXNlIGluY2x1ZGVzIEROUywgaG93ZXZlciBOYXZpZ2F0aW9uIFRpbWluZydz
CisgICAgLy8gTmV0d29ya0xvYWRUaW1pbmcncyBjb25uZWN0IHBoYXNlIGluY2x1ZGVzIEROUywg
aG93ZXZlciBOYXZpZ2F0aW9uIFRpbWluZydzCiAgICAgLy8gY29ubmVjdCBwaGFzZSBzaG91bGQg
bm90LiBTbyBpZiB0aGVyZSBpcyBETlMgdGltZSwgdHJpbSBpdCBmcm9tIHRoZSBzdGFydC4KICAg
ICBpZiAodGltaW5nLmRvbWFpbkxvb2t1cEVuZCA+PSAwICYmIHRpbWluZy5kb21haW5Mb29rdXBF
bmQgPiBjb25uZWN0U3RhcnQpCiAgICAgICAgIGNvbm5lY3RTdGFydCA9IHRpbWluZy5kb21haW5M
b29rdXBFbmQ7CkBAIC0xODIsNyArMTgyLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpjb25uZWN0RW5kKCkgY29uc3QKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAg
cmV0dXJuIGNvbm5lY3RTdGFydCgpOwogCi0gICAgY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiB0
aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkucmVzb3VyY2VMb2FkVGltaW5nKCk7CisgICAgY29u
c3QgTmV0d29ya0xvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVzcG9uc2UoKS5uZXR3b3Jr
TG9hZFRpbWluZygpOwogICAgIAogICAgIC8vIGNvbm5lY3RFbmQgd2lsbCBiZSAtMSB3aGVuIGEg
bmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5n
IGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwgd2UgImJh
Y2tmaWxsIiB3aXRoIGNvbm5lY3RTdGFydC4KQEAgLTE5OCw3ICsxOTgsNyBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnNlY3VyZUNvbm5lY3Rpb25TdGFydCgpIGNvbnN0
CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgY29uc3QgUmVzb3Vy
Y2VMb2FkVGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkucmVzb3VyY2VMb2FkVGlt
aW5nKCk7CisgICAgY29uc3QgTmV0d29ya0xvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVz
cG9uc2UoKS5uZXR3b3JrTG9hZFRpbWluZygpOwogICAgIAogICAgIGlmICh0aW1pbmcuc2VjdXJl
Q29ubmVjdGlvblN0YXJ0IDwgMCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0yMTIsNyArMjEyLDcg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXF1ZXN0U3RhcnQoKSBj
b25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gY29ubmVjdEVuZCgpOwogICAg
IAotICAgIGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT5yZXNwb25z
ZSgpLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGNvbnN0IE5ldHdvcmtMb2FkVGltaW5nJiB0
aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkubmV0d29ya0xvYWRUaW1pbmcoKTsKICAgICAKICAg
ICBBU1NFUlQodGltaW5nLnJlcXVlc3RTdGFydCA+PSAwKTsKICAgICByZXR1cm4gcmVzb3VyY2VM
b2FkVGltZVJlbGF0aXZlVG9GZXRjaFN0YXJ0KHRpbWluZy5yZXF1ZXN0U3RhcnQpOwpAQCAtMjI0
LDcgKzIyNCw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVzcG9u
c2VTdGFydCgpIGNvbnN0CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAgIHJldHVybiByZXF1ZXN0
U3RhcnQoKTsKIAotICAgIGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVy
LT5yZXNwb25zZSgpLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGNvbnN0IE5ldHdvcmtMb2Fk
VGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkubmV0d29ya0xvYWRUaW1pbmcoKTsK
ICAgICAKICAgICBBU1NFUlQodGltaW5nLnJlc3BvbnNlU3RhcnQgPj0gMCk7CiAgICAgcmV0dXJu
IHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvRmV0Y2hTdGFydCh0aW1pbmcucmVzcG9uc2VTdGFy
dCk7CkBAIC0yMzIsNyArMjMyLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGlt
aW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjpyZXNwb25zZUVuZCgpIGNvbnN0CiB7Ci0gICAgRG9jdW1lbnRMb2FkVGltaW5n
KiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1pbmcoKTsKKyAgICBMb2FkVGltaW5nKiB0aW1pbmcg
PSBsb2FkVGltaW5nKCk7CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCkBA
IC0yODYsNyArMjg2LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpk
b21Db21wbGV0ZSgpIGNvbnN0CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6bG9hZEV2ZW50U3RhcnQoKSBjb25zdAogewotICAgIERvY3VtZW50TG9hZFRpbWluZyogdGlt
aW5nID0gZG9jdW1lbnRMb2FkVGltaW5nKCk7CisgICAgTG9hZFRpbWluZyogdGltaW5nID0gbG9h
ZFRpbWluZygpOwogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjk1
LDcgKzI5NSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2
ZW50U3RhcnQoKSBjb25zdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6
OmxvYWRFdmVudEVuZCgpIGNvbnN0CiB7Ci0gICAgRG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcg
PSBkb2N1bWVudExvYWRUaW1pbmcoKTsKKyAgICBMb2FkVGltaW5nKiB0aW1pbmcgPSBsb2FkVGlt
aW5nKCk7CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0zMjIsNyAr
MzIyLDcgQEAgY29uc3QgRG9jdW1lbnRUaW1pbmcqIFBlcmZvcm1hbmNlVGltaW5nOjpkb2N1bWVu
dFRpbWluZygpIGNvbnN0CiAgICAgcmV0dXJuICZkb2N1bWVudC0+dGltaW5nKCk7CiB9CiAKLURv
Y3VtZW50TG9hZFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OmRvY3VtZW50TG9hZFRpbWluZygp
IGNvbnN0CitMb2FkVGltaW5nKiBQZXJmb3JtYW5jZVRpbWluZzo6bG9hZFRpbWluZygpIGNvbnN0
CiB7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGRvY3VtZW50TG9hZGVyKCk7CiAgICAg
aWYgKCFsb2FkZXIpCkBAIC0zNDAsNyArMzQwLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZv
cm1hbmNlVGltaW5nOjpyZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0ZldGNoU3RhcnQoaW50IHIK
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyhkb3VibGUgbW9ub3RvbmljU2Vjb25kcykgY29uc3QKIHsKICAgICBB
U1NFUlQobW9ub3RvbmljU2Vjb25kcyA+PSAwKTsKLSAgICBpZiAoY29uc3QgRG9jdW1lbnRMb2Fk
VGltaW5nKiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1pbmcoKSkKKyAgICBpZiAoY29uc3QgTG9h
ZFRpbWluZyogdGltaW5nID0gbG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm4gdG9JbnRlZ2Vy
TWlsbGlzZWNvbmRzKHRpbWluZy0+bW9ub3RvbmljVGltZVRvUHNldWRvV2FsbFRpbWUobW9ub3Rv
bmljU2Vjb25kcykpOwogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5oCmluZGV4IDk5MDkyZmVmNDUxMzY4YzZjOWU1ODdhY2I3NDMyOTJhMjBkMWQ1
YWIuLjRlMTFkZGRjYmJjYzJiNTc1YjA1ZmQzYmMxZGY4YTBlYTg5ZjQ5NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgKQEAgLTM5LDExICszOSwxMSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50TG9hZFRpbWluZzsKK2NsYXNzIExvYWRU
aW1pbmc7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKIHN0cnVjdCBEb2N1bWVudFRpbWluZzsKIGNs
YXNzIEZyYW1lOwotY2xhc3MgUmVzb3VyY2VMb2FkVGltaW5nOworY2xhc3MgTmV0d29ya0xvYWRU
aW1pbmc7CiAKIGNsYXNzIFBlcmZvcm1hbmNlVGltaW5nIDogcHVibGljIFJlZkNvdW50ZWQ8UGVy
Zm9ybWFuY2VUaW1pbmc+LCBwdWJsaWMgRE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgpAQCAt
NzYsNyArNzYsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgRG9jdW1lbnRUaW1pbmcqIGRvY3Vt
ZW50VGltaW5nKCkgY29uc3Q7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKCkg
Y29uc3Q7Ci0gICAgRG9jdW1lbnRMb2FkVGltaW5nKiBkb2N1bWVudExvYWRUaW1pbmcoKSBjb25z
dDsKKyAgICBMb2FkVGltaW5nKiBsb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIHJlc291cmNlTG9hZFRpbWVSZWxhdGl2ZVRvRmV0Y2hTdGFydChpbnQpIGNvbnN0Owog
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRz
KGRvdWJsZSkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVz
ZXJUaW1pbmcuY3BwCmluZGV4IDVjODVmZDEzZTU2NmMzYjkzY2VhZDQ2MjJhYjc4OGFkMDY2OTBk
MjUuLjQ1NTZlNjM2NmM2OTRhNTNiYTQ4MzdhMjM5YjliMWVjNWEzZmFmYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTEzMiw3ICsxMzIs
NyBAQCBkb3VibGUgVXNlclRpbWluZzo6ZmluZEV4aXN0aW5nTWFya1N0YXJ0VGltZShjb25zdCBT
dHJpbmcmIG1hcmtOYW1lLCBFeGNlcHRpb25DbwogICAgICAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CiAgICAgICAgICAgICByZXR1cm4gMC4wOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiB2YWx1ZSAtIG1fcGVyZm9ybWFuY2UtPnRpbWluZygpLT5uYXZpZ2F0aW9uU3RhcnQoKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlIC0gbV9wZXJmb3JtYW5jZS0+dGltaW5nKCktPnN0YXJ0VGlt
ZSgpOwogICAgIH0KIAogICAgIGVjID0gU1lOVEFYX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRUaW1pbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRUaW1pbmcuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWMw
MjJhNTcyMTk5OWQ1ODhlNTM0NDE5NzAwOWI1NzA2YjMwNzZiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZFRpbWluZy5oCkBAIC0w
LDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlLCBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTmV0d29ya0xvYWRUaW1pbmdfaAorI2RlZmluZSBOZXR3b3JrTG9hZFRpbWlu
Z19oCisKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OworI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIE5ldHdvcmtMb2FkVGltaW5n
IHsKK3B1YmxpYzoKKyAgICBOZXR3b3JrTG9hZFRpbWluZygpCisgICAgICAgIDogZG9tYWluTG9v
a3VwU3RhcnQoLTEpCisgICAgICAgICwgZG9tYWluTG9va3VwRW5kKC0xKQorICAgICAgICAsIGNv
bm5lY3RTdGFydCgtMSkKKyAgICAgICAgLCBjb25uZWN0RW5kKC0xKQorICAgICAgICAsIHJlcXVl
c3RTdGFydCgwKQorICAgICAgICAsIHJlc3BvbnNlU3RhcnQoMCkKKyAgICAgICAgLCBzZWN1cmVD
b25uZWN0aW9uU3RhcnQoLTEpCisgICAgeworICAgIH0KKyAgICAKKyAgICBOZXR3b3JrTG9hZFRp
bWluZyhjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgb3RoZXIpCisgICAgICAgIDogZG9tYWluTG9v
a3VwU3RhcnQob3RoZXIuZG9tYWluTG9va3VwU3RhcnQpCisgICAgICAgICwgZG9tYWluTG9va3Vw
RW5kKG90aGVyLmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAgLCBjb25uZWN0U3RhcnQob3RoZXIu
Y29ubmVjdFN0YXJ0KQorICAgICAgICAsIGNvbm5lY3RFbmQob3RoZXIuY29ubmVjdEVuZCkKKyAg
ICAgICAgLCByZXF1ZXN0U3RhcnQob3RoZXIucmVxdWVzdFN0YXJ0KQorICAgICAgICAsIHJlc3Bv
bnNlU3RhcnQob3RoZXIucmVzcG9uc2VTdGFydCkKKyAgICAgICAgLCBzZWN1cmVDb25uZWN0aW9u
U3RhcnQob3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0KQorICAgIHsKKyAgICB9CisgICAgCisg
ICAgTmV0d29ya0xvYWRUaW1pbmcmIG9wZXJhdG9yPShjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYg
b3RoZXIpCisgICAgeworICAgICAgICBkb21haW5Mb29rdXBTdGFydCA9IG90aGVyLmRvbWFpbkxv
b2t1cFN0YXJ0OworICAgICAgICBkb21haW5Mb29rdXBFbmQgPSBvdGhlci5kb21haW5Mb29rdXBF
bmQ7CisgICAgICAgIGNvbm5lY3RTdGFydCA9IG90aGVyLmNvbm5lY3RTdGFydDsKKyAgICAgICAg
Y29ubmVjdEVuZCA9IG90aGVyLmNvbm5lY3RFbmQ7CisgICAgICAgIHJlcXVlc3RTdGFydCA9IG90
aGVyLnJlcXVlc3RTdGFydDsKKyAgICAgICAgcmVzcG9uc2VTdGFydCA9IG90aGVyLnJlc3BvbnNl
U3RhcnQ7CisgICAgICAgIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IG90aGVyLnNlY3VyZUNvbm5l
Y3Rpb25TdGFydDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIE5ldHdvcmtM
b2FkVGltaW5nIGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBUaGVyZSBh
cmUgY3VycmVudGx5IG5vIG1lbWJlcnMgdGhhdCBuZWVkIGlzb2xhdGVkIGNvcGllcywgc28gd2Ug
Y2FuIHVzZSB0aGUgY29weSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgcmV0dXJuICp0aGlzOworICAg
IH0KKyAgICAKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTmV0d29ya0xvYWRUaW1pbmcmIG90
aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvbWFpbkxvb2t1cFN0YXJ0ID09IG90
aGVyLmRvbWFpbkxvb2t1cFN0YXJ0CisgICAgICAgICAgICAmJiBkb21haW5Mb29rdXBFbmQgPT0g
b3RoZXIuZG9tYWluTG9va3VwRW5kCisgICAgICAgICAgICAmJiBjb25uZWN0U3RhcnQgPT0gb3Ro
ZXIuY29ubmVjdFN0YXJ0CisgICAgICAgICAgICAmJiBjb25uZWN0RW5kID09IG90aGVyLmNvbm5l
Y3RFbmQKKyAgICAgICAgICAgICYmIHJlcXVlc3RTdGFydCA9PSBvdGhlci5yZXF1ZXN0U3RhcnQK
KyAgICAgICAgICAgICYmIHJlc3BvbnNlU3RhcnQgPT0gb3RoZXIucmVzcG9uc2VTdGFydAorICAg
ICAgICAgICAgJiYgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID09IG90aGVyLnNlY3VyZUNvbm5lY3Rp
b25TdGFydDsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTmV0d29ya0xvYWRU
aW1pbmcmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIE5ldHdvcmtMb2FkVGltaW5nJik7CisKKyAgICAvLyBUaGVzZSBhcmUg
bWlsbGlzZWNvbmQgZGVsdGFzIGZyb20gdGhlIG5hdmlnYXRpb24gc3RhcnQuCisgICAgaW50IGRv
bWFpbkxvb2t1cFN0YXJ0OworICAgIGludCBkb21haW5Mb29rdXBFbmQ7CisgICAgaW50IGNvbm5l
Y3RTdGFydDsKKyAgICBpbnQgY29ubmVjdEVuZDsKKyAgICBpbnQgcmVxdWVzdFN0YXJ0OworICAg
IGludCByZXNwb25zZVN0YXJ0OworICAgIGludCBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7Cit9Owor
CisjaWYgUExBVEZPUk0oQ09DT0EpCitXRUJDT1JFX0VYUE9SVCB2b2lkIGNvcHlUaW1pbmdEYXRh
KE5TRGljdGlvbmFyeSAqdGltaW5nRGF0YSwgTmV0d29ya0xvYWRUaW1pbmcmKTsKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFIQVZFKFRJTUlOR0RBVEFPUFRJT05TKQorV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDb2xsZWN0c1RpbWluZ0RhdGEoKTsKKyNlbmRpZgorICAgIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgTmV0d29ya0xvYWRUaW1pbmc6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgZG9tYWluTG9va3VwU3RhcnQ7
CisgICAgZW5jb2RlciA8PCBkb21haW5Mb29rdXBFbmQ7CisgICAgZW5jb2RlciA8PCBjb25uZWN0
U3RhcnQ7CisgICAgZW5jb2RlciA8PCBjb25uZWN0RW5kOworICAgIGVuY29kZXIgPDwgcmVxdWVz
dFN0YXJ0OworICAgIGVuY29kZXIgPDwgcmVzcG9uc2VTdGFydDsKKyAgICBlbmNvZGVyIDw8IHNl
Y3VyZUNvbm5lY3Rpb25TdGFydDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wg
TmV0d29ya0xvYWRUaW1pbmc6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrTG9hZFRp
bWluZyYgdGltaW5nKQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aW1pbmcuZG9tYWlu
TG9va3VwU3RhcnQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5kb21haW5Mb29r
dXBFbmQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5jb25uZWN0U3RhcnQpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5jb25uZWN0RW5kKQorICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZSh0aW1pbmcucmVxdWVzdFN0YXJ0KQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZSh0aW1pbmcucmVzcG9uc2VTdGFydCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGlt
aW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggOTk0NmRk
M2ZmMTkzMzQzMDc3N2I4OWViODRlMDIzZmFhODM1MThhZC4uNTA1YTIxODQ1ZmRlMjk5OTUwYWY5
ZWViNzRiY2JiZDRkYzA2NWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtODYsNyArODYsNyBAQCBjbGFzcyBQcm90ZWN0aW9u
U3BhY2U7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7
CiBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsOwotY2xhc3MgUmVzb3VyY2VMb2FkVGltaW5n
OworY2xhc3MgTmV0d29ya0xvYWRUaW1pbmc7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtMTM0LDkgKzEzNCw5
IEBAIHB1YmxpYzoKICAgICAgICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJf
VElNSU5HKQogI2lmIFVTRShDRk5FVFdPUkspCi0gICAgc3RhdGljIHZvaWQgZ2V0Q29ubmVjdGlv
blRpbWluZ0RhdGEoQ0ZVUkxDb25uZWN0aW9uUmVmLCBSZXNvdXJjZUxvYWRUaW1pbmcmKTsKKyAg
ICBzdGF0aWMgdm9pZCBnZXRDb25uZWN0aW9uVGltaW5nRGF0YShDRlVSTENvbm5lY3Rpb25SZWYs
IE5ldHdvcmtMb2FkVGltaW5nJik7CiAjZWxzZQotICAgIHN0YXRpYyB2b2lkIGdldENvbm5lY3Rp
b25UaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlvbiAqLCBSZXNvdXJjZUxvYWRUaW1pbmcmKTsKKyAg
ICBzdGF0aWMgdm9pZCBnZXRDb25uZWN0aW9uVGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKiwg
TmV0d29ya0xvYWRUaW1pbmcmKTsKICNlbmRpZgogI2VuZGlmCiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1Y2VjNDkzNjc5MjNiN2Y3ZTFiNTg3NTdhYzJj
YjFhYzYzNmNiY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaAor
KysgL2Rldi9udWxsCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVzb3VyY2VMb2FkVGltaW5nX2gKLSNkZWZp
bmUgUmVzb3VyY2VMb2FkVGltaW5nX2gKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotT0JKQ19DTEFT
UyBOU0RpY3Rpb25hcnk7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xh
c3MgUmVzb3VyY2VMb2FkVGltaW5nIHsKLXB1YmxpYzoKLSAgICBSZXNvdXJjZUxvYWRUaW1pbmco
KQotICAgICAgICA6IGRvbWFpbkxvb2t1cFN0YXJ0KC0xKQotICAgICAgICAsIGRvbWFpbkxvb2t1
cEVuZCgtMSkKLSAgICAgICAgLCBjb25uZWN0U3RhcnQoLTEpCi0gICAgICAgICwgY29ubmVjdEVu
ZCgtMSkKLSAgICAgICAgLCByZXF1ZXN0U3RhcnQoMCkKLSAgICAgICAgLCByZXNwb25zZVN0YXJ0
KDApCi0gICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KC0xKQotICAgIHsKLSAgICB9Ci0g
ICAgCi0gICAgUmVzb3VyY2VMb2FkVGltaW5nKGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3Ro
ZXIpCi0gICAgICAgIDogZG9tYWluTG9va3VwU3RhcnQob3RoZXIuZG9tYWluTG9va3VwU3RhcnQp
Ci0gICAgICAgICwgZG9tYWluTG9va3VwRW5kKG90aGVyLmRvbWFpbkxvb2t1cEVuZCkKLSAgICAg
ICAgLCBjb25uZWN0U3RhcnQob3RoZXIuY29ubmVjdFN0YXJ0KQotICAgICAgICAsIGNvbm5lY3RF
bmQob3RoZXIuY29ubmVjdEVuZCkKLSAgICAgICAgLCByZXF1ZXN0U3RhcnQob3RoZXIucmVxdWVz
dFN0YXJ0KQotICAgICAgICAsIHJlc3BvbnNlU3RhcnQob3RoZXIucmVzcG9uc2VTdGFydCkKLSAg
ICAgICAgLCBzZWN1cmVDb25uZWN0aW9uU3RhcnQob3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0
KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgUmVzb3VyY2VMb2FkVGltaW5nJiBvcGVyYXRvcj0o
Y29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGRvbWFpbkxv
b2t1cFN0YXJ0ID0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnQ7Ci0gICAgICAgIGRvbWFpbkxvb2t1
cEVuZCA9IG90aGVyLmRvbWFpbkxvb2t1cEVuZDsKLSAgICAgICAgY29ubmVjdFN0YXJ0ID0gb3Ro
ZXIuY29ubmVjdFN0YXJ0OwotICAgICAgICBjb25uZWN0RW5kID0gb3RoZXIuY29ubmVjdEVuZDsK
LSAgICAgICAgcmVxdWVzdFN0YXJ0ID0gb3RoZXIucmVxdWVzdFN0YXJ0OwotICAgICAgICByZXNw
b25zZVN0YXJ0ID0gb3RoZXIucmVzcG9uc2VTdGFydDsKLSAgICAgICAgc2VjdXJlQ29ubmVjdGlv
blN0YXJ0ID0gb3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwotICAgICAgICByZXR1cm4gKnRo
aXM7Ci0gICAgfQotCi0gICAgUmVzb3VyY2VMb2FkVGltaW5nIGlzb2xhdGVkQ29weSgpIGNvbnN0
Ci0gICAgewotICAgICAgICAvLyBUaGVyZSBhcmUgY3VycmVudGx5IG5vIG1lbWJlcnMgdGhhdCBu
ZWVkIGlzb2xhdGVkIGNvcGllcywgc28gd2UgY2FuIHVzZSB0aGUgY29weSBjb25zdHJ1Y3Rvci4K
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLSAgICAKLSAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiBvdGhlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBkb21haW5Mb29rdXBTdGFydCA9PSBvdGhlci5kb21haW5Mb29rdXBTdGFydAotICAgICAg
ICAgICAgJiYgZG9tYWluTG9va3VwRW5kID09IG90aGVyLmRvbWFpbkxvb2t1cEVuZAotICAgICAg
ICAgICAgJiYgY29ubmVjdFN0YXJ0ID09IG90aGVyLmNvbm5lY3RTdGFydAotICAgICAgICAgICAg
JiYgY29ubmVjdEVuZCA9PSBvdGhlci5jb25uZWN0RW5kCi0gICAgICAgICAgICAmJiByZXF1ZXN0
U3RhcnQgPT0gb3RoZXIucmVxdWVzdFN0YXJ0Ci0gICAgICAgICAgICAmJiByZXNwb25zZVN0YXJ0
ID09IG90aGVyLnJlc3BvbnNlU3RhcnQKLSAgICAgICAgICAgICYmIHNlY3VyZUNvbm5lY3Rpb25T
dGFydCA9PSBvdGhlci5zZWN1cmVDb25uZWN0aW9uU3RhcnQ7Ci0gICAgfQotCi0gICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVzb3VyY2VMb2Fk
VGltaW5nJik7Ci0KLSAgICAvLyBUaGVzZSBhcmUgbWlsbGlzZWNvbmQgZGVsdGFzIGZyb20gdGhl
IG5hdmlnYXRpb24gc3RhcnQuCi0gICAgaW50IGRvbWFpbkxvb2t1cFN0YXJ0OwotICAgIGludCBk
b21haW5Mb29rdXBFbmQ7Ci0gICAgaW50IGNvbm5lY3RTdGFydDsKLSAgICBpbnQgY29ubmVjdEVu
ZDsKLSAgICBpbnQgcmVxdWVzdFN0YXJ0OwotICAgIGludCByZXNwb25zZVN0YXJ0OwotICAgIGlu
dCBzZWN1cmVDb25uZWN0aW9uU3RhcnQ7Ci19OwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1XRUJD
T1JFX0VYUE9SVCB2b2lkIGNvcHlUaW1pbmdEYXRhKE5TRGljdGlvbmFyeSAqdGltaW5nRGF0YSwg
UmVzb3VyY2VMb2FkVGltaW5nJik7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAh
SEFWRShUSU1JTkdEQVRBT1BUSU9OUykKLVdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29sbGVjdHNU
aW1pbmdEYXRhKCk7Ci0jZW5kaWYKLSAgICAKLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lk
IFJlc291cmNlTG9hZFRpbWluZzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0g
ICAgZW5jb2RlciA8PCBkb21haW5Mb29rdXBTdGFydDsKLSAgICBlbmNvZGVyIDw8IGRvbWFpbkxv
b2t1cEVuZDsKLSAgICBlbmNvZGVyIDw8IGNvbm5lY3RTdGFydDsKLSAgICBlbmNvZGVyIDw8IGNv
bm5lY3RFbmQ7Ci0gICAgZW5jb2RlciA8PCByZXF1ZXN0U3RhcnQ7Ci0gICAgZW5jb2RlciA8PCBy
ZXNwb25zZVN0YXJ0OwotICAgIGVuY29kZXIgPDwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwotfQot
Ci10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotYm9vbCBSZXNvdXJjZUxvYWRUaW1pbmc6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZykKLXsKLSAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUodGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0KQotICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZSh0aW1pbmcuZG9tYWluTG9va3VwRW5kKQotICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZSh0aW1pbmcuY29ubmVjdFN0YXJ0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29k
ZSh0aW1pbmcuY29ubmVjdEVuZCkKLSAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGltaW5nLnJl
cXVlc3RTdGFydCkKLSAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGltaW5nLnJlc3BvbnNlU3Rh
cnQpCi0gICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAppbmRleCBmY2JlNzc2OTg0Nzdh
MmJmNmU2NjNjMGM2ZmNhNjEyZjE5ODVlYmEwLi4yYzEyMjc4ZDVhZjBjYzc4MTAzYjZiMWVhMzhl
OTgxZTJkZTc0ODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtNzEsNyArNzEsNyBAQCBSZXNvdXJj
ZVJlc3BvbnNlQmFzZTo6Q3Jvc3NUaHJlYWREYXRhIFJlc291cmNlUmVzcG9uc2VCYXNlOjpjcm9z
c1RocmVhZERhdGEoKSBjbwogICAgIGRhdGEuaHR0cFZlcnNpb24gPSBodHRwVmVyc2lvbigpLmlz
b2xhdGVkQ29weSgpOwogCiAgICAgZGF0YS5odHRwSGVhZGVyRmllbGRzID0gaHR0cEhlYWRlckZp
ZWxkcygpLmlzb2xhdGVkQ29weSgpOwotICAgIGRhdGEucmVzb3VyY2VMb2FkVGltaW5nID0gbV9y
ZXNvdXJjZUxvYWRUaW1pbmcuaXNvbGF0ZWRDb3B5KCk7CisgICAgZGF0YS5uZXR3b3JrTG9hZFRp
bWluZyA9IG1fbmV0d29ya0xvYWRUaW1pbmcuaXNvbGF0ZWRDb3B5KCk7CiAgICAgZGF0YS50eXBl
ID0gbV90eXBlOwogICAgIGRhdGEuaXNSZWRpcmVjdGVkID0gbV9pc1JlZGlyZWN0ZWQ7CiAKQEAg
LTkyLDcgKzkyLDcgQEAgUmVzb3VyY2VSZXNwb25zZSBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZnJv
bUNyb3NzVGhyZWFkRGF0YShDcm9zc1RocmVhZERhdGEmJiBkYXQKICAgICByZXNwb25zZS5zZXRI
VFRQVmVyc2lvbihkYXRhLmh0dHBWZXJzaW9uKTsKIAogICAgIHJlc3BvbnNlLm1faHR0cEhlYWRl
ckZpZWxkcyA9IFdURk1vdmUoZGF0YS5odHRwSGVhZGVyRmllbGRzKTsKLSAgICByZXNwb25zZS5t
X3Jlc291cmNlTG9hZFRpbWluZyA9IGRhdGEucmVzb3VyY2VMb2FkVGltaW5nOworICAgIHJlc3Bv
bnNlLm1fbmV0d29ya0xvYWRUaW1pbmcgPSBkYXRhLm5ldHdvcmtMb2FkVGltaW5nOwogICAgIHJl
c3BvbnNlLm1fdHlwZSA9IGRhdGEudHlwZTsKICAgICByZXNwb25zZS5tX2lzUmVkaXJlY3RlZCA9
IGRhdGEuaXNSZWRpcmVjdGVkOwogCkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBSZXNvdXJjZVJl
c3BvbnNlQmFzZTo6Y29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBhLCBjb25zdCBSZXNv
dXJjZVJlc3AKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChhLmh0dHBIZWFkZXJGaWVs
ZHMoKSAhPSBiLmh0dHBIZWFkZXJGaWVsZHMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmIChhLnJlc291cmNlTG9hZFRpbWluZygpICE9IGIucmVzb3VyY2VMb2FkVGltaW5nKCkpCisg
ICAgaWYgKGEubmV0d29ya0xvYWRUaW1pbmcoKSAhPSBiLm5ldHdvcmtMb2FkVGltaW5nKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gUmVzb3VyY2VSZXNwb25zZTo6cGxhdGZv
cm1Db21wYXJlKGEsIGIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCmluZGV4IDQ5ODUwMGM2Y2I0ZTRkYjlmZTA5
ZTFkMzg2NGRhMDE2NmM5MjExYWYuLmEyODgyMzUwNzRjODhjZDM4YjA4MTZjM2FmZjE3YzQ5OGQ1
ZTBmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVzcG9uc2VCYXNlLmgKQEAgLTI5LDggKzI5LDggQEAKICNpbmNsdWRlICJDYWNoZVZh
bGlkYXRpb24uaCIKICNpbmNsdWRlICJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJIVFRQ
SGVhZGVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJQ
YXJzZWRDb250ZW50UmFuZ2UuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRUaW1pbmcuaCIKICNp
bmNsdWRlICJVUkwuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIFN0cmluZyBodHRwU3RhdHVzVGV4dDsKICAgICAgICAgU3RyaW5nIGh0
dHBWZXJzaW9uOwogICAgICAgICBIVFRQSGVhZGVyTWFwIGh0dHBIZWFkZXJGaWVsZHM7Ci0gICAg
ICAgIFJlc291cmNlTG9hZFRpbWluZyByZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgICAgIE5ldHdv
cmtMb2FkVGltaW5nIG5ldHdvcmtMb2FkVGltaW5nOwogICAgICAgICBUeXBlIHR5cGU7CiAgICAg
ICAgIGJvb2wgaXNSZWRpcmVjdGVkOwogICAgIH07CkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIFNvdXJjZSBzb3VyY2UoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFNvdXJjZShTb3VyY2UpOwogCi0gICAgUmVzb3VyY2VMb2FkVGltaW5n
JiByZXNvdXJjZUxvYWRUaW1pbmcoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFRpbWlu
ZzsgfQorICAgIE5ldHdvcmtMb2FkVGltaW5nJiBuZXR3b3JrTG9hZFRpbWluZygpIGNvbnN0IHsg
cmV0dXJuIG1fbmV0d29ya0xvYWRUaW1pbmc7IH0KIAogICAgIC8vIFRoZSBSZXNvdXJjZVJlc3Bv
bnNlIHN1YmNsYXNzIG1heSAic2hhZG93IiB0aGlzIG1ldGhvZCB0byBwcm92aWRlIHBsYXRmb3Jt
LXNwZWNpZmljIG1lbW9yeSB1c2FnZSBpbmZvcm1hdGlvbgogICAgIHVuc2lnbmVkIG1lbW9yeVVz
YWdlKCkgY29uc3QKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgQXRvbWljU3Ry
aW5nIG1faHR0cFN0YXR1c1RleHQ7CiAgICAgQXRvbWljU3RyaW5nIG1faHR0cFZlcnNpb247CiAg
ICAgSFRUUEhlYWRlck1hcCBtX2h0dHBIZWFkZXJGaWVsZHM7Ci0gICAgbXV0YWJsZSBSZXNvdXJj
ZUxvYWRUaW1pbmcgbV9yZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgbXV0YWJsZSBOZXR3b3JrTG9h
ZFRpbWluZyBtX25ldHdvcmtMb2FkVGltaW5nOwogCiAgICAgbXV0YWJsZSBPcHRpb25hbDxDZXJ0
aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNhdGVJbmZvOwogCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9p
ZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBtX2h0dHBTdGF0dXNUZXh0OwogICAgIGVuY29kZXIgPDwgbV9odHRwVmVy
c2lvbjsKICAgICBlbmNvZGVyIDw8IG1faHR0cEhlYWRlckZpZWxkczsKLSAgICBlbmNvZGVyIDw8
IG1fcmVzb3VyY2VMb2FkVGltaW5nOworICAgIGVuY29kZXIgPDwgbV9uZXR3b3JrTG9hZFRpbWlu
ZzsKICAgICBlbmNvZGVyIDw8IG1faHR0cFN0YXR1c0NvZGU7CiAgICAgZW5jb2RlciA8PCBtX2Nl
cnRpZmljYXRlSW5mbzsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9zb3VyY2UpOwpAQCAtMjY2
LDcgKzI2Niw3IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNlQmFzZSYgcmVzcG9uCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNlLm1faHR0cEhlYWRlckZpZWxkcykp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNl
Lm1fcmVzb3VyY2VMb2FkVGltaW5nKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3BvbnNl
Lm1fbmV0d29ya0xvYWRUaW1pbmcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXNwb25zZS5tX2h0dHBTdGF0dXNDb2RlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKaW5kZXggODRiN2EzZWI2
MzE0NTE1OWM0N2MxMTQ1NTJmMjc2NDhjYmUwN2Q2Ni4uOWYwMGMzYTAzZmViMWE5YTIxOTdiYWY5
ODg3OTIwZWU4ZTYwODg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCkBA
IC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAgICAgCiAgICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKICNpZiBF
TkFCTEUoV0VCX1RJTUlORykKLSAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25U
aW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCkpOworICAgICAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29u
bmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpKTsKICNlbHNlCiAg
ICAgICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
Y3BwCmluZGV4IDE5YTZkZDljYmQ5NWI0MWEzNGE2NTZkZGI2YTNkMWI3MjdhMTY2ZTguLjNkNmZm
MjU1YTUyMTY1OTliNDI4ZDVhYjVlZmQxODIwYzk4NjFiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5j
cHAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKENGVVJMQwogICAgIAogICAg
IFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShjZlJlc3BvbnNlKTsKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAgUmVzb3VyY2VIYW5kbGU6Omdl
dENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNlUmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpOworICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5n
RGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya0xvYWRUaW1pbmcu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtMb2FkVGlt
aW5nLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyMzMzMTExNDgyZjZhY2I2Y2IzNzFiNmZjOWM3NTZmNDlmZGVh
ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtMb2FkVGltaW5nLm1tCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiTmV0d29ya0xvYWRUaW1pbmcuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9OU1VSTENvbm5l
Y3Rpb25TUEkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgZG91YmxlIHRpbWlu
Z1ZhbHVlKE5TRGljdGlvbmFyeSAqdGltaW5nRGF0YSwgTlNTdHJpbmcgKmtleSkKK3sKKyAgICBp
ZiAoaWQgb2JqZWN0ID0gW3RpbWluZ0RhdGEgb2JqZWN0Rm9yS2V5OmtleV0pCisgICAgICAgIHJl
dHVybiBbb2JqZWN0IGRvdWJsZVZhbHVlXTsKKyAgICByZXR1cm4gMC4wOworfQorICAgIAordm9p
ZCBjb3B5VGltaW5nRGF0YShOU0RpY3Rpb25hcnkgKnRpbWluZ0RhdGEsIE5ldHdvcmtMb2FkVGlt
aW5nJiB0aW1pbmcpCit7CisgICAgaWYgKCF0aW1pbmdEYXRhKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgLy8gVGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFydCB0aW1lIGluIG1vbm90
b25pYyB0aW1lLCBidXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2ZSB0byB0aGlzIHRpbWUK
KyAgICAvLyBhbmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aW1lcyBhcmUgc3RvcmVk
LgorICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAi
X2tDRk5UaW1pbmdEYXRhRmV0Y2hTdGFydCIpOworICAgIAorICAgIGRvdWJsZSBkb21haW5Mb29r
dXBTdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhRG9tYWlu
TG9va3VwU3RhcnQiKTsKKyAgICBkb3VibGUgZG9tYWluTG9va3VwRW5kID0gdGltaW5nVmFsdWUo
dGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBFbmQiKTsKKyAgICBkb3Vi
bGUgY29ubmVjdFN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0Rh
dGFDb25uZWN0U3RhcnQiKTsKKyAgICBkb3VibGUgc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gdGlt
aW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFTZWN1cmVDb25uZWN0aW9uU3Rh
cnQiKTsKKyAgICBkb3VibGUgY29ubmVjdEVuZCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAi
X2tDRk5UaW1pbmdEYXRhQ29ubmVjdEVuZCIpOworICAgIGRvdWJsZSByZXF1ZXN0U3RhcnQgPSB0
aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YVJlcXVlc3RTdGFydCIpOwor
ICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NG
TlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0Iik7CisgICAgCisgICAgdGltaW5nLmRvbWFpbkxvb2t1
cFN0YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQgPD0gMCA/IC0xIDogKGRvbWFpbkxvb2t1cFN0YXJ0
IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICB0aW1pbmcuZG9tYWluTG9va3VwRW5kID0g
ZG9tYWluTG9va3VwRW5kIDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBFbmQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgIHRpbWluZy5jb25uZWN0U3RhcnQgPSBjb25uZWN0U3RhcnQgPD0g
MCA/IC0xIDogKGNvbm5lY3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgdGlt
aW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rpb25TdGFydCA8PSAwID8g
LTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAg
ICB0aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0xIDogKGNvbm5lY3RFbmQg
LSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOworICAgIHRpbWluZy5yZXF1ZXN0U3RhcnQgPSByZXF1
ZXN0U3RhcnQgPD0gMCA/IDAgOiAocmVxdWVzdFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAw
MDsKKyAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3RhcnQgPD0gMCA/IDAgOiAo
cmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Cit9CisKKyNpZiAhSEFWRShU
SU1JTkdEQVRBT1BUSU9OUykKK3ZvaWQgc2V0Q29sbGVjdHNUaW1pbmdEYXRhKCkKK3sKKyAgICBz
dGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
VG9rZW4sIF57CisgICAgICAgIFtOU1VSTENvbm5lY3Rpb24gX3NldENvbGxlY3RzVGltaW5nRGF0
YTpZRVNdOworICAgICAgICBbTlNVUkxDb25uZWN0aW9uIF9jb2xsZWN0VGltaW5nRGF0YVdpdGhP
cHRpb25zOlRpbWluZ0RhdGFDb2xsZWN0aW9uTlN0YXRzT2ZmIHwgVGltaW5nRGF0YUNvbGxlY3Rp
b25Db25uZWN0aW9uRGF0YU9mZl07CisgICAgfSk7Cit9CisjZW5kaWYKKyAgICAKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VMb2Fk
VGltaW5nLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJj
ZUxvYWRUaW1pbmcubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0ODBmZmMxMzI1
Y2EwMWRjYmM1MGQ1NGE4NGNmNGMyZDZmMWNmMTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZUxvYWRUaW1pbmcubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIlJlc291cmNlTG9hZFRpbWluZy5oIgotCi0jaW1wb3J0IDxXZWJD
b3JlL05TVVJMQ29ubmVjdGlvblNQSS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRp
YyBkb3VibGUgdGltaW5nVmFsdWUoTlNEaWN0aW9uYXJ5ICp0aW1pbmdEYXRhLCBOU1N0cmluZyAq
a2V5KQotewotICAgIGlmIChpZCBvYmplY3QgPSBbdGltaW5nRGF0YSBvYmplY3RGb3JLZXk6a2V5
XSkKLSAgICAgICAgcmV0dXJuIFtvYmplY3QgZG91YmxlVmFsdWVdOwotICAgIHJldHVybiAwLjA7
Ci19Ci0gICAgCi12b2lkIGNvcHlUaW1pbmdEYXRhKE5TRGljdGlvbmFyeSAqdGltaW5nRGF0YSwg
UmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcpCi17Ci0gICAgaWYgKCF0aW1pbmdEYXRhKQotICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgLy8gVGhpcyBpcyBub3QgdGhlIG5hdmlnYXRpb25TdGFy
dCB0aW1lIGluIG1vbm90b25pYyB0aW1lLCBidXQgdGhlIG90aGVyIHRpbWVzIGFyZSByZWxhdGl2
ZSB0byB0aGlzIHRpbWUKLSAgICAvLyBhbmQgb25seSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0
aW1lcyBhcmUgc3RvcmVkLgotICAgIGRvdWJsZSByZWZlcmVuY2VTdGFydCA9IHRpbWluZ1ZhbHVl
KHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhRmV0Y2hTdGFydCIpOwotICAgIAotICAgIGRv
dWJsZSBkb21haW5Mb29rdXBTdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5U
aW1pbmdEYXRhRG9tYWluTG9va3VwU3RhcnQiKTsKLSAgICBkb3VibGUgZG9tYWluTG9va3VwRW5k
ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFEb21haW5Mb29rdXBF
bmQiKTsKLSAgICBkb3VibGUgY29ubmVjdFN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwg
QCJfa0NGTlRpbWluZ0RhdGFDb25uZWN0U3RhcnQiKTsKLSAgICBkb3VibGUgc2VjdXJlQ29ubmVj
dGlvblN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFTZWN1
cmVDb25uZWN0aW9uU3RhcnQiKTsKLSAgICBkb3VibGUgY29ubmVjdEVuZCA9IHRpbWluZ1ZhbHVl
KHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdEVuZCIpOwotICAgIGRvdWJsZSBy
ZXF1ZXN0U3RhcnQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YVJl
cXVlc3RTdGFydCIpOwotICAgIGRvdWJsZSByZXNwb25zZVN0YXJ0ID0gdGltaW5nVmFsdWUodGlt
aW5nRGF0YSwgQCJfa0NGTlRpbWluZ0RhdGFSZXNwb25zZVN0YXJ0Iik7Ci0gICAgCi0gICAgdGlt
aW5nLmRvbWFpbkxvb2t1cFN0YXJ0ID0gZG9tYWluTG9va3VwU3RhcnQgPD0gMCA/IC0xIDogKGRv
bWFpbkxvb2t1cFN0YXJ0IC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKLSAgICB0aW1pbmcuZG9t
YWluTG9va3VwRW5kID0gZG9tYWluTG9va3VwRW5kIDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBF
bmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIHRpbWluZy5jb25uZWN0U3RhcnQgPSBj
b25uZWN0U3RhcnQgPD0gMCA/IC0xIDogKGNvbm5lY3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAq
IDEwMDA7Ci0gICAgdGltaW5nLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHNlY3VyZUNvbm5lY3Rp
b25TdGFydCA8PSAwID8gLTEgOiAoc2VjdXJlQ29ubmVjdGlvblN0YXJ0IC0gcmVmZXJlbmNlU3Rh
cnQpICogMTAwMDsKLSAgICB0aW1pbmcuY29ubmVjdEVuZCA9IGNvbm5lY3RFbmQgPD0gMCA/IC0x
IDogKGNvbm5lY3RFbmQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIHRpbWluZy5yZXF1
ZXN0U3RhcnQgPSByZXF1ZXN0U3RhcnQgPD0gMCA/IDAgOiAocmVxdWVzdFN0YXJ0IC0gcmVmZXJl
bmNlU3RhcnQpICogMTAwMDsKLSAgICB0aW1pbmcucmVzcG9uc2VTdGFydCA9IHJlc3BvbnNlU3Rh
cnQgPD0gMCA/IDAgOiAocmVzcG9uc2VTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Ci19
Ci0KLSNpZiAhSEFWRShUSU1JTkdEQVRBT1BUSU9OUykKLXZvaWQgc2V0Q29sbGVjdHNUaW1pbmdE
YXRhKCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKLSAgICBkaXNw
YXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIFtOU1VSTENvbm5lY3Rpb24gX3NldENv
bGxlY3RzVGltaW5nRGF0YTpZRVNdOwotICAgICAgICBbTlNVUkxDb25uZWN0aW9uIF9jb2xsZWN0
VGltaW5nRGF0YVdpdGhPcHRpb25zOlRpbWluZ0RhdGFDb2xsZWN0aW9uTlN0YXRzT2ZmIHwgVGlt
aW5nRGF0YUNvbGxlY3Rpb25Db25uZWN0aW9uRGF0YU9mZl07Ci0gICAgfSk7Ci19Ci0jZW5kaWYK
LSAgICAKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKaW5kZXggZWNmZTlmODA2ZmExMTFi
ZTc5MTYwMGM2OGQyNzI2YzQ4MjhmMjViMC4uNGRlMTU3YTQ0M2E4ODVhZjk3NWU1Y2E3ZTAwNWFj
YjNjMmU4ZDk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTE4OCwxNyArMTg4
LDE3IEBAIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZVdlYlRpbWluZ0luZm9ybWF0aW9ucyhSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBkKQogICAgIGN1cmxfZWFzeV9nZXRpbmZvKGQtPm1faGFuZGxlLCBD
VVJMSU5GT19TVEFSVFRSQU5TRkVSX1RJTUUsICZzdGFydFRyYW5zZmVydFRpbWUpOwogICAgIGN1
cmxfZWFzeV9nZXRpbmZvKGQtPm1faGFuZGxlLCBDVVJMSU5GT19QUkVUUkFOU0ZFUl9USU1FLCAm
cHJlVHJhbnNmZXJUaW1lKTsKIAotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5n
KCkuZG9tYWluTG9va3VwU3RhcnQgPSAwOwotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2Fk
VGltaW5nKCkuZG9tYWluTG9va3VwRW5kID0gc3RhdGljX2Nhc3Q8aW50PihkbnNsb29rdXBUaW1l
ICogMTAwMCk7CisgICAgZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLmRvbWFpbkxv
b2t1cFN0YXJ0ID0gMDsKKyAgICBkLT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkuZG9t
YWluTG9va3VwRW5kID0gc3RhdGljX2Nhc3Q8aW50PihkbnNsb29rdXBUaW1lICogMTAwMCk7CiAK
LSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmNvbm5lY3RTdGFydCA9IHN0
YXRpY19jYXN0PGludD4oZG5zbG9va3VwVGltZSAqIDEwMDApOwotICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCkuY29ubmVjdEVuZCA9IHN0YXRpY19jYXN0PGludD4oY29ubmVj
dFRpbWUgKiAxMDAwKTsKKyAgICBkLT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkuY29u
bmVjdFN0YXJ0ID0gc3RhdGljX2Nhc3Q8aW50PihkbnNsb29rdXBUaW1lICogMTAwMCk7CisgICAg
ZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLmNvbm5lY3RFbmQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGNvbm5lY3RUaW1lICogMTAwMCk7CiAKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLnJlcXVlc3RTdGFydCA9IHN0YXRpY19jYXN0PGludD4oY29ubmVjdFRpbWUg
KjEwMDApOwotICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkucmVzcG9uc2VT
dGFydCA9c3RhdGljX2Nhc3Q8aW50PihwcmVUcmFuc2ZlclRpbWUgKiAxMDAwKTsKKyAgICBkLT5t
X3Jlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkucmVxdWVzdFN0YXJ0ID0gc3RhdGljX2Nhc3Q8
aW50Pihjb25uZWN0VGltZSAqMTAwMCk7CisgICAgZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRp
bWluZygpLnJlc3BvbnNlU3RhcnQgPXN0YXRpY19jYXN0PGludD4ocHJlVHJhbnNmZXJUaW1lICog
MTAwMCk7CiAKICAgICBpZiAoYXBwQ29ubmVjdFRpbWUpCi0gICAgICAgIGQtPm1fcmVzcG9uc2Uu
cmVzb3VyY2VMb2FkVGltaW5nKCkuc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc3RhdGljX2Nhc3Q8
aW50Pihjb25uZWN0VGltZSAqIDEwMDApOworICAgICAgICBkLT5tX3Jlc3BvbnNlLm5ldHdvcmtM
b2FkVGltaW5nKCkuc2VjdXJlQ29ubmVjdGlvblN0YXJ0ID0gc3RhdGljX2Nhc3Q8aW50Pihjb25u
ZWN0VGltZSAqIDEwMDApOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggZTU3OWRi
YzUyYjIzODk5MjFmYzE0YWQ1N2VkZmQ3NjRhMTdkOGY2Zi4uMjY5ZmI1MTY2NDM2MDY4OWYwM2Fk
NzVjMWNhN2JjODQ2ZDY4M2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTczNywxNCArNzM3LDE0
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoTlNDYWNo
ZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCiAKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIAotdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoQ0ZVUkxDb25uZWN0aW9u
UmVmIGNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQordm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm5l
Y3Rpb24sIE5ldHdvcmtMb2FkVGltaW5nJiB0aW1pbmcpCiB7CiAgICAgY29weVRpbWluZ0RhdGEo
KF9fYnJpZGdlIE5TRGljdGlvbmFyeSopYWRvcHRDRihfQ0ZVUkxDb25uZWN0aW9uQ29weVRpbWlu
Z0RhdGEoY29ubmVjdGlvbikpLmdldCgpLCB0aW1pbmcpOwogfQogICAgIAogI2Vsc2UKICAgICAK
LXZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TVVJMQ29ubmVj
dGlvbiAqY29ubmVjdGlvbiwgUmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcpCit2b2lkIFJlc291
cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5l
Y3Rpb24sIE5ldHdvcmtMb2FkVGltaW5nJiB0aW1pbmcpCiB7CiAgICAgY29weVRpbWluZ0RhdGEo
W2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdLCB0aW1pbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxl
Z2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KaW5kZXggOWY5NDZmODMyYzI2NzE0Zjk0YTA3MmI0ZGU0
YmNmZmQ5MGZlODA3Ni4uMjEwM2EzZmQyMDJmYWIyZTg1Y2FkODBhNGMyNjhlNTdjMjI1MjU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCkBAIC0xNTEsNyAr
MTUxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZXNvdXJjZVJlc3BvbnNlKHIpOwogICAgIHJlc291cmNlUmVzcG9uc2Uuc2V0U291cmNlKFJlc291
cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0g
ICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJl
c291cmNlUmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkpOworICAgIFJlc291cmNlSGFuZGxl
OjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLm5l
dHdvcmtMb2FkVGltaW5nKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQppbmRleCAyYjFjOGQzMDlhNDgyNGU4MTc3OTI5Y2JmOTk5
YjI3YmVkNGJhMDQ2Li4xZmQxYTZlMDE4OTI4ZWVhMmEzM2FjM2ZiM2IyYjRhMjZhZWI5YWU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25R
dWV1ZURlbGVnYXRlLm1tCkBAIC0xOTUsNyArMTk1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAgICAgICAgIAogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uo
cik7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAgICAgIFJlc291cmNlSGFuZGxlOjpnZXRD
b25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpKTsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1p
bmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNlUmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKSk7
CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKaW5kZXggYzJiOTU1MTZmYjViYTYwOGVhMDJhNTM5NjZmNTdhNThhM2Yx
MzI3MS4uNjY2NjQ0Y2JhNzQ5NDc5NzUyZWRmMjUxMWQyYWQzM2ViZDM3ZTYwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKQEAgLTcwOSw3ICs3MDksNyBAQCBzdGF0aWMgdm9pZCBzZW5kUmVxdWVz
dENhbGxiYWNrKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgZGF0YSkK
ICAgICB9CiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLnJlc3BvbnNlU3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdCho
YW5kbGUtPm1fcmVxdWVzdFRpbWUpOworICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1p
bmcoKS5yZXNwb25zZVN0YXJ0ID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoaGFuZGxlLT5tX3Jl
cXVlc3RUaW1lKTsKICNlbmRpZgogCiAgICAgaWYgKHNvdXBNZXNzYWdlICYmIGQtPm1fcmVzcG9u
c2UuaXNNdWx0aXBhcnQoKSkKQEAgLTg0Myw3ICs4NDMsNyBAQCBzdGF0aWMgaW50IG1pbGlzZWNv
bmRzU2luY2VSZXF1ZXN0KGRvdWJsZSByZXF1ZXN0VGltZSkKIAogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6ZGlkU3RhcnRSZXF1ZXN0KCkKIHsKLSAgICBnZXRJbnRlcm5hbCgpLT5tX3Jlc3BvbnNlLnJl
c291cmNlTG9hZFRpbWluZygpLnJlcXVlc3RTdGFydCA9IG1pbGlzZWNvbmRzU2luY2VSZXF1ZXN0
KG1fcmVxdWVzdFRpbWUpOworICAgIGdldEludGVybmFsKCktPm1fcmVzcG9uc2UubmV0d29ya0xv
YWRUaW1pbmcoKS5yZXF1ZXN0U3RhcnQgPSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChtX3JlcXVl
c3RUaW1lKTsKIH0KIAogI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA0OSwgOTEpCkBAIC04NjYs
MjEgKzg2NiwyMSBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVzc2Fn
ZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZQogICAgIGludCBkZWx0YVRpbWUg
PSBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChoYW5kbGUtPm1fcmVxdWVzdFRpbWUpOwogICAgIHN3
aXRjaCAoZXZlbnQpIHsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9SRVNPTFZJTkc6Ci0gICAg
ICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkuZG9tYWluTG9va3VwU3RhcnQg
PSBkZWx0YVRpbWU7CisgICAgICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5k
b21haW5Mb29rdXBTdGFydCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBH
X1NPQ0tFVF9DTElFTlRfUkVTT0xWRUQ6Ci0gICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCkuZG9tYWluTG9va3VwRW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jl
c3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkuZG9tYWluTG9va3VwRW5kID0gZGVsdGFUaW1lOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05ORUNUSU5HOgotICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmNvbm5lY3RTdGFydCA9IGRl
bHRhVGltZTsKLSAgICAgICAgaWYgKGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCku
ZG9tYWluTG9va3VwU3RhcnQgIT0gLTEpIHsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5uZXR3b3Jr
TG9hZFRpbWluZygpLmNvbm5lY3RTdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgaWYgKGQtPm1f
cmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5kb21haW5Mb29rdXBTdGFydCAhPSAtMSkgewog
ICAgICAgICAgICAgLy8gV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlcXVlc3RUaW1pbmdW
aWV3LmpzIGFzc3VtZXMKICAgICAgICAgICAgIC8vIHRoYXQgRE5TIHRpbWUgaXMgaW5jbHVkZWQg
aW4gY29ubmVjdGlvbiB0aW1lIHNvIG11c3QKICAgICAgICAgICAgIC8vIHN1YnN0cmFjdCBoZXJl
IHRoZSBETlMgZGVsdGEgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyIChzZWUKICAgICAgICAgICAg
IC8vIFdlYkluc3BlY3Rvci5SZXF1ZXN0VGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSBpbiB0
aGUKICAgICAgICAgICAgIC8vIGZpbGUgYWJvdmUgZm9yIG1vcmUgZGV0YWlscykuCi0gICAgICAg
ICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmNvbm5lY3RTdGFydCAtPQot
ICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkuZG9tYWlu
TG9va3VwRW5kIC0gZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS5kb21haW5Mb29r
dXBTdGFydDsKKyAgICAgICAgICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5j
b25uZWN0U3RhcnQgLT0KKyAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2Fk
VGltaW5nKCkuZG9tYWluTG9va3VwRW5kIC0gZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWlu
ZygpLmRvbWFpbkxvb2t1cFN0YXJ0OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgR19TT0NLRVRfQ0xJRU5UX0NPTk5FQ1RFRDoKQEAgLTg5MiwxMiArODkyLDEyIEBAIHN0YXRp
YyB2b2lkIG5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiwgR1NvY2tldENsaWVudEV2
ZW50IGV2ZW50LCBHSU9TdHJlCiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfUFJPWFlfTkVHT1RJ
QVRFRDoKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRT
SEFLSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLnNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5uZXR3
b3JrTG9hZFRpbWluZygpLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IGRlbHRhVGltZTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9DTElFTlRfVExTX0hBTkRTSEFLRUQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX0NPTVBMRVRFOgotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmNvbm5lY3RFbmQgPSBkZWx0YVRpbWU7
CisgICAgICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5jb25uZWN0RW5kID0g
ZGVsdGFUaW1lOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDUyYjFjMzM3NzI4NGI4Y2E3
NmIwM2NiNTMxNDZhNmY2ZDBjMjExZGQuLjU5ZTY5NmY4NmI3ZGZhOWQzMGMzNTA4OWRkNjZhNjE1
OWFmNTZmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNDAsMTAgKzQwLDEwIEBACiAjaW1w
b3J0IDxXZWJDb3JlL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFs
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTmV0d29ya0xvYWRUaW1pbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkVGlt
aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlz
cG9zaXRpb24gdG9OU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlRGlzcG9zaXRpCiAgICAgICAgIC8v
IGFsbCB0aGUgZmllbGRzIHdoZW4gc2VuZGluZyB0aGUgcmVzcG9uc2UgdG8gdGhlIFdlYkNvbnRl
bnQgcHJvY2VzcyBvdmVyIElQQy4KICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS5kaXNhYmxlTGF6
eUluaXRpYWxpemF0aW9uKCk7CiAKLSAgICAgICAgY29weVRpbWluZ0RhdGEoW2RhdGFUYXNrIF90
aW1pbmdEYXRhXSwgcmVzb3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisgICAg
ICAgIGNvcHlUaW1pbmdEYXRhKFtkYXRhVGFzayBfdGltaW5nRGF0YV0sIHJlc291cmNlUmVzcG9u
c2UubmV0d29ya0xvYWRUaW1pbmcoKSk7CiAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJD
b3B5ID0gQmxvY2tfY29weShjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgICAgIG5ldHdvcmtEYXRh
VGFzay0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSksIFtjb21w
bGV0aW9uSGFuZGxlckNvcHksIHRhc2tJZGVudGlmaWVyXShXZWJDb3JlOjpQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uKSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1IGRp
ZFJlY2VpdmVSZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlciAoY2FuY2VsKSIsIHRhc2tJZGVudGlm
aWVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285959</attachid>
            <date>2016-08-12 15:05:45 -0700</date>
            <delta_ts>2016-08-12 15:54:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160821-20160812150406.patch</filename>
            <type>text/plain</type>
            <size>96529</size>
            <attacher name="Johan K. Jensen">jj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzZTVlNzk4MmJjODFi
MWNmMmQxOTgxZGEzODhkYWI1ZWNjNDQ4Zi4uZGE5MTEzMWEwOTg5Nzk0OGZiYzgyYzYyMGZhYmQ5
MzE5NWMyMzNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAxNi0wOC0xMiAgSm9o
YW4gSy4gSmVuc2VuICA8am9oYW5famVuc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUg
RG9jdW1lbnRMb2FkVGltaW5nIGFuZCBSZXNvdXJjZUxvYWRUaW1pbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDgyMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZXMgUmVzb3VyY2VMb2FkVGlt
aW5nIHRvIE5ldHdvcmtMb2FkVGltaW5nLgorICAgICAgICBSZW5hbWVzIERvY3VtZW50TG9hZFRp
bWluZyB0byBMb2FkVGltaW5nIGFzIHdlbGwgYXMKKyAgICAgICAgbmF2aWdhdGlvblN0YXJ0KCkg
dG8gc3RhcnRUaW1lKCksIHNvIGl0J3MgZ2VuZXJpYyBmb3IKKyAgICAgICAgYm90aCB0aGUgbWFp
biByZXNvdXJjZSBhbmQgc3VicmVzb3VyY2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmF2aWdhdG9yR2FtZXBhZDo6ZnJvbSk6CisgICAgICAgICogUGxhdGZvcm1N
YWMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRPYmplY3RGb3JUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRP
YmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnN0YXJ0TG9hZGluZ01h
aW5SZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6dGltaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjpyZXNldFRpbWluZyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZy
b21DYWNoZWRQYWdlKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZFRpbWluZy5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmNwcC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OkxvYWRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TG9hZFRpbWluZzo6bW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6Om1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6Om1hcmtTdGFydFRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZFRpbWluZzo6YWRkUmVkaXJlY3QpOgorICAgICAgICAqIGxvYWRlci9Mb2Fk
VGltaW5nLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmguCisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJrVW5sb2FkRXZlbnRT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJrVW5sb2FkRXZlbnRFbmQp
OgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bWFya1JlZGlyZWN0U3RhcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bWFya1JlZGlyZWN0RW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRUaW1pbmc6Om1hcmtGZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okxv
YWRUaW1pbmc6OnNldFJlc3BvbnNlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6
Om1hcmtMb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGltaW5nOjptYXJr
TG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OnNldEhhc1NhbWVP
cmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6
c3RhcnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OnVubG9hZEV2ZW50U3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6cmVkaXJlY3RTdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpMb2FkVGltaW5nOjpyZWRpcmVjdEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2FkVGlt
aW5nOjpyZWRpcmVjdENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRUaW1pbmc6OmZldGNo
U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6cmVzcG9uc2VFbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9hZFRpbWluZzo6bG9hZEV2ZW50U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZFRpbWluZzo6bG9hZEV2ZW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRU
aW1pbmc6Omhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9hZFRp
bWluZzo6aGFzU2FtZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpMb2FkVGltaW5nOjpyZWZlcmVuY2VNb25vdG9uaWNUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvYWRUaW1pbmc6OnJlZmVyZW5jZVdhbGxUaW1lKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTG9hZEV2ZW50KToK
KyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQpOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJlc291cmNlVGltZVRvRG9j
dW1lbnRNaWxsaXNlY29uZHMpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6Om5hdmlnYXRpb25TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBl
cmZvcm1hbmNlVGltaW5nOjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpkb21haW5Mb29rdXBTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6ZG9tYWluTG9va3VwRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlVGltaW5nOjpjb25uZWN0U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VU
aW1pbmc6OmNvbm5lY3RFbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6
OnNlY3VyZUNvbm5lY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRp
bWluZzo6cmVxdWVzdFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5n
OjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjpy
ZXNwb25zZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2
ZW50U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OmxvYWRFdmVu
dEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bG9hZFRpbWluZyk6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6bW9ub3RvbmljVGltZVRvSW50
ZWdlck1pbGxpc2Vjb25kcyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRUaW1pbmcuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmgu
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrTG9hZFRpbWluZzo6TmV0d29ya0xvYWRUaW1pbmcp
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRUaW1pbmc6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrTG9hZFRpbWluZzo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtMb2FkVGltaW5nOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtMb2FkVGltaW5nOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtMb2FkVGltaW5nOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0xvYWRU
aW1pbmc6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmNyb3NzVGhyZWFkRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6ZnJvbUNyb3NzVGhy
ZWFkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6Y29tcGFy
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Om5ldHdvcmtMb2FkVGltaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjplbmNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmRpZFJlY2VpdmVSZXNw
b25zZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOjpkaWRSZWNlaXZl
UmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya0xvYWRU
aW1pbmcubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlTG9hZFRpbWluZy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OnRpbWluZ1ZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvcHlUaW1pbmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldENvbGxlY3RzVGltaW5nRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxjdWxhdGVX
ZWJUaW1pbmdJbmZvcm1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6Omdl
dENvbm5lY3Rpb25UaW1pbmdEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0pOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVJlc3BvbnNlOl0p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2VuZFJlcXVlc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkU3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Om5ldHdvcmtFdmVudENhbGxiYWNrKToKKwogMjAxNi0wOC0xMiAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjIwNDQwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzOTRjYmNmY2IyYmExNTUwMjliYTQyYTcwZmM0YzIxNGQz
YzQ0ZDUwLi44OGE2OGMyNDUyOGE3NjY2Zjg5OWM4NTZkM2MxZmQ3NWNkODJhOTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDgtMTIgIEpvaGFuIEsuIEplbnNlbiAgPGpvaGFu
X2plbnNlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIERvY3VtZW50TG9hZFRpbWluZyBh
bmQgUmVzb3VyY2VMb2FkVGltaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjA4MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgUmVzb3VyY2VMb2FkVGltaW5nIHRvIE5ldHdvcmtMb2FkVGlt
aW5nLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2Nv
YS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246ZGF0
YVRhc2s6ZGlkUmVjZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDE2LTA4
LTExICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBE
b24ndCBtb25pdG9yIGdhbWVwYWRzIGF0IGFsbCB1bmxlc3MgYW4gaW50ZXJlc3RlZCBXZWJQYWdl
UHJveHkgaXMgaW4gdGhlIGFjdGl2ZSB3aW5kb3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNk
ZWEwNDlkNjkxZDlkYTdhZjEyZjYzYWVhM2VjMDVkY2MzNWEwOTEuLjIxYmY4OTE0MjczZWZkMGRj
NmZiMDUwMzE5ZWU1OGY2NGVlMWQ0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTEyLDcg
KzE5MTIsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5jcHAKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNw
cAogICAgIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAotICAgIGxv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAogICAgIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCiAgICAgbG9hZGVyL0Rv
Y3VtZW50V3JpdGVyLmNwcApAQCAtMTkyNiw2ICsxOTI1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKICAgICBsb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCiAgICAgbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisgICAgbG9hZGVyL0xvYWRUaW1pbmcu
Y3BwCiAgICAgbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcAogICAgIGxvYWRlci9NZWRpYVJlc291
cmNlTG9hZGVyLmNwcAogICAgIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuY3BwCmlu
ZGV4IGQwZDE2MzZlZDU2ZTU3OWNlZGZhYmVhMDU4YjQ1NTExMjQyNjJiYmMuLjg1ZjFiZjVlOTBl
YWVkZDNjOTFlNzlmYzY5ZTliOTFmMGVmYTc0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
TmF2aWdhdG9yR2FtZXBhZCogTmF2aWdhdG9yR2FtZXBhZDo6ZnJvbShOYXZpZ2F0b3IqIG5hdmln
YXRvcikKIAogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gbmF2aWdhdG9yLT5mcmFtZSgpKSB7
CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCi0gICAgICAgICAgICAgICAgc3VwcGxlbWVudC0+
bV9uYXZpZ2F0aW9uU3RhcnQgPSBkb2N1bWVudExvYWRlci0+dGltaW5nKCkubmF2aWdhdGlvblN0
YXJ0KCk7CisgICAgICAgICAgICAgICAgc3VwcGxlbWVudC0+bV9uYXZpZ2F0aW9uU3RhcnQgPSBk
b2N1bWVudExvYWRlci0+dGltaW5nKCkuc3RhcnRUaW1lKCk7CiAgICAgICAgIH0KICAgICB9CiAg
ICAgcmV0dXJuIHN1cHBsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDc1NTJj
ZDc1Y2QxNWM4YmY2MWFmN2QyYTBlYTlmYjkxN2ZlMDdlMzkuLjYyOGVlZjJmMzdmNGUwMmM5ZmIx
NGYzNjkwYTdmNjUyODUyNTE0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC02NTMs
OCArNjUzLDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbmV0
d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUu
Y3BwCiAKICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0NyZWRlbnRpYWxDb2NvYS5tbQorICAg
IHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya0xvYWRUaW1pbmcubW0KICAgICBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tCi0gICAgcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SZXNvdXJjZUxvYWRUaW1pbmcubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCiAgICAgcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
ZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0KICAgICBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3NzQ3MDA4MzY3ZmU2NTBkYjg2ZGU0ZDA5MThjYTE0NDlj
OGE5N2M2Li41NzUxZDFiYzcwOGM3ZmE4NjA4N2FmMzU1ZjFjMjAyNWI4NmFjMWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
NDA5LDcgKzI0MDksNyBAQAogCQk1QzdDODhEODFEMEYxRjRBMDA5RDJGNkQgLyogU29ja2V0UHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
N0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDOUE3QTc1MUFBMEY2RUEwMDk1
OEFDRiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDVFMUFBMEY2QTkwMDI5QzgxNiAvKiBERkFCeXRl
Y29kZUNvbXBpbGVyLmNwcCAqLzsgfTsKIAkJNUM5QTdBNzYxQUEwRjZFRDAwOTU4QUNGIC8qIERG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUMzOTMwNjAxQUEwRjZBOTAwMjlDODE2IC8qIERGQUJ5dGVjb2RlSW50
ZXJwcmV0ZXIuY3BwICovOyB9OwotCQk1QzlCODYwQzFDMjFFM0M5MDAxMTBGMzYgLyogUmVzb3Vy
Y2VMb2FkVGltaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSAq
LzsgfTsKKwkJNUM5Qjg2MEMxQzIxRTNDOTAwMTEwRjM2IC8qIE5ldHdvcmtMb2FkVGltaW5nLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5Qjg2MEIx
QzIxRTNDNjAwMTEwRjM2IC8qIE5ldHdvcmtMb2FkVGltaW5nLm1tICovOyB9OwogCQk1Q0IzN0ZG
RTFDNjJEMjhDMDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjM3RkZDMUM2MkQyNzgwMEYyMDE4
OCAvKiBTY3JvbGxBbmltYXRvck1vY2suY3BwICovOyB9OwogCQk1Q0IzN0ZGRjFDNjJEMkExMDBG
MjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0IzN0ZGRDFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5p
bWF0b3JNb2NrLmggKi87IH07CiAJCTVDQkM4REFDMUFBQTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFj
Y2Vzc2liaWxpdHlTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Q0JDOERBQTFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmls
aXR5U29mdExpbmsuY3BwICovOyB9OwpAQCAtMzM1NCw3ICszMzU0LDcgQEAKIAkJODVGNzRFMEEw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKIAkJODVGRjMxNUEwQUFG
QkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODVGRjMxNUIwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1OTBB
QUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLzsgfTsKLQkJODYxQzJFQTQx
M0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIg
LyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCAqLzsgfTsKKwkJODYxQzJFQTQxM0ZCNEZERDAwMDYy
QUJCIC8qIExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIExvYWRUaW1pbmcuY3BwICov
OyB9OwogCQk4NjJGMTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODYyRjEyOUQx
OEMxNTcyQzAwNUM1NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NjJGMTJBMDE4QzFERDAyMDA1QzU0
QUYgLyogSHlzdGVyZXNpc0FjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NjJGMTI5RjE4QzFEQ0U0MDA1QzU0QUYgLyogSHlzdGVyZXNpc0Fj
dGl2aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY1MTJF
REIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovOyB9
OwpAQCAtMzM3NywxMyArMzM3NywxMyBAQAogCQk4OUI1RUFBMjExRTgwMDNEMDBGMjM2N0UgLyog
TGluZUVuZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODlCNUVBQTAxMUU4MDAzRDAwRjIzNjdFIC8qIExpbmVFbmRpbmcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4OUY2MEIxMTE1N0Y2ODZFMDA3
NUUxNTcgLyogRE9NV2luZG93UXVvdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg5RjYwQjBBMTU3RjY4NkQwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90
YS5oICovOyB9OwogCQk4OUY2MENEQTE1ODA5RDc2MDA3NUUxNTcgLyogSlNTdG9yYWdlSW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODlGNjBDRDIx
NTgwOUQ3NjAwNzVFMTU3IC8qIEpTU3RvcmFnZUluZm8uaCAqLzsgfTsKLQkJOEExMkUzNUQxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTEyRTM1QzExRkEz
MzI4MDAyNTgzNkEgLyogTG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyLmggKi87IH07CiAJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURF
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovOyB9
OwogCQk4QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAw
MUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1Nj
cmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87IH07Ci0JCThB
ODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERB
MkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogTmV0d29y
a0xvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBODQ0RDA1MTFE
M0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEE4NDREMDIxMUQzQzE4RTAwMTQwNjVDIC8qIFBlcmZvcm1h
bmNlLmggKi87IH07CiAJCThBOUE1ODcwMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNl
TmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4QTlBNTg2RTExRTg0QzM1MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24u
Y3BwICovOyB9OwogCQk4QTlBNTg3MTExRTg0QzM2MDA4QUNGRDEgLyogSlNQZXJmb3JtYW5jZU5h
dmlnYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBOUE1ODZGMTFFODRDMzYwMDhBQ0ZEMSAvKiBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5oICov
OyB9OwpAQCAtOTc3MSw3ICs5NzcxLDcgQEAKIAkJNUM2RTY1M0YxRDVDRURDOTAwRjc4NjJFIC8q
IFVSTFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxQ
YXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZFNjU0MDFENUNFREM5
MDBGNzg2MkUgLyogVVJMUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVSTFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzdDODhENzFEMEYx
RjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5Qjg2MEIxQzIxRTNDNjAwMTEwRjM2IC8q
IE5ldHdvcmtMb2FkVGltaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTmV0d29ya0xvYWRUaW1pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQjM3RkZDMUM2MkQyNzgwMEYyMDE4OCAvKiBTY3JvbGxBbmltYXRvck1vY2suY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCMzdGRkQxQzYyRDI3ODAwRjIwMTg4IC8q
IFNjcm9sbEFuaW1hdG9yTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JvbGxBbmltYXRvck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCQzhE
QUExQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRM
aW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODI4LDcgKzEwODI4LDcg
QEAKIAkJODVGNTZBNzkwQTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RkYzMTU4
MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4
Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtl
eWJvYXJkRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5k
aW5nID0gMDsgcGF0aCA9IERPTUtleWJvYXJkRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OwotCQk4NjFDMkVBMzEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg2MUMyRUEzMTNGQjRGREQwMDA2
MkFCQiAvKiBMb2FkVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5
RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURCMTU0QTJBRUUwMEE5
MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NjYsMTMgKzEwODY2LDEzIEBACiAJCTg5RjYwQjBB
MTU3RjY4NkQwMDc1RTE1NyAvKiBET01XaW5kb3dRdW90YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01XaW5kb3dRdW90YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4OUY2MENEMjE1ODA5RDc2MDA3NUUxNTcgLyogSlNTdG9yYWdlSW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0b3JhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg5RkQ1OEQ4MTZFRURCRDQwMEUxODNGMCAvKiBOYXZpZ2F0b3JTdG9y
YWdlUXVvdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdG9yU3Rv
cmFnZVF1b3RhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBMTJFMzVDMTFGQTMz
MjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEzQURFMTIwN0JC
QTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBNDEz
QURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGlu
Z1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5n
U2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE4MUJGODQxMURDRkQ5
MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIE5ldHdvcmtMb2FkVGltaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtMb2FkVGltaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBODQ0RDAyMTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJm
b3JtYW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5jZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTg0NEQwMzExRDNDMThFMDAxNDA2NUMg
LyogUGVyZm9ybWFuY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE5QTU4NkUxMUU4NEMzNTAwOEFDRkQx
IC8qIEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE3OTUyLDcgKzE3OTUyLDcgQEAKIAkJCQk1MTRDNzY2NjBDRTkyM0Ex
MDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTUxRTQxNDMyMTZB
NjU5NTEwMEM2MzNDNyAvKiBSZXNvdXJjZUhhbmRsZVR5cGVzLmggKi8sCiAJCQkJRTQyOTVGQTMx
MkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggKi8sCi0JCQkJOEE4MUJG
ODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovLAorCQkJCThBODFC
Rjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oICovLAogCQkJCTUxNEM3
NjY3MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCAqLywKIAkJCQk1
MTRDNzY2ODBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0QmFzZS5oICovLAogCQkJ
CTUxNEM3NjY5MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgKi8s
CkBAIC0xODM1Niw3ICsxODM1Niw3IEBACiAJCQkJMzc5MjkxN0IxOTg3Njc4RjAwRjRCNjYxIC8q
IENyZWRlbnRpYWxDb2NvYS5tbSAqLywKIAkJCQkzNzJBREEzNzE5N0Y0N0I5MDBGQzUwMUUgLyog
UHJvdGVjdGlvblNwYWNlQ29jb2EuaCAqLywKIAkJCQkzNzJBREEzOTE5N0Y2ODc2MDBGQzUwMUUg
LyogUHJvdGVjdGlvblNwYWNlQ29jb2EubW0gKi8sCi0JCQkJNUM5Qjg2MEIxQzIxRTNDNjAwMTEw
RjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSAqLywKKwkJCQk1QzlCODYwQjFDMjFFM0M2MDAx
MTBGMzYgLyogTmV0d29ya0xvYWRUaW1pbmcubW0gKi8sCiAJCQkJN0U3REUxRkMxOTVDRUYyNjAw
MzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdENvY29hLm1tICovLAogCQkJCUExRjc4RDBCMUMyNTQy
MkMwMDI0NTQ0NiAvKiBSZXNvdXJjZVJlc3BvbnNlQ29jb2EubW0gKi8sCiAJCQkJQ0QyMjVDMEEx
QzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCAqLywKQEAgLTIyMzk2LDgg
KzIyMzk2LDggQEAKIAkJCQlFMUM0MTVEOTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZS5oICovLAogCQkJCTkzRTIyN0RCMEFGNTg5QUQwMEQ0ODMyNCAv
KiBEb2N1bWVudExvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MUUwQURCQTVERTAwQTQ1NTREIC8q
IERvY3VtZW50TG9hZGVyLmggKi8sCi0JCQkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5jcHAgKi8sCi0JCQkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8q
IERvY3VtZW50TG9hZFRpbWluZy5oICovLAorCQkJCTg2MUMyRUEzMTNGQjRGREQwMDA2MkFCQiAv
KiBMb2FkVGltaW5nLmNwcCAqLywKKwkJCQk4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogTG9h
ZFRpbWluZy5oICovLAogCQkJCTBCOTA1NjE1MEYyNTc4QkUwMDk1RkY2QSAvKiBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwICovLAogCQkJCTBCOTA1NjE2MEYyNTc4QkUwMDk1RkY2QSAvKiBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCAqLywKIAkJCQk5NzM4ODk5RTExNkVBOURDMDBBREYz
MTMgLyogRG9jdW1lbnRXcml0ZXIuY3BwICovLApAQCAtMjUyOTYsNyArMjUyOTYsNyBAQAogCQkJ
CUEzQkI1OUY0MTQ1N0E0MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTg1RjNEMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1l
bnRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAv
KiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCThBMTJFMzVEMTFGQTMz
MjgwMDI1ODM2QSAvKiBMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlFRDJCQTgzQzA5
QTI0QjkxMDA2QzBBQzQgLyogRG9jdW1lbnRNYXJrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNF
MDU3RkE2MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0OTQ3RkZFMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVy
ZWRNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjczNTksNyArMjczNTksNyBAQAogCQkJCUU0Mjk1
RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBSZXNvdXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0E5MjlDQTcxQzU5OEFBOTAwNERGMjI2IC8qIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRDNDRERBMUM4QTAxQTQwMEYxMjY5OCAvKiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBpbiBIZWFkZXJzICovLAotCQkJCThBODFCRjg1MTFE
Q0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLAorCQkJ
CThBODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZFRpbWluZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0VFNjg0NkQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0QwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVxdWVzdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDZGMTJEMjZFMzgwMEU3OTQx
NSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTExNSw3ICsy
OTExNSw3IEBACiAJCQkJQTgxODVGM0YwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERv
Y3VtZW50TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMjY0OTdBMEQ3RTI0OEEwMEJE
MTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NjFDMkVB
NDEzRkI0RkREMDAwNjJBQkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBMb2FkVGltaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTA1N0ZBNTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBD
RDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0z
MTAxOCw3ICszMTAxOCw3IEBACiAJCQkJNkI2OTNBMzQxQzUxQTk1RDAwQjAzQkVGIC8qIFJlc291
cmNlTG9hZE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTI5Q0E2MUM1OThBOUUw
MDRERjIyNiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBRDNDREQ5MUM4QTAwMkYwMEYxMjY5OCAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNUM5Qjg2MEMxQzIxRTNDOTAwMTEwRjM2IC8qIFJlc291
cmNlTG9hZFRpbWluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTVDOUI4NjBDMUMyMUUzQzkwMDEx
MEYzNiAvKiBOZXR3b3JrTG9hZFRpbWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNEM3NjdD
MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdFRTY4NDZFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTdERTFGRDE5NUNFRjI2MDAzNTM2M0IgLyogUmVzb3Vy
Y2VSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggZTE3NDY5YTQ3YzRlZGZk
ZmQyZGRjZWQ1MTlkY2I3MjUwMzIxNTA0OC4uOWUwMzBjOWYwYTYzMDdhN2FkNTM4ZTU1NTY4OGZi
OWE2MzFlMDEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5jcHAKQEAgLTE4NCwxMCArMTg0LDEwIEBAIHN0YXRpYyBSZWY8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckhlYWRlcnMoY29uc3QgSFRUUEhlYWRlck1hcCYgaGVh
ZGVycykKICAgICByZXR1cm4gaGVhZGVyc09iamVjdDsKIH0KIAotc3RhdGljIFJlZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZz4gYnVpbGRPYmplY3RGb3JUaW1p
bmcoY29uc3QgUmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcsIERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIpCitzdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OlJlc291cmNlVGlt
aW5nPiBidWlsZE9iamVjdEZvclRpbWluZyhjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5n
LCBEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAgIHJldHVybiBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpOZXR3b3JrOjpSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldE5hdmln
YXRpb25TdGFydChsb2FkZXItPnRpbWluZygpLm5hdmlnYXRpb25TdGFydCgpKQorICAgICAgICAu
c2V0TmF2aWdhdGlvblN0YXJ0KGxvYWRlci0+dGltaW5nKCkuc3RhcnRUaW1lKCkpCiAgICAgICAg
IC5zZXREb21haW5Mb29rdXBTdGFydCh0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQpCiAgICAgICAg
IC5zZXREb21haW5Mb29rdXBFbmQodGltaW5nLmRvbWFpbkxvb2t1cEVuZCkKICAgICAgICAgLnNl
dENvbm5lY3RTdGFydCh0aW1pbmcuY29ubmVjdFN0YXJ0KQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0
YXRpYyBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6UmVzcG9uc2U+IGJ1aWxk
T2JqZWN0Rm9yUmVzb3VyY2VSZXNwCiAgICAgICAgIC5yZWxlYXNlKCk7CiAKICAgICByZXNwb25z
ZU9iamVjdC0+c2V0RnJvbURpc2tDYWNoZShyZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJl
c3BvbnNlOjpTb3VyY2U6OkRpc2tDYWNoZSB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJj
ZVJlc3BvbnNlOjpTb3VyY2U6OkRpc2tDYWNoZUFmdGVyVmFsaWRhdGlvbik7Ci0gICAgcmVzcG9u
c2VPYmplY3QtPnNldFRpbWluZyhidWlsZE9iamVjdEZvclRpbWluZyhyZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKSwgbG9hZGVyKSk7CisgICAgcmVzcG9uc2VPYmplY3QtPnNldFRpbWluZyhi
dWlsZE9iamVjdEZvclRpbWluZyhyZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLCBsb2FkZXIp
KTsKIAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3BvbnNlT2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQxNGY2ODAzMDc2MDAzOTQ2MzQzNjkwMzA0MTgzNTU5ZGMyMGU3MmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09P
R0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKLQotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Eb2N1bWVudExvYWRUaW1pbmc6OkRvY3VtZW50TG9h
ZFRpbWluZygpCi0gICAgOiBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWUoMC4wKQotICAgICwgbV9y
ZWZlcmVuY2VXYWxsVGltZSgwLjApCi0gICAgLCBtX25hdmlnYXRpb25TdGFydCgwLjApCi0gICAg
LCBtX3VubG9hZEV2ZW50U3RhcnQoMC4wKQotICAgICwgbV91bmxvYWRFdmVudEVuZCgwLjApCi0g
ICAgLCBtX3JlZGlyZWN0U3RhcnQoMC4wKQotICAgICwgbV9yZWRpcmVjdEVuZCgwLjApCi0gICAg
LCBtX3JlZGlyZWN0Q291bnQoMCkKLSAgICAsIG1fZmV0Y2hTdGFydCgwLjApCi0gICAgLCBtX3Jl
c3BvbnNlRW5kKDAuMCkKLSAgICAsIG1fbG9hZEV2ZW50U3RhcnQoMC4wKQotICAgICwgbV9sb2Fk
RXZlbnRFbmQoMC4wKQotICAgICwgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0KGZhbHNlKQotICAg
ICwgbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KGZhbHNlKQotewotfQotCi1kb3Vi
bGUgRG9jdW1lbnRMb2FkVGltaW5nOjptb25vdG9uaWNUaW1lVG9aZXJvQmFzZWREb2N1bWVudFRp
bWUoZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0Ci17Ci0gICAgaWYgKCFtb25vdG9uaWNUaW1l
KQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtb25vdG9uaWNUaW1lIC0gbV9yZWZl
cmVuY2VNb25vdG9uaWNUaW1lOwotfQotCi1kb3VibGUgRG9jdW1lbnRMb2FkVGltaW5nOjptb25v
dG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKLXsK
LSAgICBpZiAoIW1vbm90b25pY1RpbWUpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJu
IG1fcmVmZXJlbmNlV2FsbFRpbWUgKyBtb25vdG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9u
aWNUaW1lOwotfQotCi12b2lkIERvY3VtZW50TG9hZFRpbWluZzo6bWFya05hdmlnYXRpb25TdGFy
dCgpCi17Ci0gICAgQVNTRVJUKCFtX25hdmlnYXRpb25TdGFydCAmJiAhbV9yZWZlcmVuY2VNb25v
dG9uaWNUaW1lICYmICFtX3JlZmVyZW5jZVdhbGxUaW1lKTsKLQotICAgIG1fbmF2aWdhdGlvblN0
YXJ0ID0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCk7Ci0gICAgbV9yZWZlcmVuY2VXYWxsVGltZSA9IGN1cnJlbnRUaW1lKCk7Ci19Ci0KLXZv
aWQgRG9jdW1lbnRMb2FkVGltaW5nOjphZGRSZWRpcmVjdChjb25zdCBVUkwmIHJlZGlyZWN0aW5n
VXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpCi17Ci0gICAgbV9yZWRpcmVjdENvdW50Kys7
Ci0gICAgaWYgKCFtX3JlZGlyZWN0U3RhcnQpCi0gICAgICAgIG1fcmVkaXJlY3RTdGFydCA9IG1f
ZmV0Y2hTdGFydDsKLSAgICBtX3JlZGlyZWN0RW5kID0gbV9mZXRjaFN0YXJ0ID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgLy8gQ2hlY2sgaWYgdGhlIHJlZGlyZWN0ZWQgdXJs
IGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSByZWRpcmVjdGluZyB1cmwncyB0aW1pbmcgaW5mb3Jt
YXRpb24uCi0gICAgUmVmPFNlY3VyaXR5T3JpZ2luPiByZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdGVkVXJsKSk7Ci0gICAgbV9oYXNDcm9zc09y
aWdpblJlZGlyZWN0ID0gIXJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi5nZXQoKS5jYW5SZXF1ZXN0
KHJlZGlyZWN0aW5nVXJsKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2ZjdkOWQ3YmIzZDYxZDUzZTQ4YWM4MmUwY2UzMzMyMjRhMjVmYWY1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgRG9jdW1lbnRMb2FkVGltaW5nX2gKLSNkZWZpbmUgRG9jdW1lbnRMb2FkVGltaW5nX2gKLQot
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIEZyYW1lOwotY2xhc3MgVVJMOwotCi1jbGFzcyBEb2N1bWVudExvYWRUaW1pbmcgewotcHVi
bGljOgotICAgIERvY3VtZW50TG9hZFRpbWluZygpOwotCi0gICAgZG91YmxlIG1vbm90b25pY1Rp
bWVUb1plcm9CYXNlZERvY3VtZW50VGltZShkb3VibGUpIGNvbnN0OwotICAgIGRvdWJsZSBtb25v
dG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShkb3VibGUpIGNvbnN0OwotCi0gICAgdm9pZCBtYXJr
TmF2aWdhdGlvblN0YXJ0KCk7Ci0gICAgdm9pZCBhZGRSZWRpcmVjdChjb25zdCBVUkwmIHJlZGly
ZWN0aW5nVXJsLCBjb25zdCBVUkwmIHJlZGlyZWN0ZWRVcmwpOwotCi0gICAgdm9pZCBtYXJrVW5s
b2FkRXZlbnRTdGFydCgpIHsgbV91bmxvYWRFdmVudFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCk7IH0KLSAgICB2b2lkIG1hcmtVbmxvYWRFdmVudEVuZCgpIHsgbV91bmxvYWRF
dmVudEVuZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9Ci0gICAgdm9pZCBtYXJr
UmVkaXJlY3RTdGFydCgpIHsgbV9yZWRpcmVjdFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCk7IH0KLSAgICB2b2lkIG1hcmtSZWRpcmVjdEVuZCgpIHsgbV9yZWRpcmVjdEVuZCA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9Ci0gICAgdm9pZCBtYXJrRmV0Y2hTdGFy
dCgpIHsgbV9mZXRjaFN0YXJ0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KLSAg
ICB2b2lkIHNldFJlc3BvbnNlRW5kKGRvdWJsZSBtb25vdG9uaWNUaW1lKSB7IG1fcmVzcG9uc2VF
bmQgPSBtb25vdG9uaWNUaW1lOyB9Ci0gICAgdm9pZCBtYXJrTG9hZEV2ZW50U3RhcnQoKSB7IG1f
bG9hZEV2ZW50U3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQotICAgIHZv
aWQgbWFya0xvYWRFdmVudEVuZCgpIHsgbV9sb2FkRXZlbnRFbmQgPSBtb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoKTsgfQotCi0gICAgdm9pZCBzZXRIYXNTYW1lT3JpZ2luQXNQcmV2aW91c0Rv
Y3VtZW50KGJvb2wgdmFsdWUpIHsgbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50ID0g
dmFsdWU7IH0KLQotICAgIGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdCB7IHJldHVybiBt
X25hdmlnYXRpb25TdGFydDsgfQotICAgIGRvdWJsZSB1bmxvYWRFdmVudFN0YXJ0KCkgY29uc3Qg
eyByZXR1cm4gbV91bmxvYWRFdmVudFN0YXJ0OyB9Ci0gICAgZG91YmxlIHVubG9hZEV2ZW50RW5k
KCkgY29uc3QgeyByZXR1cm4gbV91bmxvYWRFdmVudEVuZDsgfQotICAgIGRvdWJsZSByZWRpcmVj
dFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdFN0YXJ0OyB9Ci0gICAgZG91YmxlIHJl
ZGlyZWN0RW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdEVuZDsgfQotICAgIHNob3J0IHJl
ZGlyZWN0Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0Q291bnQ7IH0KLSAgICBkb3Vi
bGUgZmV0Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZmV0Y2hTdGFydDsgfQotICAgIGRvdWJs
ZSByZXNwb25zZUVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VFbmQ7IH0KLSAgICBkb3Vi
bGUgbG9hZEV2ZW50U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudFN0YXJ0OyB9Ci0g
ICAgZG91YmxlIGxvYWRFdmVudEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50RW5kOyB9
Ci0gICAgYm9vbCBoYXNDcm9zc09yaWdpblJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXND
cm9zc09yaWdpblJlZGlyZWN0OyB9Ci0gICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0Rv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50
OyB9Ci0KLSAgICBkb3VibGUgcmVmZXJlbmNlTW9ub3RvbmljVGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJlbmNlTW9ub3RvbmljVGltZTsgfQotICAgIGRvdWJsZSByZWZlcmVuY2VXYWxsVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJlbmNlV2FsbFRpbWU7IH0KLQotcHJpdmF0ZToKLSAg
ICBkb3VibGUgbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOwotICAgIGRvdWJsZSBtX3JlZmVyZW5j
ZVdhbGxUaW1lOwotICAgIGRvdWJsZSBtX25hdmlnYXRpb25TdGFydDsKLSAgICBkb3VibGUgbV91
bmxvYWRFdmVudFN0YXJ0OwotICAgIGRvdWJsZSBtX3VubG9hZEV2ZW50RW5kOwotICAgIGRvdWJs
ZSBtX3JlZGlyZWN0U3RhcnQ7Ci0gICAgZG91YmxlIG1fcmVkaXJlY3RFbmQ7Ci0gICAgc2hvcnQg
bV9yZWRpcmVjdENvdW50OwotICAgIGRvdWJsZSBtX2ZldGNoU3RhcnQ7Ci0gICAgZG91YmxlIG1f
cmVzcG9uc2VFbmQ7Ci0gICAgZG91YmxlIG1fbG9hZEV2ZW50U3RhcnQ7Ci0gICAgZG91YmxlIG1f
bG9hZEV2ZW50RW5kOwotICAgIGJvb2wgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0OwotICAgIGJv
b2wgbV9oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDhiNzRkNjQxN2U0NjEwOTBkZDE2ZmQ4ZjYzZWU5M2YwNjJlODVjMjYuLjJjYzg4
Y2IxNjQxYjYyYTk1YTVkM2QyMjAyYmZkYTVjMzIxNGQ3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTQ2Niw3ICsxNDY2LDcgQEAgYm9vbCBEb2N1bWVu
dExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2Fk
aW5nTWFpblJlc291cmNlKCkKIHsKICAgICBtX21haW5Eb2N1bWVudEVycm9yID0gUmVzb3VyY2VF
cnJvcigpOwotICAgIHRpbWluZygpLm1hcmtOYXZpZ2F0aW9uU3RhcnQoKTsKKyAgICB0aW1pbmco
KS5tYXJrU3RhcnRUaW1lKCk7CiAgICAgQVNTRVJUKCFtX21haW5SZXNvdXJjZSk7CiAgICAgQVNT
RVJUKCFtX2xvYWRpbmdNYWluUmVzb3VyY2UpOwogICAgIG1fbG9hZGluZ01haW5SZXNvdXJjZSA9
IHRydWU7CkBAIC0xNDg0LDcgKzE0ODQsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpzdGFydExv
YWRpbmdNYWluUmVzb3VyY2UoKQogICAgIC8vIGJlY2F1c2Ugd2UgcGFzcyBhIHdyb25nIGxvYWRU
eXBlIChzZWUgRklYTUUgaW4gYWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3QoKSku
CiAgICAgZnJhbWVMb2FkZXIoKS0+YWRkRXh0cmFGaWVsZHNUb01haW5SZXNvdXJjZVJlcXVlc3Qo
bV9yZXF1ZXN0KTsKIAotICAgIEFTU0VSVCh0aW1pbmcoKS5uYXZpZ2F0aW9uU3RhcnQoKSk7Cisg
ICAgQVNTRVJUKHRpbWluZygpLnN0YXJ0VGltZSgpKTsKICAgICBBU1NFUlQoIXRpbWluZygpLmZl
dGNoU3RhcnQoKSk7CiAgICAgdGltaW5nKCkubWFya0ZldGNoU3RhcnQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZDliMDRiYWViZjhmZGM1Yzk3ZDRiZTdj
NDgxNTg4YzZkNGM1N2UxLi43MDk1NDQ3YjAwYzNmNDQzNTJlZjYzZWExYzYxYzc2Njc5N2VkMDg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMzEsOSArMzEsOSBA
QAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50V3JpdGVyLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlQmFzZS5oIgor
I2luY2x1ZGUgIkxvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgpAQCAtMjU1LDggKzI1NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCByZWNvcmRNZW1vcnlDYWNoZUxvYWRGb3JGdXR1cmVDbGllbnROb3RpZmljYXRpb24oY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgICAgIHZvaWQgdGFrZU1lbW9yeUNhY2hlTG9hZHNGb3JD
bGllbnROb3RpZmljYXRpb24oVmVjdG9yPFJlc291cmNlUmVxdWVzdD4mIGxvYWRzKTsKIAotICAg
ICAgICBEb2N1bWVudExvYWRUaW1pbmcmIHRpbWluZygpIHsgcmV0dXJuIG1fZG9jdW1lbnRMb2Fk
VGltaW5nOyB9Ci0gICAgICAgIHZvaWQgcmVzZXRUaW1pbmcoKSB7IG1fZG9jdW1lbnRMb2FkVGlt
aW5nID0gRG9jdW1lbnRMb2FkVGltaW5nKCk7IH0KKyAgICAgICAgTG9hZFRpbWluZyYgdGltaW5n
KCkgeyByZXR1cm4gbV9sb2FkVGltaW5nOyB9CisgICAgICAgIHZvaWQgcmVzZXRUaW1pbmcoKSB7
IG1fbG9hZFRpbWluZyA9IExvYWRUaW1pbmcoKTsgfQogCiAgICAgICAgIC8vIFRoZSBXZWJLaXQg
bGF5ZXIgY2FsbHMgdGhpcyBmdW5jdGlvbiB3aGVuIGl0J3MgcmVhZHkgZm9yIHRoZSBkYXRhIHRv
CiAgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFkZGVkIHRvIHRoZSBkb2N1bWVudC4KQEAgLTQyNiw3
ICs0MjYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9kaWRDcmVhdGVH
bG9iYWxIaXN0b3J5RW50cnk7CiAKICAgICAgICAgYm9vbCBtX2xvYWRpbmdNYWluUmVzb3VyY2U7
Ci0gICAgICAgIERvY3VtZW50TG9hZFRpbWluZyBtX2RvY3VtZW50TG9hZFRpbWluZzsKKyAgICAg
ICAgTG9hZFRpbWluZyBtX2xvYWRUaW1pbmc7CiAKICAgICAgICAgZG91YmxlIG1fdGltZU9mTGFz
dERhdGFSZWNlaXZlZDsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXJGb3JMb2Fk
V2l0aG91dFJlc291cmNlTG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggZWZiMDFiMDY3ODg5MGY5YzVjNzIxZTA5ZDU2YmE0NDlmYTg4MTg4MS4uZjM2ZjczNGJm
Mzk1NWNmMjcxN2FhOTQxNTJjMTU2ZjllZDJmMDFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZFRpbWluZy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRpdG9y
Q2xpZW50LmgiCkBAIC04Miw2ICs4MSw3IEBACiAjaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxvYWRU
aW1pbmcuaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC0yOTMzLDEyICsyOTMzLDEyIEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmRpc3BhdGNoVW5sb2FkRXZlbnRzKFVubG9hZEV2ZW50UG9saWN5
IHVubG9hZEV2ZW50UG9saWN5KQogCiAgICAgICAgICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQo
KS0+aW5QYWdlQ2FjaGUoKSkgewogICAgICAgICAgICAgICAgIFJlZjxFdmVudD4gdW5sb2FkRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudW5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkp
OwotICAgICAgICAgICAgICAgIC8vIFRoZSBEb2N1bWVudExvYWRlciAoYW5kIHRodXMgaXRzIERv
Y3VtZW50TG9hZFRpbWluZykgbWlnaHQgZ2V0IGRlc3Ryb3llZAorICAgICAgICAgICAgICAgIC8v
IFRoZSBEb2N1bWVudExvYWRlciAoYW5kIHRodXMgaXRzIExvYWRUaW1pbmcpIG1pZ2h0IGdldCBk
ZXN0cm95ZWQKICAgICAgICAgICAgICAgICAvLyB3aGlsZSBkaXNwYXRjaGluZyB0aGUgZXZlbnQs
IHNvIHByb3RlY3QgaXQgdG8gcHJldmVudCB3cml0aW5nIHRoZSBlbmQKICAgICAgICAgICAgICAg
ICAvLyB0aW1lIGludG8gZnJlZWQgbWVtb3J5LgogICAgICAgICAgICAgICAgIFJlZlB0cjxEb2N1
bWVudExvYWRlcj4gZG9jdW1lbnRMb2FkZXIgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXI7
CiAgICAgICAgICAgICAgICAgbV9wYWdlRGlzbWlzc2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQgPSBQ
YWdlRGlzbWlzc2FsVHlwZTo6VW5sb2FkOwotICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudExv
YWRlciAmJiBkb2N1bWVudExvYWRlci0+dGltaW5nKCkubmF2aWdhdGlvblN0YXJ0KCkgJiYgIWRv
Y3VtZW50TG9hZGVyLT50aW1pbmcoKS51bmxvYWRFdmVudFN0YXJ0KCkgJiYgIWRvY3VtZW50TG9h
ZGVyLT50aW1pbmcoKS51bmxvYWRFdmVudEVuZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRv
Y3VtZW50TG9hZGVyICYmIGRvY3VtZW50TG9hZGVyLT50aW1pbmcoKS5zdGFydFRpbWUoKSAmJiAh
ZG9jdW1lbnRMb2FkZXItPnRpbWluZygpLnVubG9hZEV2ZW50U3RhcnQoKSAmJiAhZG9jdW1lbnRM
b2FkZXItPnRpbWluZygpLnVubG9hZEV2ZW50RW5kKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
YXV0byYgdGltaW5nID0gZG9jdW1lbnRMb2FkZXItPnRpbWluZygpOwogICAgICAgICAgICAgICAg
ICAgICB0aW1pbmcubWFya1VubG9hZEV2ZW50U3RhcnQoKTsKICAgICAgICAgICAgICAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudCh1bmxvYWRFdmVu
dCwgbV9mcmFtZS5kb2N1bWVudCgpKTsKQEAgLTMyNDEsOSArMzI0MSw5IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpCiAgICAgbV9sb2FkaW5n
RnJvbUNhY2hlZFBhZ2UgPSB0cnVlOwogCiAgICAgLy8gU2hvdWxkIGhhdmUgdGltaW5nIGRhdGEg
ZnJvbSBwcmV2aW91cyB0aW1lKHMpIHRoZSBwYWdlIHdhcyBzaG93bi4KLSAgICBBU1NFUlQocHJv
dmlzaW9uYWxMb2FkZXItPnRpbWluZygpLm5hdmlnYXRpb25TdGFydCgpKTsKKyAgICBBU1NFUlQo
cHJvdmlzaW9uYWxMb2FkZXItPnRpbWluZygpLnN0YXJ0VGltZSgpKTsKICAgICBwcm92aXNpb25h
bExvYWRlci0+cmVzZXRUaW1pbmcoKTsKLSAgICBwcm92aXNpb25hbExvYWRlci0+dGltaW5nKCku
bWFya05hdmlnYXRpb25TdGFydCgpOworICAgIHByb3Zpc2lvbmFsTG9hZGVyLT50aW1pbmcoKS5t
YXJrU3RhcnRUaW1lKCk7CiAKICAgICBwcm92aXNpb25hbExvYWRlci0+c2V0Q29tbWl0dGVkKHRy
dWUpOwogICAgIGNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xvYWRUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRU
aW1pbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0ZTRhNDQ4NGU3NjU2ZDJmZDhjNTIzYTE2ZDdjZDU3NDVi
ZWYxYTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZFRpbWlu
Zy5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUs
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9hZFRpbWlu
Zy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0xvYWRUaW1pbmc6OkxvYWRUaW1p
bmcoKQorICAgIDogbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lKDAuMCkKKyAgICAsIG1fcmVmZXJl
bmNlV2FsbFRpbWUoMC4wKQorICAgICwgbV9zdGFydFRpbWUoMC4wKQorICAgICwgbV91bmxvYWRF
dmVudFN0YXJ0KDAuMCkKKyAgICAsIG1fdW5sb2FkRXZlbnRFbmQoMC4wKQorICAgICwgbV9yZWRp
cmVjdFN0YXJ0KDAuMCkKKyAgICAsIG1fcmVkaXJlY3RFbmQoMC4wKQorICAgICwgbV9yZWRpcmVj
dENvdW50KDApCisgICAgLCBtX2ZldGNoU3RhcnQoMC4wKQorICAgICwgbV9yZXNwb25zZUVuZCgw
LjApCisgICAgLCBtX2xvYWRFdmVudFN0YXJ0KDAuMCkKKyAgICAsIG1fbG9hZEV2ZW50RW5kKDAu
MCkKKyAgICAsIG1faGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdChmYWxzZSkKKyAgICAsIG1faGFzU2Ft
ZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVudChmYWxzZSkKK3sKK30KKworZG91YmxlIExvYWRUaW1p
bmc6Om1vbm90b25pY1RpbWVUb1plcm9CYXNlZERvY3VtZW50VGltZShkb3VibGUgbW9ub3Rvbmlj
VGltZSkgY29uc3QKK3sKKyAgICBpZiAoIW1vbm90b25pY1RpbWUpCisgICAgICAgIHJldHVybiAw
LjA7CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWUgLSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7
Cit9CisKK2RvdWJsZSBMb2FkVGltaW5nOjptb25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShk
b3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKK3sKKyAgICBpZiAoIW1vbm90b25pY1RpbWUpCisg
ICAgICAgIHJldHVybiAwLjA7CisgICAgcmV0dXJuIG1fcmVmZXJlbmNlV2FsbFRpbWUgKyBtb25v
dG9uaWNUaW1lIC0gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOworfQorCit2b2lkIExvYWRUaW1p
bmc6Om1hcmtTdGFydFRpbWUoKQoreworICAgIEFTU0VSVCghbV9zdGFydFRpbWUgJiYgIW1fcmVm
ZXJlbmNlTW9ub3RvbmljVGltZSAmJiAhbV9yZWZlcmVuY2VXYWxsVGltZSk7CisKKyAgICBtX3N0
YXJ0VGltZSA9IG1fcmVmZXJlbmNlTW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpOworICAgIG1fcmVmZXJlbmNlV2FsbFRpbWUgPSBjdXJyZW50VGltZSgpOworfQor
Cit2b2lkIExvYWRUaW1pbmc6OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmws
IGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCkKK3sKKyAgICBtX3JlZGlyZWN0Q291bnQrKzsKKyAg
ICBpZiAoIW1fcmVkaXJlY3RTdGFydCkKKyAgICAgICAgbV9yZWRpcmVjdFN0YXJ0ID0gbV9mZXRj
aFN0YXJ0OworICAgIG1fcmVkaXJlY3RFbmQgPSBtX2ZldGNoU3RhcnQgPSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAvLyBDaGVjayBpZiB0aGUgcmVkaXJlY3RlZCB1cmwgaXMg
YWxsb3dlZCB0byBhY2Nlc3MgdGhlIHJlZGlyZWN0aW5nIHVybCdzIHRpbWluZyBpbmZvcm1hdGlv
bi4KKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbihTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHJlZGlyZWN0ZWRVcmwpKTsKKyAgICBtX2hhc0Nyb3NzT3JpZ2lu
UmVkaXJlY3QgPSAhcmVkaXJlY3RlZFNlY3VyaXR5T3JpZ2luLmdldCgpLmNhblJlcXVlc3QocmVk
aXJlY3RpbmdVcmwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZFRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRUaW1pbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzhmNDMxMTFlNjk1ODlkMzI0MDE2MzYwNmIzMmMx
YzAzODBlMjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRU
aW1pbmcuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgVVJM
OworCitjbGFzcyBMb2FkVGltaW5nIHsKK3B1YmxpYzoKKyAgICBMb2FkVGltaW5nKCk7CisKKyAg
ICBkb3VibGUgbW9ub3RvbmljVGltZVRvWmVyb0Jhc2VkRG9jdW1lbnRUaW1lKGRvdWJsZSkgY29u
c3Q7CisgICAgZG91YmxlIG1vbm90b25pY1RpbWVUb1BzZXVkb1dhbGxUaW1lKGRvdWJsZSkgY29u
c3Q7CisKKyAgICB2b2lkIG1hcmtTdGFydFRpbWUoKTsKKyAgICB2b2lkIGFkZFJlZGlyZWN0KGNv
bnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYgcmVkaXJlY3RlZFVybCk7CisKKyAg
ICB2b2lkIG1hcmtVbmxvYWRFdmVudFN0YXJ0KCkgeyBtX3VubG9hZEV2ZW50U3RhcnQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgbWFya1VubG9hZEV2ZW50RW5k
KCkgeyBtX3VubG9hZEV2ZW50RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0K
KyAgICB2b2lkIG1hcmtSZWRpcmVjdFN0YXJ0KCkgeyBtX3JlZGlyZWN0U3RhcnQgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsgfQorICAgIHZvaWQgbWFya1JlZGlyZWN0RW5kKCkgeyBt
X3JlZGlyZWN0RW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7IH0KKyAgICB2b2lk
IG1hcmtGZXRjaFN0YXJ0KCkgeyBtX2ZldGNoU3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsgfQorICAgIHZvaWQgc2V0UmVzcG9uc2VFbmQoZG91YmxlIG1vbm90b25pY1RpbWUp
IHsgbV9yZXNwb25zZUVuZCA9IG1vbm90b25pY1RpbWU7IH0KKyAgICB2b2lkIG1hcmtMb2FkRXZl
bnRTdGFydCgpIHsgbV9sb2FkRXZlbnRTdGFydCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOyB9CisgICAgdm9pZCBtYXJrTG9hZEV2ZW50RW5kKCkgeyBtX2xvYWRFdmVudEVuZCA9IG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOyB9CisKKyAgICB2b2lkIHNldEhhc1NhbWVPcmln
aW5Bc1ByZXZpb3VzRG9jdW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZp
b3VzRG9jdW1lbnQgPSB2YWx1ZTsgfQorCisgICAgZG91YmxlIHN0YXJ0VGltZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhcnRUaW1lOyB9CisgICAgZG91YmxlIHVubG9hZEV2ZW50U3RhcnQoKSBjb25z
dCB7IHJldHVybiBtX3VubG9hZEV2ZW50U3RhcnQ7IH0KKyAgICBkb3VibGUgdW5sb2FkRXZlbnRF
bmQoKSBjb25zdCB7IHJldHVybiBtX3VubG9hZEV2ZW50RW5kOyB9CisgICAgZG91YmxlIHJlZGly
ZWN0U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0U3RhcnQ7IH0KKyAgICBkb3VibGUg
cmVkaXJlY3RFbmQoKSBjb25zdCB7IHJldHVybiBtX3JlZGlyZWN0RW5kOyB9CisgICAgc2hvcnQg
cmVkaXJlY3RDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVkaXJlY3RDb3VudDsgfQorICAgIGRv
dWJsZSBmZXRjaFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaFN0YXJ0OyB9CisgICAgZG91
YmxlIHJlc3BvbnNlRW5kKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZUVuZDsgfQorICAgIGRv
dWJsZSBsb2FkRXZlbnRTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZEV2ZW50U3RhcnQ7IH0K
KyAgICBkb3VibGUgbG9hZEV2ZW50RW5kKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkRXZlbnRFbmQ7
IH0KKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX2hh
c0Nyb3NzT3JpZ2luUmVkaXJlY3Q7IH0KKyAgICBib29sIGhhc1NhbWVPcmlnaW5Bc1ByZXZpb3Vz
RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1l
bnQ7IH0KKworICAgIGRvdWJsZSByZWZlcmVuY2VNb25vdG9uaWNUaW1lKCkgY29uc3QgeyByZXR1
cm4gbV9yZWZlcmVuY2VNb25vdG9uaWNUaW1lOyB9CisgICAgZG91YmxlIHJlZmVyZW5jZVdhbGxU
aW1lKCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VXYWxsVGltZTsgfQorCitwcml2YXRlOgor
ICAgIGRvdWJsZSBtX3JlZmVyZW5jZU1vbm90b25pY1RpbWU7CisgICAgZG91YmxlIG1fcmVmZXJl
bmNlV2FsbFRpbWU7CisgICAgZG91YmxlIG1fc3RhcnRUaW1lOworICAgIGRvdWJsZSBtX3VubG9h
ZEV2ZW50U3RhcnQ7CisgICAgZG91YmxlIG1fdW5sb2FkRXZlbnRFbmQ7CisgICAgZG91YmxlIG1f
cmVkaXJlY3RTdGFydDsKKyAgICBkb3VibGUgbV9yZWRpcmVjdEVuZDsKKyAgICBzaG9ydCBtX3Jl
ZGlyZWN0Q291bnQ7CisgICAgZG91YmxlIG1fZmV0Y2hTdGFydDsKKyAgICBkb3VibGUgbV9yZXNw
b25zZUVuZDsKKyAgICBkb3VibGUgbV9sb2FkRXZlbnRTdGFydDsKKyAgICBkb3VibGUgbV9sb2Fk
RXZlbnRFbmQ7CisgICAgYm9vbCBtX2hhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7CisgICAgYm9vbCBt
X2hhc1NhbWVPcmlnaW5Bc1ByZXZpb3VzRG9jdW1lbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMTE4NzZkNmY4YWFjNDk4ZDMx
ZDEzMjBmNTY1YmUyZDUzNzBkNTVkMi4uYjllMjYxODM2YzRmODc1MGQ2ODA0NTRiYmQyYzM2YjI2
NjEyZDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTg2OCwxMCArMTg2OCwx
MCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIFJlZjxFdmVu
dD4gbG9hZEV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBmYWxz
ZSwgZmFsc2UpOwogICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnRpbWluZygp
LmxvYWRFdmVudFN0YXJ0KCkpIHsKLSAgICAgICAgLy8gVGhlIERvY3VtZW50TG9hZGVyIChhbmQg
dGh1cyBpdHMgRG9jdW1lbnRMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVzdHJveWVkIHdoaWxlIGRp
c3BhdGNoaW5nCisgICAgICAgIC8vIFRoZSBEb2N1bWVudExvYWRlciAoYW5kIHRodXMgaXRzIExv
YWRUaW1pbmcpIG1pZ2h0IGdldCBkZXN0cm95ZWQgd2hpbGUgZGlzcGF0Y2hpbmcKICAgICAgICAg
Ly8gdGhlIGV2ZW50LCBzbyBwcm90ZWN0IGl0IHRvIHByZXZlbnQgd3JpdGluZyB0aGUgZW5kIHRp
bWUgaW50byBmcmVlZCBtZW1vcnkuCiAgICAgICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gZG9j
dW1lbnRMb2FkZXIgPSBtX2ZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwotICAgICAg
ICBEb2N1bWVudExvYWRUaW1pbmcmIHRpbWluZyA9IGRvY3VtZW50TG9hZGVyLT50aW1pbmcoKTsK
KyAgICAgICAgTG9hZFRpbWluZyYgdGltaW5nID0gZG9jdW1lbnRMb2FkZXItPnRpbWluZygpOwog
ICAgICAgICB0aW1pbmcubWFya0xvYWRFdmVudFN0YXJ0KCk7CiAgICAgICAgIGRpc3BhdGNoRXZl
bnQobG9hZEV2ZW50LCBkb2N1bWVudCgpKTsKICAgICAgICAgdGltaW5nLm1hcmtMb2FkRXZlbnRF
bmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcApp
bmRleCBiZTQ3MmEwNWM3NjAyZmU2YjRiYjA1Yzk2MjFmYzZkZTM3ZTc3MzJjLi42YzYwZTMyMzk1
MDg2NjlmZmNiZmU3ZmJkZmViYzI2YWMzNWExZmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHVuc2lnbmVkIHNo
b3J0IFBlcmZvcm1hbmNlTmF2aWdhdGlvbjo6cmVkaXJlY3RDb3VudCgpIGNvbnN0CiAgICAgaWYg
KCFsb2FkZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgRG9jdW1lbnRMb2FkVGltaW5nJiB0
aW1pbmcgPSBsb2FkZXItPnRpbWluZygpOworICAgIExvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRl
ci0+dGltaW5nKCk7CiAgICAgaWYgKHRpbWluZy5oYXNDcm9zc09yaWdpblJlZGlyZWN0KCkpCiAg
ICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAppbmRleCA0YjBlMDdmOGQxN2I0ODAwMTdlZGI4Y2Y2NWVjYWJj
OTMzZmVjOWUyLi41ZGIyY2MzYzY3ODRhODQ3NWE1YzViNGRlMWMzNmI2Yzc3ZDJkMWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAK
QEAgLTM1LDkgKzM1LDkgQEAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKKyNpbmNsdWRlICJM
b2FkVGltaW5nLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNzksNyArNzksNyBAQCBzdGF0
aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBEb2N1bWVudCogcgogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6UGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZyhjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRvclR5cGUsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiBy
ZXF1ZXN0aW5nRG9jdW1lbnQpCiAgICAgOiBQZXJmb3JtYW5jZUVudHJ5KHJlcXVlc3QudXJsKCku
c3RyaW5nKCksICJyZXNvdXJjZSIsIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRz
KHJlcXVlc3RpbmdEb2N1bWVudCwgaW5pdGlhdGlvblRpbWUpLCBtb25vdG9uaWNUaW1lVG9Eb2N1
bWVudE1pbGxpc2Vjb25kcyhyZXF1ZXN0aW5nRG9jdW1lbnQsIGZpbmlzaFRpbWUpKQogICAgICwg
bV9pbml0aWF0b3JUeXBlKGluaXRpYXRvclR5cGUpCi0gICAgLCBtX3RpbWluZyhyZXNwb25zZS5y
ZXNvdXJjZUxvYWRUaW1pbmcoKSkKKyAgICAsIG1fdGltaW5nKHJlc3BvbnNlLm5ldHdvcmtMb2Fk
VGltaW5nKCkpCiAgICAgLCBtX2ZpbmlzaFRpbWUoZmluaXNoVGltZSkKICAgICAsIG1fc2hvdWxk
UmVwb3J0RGV0YWlscyhwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKHJlc3BvbnNlLCByZXF1ZXN0aW5n
RG9jdW1lbnQpKQogICAgICwgbV9yZXF1ZXN0aW5nRG9jdW1lbnQocmVxdWVzdGluZ0RvY3VtZW50
KQpAQCAtMTk1LDcgKzE5NSw3IEBAIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGludCBkZWx0YU1pCiB7CiAgICAgaWYg
KCFkZWx0YU1pbGxpc2Vjb25kcykKICAgICAgICAgcmV0dXJuIDAuMDsKLSAgICByZXR1cm4gbW9u
b3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMobV9yZXF1ZXN0aW5nRG9jdW1lbnQuZ2V0
KCksIG1fcmVxdWVzdGluZ0RvY3VtZW50LT5sb2FkZXIoKS0+dGltaW5nKCkubmF2aWdhdGlvblN0
YXJ0KCkpICsgZGVsdGFNaWxsaXNlY29uZHM7CisgICAgcmV0dXJuIG1vbm90b25pY1RpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKG1fcmVxdWVzdGluZ0RvY3VtZW50LmdldCgpLCBtX3JlcXVlc3Rp
bmdEb2N1bWVudC0+bG9hZGVyKCktPnRpbWluZygpLnN0YXJ0VGltZSgpKSArIGRlbHRhTWlsbGlz
ZWNvbmRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCmluZGV4IDgyNDg1YjJmNzJmNmI1MGZh
YTM3YWQ3Y2Y1ZDJhNGU4MDAxYWNlOGYuLjhiYzM0ODRlOGQ2YjlkNTA3MmQxMmQwM2M5MTgwZjQ5
OTRlYWFlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5oCkBAIC0zNCw4ICszNCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAor
I2luY2x1ZGUgIk5ldHdvcmtMb2FkVGltaW5nLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VFbnRy
eS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERvY3VtZW50OwogY2xhc3MgVVJMOwotY2xhc3MgUmVzb3VyY2VMb2FkVGltaW5nOworY2xhc3Mg
TmV0d29ya0xvYWRUaW1pbmc7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwogCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIHJlc291
cmNlVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMoaW50IGRlbHRhTWlsbGlzZWNvbmRzKSBjb25z
dDsKIAogICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRvclR5cGU7Ci0gICAgUmVzb3VyY2VMb2Fk
VGltaW5nIG1fdGltaW5nOworICAgIE5ldHdvcmtMb2FkVGltaW5nIG1fdGltaW5nOwogICAgIGRv
dWJsZSBtX2ZpbmlzaFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlcG9ydERldGFpbHM7CiAgICAg
UmVmUHRyPERvY3VtZW50PiBtX3JlcXVlc3RpbmdEb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKaW5kZXggN2Q1NzFiNWYzY2ZjM2NiYzAxMDA3Y2FjYjM4
NjU4NDRhODc2YjQyYi4uYTlhMmExNTA4YzgyZDdmZWQ1ZDMxMzgzNWZmZmI2ZTUzMGNiNGU0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKQEAgLTM0LDEyICsz
NCwxMiBAQAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJEb2N1bWVudExvYWRUaW1pbmcuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgor
I2luY2x1ZGUgIkxvYWRUaW1pbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFRpbWluZy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KIApAQCAtNTgsMTYgKzU4LDE2IEBAIFBlcmZvcm1hbmNlVGltaW5nOjpQZXJmb3JtYW5jZVRp
bWluZyhGcmFtZSogZnJhbWUpCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6bmF2aWdhdGlvblN0YXJ0KCkgY29uc3QKIHsKLSAgICBEb2N1bWVudExvYWRUaW1pbmcqIHRp
bWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOworICAgIExvYWRUaW1pbmcqIHRpbWluZyA9IGxv
YWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBy
ZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPm5hdmlnYXRp
b25TdGFydCgpKTsKKyAgICByZXR1cm4gbW9ub3RvbmljVGltZVRvSW50ZWdlck1pbGxpc2Vjb25k
cyh0aW1pbmctPnN0YXJ0VGltZSgpKTsKIH0KIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KCkgY29uc3QKIHsKLSAgICBEb2N1bWVudExvYWRU
aW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygpOworICAgIExvYWRUaW1pbmcqIHRp
bWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7
CiAKQEAgLTc5LDcgKzc5LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5n
Ojp1bmxvYWRFdmVudFN0YXJ0KCkgY29uc3QKIAogdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1h
bmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNvbnN0CiB7Ci0gICAgRG9jdW1lbnRMb2FkVGlt
aW5nKiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1pbmcoKTsKKyAgICBMb2FkVGltaW5nKiB0aW1p
bmcgPSBsb2FkVGltaW5nKCk7CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwog
CkBAIC05MSw3ICs5MSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6
dW5sb2FkRXZlbnRFbmQoKSBjb25zdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VU
aW1pbmc6OnJlZGlyZWN0U3RhcnQoKSBjb25zdAogewotICAgIERvY3VtZW50TG9hZFRpbWluZyog
dGltaW5nID0gZG9jdW1lbnRMb2FkVGltaW5nKCk7CisgICAgTG9hZFRpbWluZyogdGltaW5nID0g
bG9hZFRpbWluZygpOwogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIApAQCAt
MTAzLDcgKzEwMyw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVk
aXJlY3RTdGFydCgpIGNvbnN0CiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWlu
Zzo6cmVkaXJlY3RFbmQoKSBjb25zdAogewotICAgIERvY3VtZW50TG9hZFRpbWluZyogdGltaW5n
ID0gZG9jdW1lbnRMb2FkVGltaW5nKCk7CisgICAgTG9hZFRpbWluZyogdGltaW5nID0gbG9hZFRp
bWluZygpOwogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTE1LDcg
KzExNSw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RF
bmQoKSBjb25zdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmZldGNo
U3RhcnQoKSBjb25zdAogewotICAgIERvY3VtZW50TG9hZFRpbWluZyogdGltaW5nID0gZG9jdW1l
bnRMb2FkVGltaW5nKCk7CisgICAgTG9hZFRpbWluZyogdGltaW5nID0gbG9hZFRpbWluZygpOwog
ICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTI4LDcgKzEyOCw3IEBA
IHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6ZG9tYWluTG9va3VwU3RhcnQo
KSBjb25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gZmV0Y2hTdGFydCgpOwog
ICAgIAotICAgIGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT5yZXNw
b25zZSgpLnJlc291cmNlTG9hZFRpbWluZygpOworICAgIGNvbnN0IE5ldHdvcmtMb2FkVGltaW5n
JiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkubmV0d29ya0xvYWRUaW1pbmcoKTsKICAgICAK
ICAgICAvLyBUaGlzIHdpbGwgYmUgLTEgd2hlbiBhIEROUyByZXF1ZXN0IGlzIG5vdCBwZXJmb3Jt
ZWQuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQgaW5k
aWNhdGVzIG5vIEROUywgd2UgImJhY2tmaWxsIiB3aXRoIGZldGNoU3RhcnQuCkBAIC0xNDQsNyAr
MTQ0LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpkb21haW5Mb29r
dXBFbmQoKSBjb25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gZG9tYWluTG9v
a3VwU3RhcnQoKTsKICAgICAKLSAgICBjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZyA9
IGxvYWRlci0+cmVzcG9uc2UoKS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBjb25zdCBOZXR3
b3JrTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLm5ldHdvcmtMb2FkVGlt
aW5nKCk7CiAgICAgCiAgICAgLy8gVGhpcyB3aWxsIGJlIC0xIHdoZW4gYSBETlMgcmVxdWVzdCBp
cyBub3QgcGVyZm9ybWVkLgogICAgIC8vIFJhdGhlciB0aGFuIGV4cG9zaW5nIGEgc3BlY2lhbCB2
YWx1ZSB0aGF0IGluZGljYXRlcyBubyBETlMsIHdlICJiYWNrZmlsbCIgd2l0aCBkb21haW5Mb29r
dXBTdGFydC4KQEAgLTE2MCw3ICsxNjAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFu
Y2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0CiAgICAgaWYgKCFsb2FkZXIpCiAgICAgICAg
IHJldHVybiBkb21haW5Mb29rdXBFbmQoKTsKIAotICAgIGNvbnN0IFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLnJlc291cmNlTG9hZFRpbWluZygpOworICAg
IGNvbnN0IE5ldHdvcmtMb2FkVGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkubmV0
d29ya0xvYWRUaW1pbmcoKTsKICAgICAKICAgICAvLyBjb25uZWN0U3RhcnQgd2lsbCBiZSAtMSB3
aGVuIGEgbmV0d29yayByZXF1ZXN0IGlzIG5vdCBtYWRlLgogICAgIC8vIFJhdGhlciB0aGFuIGV4
cG9zaW5nIGEgc3BlY2lhbCB2YWx1ZSB0aGF0IGluZGljYXRlcyBubyBuZXcgY29ubmVjdGlvbiwg
d2UgImJhY2tmaWxsIiB3aXRoIGRvbWFpbkxvb2t1cEVuZC4KQEAgLTE2OCw3ICsxNjgsNyBAQCB1
bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RTdGFydCgpIGNvbnN0
CiAgICAgaWYgKGNvbm5lY3RTdGFydCA8IDApCiAgICAgICAgIHJldHVybiBkb21haW5Mb29rdXBF
bmQoKTsKIAotICAgIC8vIFJlc291cmNlTG9hZFRpbWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVk
ZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGltaW5nJ3MKKyAgICAvLyBOZXR3b3JrTG9hZFRp
bWluZydzIGNvbm5lY3QgcGhhc2UgaW5jbHVkZXMgRE5TLCBob3dldmVyIE5hdmlnYXRpb24gVGlt
aW5nJ3MKICAgICAvLyBjb25uZWN0IHBoYXNlIHNob3VsZCBub3QuIFNvIGlmIHRoZXJlIGlzIERO
UyB0aW1lLCB0cmltIGl0IGZyb20gdGhlIHN0YXJ0LgogICAgIGlmICh0aW1pbmcuZG9tYWluTG9v
a3VwRW5kID49IDAgJiYgdGltaW5nLmRvbWFpbkxvb2t1cEVuZCA+IGNvbm5lY3RTdGFydCkKICAg
ICAgICAgY29ubmVjdFN0YXJ0ID0gdGltaW5nLmRvbWFpbkxvb2t1cEVuZDsKQEAgLTE4Miw3ICsx
ODIsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmNvbm5lY3RFbmQo
KSBjb25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gY29ubmVjdFN0YXJ0KCk7
CiAKLSAgICBjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVzcG9u
c2UoKS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYg
dGltaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLm5ldHdvcmtMb2FkVGltaW5nKCk7CiAgICAgCiAg
ICAgLy8gY29ubmVjdEVuZCB3aWxsIGJlIC0xIHdoZW4gYSBuZXR3b3JrIHJlcXVlc3QgaXMgbm90
IG1hZGUuCiAgICAgLy8gUmF0aGVyIHRoYW4gZXhwb3NpbmcgYSBzcGVjaWFsIHZhbHVlIHRoYXQg
aW5kaWNhdGVzIG5vIG5ldyBjb25uZWN0aW9uLCB3ZSAiYmFja2ZpbGwiIHdpdGggY29ubmVjdFN0
YXJ0LgpAQCAtMTk4LDcgKzE5OCw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6c2VjdXJlQ29ubmVjdGlvblN0YXJ0KCkgY29uc3QKICAgICBpZiAoIWxvYWRlcikKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcmIHRpbWluZyA9
IGxvYWRlci0+cmVzcG9uc2UoKS5yZXNvdXJjZUxvYWRUaW1pbmcoKTsKKyAgICBjb25zdCBOZXR3
b3JrTG9hZFRpbWluZyYgdGltaW5nID0gbG9hZGVyLT5yZXNwb25zZSgpLm5ldHdvcmtMb2FkVGlt
aW5nKCk7CiAgICAgCiAgICAgaWYgKHRpbWluZy5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPCAwKQog
ICAgICAgICByZXR1cm4gMDsKQEAgLTIxMiw3ICsyMTIsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
UGVyZm9ybWFuY2VUaW1pbmc6OnJlcXVlc3RTdGFydCgpIGNvbnN0CiAgICAgaWYgKCFsb2FkZXIp
CiAgICAgICAgIHJldHVybiBjb25uZWN0RW5kKCk7CiAgICAgCi0gICAgY29uc3QgUmVzb3VyY2VM
b2FkVGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkucmVzb3VyY2VMb2FkVGltaW5n
KCk7CisgICAgY29uc3QgTmV0d29ya0xvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRlci0+cmVzcG9u
c2UoKS5uZXR3b3JrTG9hZFRpbWluZygpOwogICAgIAogICAgIEFTU0VSVCh0aW1pbmcucmVxdWVz
dFN0YXJ0ID49IDApOwogICAgIHJldHVybiByZXNvdXJjZUxvYWRUaW1lUmVsYXRpdmVUb0ZldGNo
U3RhcnQodGltaW5nLnJlcXVlc3RTdGFydCk7CkBAIC0yMjQsNyArMjI0LDcgQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKICAgICBp
ZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdGFydCgpOwogCi0gICAgY29uc3Qg
UmVzb3VyY2VMb2FkVGltaW5nJiB0aW1pbmcgPSBsb2FkZXItPnJlc3BvbnNlKCkucmVzb3VyY2VM
b2FkVGltaW5nKCk7CisgICAgY29uc3QgTmV0d29ya0xvYWRUaW1pbmcmIHRpbWluZyA9IGxvYWRl
ci0+cmVzcG9uc2UoKS5uZXR3b3JrTG9hZFRpbWluZygpOwogICAgIAogICAgIEFTU0VSVCh0aW1p
bmcucmVzcG9uc2VTdGFydCA+PSAwKTsKICAgICByZXR1cm4gcmVzb3VyY2VMb2FkVGltZVJlbGF0
aXZlVG9GZXRjaFN0YXJ0KHRpbWluZy5yZXNwb25zZVN0YXJ0KTsKQEAgLTIzMiw3ICsyMzIsNyBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlU3RhcnQoKSBj
b25zdAogCiB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc3BvbnNlRW5k
KCkgY29uc3QKIHsKLSAgICBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9h
ZFRpbWluZygpOworICAgIExvYWRUaW1pbmcqIHRpbWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBp
ZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI4Niw3ICsyODYsNyBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OmRvbUNvbXBsZXRlKCkgY29uc3QKIAog
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCgpIGNv
bnN0CiB7Ci0gICAgRG9jdW1lbnRMb2FkVGltaW5nKiB0aW1pbmcgPSBkb2N1bWVudExvYWRUaW1p
bmcoKTsKKyAgICBMb2FkVGltaW5nKiB0aW1pbmcgPSBsb2FkVGltaW5nKCk7CiAgICAgaWYgKCF0
aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yOTUsNyArMjk1LDcgQEAgdW5zaWduZWQg
bG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpsb2FkRXZlbnRTdGFydCgpIGNvbnN0CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6bG9hZEV2ZW50RW5kKCkgY29uc3QK
IHsKLSAgICBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZFRpbWluZygp
OworICAgIExvYWRUaW1pbmcqIHRpbWluZyA9IGxvYWRUaW1pbmcoKTsKICAgICBpZiAoIXRpbWlu
ZykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTMyMiw3ICszMjIsNyBAQCBjb25zdCBEb2N1bWVu
dFRpbWluZyogUGVyZm9ybWFuY2VUaW1pbmc6OmRvY3VtZW50VGltaW5nKCkgY29uc3QKICAgICBy
ZXR1cm4gJmRvY3VtZW50LT50aW1pbmcoKTsKIH0KIAotRG9jdW1lbnRMb2FkVGltaW5nKiBQZXJm
b3JtYW5jZVRpbWluZzo6ZG9jdW1lbnRMb2FkVGltaW5nKCkgY29uc3QKK0xvYWRUaW1pbmcqIFBl
cmZvcm1hbmNlVGltaW5nOjpsb2FkVGltaW5nKCkgY29uc3QKIHsKICAgICBEb2N1bWVudExvYWRl
ciogbG9hZGVyID0gZG9jdW1lbnRMb2FkZXIoKTsKICAgICBpZiAoIWxvYWRlcikKQEAgLTM0MCw3
ICszNDAsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlc291cmNl
TG9hZFRpbWVSZWxhdGl2ZVRvRmV0Y2hTdGFydChpbnQgcgogdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjptb25vdG9uaWNUaW1lVG9JbnRlZ2VyTWlsbGlzZWNvbmRzKGRvdWJs
ZSBtb25vdG9uaWNTZWNvbmRzKSBjb25zdAogewogICAgIEFTU0VSVChtb25vdG9uaWNTZWNvbmRz
ID49IDApOwotICAgIGlmIChjb25zdCBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3Vt
ZW50TG9hZFRpbWluZygpKQorICAgIGlmIChjb25zdCBMb2FkVGltaW5nKiB0aW1pbmcgPSBsb2Fk
VGltaW5nKCkpCiAgICAgICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5t
b25vdG9uaWNUaW1lVG9Qc2V1ZG9XYWxsVGltZShtb25vdG9uaWNTZWNvbmRzKSk7CiAgICAgcmV0
dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGlt
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmgKaW5kZXggOTkw
OTJmZWY0NTEzNjhjNmM5ZTU4N2FjYjc0MzI5MmEyMGQxZDVhYi4uNGUxMWRkZGNiYmNjMmI1NzVi
MDVmZDNiYzFkZjhhMGVhODlmNDk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZVRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuaApAQCAtMzksMTEgKzM5LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRG9jdW1lbnRMb2FkVGltaW5nOworY2xhc3MgTG9hZFRpbWluZzsKIGNsYXNzIERvY3VtZW50
TG9hZGVyOwogc3RydWN0IERvY3VtZW50VGltaW5nOwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZXNv
dXJjZUxvYWRUaW1pbmc7CitjbGFzcyBOZXR3b3JrTG9hZFRpbWluZzsKIAogY2xhc3MgUGVyZm9y
bWFuY2VUaW1pbmcgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJmb3JtYW5jZVRpbWluZz4sIHB1Ymxp
YyBET01XaW5kb3dQcm9wZXJ0eSB7CiBwdWJsaWM6CkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6
CiAKICAgICBjb25zdCBEb2N1bWVudFRpbWluZyogZG9jdW1lbnRUaW1pbmcoKSBjb25zdDsKICAg
ICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKLSAgICBEb2N1bWVudExv
YWRUaW1pbmcqIGRvY3VtZW50TG9hZFRpbWluZygpIGNvbnN0OworICAgIExvYWRUaW1pbmcqIGxv
YWRUaW1pbmcoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVzb3VyY2VMb2FkVGlt
ZVJlbGF0aXZlVG9GZXRjaFN0YXJ0KGludCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbG9uZyBsb25n
IG1vbm90b25pY1RpbWVUb0ludGVnZXJNaWxsaXNlY29uZHMoZG91YmxlKSBjb25zdDsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkVGlt
aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkVGltaW5n
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODE2NWY2MDAzZDA1MjViMjFkNTRhOWU2ZDFhNGMwYjMwNDk2NzQ2Ygot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a0xvYWRUaW1pbmcuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAorY2xhc3MgTmV0d29ya0xvYWRUaW1pbmcgeworcHVibGljOgorICAgIE5ldHdvcmtM
b2FkVGltaW5nKCkKKyAgICAgICAgOiBkb21haW5Mb29rdXBTdGFydCgtMSkKKyAgICAgICAgLCBk
b21haW5Mb29rdXBFbmQoLTEpCisgICAgICAgICwgY29ubmVjdFN0YXJ0KC0xKQorICAgICAgICAs
IGNvbm5lY3RFbmQoLTEpCisgICAgICAgICwgcmVxdWVzdFN0YXJ0KDApCisgICAgICAgICwgcmVz
cG9uc2VTdGFydCgwKQorICAgICAgICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFydCgtMSkKKyAgICB7
CisgICAgfQorICAgIAorICAgIE5ldHdvcmtMb2FkVGltaW5nKGNvbnN0IE5ldHdvcmtMb2FkVGlt
aW5nJiBvdGhlcikKKyAgICAgICAgOiBkb21haW5Mb29rdXBTdGFydChvdGhlci5kb21haW5Mb29r
dXBTdGFydCkKKyAgICAgICAgLCBkb21haW5Mb29rdXBFbmQob3RoZXIuZG9tYWluTG9va3VwRW5k
KQorICAgICAgICAsIGNvbm5lY3RTdGFydChvdGhlci5jb25uZWN0U3RhcnQpCisgICAgICAgICwg
Y29ubmVjdEVuZChvdGhlci5jb25uZWN0RW5kKQorICAgICAgICAsIHJlcXVlc3RTdGFydChvdGhl
ci5yZXF1ZXN0U3RhcnQpCisgICAgICAgICwgcmVzcG9uc2VTdGFydChvdGhlci5yZXNwb25zZVN0
YXJ0KQorICAgICAgICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFydChvdGhlci5zZWN1cmVDb25uZWN0
aW9uU3RhcnQpCisgICAgeworICAgIH0KKyAgICAKKyAgICBOZXR3b3JrTG9hZFRpbWluZyYgb3Bl
cmF0b3I9KGNvbnN0IE5ldHdvcmtMb2FkVGltaW5nJiBvdGhlcikKKyAgICB7CisgICAgICAgIGRv
bWFpbkxvb2t1cFN0YXJ0ID0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgIGRvbWFp
bkxvb2t1cEVuZCA9IG90aGVyLmRvbWFpbkxvb2t1cEVuZDsKKyAgICAgICAgY29ubmVjdFN0YXJ0
ID0gb3RoZXIuY29ubmVjdFN0YXJ0OworICAgICAgICBjb25uZWN0RW5kID0gb3RoZXIuY29ubmVj
dEVuZDsKKyAgICAgICAgcmVxdWVzdFN0YXJ0ID0gb3RoZXIucmVxdWVzdFN0YXJ0OworICAgICAg
ICByZXNwb25zZVN0YXJ0ID0gb3RoZXIucmVzcG9uc2VTdGFydDsKKyAgICAgICAgc2VjdXJlQ29u
bmVjdGlvblN0YXJ0ID0gb3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgTmV0d29ya0xvYWRUaW1pbmcgaXNvbGF0ZWRDb3B5KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIC8vIFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gbWVtYmVycyB0
aGF0IG5lZWQgaXNvbGF0ZWQgY29waWVzLCBzbyB3ZSBjYW4gdXNlIHRoZSBjb3B5IGNvbnN0cnVj
dG9yLgorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQgPT0gb3RoZXIuZG9tYWluTG9va3VwU3RhcnQKKyAg
ICAgICAgICAgICYmIGRvbWFpbkxvb2t1cEVuZCA9PSBvdGhlci5kb21haW5Mb29rdXBFbmQKKyAg
ICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhlci5jb25uZWN0U3RhcnQKKyAgICAgICAg
ICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVjdEVuZAorICAgICAgICAgICAgJiYgcmVx
dWVzdFN0YXJ0ID09IG90aGVyLnJlcXVlc3RTdGFydAorICAgICAgICAgICAgJiYgcmVzcG9uc2VT
dGFydCA9PSBvdGhlci5yZXNwb25zZVN0YXJ0CisgICAgICAgICAgICAmJiBzZWN1cmVDb25uZWN0
aW9uU3RhcnQgPT0gb3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0OworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBOZXR3b3JrTG9hZFRpbWluZyYgb3RoZXIpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgTmV0d29ya0xv
YWRUaW1pbmcmKTsKKworICAgIC8vIFRoZXNlIGFyZSBtaWxsaXNlY29uZCBkZWx0YXMgZnJvbSB0
aGUgbmF2aWdhdGlvbiBzdGFydC4KKyAgICBpbnQgZG9tYWluTG9va3VwU3RhcnQ7CisgICAgaW50
IGRvbWFpbkxvb2t1cEVuZDsKKyAgICBpbnQgY29ubmVjdFN0YXJ0OworICAgIGludCBjb25uZWN0
RW5kOworICAgIGludCByZXF1ZXN0U3RhcnQ7CisgICAgaW50IHJlc3BvbnNlU3RhcnQ7CisgICAg
aW50IHNlY3VyZUNvbm5lY3Rpb25TdGFydDsKK307CisKKyNpZiBQTEFURk9STShDT0NPQSkKK1dF
QkNPUkVfRVhQT1JUIHZvaWQgY29weVRpbWluZ0RhdGEoTlNEaWN0aW9uYXJ5ICp0aW1pbmdEYXRh
LCBOZXR3b3JrTG9hZFRpbWluZyYpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
IUhBVkUoVElNSU5HREFUQU9QVElPTlMpCitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbGxlY3Rz
VGltaW5nRGF0YSgpOworI2VuZGlmCisgICAgCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBOZXR3b3JrTG9hZFRpbWluZzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBkb21haW5Mb29rdXBTdGFydDsKKyAgICBlbmNvZGVyIDw8IGRvbWFpbkxv
b2t1cEVuZDsKKyAgICBlbmNvZGVyIDw8IGNvbm5lY3RTdGFydDsKKyAgICBlbmNvZGVyIDw8IGNv
bm5lY3RFbmQ7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0U3RhcnQ7CisgICAgZW5jb2RlciA8PCBy
ZXNwb25zZVN0YXJ0OworICAgIGVuY29kZXIgPDwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBOZXR3b3JrTG9hZFRpbWluZzo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIE5ldHdvcmtMb2FkVGltaW5nJiB0aW1pbmcpCit7CisgICAgcmV0
dXJuIGRlY29kZXIuZGVjb2RlKHRpbWluZy5kb21haW5Mb29rdXBTdGFydCkKKyAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUodGltaW5nLmRvbWFpbkxvb2t1cEVuZCkKKyAgICAgICAgJiYgZGVjb2Rl
ci5kZWNvZGUodGltaW5nLmNvbm5lY3RTdGFydCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUo
dGltaW5nLmNvbm5lY3RFbmQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5yZXF1
ZXN0U3RhcnQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWluZy5yZXNwb25zZVN0YXJ0
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZSh0aW1pbmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0
KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZS5oCmluZGV4IDk5NDZkZDNmZjE5MzM0MzA3NzdiODllYjg0ZTAyM2ZhYTgzNTE4YWQu
LjUwNWEyMTg0NWZkZTI5OTk1MGFmOWVlYjc0YmNiYmQ0ZGMwNjVhODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTg2LDcgKzg2
LDcgQEAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNz
IFJlc291cmNlSGFuZGxlQ2xpZW50OwogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDsKLWNs
YXNzIFJlc291cmNlTG9hZFRpbWluZzsKK2NsYXNzIE5ldHdvcmtMb2FkVGltaW5nOwogY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNoYXJlZEJ1
ZmZlcjsKQEAgLTEzNCw5ICsxMzQsOSBAQCBwdWJsaWM6CiAgICAgICAgIAogI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoV0VCX1RJTUlORykKICNpZiBVU0UoQ0ZORVRXT1JLKQotICAgIHN0
YXRpYyB2b2lkIGdldENvbm5lY3Rpb25UaW1pbmdEYXRhKENGVVJMQ29ubmVjdGlvblJlZiwgUmVz
b3VyY2VMb2FkVGltaW5nJik7CisgICAgc3RhdGljIHZvaWQgZ2V0Q29ubmVjdGlvblRpbWluZ0Rh
dGEoQ0ZVUkxDb25uZWN0aW9uUmVmLCBOZXR3b3JrTG9hZFRpbWluZyYpOwogI2Vsc2UKLSAgICBz
dGF0aWMgdm9pZCBnZXRDb25uZWN0aW9uVGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKiwgUmVz
b3VyY2VMb2FkVGltaW5nJik7CisgICAgc3RhdGljIHZvaWQgZ2V0Q29ubmVjdGlvblRpbWluZ0Rh
dGEoTlNVUkxDb25uZWN0aW9uICosIE5ldHdvcmtMb2FkVGltaW5nJik7CiAjZW5kaWYKICNlbmRp
ZgogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VMb2FkVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlTG9hZFRpbWluZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWNlYzQ5
MzY3OTIzYjdmN2UxYjU4NzU3YWMyY2IxYWM2MzZjYmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VMb2FkVGltaW5nLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNDEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlc291
cmNlTG9hZFRpbWluZ19oCi0jZGVmaW5lIFJlc291cmNlTG9hZFRpbWluZ19oCi0KLSNpZiBQTEFU
Rk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwotI2VuZGlmCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICAKLWNsYXNzIFJlc291cmNlTG9hZFRpbWluZyB7Ci1wdWJsaWM6Ci0g
ICAgUmVzb3VyY2VMb2FkVGltaW5nKCkKLSAgICAgICAgOiBkb21haW5Mb29rdXBTdGFydCgtMSkK
LSAgICAgICAgLCBkb21haW5Mb29rdXBFbmQoLTEpCi0gICAgICAgICwgY29ubmVjdFN0YXJ0KC0x
KQotICAgICAgICAsIGNvbm5lY3RFbmQoLTEpCi0gICAgICAgICwgcmVxdWVzdFN0YXJ0KDApCi0g
ICAgICAgICwgcmVzcG9uc2VTdGFydCgwKQotICAgICAgICAsIHNlY3VyZUNvbm5lY3Rpb25TdGFy
dCgtMSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIFJlc291cmNlTG9hZFRpbWluZyhjb25zdCBS
ZXNvdXJjZUxvYWRUaW1pbmcmIG90aGVyKQotICAgICAgICA6IGRvbWFpbkxvb2t1cFN0YXJ0KG90
aGVyLmRvbWFpbkxvb2t1cFN0YXJ0KQotICAgICAgICAsIGRvbWFpbkxvb2t1cEVuZChvdGhlci5k
b21haW5Mb29rdXBFbmQpCi0gICAgICAgICwgY29ubmVjdFN0YXJ0KG90aGVyLmNvbm5lY3RTdGFy
dCkKLSAgICAgICAgLCBjb25uZWN0RW5kKG90aGVyLmNvbm5lY3RFbmQpCi0gICAgICAgICwgcmVx
dWVzdFN0YXJ0KG90aGVyLnJlcXVlc3RTdGFydCkKLSAgICAgICAgLCByZXNwb25zZVN0YXJ0KG90
aGVyLnJlc3BvbnNlU3RhcnQpCi0gICAgICAgICwgc2VjdXJlQ29ubmVjdGlvblN0YXJ0KG90aGVy
LnNlY3VyZUNvbm5lY3Rpb25TdGFydCkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIFJlc291cmNl
TG9hZFRpbWluZyYgb3BlcmF0b3I9KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpCi0g
ICAgewotICAgICAgICBkb21haW5Mb29rdXBTdGFydCA9IG90aGVyLmRvbWFpbkxvb2t1cFN0YXJ0
OwotICAgICAgICBkb21haW5Mb29rdXBFbmQgPSBvdGhlci5kb21haW5Mb29rdXBFbmQ7Ci0gICAg
ICAgIGNvbm5lY3RTdGFydCA9IG90aGVyLmNvbm5lY3RTdGFydDsKLSAgICAgICAgY29ubmVjdEVu
ZCA9IG90aGVyLmNvbm5lY3RFbmQ7Ci0gICAgICAgIHJlcXVlc3RTdGFydCA9IG90aGVyLnJlcXVl
c3RTdGFydDsKLSAgICAgICAgcmVzcG9uc2VTdGFydCA9IG90aGVyLnJlc3BvbnNlU3RhcnQ7Ci0g
ICAgICAgIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IG90aGVyLnNlY3VyZUNvbm5lY3Rpb25TdGFy
dDsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIFJlc291cmNlTG9hZFRpbWlu
ZyBpc29sYXRlZENvcHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVGhlcmUgYXJlIGN1cnJl
bnRseSBubyBtZW1iZXJzIHRoYXQgbmVlZCBpc29sYXRlZCBjb3BpZXMsIHNvIHdlIGNhbiB1c2Ug
dGhlIGNvcHkgY29uc3RydWN0b3IuCi0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAg
Ci0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlc291cmNlTG9hZFRpbWluZyYgb3RoZXIpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gZG9tYWluTG9va3VwU3RhcnQgPT0gb3RoZXIuZG9t
YWluTG9va3VwU3RhcnQKLSAgICAgICAgICAgICYmIGRvbWFpbkxvb2t1cEVuZCA9PSBvdGhlci5k
b21haW5Mb29rdXBFbmQKLSAgICAgICAgICAgICYmIGNvbm5lY3RTdGFydCA9PSBvdGhlci5jb25u
ZWN0U3RhcnQKLSAgICAgICAgICAgICYmIGNvbm5lY3RFbmQgPT0gb3RoZXIuY29ubmVjdEVuZAot
ICAgICAgICAgICAgJiYgcmVxdWVzdFN0YXJ0ID09IG90aGVyLnJlcXVlc3RTdGFydAotICAgICAg
ICAgICAgJiYgcmVzcG9uc2VTdGFydCA9PSBvdGhlci5yZXNwb25zZVN0YXJ0Ci0gICAgICAgICAg
ICAmJiBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPT0gb3RoZXIuc2VjdXJlQ29ubmVjdGlvblN0YXJ0
OwotICAgIH0KLQotICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZXNvdXJjZUxvYWRUaW1pbmcm
IG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwot
ICAgIH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFJlc291cmNlTG9hZFRpbWluZyYpOwotCi0gICAgLy8gVGhlc2UgYXJlIG1pbGxp
c2Vjb25kIGRlbHRhcyBmcm9tIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0LgotICAgIGludCBkb21haW5M
b29rdXBTdGFydDsKLSAgICBpbnQgZG9tYWluTG9va3VwRW5kOwotICAgIGludCBjb25uZWN0U3Rh
cnQ7Ci0gICAgaW50IGNvbm5lY3RFbmQ7Ci0gICAgaW50IHJlcXVlc3RTdGFydDsKLSAgICBpbnQg
cmVzcG9uc2VTdGFydDsKLSAgICBpbnQgc2VjdXJlQ29ubmVjdGlvblN0YXJ0OwotfTsKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5VGltaW5nRGF0YShOU0Rp
Y3Rpb25hcnkgKnRpbWluZ0RhdGEsIFJlc291cmNlTG9hZFRpbWluZyYpOwotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkgJiYgIUhBVkUoVElNSU5HREFUQU9QVElPTlMpCi1XRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvbGxlY3RzVGltaW5nRGF0YSgpOwotI2VuZGlmCi0gICAgCi10ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBSZXNvdXJjZUxvYWRUaW1pbmc6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgZG9tYWluTG9va3VwU3RhcnQ7Ci0g
ICAgZW5jb2RlciA8PCBkb21haW5Mb29rdXBFbmQ7Ci0gICAgZW5jb2RlciA8PCBjb25uZWN0U3Rh
cnQ7Ci0gICAgZW5jb2RlciA8PCBjb25uZWN0RW5kOwotICAgIGVuY29kZXIgPDwgcmVxdWVzdFN0
YXJ0OwotICAgIGVuY29kZXIgPDwgcmVzcG9uc2VTdGFydDsKLSAgICBlbmNvZGVyIDw8IHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJvb2wgUmVz
b3VyY2VMb2FkVGltaW5nOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VMb2FkVGlt
aW5nJiB0aW1pbmcpCi17Ci0gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHRpbWluZy5kb21haW5M
b29rdXBTdGFydCkKLSAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGltaW5nLmRvbWFpbkxvb2t1
cEVuZCkKLSAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGltaW5nLmNvbm5lY3RTdGFydCkKLSAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUodGltaW5nLmNvbm5lY3RFbmQpCi0gICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKHRpbWluZy5yZXF1ZXN0U3RhcnQpCi0gICAgICAgICYmIGRlY29kZXIuZGVj
b2RlKHRpbWluZy5yZXNwb25zZVN0YXJ0KQotICAgICAgICAmJiBkZWNvZGVyLmRlY29kZSh0aW1p
bmcuc2VjdXJlQ29ubmVjdGlvblN0YXJ0KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5j
cHAKaW5kZXggZmNiZTc3Njk4NDc3YTJiZjZlNjYzYzBjNmZjYTYxMmYxOTg1ZWJhMC4uMmMxMjI3
OGQ1YWYwY2M3ODEwM2I2YjFlYTM4ZTk4MWUyZGU3NDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgUmVzb3VyY2VSZXNwb25zZUJhc2U6OkNyb3NzVGhyZWFkRGF0YSBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6Y3Jvc3NUaHJlYWREYXRhKCkgY28KICAgICBkYXRhLmh0dHBWZXJz
aW9uID0gaHR0cFZlcnNpb24oKS5pc29sYXRlZENvcHkoKTsKIAogICAgIGRhdGEuaHR0cEhlYWRl
ckZpZWxkcyA9IGh0dHBIZWFkZXJGaWVsZHMoKS5pc29sYXRlZENvcHkoKTsKLSAgICBkYXRhLnJl
c291cmNlTG9hZFRpbWluZyA9IG1fcmVzb3VyY2VMb2FkVGltaW5nLmlzb2xhdGVkQ29weSgpOwor
ICAgIGRhdGEubmV0d29ya0xvYWRUaW1pbmcgPSBtX25ldHdvcmtMb2FkVGltaW5nLmlzb2xhdGVk
Q29weSgpOwogICAgIGRhdGEudHlwZSA9IG1fdHlwZTsKICAgICBkYXRhLmlzUmVkaXJlY3RlZCA9
IG1faXNSZWRpcmVjdGVkOwogCkBAIC05Miw3ICs5Miw3IEBAIFJlc291cmNlUmVzcG9uc2UgUmVz
b3VyY2VSZXNwb25zZUJhc2U6OmZyb21Dcm9zc1RocmVhZERhdGEoQ3Jvc3NUaHJlYWREYXRhJiYg
ZGF0CiAgICAgcmVzcG9uc2Uuc2V0SFRUUFZlcnNpb24oZGF0YS5odHRwVmVyc2lvbik7CiAKICAg
ICByZXNwb25zZS5tX2h0dHBIZWFkZXJGaWVsZHMgPSBXVEZNb3ZlKGRhdGEuaHR0cEhlYWRlckZp
ZWxkcyk7Ci0gICAgcmVzcG9uc2UubV9yZXNvdXJjZUxvYWRUaW1pbmcgPSBkYXRhLnJlc291cmNl
TG9hZFRpbWluZzsKKyAgICByZXNwb25zZS5tX25ldHdvcmtMb2FkVGltaW5nID0gZGF0YS5uZXR3
b3JrTG9hZFRpbWluZzsKICAgICByZXNwb25zZS5tX3R5cGUgPSBkYXRhLnR5cGU7CiAgICAgcmVz
cG9uc2UubV9pc1JlZGlyZWN0ZWQgPSBkYXRhLmlzUmVkaXJlY3RlZDsKIApAQCAtNTc1LDcgKzU3
NSw3IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmNvbXBhcmUoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoYS5odHRwSGVhZGVyRmllbGRzKCkgIT0gYi5odHRwSGVhZGVyRmllbGRzKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYS5yZXNvdXJjZUxvYWRUaW1pbmcoKSAhPSBiLnJl
c291cmNlTG9hZFRpbWluZygpKQorICAgIGlmIChhLm5ldHdvcmtMb2FkVGltaW5nKCkgIT0gYi5u
ZXR3b3JrTG9hZFRpbWluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIFJl
c291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ29tcGFyZShhLCBiKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAppbmRl
eCA0OTg1MDBjNmNiNGU0ZGI5ZmUwOWUxZDM4NjRkYTAxNjZjOTIxMWFmLi5hMjg4MjM1MDc0Yzg4
Y2QzOGIwODE2YzNhZmYxN2M0OThkNWUwZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC0yOSw4ICsyOSw4
IEBACiAjaW5jbHVkZSAiQ2FjaGVWYWxpZGF0aW9uLmgiCiAjaW5jbHVkZSAiQ2VydGlmaWNhdGVJ
bmZvLmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2Fk
VGltaW5nLmgiCiAjaW5jbHVkZSAiUGFyc2VkQ29udGVudFJhbmdlLmgiCi0jaW5jbHVkZSAiUmVz
b3VyY2VMb2FkVGltaW5nLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgaHR0cFN0YXR1c1Rl
eHQ7CiAgICAgICAgIFN0cmluZyBodHRwVmVyc2lvbjsKICAgICAgICAgSFRUUEhlYWRlck1hcCBo
dHRwSGVhZGVyRmllbGRzOwotICAgICAgICBSZXNvdXJjZUxvYWRUaW1pbmcgcmVzb3VyY2VMb2Fk
VGltaW5nOworICAgICAgICBOZXR3b3JrTG9hZFRpbWluZyBuZXR3b3JrTG9hZFRpbWluZzsKICAg
ICAgICAgVHlwZSB0eXBlOwogICAgICAgICBib29sIGlzUmVkaXJlY3RlZDsKICAgICB9OwpAQCAt
MTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBTb3VyY2Ugc291cmNl
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2UoU291cmNlKTsKIAot
ICAgIFJlc291cmNlTG9hZFRpbWluZyYgcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZUxvYWRUaW1pbmc7IH0KKyAgICBOZXR3b3JrTG9hZFRpbWluZyYgbmV0d29y
a0xvYWRUaW1pbmcoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtMb2FkVGltaW5nOyB9CiAKICAg
ICAvLyBUaGUgUmVzb3VyY2VSZXNwb25zZSBzdWJjbGFzcyBtYXkgInNoYWRvdyIgdGhpcyBtZXRo
b2QgdG8gcHJvdmlkZSBwbGF0Zm9ybS1zcGVjaWZpYyBtZW1vcnkgdXNhZ2UgaW5mb3JtYXRpb24K
ICAgICB1bnNpZ25lZCBtZW1vcnlVc2FnZSgpIGNvbnN0CkBAIC0xODcsNyArMTg3LDcgQEAgcHJv
dGVjdGVkOgogICAgIEF0b21pY1N0cmluZyBtX2h0dHBTdGF0dXNUZXh0OwogICAgIEF0b21pY1N0
cmluZyBtX2h0dHBWZXJzaW9uOwogICAgIEhUVFBIZWFkZXJNYXAgbV9odHRwSGVhZGVyRmllbGRz
OwotICAgIG11dGFibGUgUmVzb3VyY2VMb2FkVGltaW5nIG1fcmVzb3VyY2VMb2FkVGltaW5nOwor
ICAgIG11dGFibGUgTmV0d29ya0xvYWRUaW1pbmcgbV9uZXR3b3JrTG9hZFRpbWluZzsKIAogICAg
IG11dGFibGUgT3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiBtX2NlcnRpZmljYXRlSW5mbzsKIApA
QCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9odHRwU3RhdHVzVGV4dDsKICAg
ICBlbmNvZGVyIDw8IG1faHR0cFZlcnNpb247CiAgICAgZW5jb2RlciA8PCBtX2h0dHBIZWFkZXJG
aWVsZHM7Ci0gICAgZW5jb2RlciA8PCBtX3Jlc291cmNlTG9hZFRpbWluZzsKKyAgICBlbmNvZGVy
IDw8IG1fbmV0d29ya0xvYWRUaW1pbmc7CiAgICAgZW5jb2RlciA8PCBtX2h0dHBTdGF0dXNDb2Rl
OwogICAgIGVuY29kZXIgPDwgbV9jZXJ0aWZpY2F0ZUluZm87CiAgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKG1fc291cmNlKTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIFJlc291cmNlUmVzcG9uc2VC
YXNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZUJhc2UmIHJlc3Bv
bgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXNwb25z
ZS5tX2h0dHBIZWFkZXJGaWVsZHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXNwb25zZS5tX3Jlc291cmNlTG9hZFRpbWluZykpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXNwb25zZS5tX25ldHdvcmtMb2FkVGltaW5nKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzcG9uc2UubV9odHRwU3RhdHVz
Q29kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVl
dWUuY3BwCmluZGV4IDg0YjdhM2ViNjMxNDUxNTljNDdjMTE0NTUyZjI3NjQ4Y2JlMDdkNjYuLjlm
MDBjM2EwM2ZlYjFhOWEyMTk3YmFmOTg4NzkyMGVlOGU2MDg4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlCiAgICAgICAgIAogICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9u
c2UoY2ZSZXNwb25zZSk7CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0gICAgICAgIFJlc291cmNl
SGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsKKyAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmdldENv
bm5lY3Rpb25UaW1pbmdEYXRhKGNvbm5lY3Rpb24sIHJlc291cmNlUmVzcG9uc2UubmV0d29ya0xv
YWRUaW1pbmcoKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3lu
Y2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNG
VVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcAppbmRleCAxOWE2ZGQ5Y2JkOTViNDFhMzRhNjU2ZGRi
NmEzZDFiNzI3YTE2NmU4Li4zZDZmZjI1NWE1MjE2NTk5YjQyOGQ1YWI1ZWZkMTgyMGM5ODYxYjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9u
b3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBTeW5jaHJv
bm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU6OmRpZFJlY2VpdmVSZXNw
b25zZShDRlVSTEMKICAgICAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2Uo
Y2ZSZXNwb25zZSk7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfVElNSU5HKQot
ICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLCBy
ZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKTsKKyAgICBSZXNvdXJjZUhhbmRs
ZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbiwgcmVzb3VyY2VSZXNwb25zZS5u
ZXR3b3JrTG9hZFRpbWluZygpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24p
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtMb2FkVGltaW5nLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9OZXR3b3JrTG9hZFRpbWluZy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjMzMzExMTQ4MmY2YWNi
NmNiMzcxYjZmYzljNzU2ZjQ5ZmRlYWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrTG9hZFRpbWluZy5tbQpAQCAtMCwwICsx
LDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk5ldHdvcmtMb2FkVGltaW5nLmgiCisKKyNpbXBv
cnQgPFdlYkNvcmUvTlNVUkxDb25uZWN0aW9uU1BJLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGRvdWJsZSB0aW1pbmdWYWx1ZShOU0RpY3Rpb25hcnkgKnRpbWluZ0RhdGEsIE5T
U3RyaW5nICprZXkpCit7CisgICAgaWYgKGlkIG9iamVjdCA9IFt0aW1pbmdEYXRhIG9iamVjdEZv
cktleTprZXldKQorICAgICAgICByZXR1cm4gW29iamVjdCBkb3VibGVWYWx1ZV07CisgICAgcmV0
dXJuIDAuMDsKK30KKyAgICAKK3ZvaWQgY29weVRpbWluZ0RhdGEoTlNEaWN0aW9uYXJ5ICp0aW1p
bmdEYXRhLCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nKQoreworICAgIGlmICghdGltaW5nRGF0
YSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIFRoaXMgaXMgbm90IHRoZSBuYXZpZ2F0
aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0IHRoZSBvdGhlciB0aW1lcyBhcmUg
cmVsYXRpdmUgdG8gdGhpcyB0aW1lCisgICAgLy8gYW5kIG9ubHkgdGhlIGRpZmZlcmVuY2VzIGJl
dHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KKyAgICBkb3VibGUgcmVmZXJlbmNlU3RhcnQgPSB0aW1p
bmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YUZldGNoU3RhcnQiKTsKKyAgICAK
KyAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBA
Il9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Iik7CisgICAgZG91YmxlIGRvbWFpbkxv
b2t1cEVuZCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhRG9tYWlu
TG9va3VwRW5kIik7CisgICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWlu
Z0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Iik7CisgICAgZG91YmxlIHNlY3Vy
ZUNvbm5lY3Rpb25TdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdE
YXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Iik7CisgICAgZG91YmxlIGNvbm5lY3RFbmQgPSB0aW1p
bmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YUNvbm5lY3RFbmQiKTsKKyAgICBk
b3VibGUgcmVxdWVzdFN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0YSwgQCJfa0NGTlRpbWlu
Z0RhdGFSZXF1ZXN0U3RhcnQiKTsKKyAgICBkb3VibGUgcmVzcG9uc2VTdGFydCA9IHRpbWluZ1Zh
bHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VTdGFydCIpOworICAgIAor
ICAgIHRpbWluZy5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1cFN0YXJ0IDw9IDAgPyAt
MSA6IChkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgdGlt
aW5nLmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAwID8gLTEgOiAoZG9tYWlu
TG9va3VwRW5kIC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICB0aW1pbmcuY29ubmVjdFN0
YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChjb25uZWN0U3RhcnQgLSByZWZlcmVuY2VT
dGFydCkgKiAxMDAwOworICAgIHRpbWluZy5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBzZWN1cmVD
b25uZWN0aW9uU3RhcnQgPD0gMCA/IC0xIDogKHNlY3VyZUNvbm5lY3Rpb25TdGFydCAtIHJlZmVy
ZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgdGltaW5nLmNvbm5lY3RFbmQgPSBjb25uZWN0RW5kIDw9
IDAgPyAtMSA6IChjb25uZWN0RW5kIC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKKyAgICB0aW1p
bmcucmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAgPyAwIDogKHJlcXVlc3RTdGFydCAt
IHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7CisgICAgdGltaW5nLnJlc3BvbnNlU3RhcnQgPSByZXNw
b25zZVN0YXJ0IDw9IDAgPyAwIDogKHJlc3BvbnNlU3RhcnQgLSByZWZlcmVuY2VTdGFydCkgKiAx
MDAwOworfQorCisjaWYgIUhBVkUoVElNSU5HREFUQU9QVElPTlMpCit2b2lkIHNldENvbGxlY3Rz
VGltaW5nRGF0YSgpCit7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Cisg
ICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAgICBbTlNVUkxDb25uZWN0aW9u
IF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKKyAgICAgICAgW05TVVJMQ29ubmVjdGlvbiBf
Y29sbGVjdFRpbWluZ0RhdGFXaXRoT3B0aW9uczpUaW1pbmdEYXRhQ29sbGVjdGlvbk5TdGF0c09m
ZiB8IFRpbWluZ0RhdGFDb2xsZWN0aW9uQ29ubmVjdGlvbkRhdGFPZmZdOworICAgIH0pOworfQor
I2VuZGlmCisgICAgCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL1Jlc291cmNlTG9hZFRpbWluZy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VMb2FkVGltaW5nLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhNDgwZmZjMTMyNWNhMDFkY2JjNTBkNTRhODRjZjRjMmQ2ZjFjZjE2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VMb2FkVGltaW5nLm1tCisrKyAvZGV2L251
bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSZXNvdXJjZUxvYWRUaW1p
bmcuaCIKLQotI2ltcG9ydCA8V2ViQ29yZS9OU1VSTENvbm5lY3Rpb25TUEkuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1zdGF0aWMgZG91YmxlIHRpbWluZ1ZhbHVlKE5TRGljdGlvbmFyeSAq
dGltaW5nRGF0YSwgTlNTdHJpbmcgKmtleSkKLXsKLSAgICBpZiAoaWQgb2JqZWN0ID0gW3RpbWlu
Z0RhdGEgb2JqZWN0Rm9yS2V5OmtleV0pCi0gICAgICAgIHJldHVybiBbb2JqZWN0IGRvdWJsZVZh
bHVlXTsKLSAgICByZXR1cm4gMC4wOwotfQotICAgIAotdm9pZCBjb3B5VGltaW5nRGF0YShOU0Rp
Y3Rpb25hcnkgKnRpbWluZ0RhdGEsIFJlc291cmNlTG9hZFRpbWluZyYgdGltaW5nKQotewotICAg
IGlmICghdGltaW5nRGF0YSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIFRoaXMgaXMg
bm90IHRoZSBuYXZpZ2F0aW9uU3RhcnQgdGltZSBpbiBtb25vdG9uaWMgdGltZSwgYnV0IHRoZSBv
dGhlciB0aW1lcyBhcmUgcmVsYXRpdmUgdG8gdGhpcyB0aW1lCi0gICAgLy8gYW5kIG9ubHkgdGhl
IGRpZmZlcmVuY2VzIGJldHdlZW4gdGltZXMgYXJlIHN0b3JlZC4KLSAgICBkb3VibGUgcmVmZXJl
bmNlU3RhcnQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YUZldGNo
U3RhcnQiKTsKLSAgICAKLSAgICBkb3VibGUgZG9tYWluTG9va3VwU3RhcnQgPSB0aW1pbmdWYWx1
ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YURvbWFpbkxvb2t1cFN0YXJ0Iik7Ci0gICAg
ZG91YmxlIGRvbWFpbkxvb2t1cEVuZCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5U
aW1pbmdEYXRhRG9tYWluTG9va3VwRW5kIik7Ci0gICAgZG91YmxlIGNvbm5lY3RTdGFydCA9IHRp
bWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhQ29ubmVjdFN0YXJ0Iik7Ci0g
ICAgZG91YmxlIHNlY3VyZUNvbm5lY3Rpb25TdGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEs
IEAiX2tDRk5UaW1pbmdEYXRhU2VjdXJlQ29ubmVjdGlvblN0YXJ0Iik7Ci0gICAgZG91YmxlIGNv
bm5lY3RFbmQgPSB0aW1pbmdWYWx1ZSh0aW1pbmdEYXRhLCBAIl9rQ0ZOVGltaW5nRGF0YUNvbm5l
Y3RFbmQiKTsKLSAgICBkb3VibGUgcmVxdWVzdFN0YXJ0ID0gdGltaW5nVmFsdWUodGltaW5nRGF0
YSwgQCJfa0NGTlRpbWluZ0RhdGFSZXF1ZXN0U3RhcnQiKTsKLSAgICBkb3VibGUgcmVzcG9uc2VT
dGFydCA9IHRpbWluZ1ZhbHVlKHRpbWluZ0RhdGEsIEAiX2tDRk5UaW1pbmdEYXRhUmVzcG9uc2VT
dGFydCIpOwotICAgIAotICAgIHRpbWluZy5kb21haW5Mb29rdXBTdGFydCA9IGRvbWFpbkxvb2t1
cFN0YXJ0IDw9IDAgPyAtMSA6IChkb21haW5Mb29rdXBTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAq
IDEwMDA7Ci0gICAgdGltaW5nLmRvbWFpbkxvb2t1cEVuZCA9IGRvbWFpbkxvb2t1cEVuZCA8PSAw
ID8gLTEgOiAoZG9tYWluTG9va3VwRW5kIC0gcmVmZXJlbmNlU3RhcnQpICogMTAwMDsKLSAgICB0
aW1pbmcuY29ubmVjdFN0YXJ0ID0gY29ubmVjdFN0YXJ0IDw9IDAgPyAtMSA6IChjb25uZWN0U3Rh
cnQgLSByZWZlcmVuY2VTdGFydCkgKiAxMDAwOwotICAgIHRpbWluZy5zZWN1cmVDb25uZWN0aW9u
U3RhcnQgPSBzZWN1cmVDb25uZWN0aW9uU3RhcnQgPD0gMCA/IC0xIDogKHNlY3VyZUNvbm5lY3Rp
b25TdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Ci0gICAgdGltaW5nLmNvbm5lY3RFbmQg
PSBjb25uZWN0RW5kIDw9IDAgPyAtMSA6IChjb25uZWN0RW5kIC0gcmVmZXJlbmNlU3RhcnQpICog
MTAwMDsKLSAgICB0aW1pbmcucmVxdWVzdFN0YXJ0ID0gcmVxdWVzdFN0YXJ0IDw9IDAgPyAwIDog
KHJlcXVlc3RTdGFydCAtIHJlZmVyZW5jZVN0YXJ0KSAqIDEwMDA7Ci0gICAgdGltaW5nLnJlc3Bv
bnNlU3RhcnQgPSByZXNwb25zZVN0YXJ0IDw9IDAgPyAwIDogKHJlc3BvbnNlU3RhcnQgLSByZWZl
cmVuY2VTdGFydCkgKiAxMDAwOwotfQotCi0jaWYgIUhBVkUoVElNSU5HREFUQU9QVElPTlMpCi12
b2lkIHNldENvbGxlY3RzVGltaW5nRGF0YSgpCi17Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2Vf
dCBvbmNlVG9rZW47Ci0gICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICBb
TlNVUkxDb25uZWN0aW9uIF9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6WUVTXTsKLSAgICAgICAgW05T
VVJMQ29ubmVjdGlvbiBfY29sbGVjdFRpbWluZ0RhdGFXaXRoT3B0aW9uczpUaW1pbmdEYXRhQ29s
bGVjdGlvbk5TdGF0c09mZiB8IFRpbWluZ0RhdGFDb2xsZWN0aW9uQ29ubmVjdGlvbkRhdGFPZmZd
OwotICAgIH0pOwotfQotI2VuZGlmCi0gICAgCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3Bw
CmluZGV4IGVjZmU5ZjgwNmZhMTExYmU3OTE2MDBjNjhkMjcyNmM0ODI4ZjI1YjAuLjRkZTE1N2E0
NDNhODg1YWY5NzVlNWNhN2UwMDVhY2IzYzJlOGQ5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFn
ZXIuY3BwCkBAIC0xODgsMTcgKzE4OCwxNyBAQCBzdGF0aWMgdm9pZCBjYWxjdWxhdGVXZWJUaW1p
bmdJbmZvcm1hdGlvbnMoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCkKICAgICBjdXJsX2Vhc3lf
Z2V0aW5mbyhkLT5tX2hhbmRsZSwgQ1VSTElORk9fU1RBUlRUUkFOU0ZFUl9USU1FLCAmc3RhcnRU
cmFuc2ZlcnRUaW1lKTsKICAgICBjdXJsX2Vhc3lfZ2V0aW5mbyhkLT5tX2hhbmRsZSwgQ1VSTElO
Rk9fUFJFVFJBTlNGRVJfVElNRSwgJnByZVRyYW5zZmVyVGltZSk7CiAKLSAgICBkLT5tX3Jlc3Bv
bnNlLnJlc291cmNlTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cFN0YXJ0ID0gMDsKLSAgICBkLT5t
X3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cEVuZCA9IHN0YXRpY19j
YXN0PGludD4oZG5zbG9va3VwVGltZSAqIDEwMDApOworICAgIGQtPm1fcmVzcG9uc2UubmV0d29y
a0xvYWRUaW1pbmcoKS5kb21haW5Mb29rdXBTdGFydCA9IDA7CisgICAgZC0+bV9yZXNwb25zZS5u
ZXR3b3JrTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cEVuZCA9IHN0YXRpY19jYXN0PGludD4oZG5z
bG9va3VwVGltZSAqIDEwMDApOwogCi0gICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS5jb25uZWN0U3RhcnQgPSBzdGF0aWNfY2FzdDxpbnQ+KGRuc2xvb2t1cFRpbWUgKiAxMDAw
KTsKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmNvbm5lY3RFbmQgPSBz
dGF0aWNfY2FzdDxpbnQ+KGNvbm5lY3RUaW1lICogMTAwMCk7CisgICAgZC0+bV9yZXNwb25zZS5u
ZXR3b3JrTG9hZFRpbWluZygpLmNvbm5lY3RTdGFydCA9IHN0YXRpY19jYXN0PGludD4oZG5zbG9v
a3VwVGltZSAqIDEwMDApOworICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5j
b25uZWN0RW5kID0gc3RhdGljX2Nhc3Q8aW50Pihjb25uZWN0VGltZSAqIDEwMDApOwogCi0gICAg
ZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS5yZXF1ZXN0U3RhcnQgPSBzdGF0aWNf
Y2FzdDxpbnQ+KGNvbm5lY3RUaW1lICoxMDAwKTsKLSAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNl
TG9hZFRpbWluZygpLnJlc3BvbnNlU3RhcnQgPXN0YXRpY19jYXN0PGludD4ocHJlVHJhbnNmZXJU
aW1lICogMTAwMCk7CisgICAgZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLnJlcXVl
c3RTdGFydCA9IHN0YXRpY19jYXN0PGludD4oY29ubmVjdFRpbWUgKjEwMDApOworICAgIGQtPm1f
cmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5yZXNwb25zZVN0YXJ0ID1zdGF0aWNfY2FzdDxp
bnQ+KHByZVRyYW5zZmVyVGltZSAqIDEwMDApOwogCiAgICAgaWYgKGFwcENvbm5lY3RUaW1lKQot
ICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLnNlY3VyZUNvbm5lY3Rp
b25TdGFydCA9IHN0YXRpY19jYXN0PGludD4oY29ubmVjdFRpbWUgKiAxMDAwKTsKKyAgICAgICAg
ZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLnNlY3VyZUNvbm5lY3Rpb25TdGFydCA9
IHN0YXRpY19jYXN0PGludD4oY29ubmVjdFRpbWUgKiAxMDAwKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tCmluZGV4IGU1NzlkYmM1MmIyMzg5OTIxZmMxNGFkNTdlZGZkNzY0YTE3ZDhmNmYu
LjI2OWZiNTE2NjQzNjA2ODlmMDNhZDc1YzFjYTdiYzg0NmQ2ODNiNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCkBAIC03MzcsMTQgKzczNywxNCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdp
bGxDYWNoZVJlc3BvbnNlKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlKQogCiAjaWYgVVNF
KENGTkVUV09SSykKICAgICAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1p
bmdEYXRhKENGVVJMQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uLCBSZXNvdXJjZUxvYWRUaW1pbmcm
IHRpbWluZykKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKENG
VVJMQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uLCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nKQog
ewogICAgIGNvcHlUaW1pbmdEYXRhKChfX2JyaWRnZSBOU0RpY3Rpb25hcnkqKWFkb3B0Q0YoX0NG
VVJMQ29ubmVjdGlvbkNvcHlUaW1pbmdEYXRhKGNvbm5lY3Rpb24pKS5nZXQoKSwgdGltaW5nKTsK
IH0KICAgICAKICNlbHNlCiAgICAgCi12b2lkIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9u
VGltaW5nRGF0YShOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIFJlc291cmNlTG9hZFRpbWlu
ZyYgdGltaW5nKQordm9pZCBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEo
TlNVUkxDb25uZWN0aW9uICpjb25uZWN0aW9uLCBOZXR3b3JrTG9hZFRpbWluZyYgdGltaW5nKQog
ewogICAgIGNvcHlUaW1pbmdEYXRhKFtjb25uZWN0aW9uIF90aW1pbmdEYXRhXSwgdGltaW5nKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNv
cmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCmluZGV4IDlmOTQ2
ZjgzMmMyNjcxNGY5NGEwNzJiNGRlNGJjZmZkOTBmZTgwNzYuLjIxMDNhM2ZkMjAyZmFiMmU4NWNh
ZDgwYTRjMjY4ZTU3YzIyNTI1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNE
ZWxlZ2F0ZS5tbQpAQCAtMTUxLDcgKzE1MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZShyKTsKICAgICByZXNvdXJjZVJl
c3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogI2lm
IEVOQUJMRShXRUJfVElNSU5HKQotICAgIFJlc291cmNlSGFuZGxlOjpnZXRDb25uZWN0aW9uVGlt
aW5nRGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygp
KTsKKyAgICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlv
biwgcmVzb3VyY2VSZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGNvbm5lY3Rpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KaW5kZXggMmIxYzhk
MzA5YTQ4MjRlODE3NzkyOWNiZjk5OWIyN2JlZDRiYTA0Ni4uMWZkMWE2ZTAxODkyOGVlYTJhMzNh
YzNmYjNiMmI0YTI2YWViOWFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNv
dXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQpAQCAtMTk1LDcgKzE5NSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNvdXJjZVJlc3BvbnNlKHIpOwogI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgICAg
ICBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoY29ubmVjdGlvbiwgcmVz
b3VyY2VSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSk7CisgICAgICAgIFJlc291cmNlSGFu
ZGxlOjpnZXRDb25uZWN0aW9uVGltaW5nRGF0YShjb25uZWN0aW9uLCByZXNvdXJjZVJlc3BvbnNl
Lm5ldHdvcmtMb2FkVGltaW5nKCkpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKGNvbm5l
Y3Rpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IGMyYjk1NTE2ZmI1YmE2
MDhlYTAyYTUzOTY2ZjU3YTU4YTNmMTMyNzEuLjY2NjY0NGNiYTc0OTQ3OTc1MmVkZjI1MTFkMmFk
MzNlYmQzN2U2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC03MDksNyArNzA5LDcgQEAg
c3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVzdWx0KiBy
ZXN1bHQsIGdwb2ludGVyIGRhdGEpCiAgICAgfQogCiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCi0g
ICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS5yZXNwb25zZVN0YXJ0ID0gbWls
aXNlY29uZHNTaW5jZVJlcXVlc3QoaGFuZGxlLT5tX3JlcXVlc3RUaW1lKTsKKyAgICBkLT5tX3Jl
c3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkucmVzcG9uc2VTdGFydCA9IG1pbGlzZWNvbmRzU2lu
Y2VSZXF1ZXN0KGhhbmRsZS0+bV9yZXF1ZXN0VGltZSk7CiAjZW5kaWYKIAogICAgIGlmIChzb3Vw
TWVzc2FnZSAmJiBkLT5tX3Jlc3BvbnNlLmlzTXVsdGlwYXJ0KCkpCkBAIC04NDMsNyArODQzLDcg
QEAgc3RhdGljIGludCBtaWxpc2Vjb25kc1NpbmNlUmVxdWVzdChkb3VibGUgcmVxdWVzdFRpbWUp
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFN0YXJ0UmVxdWVzdCgpCiB7Ci0gICAgZ2V0SW50
ZXJuYWwoKS0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS5yZXF1ZXN0U3RhcnQgPSBt
aWxpc2Vjb25kc1NpbmNlUmVxdWVzdChtX3JlcXVlc3RUaW1lKTsKKyAgICBnZXRJbnRlcm5hbCgp
LT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkucmVxdWVzdFN0YXJ0ID0gbWlsaXNlY29u
ZHNTaW5jZVJlcXVlc3QobV9yZXF1ZXN0VGltZSk7CiB9CiAKICNpZiBTT1VQX0NIRUNLX1ZFUlNJ
T04oMiwgNDksIDkxKQpAQCAtODY2LDIxICs4NjYsMjEgQEAgc3RhdGljIHZvaWQgbmV0d29ya0V2
ZW50Q2FsbGJhY2soU291cE1lc3NhZ2UqLCBHU29ja2V0Q2xpZW50RXZlbnQgZXZlbnQsIEdJT1N0
cmUKICAgICBpbnQgZGVsdGFUaW1lID0gbWlsaXNlY29uZHNTaW5jZVJlcXVlc3QoaGFuZGxlLT5t
X3JlcXVlc3RUaW1lKTsKICAgICBzd2l0Y2ggKGV2ZW50KSB7CiAgICAgY2FzZSBHX1NPQ0tFVF9D
TElFTlRfUkVTT0xWSU5HOgotICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWlu
ZygpLmRvbWFpbkxvb2t1cFN0YXJ0ID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNl
Lm5ldHdvcmtMb2FkVGltaW5nKCkuZG9tYWluTG9va3VwU3RhcnQgPSBkZWx0YVRpbWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5UX1JFU09MVkVEOgotICAgICAgICBk
LT5tX3Jlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cEVuZCA9IGRlbHRh
VGltZTsKKyAgICAgICAgZC0+bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLmRvbWFpbkxv
b2t1cEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHX1NPQ0tFVF9D
TElFTlRfQ09OTkVDVElORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS5jb25uZWN0U3RhcnQgPSBkZWx0YVRpbWU7Ci0gICAgICAgIGlmIChkLT5tX3Jlc3BvbnNl
LnJlc291cmNlTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cFN0YXJ0ICE9IC0xKSB7CisgICAgICAg
IGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5jb25uZWN0U3RhcnQgPSBkZWx0YVRp
bWU7CisgICAgICAgIGlmIChkLT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkuZG9tYWlu
TG9va3VwU3RhcnQgIT0gLTEpIHsKICAgICAgICAgICAgIC8vIFdlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXF1ZXN0VGltaW5nVmlldy5qcyBhc3N1bWVzCiAgICAgICAgICAgICAvLyB0aGF0
IEROUyB0aW1lIGlzIGluY2x1ZGVkIGluIGNvbm5lY3Rpb24gdGltZSBzbyBtdXN0CiAgICAgICAg
ICAgICAvLyBzdWJzdHJhY3QgaGVyZSB0aGUgRE5TIGRlbHRhIHRoYXQgd2lsbCBiZSBhZGRlZCBs
YXRlciAoc2VlCiAgICAgICAgICAgICAvLyBXZWJJbnNwZWN0b3IuUmVxdWVzdFRpbWluZ1ZpZXcu
Y3JlYXRlVGltaW5nVGFibGUgaW4gdGhlCiAgICAgICAgICAgICAvLyBmaWxlIGFib3ZlIGZvciBt
b3JlIGRldGFpbHMpLgotICAgICAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1p
bmcoKS5jb25uZWN0U3RhcnQgLT0KLSAgICAgICAgICAgICAgICBkLT5tX3Jlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cEVuZCAtIGQtPm1fcmVzcG9uc2UucmVzb3VyY2VM
b2FkVGltaW5nKCkuZG9tYWluTG9va3VwU3RhcnQ7CisgICAgICAgICAgICBkLT5tX3Jlc3BvbnNl
Lm5ldHdvcmtMb2FkVGltaW5nKCkuY29ubmVjdFN0YXJ0IC09CisgICAgICAgICAgICAgICAgZC0+
bV9yZXNwb25zZS5uZXR3b3JrTG9hZFRpbWluZygpLmRvbWFpbkxvb2t1cEVuZCAtIGQtPm1fcmVz
cG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5kb21haW5Mb29rdXBTdGFydDsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVOVF9DT05ORUNURUQ6CkBAIC04
OTIsMTIgKzg5MiwxMiBAQCBzdGF0aWMgdm9pZCBuZXR3b3JrRXZlbnRDYWxsYmFjayhTb3VwTWVz
c2FnZSosIEdTb2NrZXRDbGllbnRFdmVudCBldmVudCwgR0lPU3RyZQogICAgIGNhc2UgR19TT0NL
RVRfQ0xJRU5UX1BST1hZX05FR09USUFURUQ6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19T
T0NLRVRfQ0xJRU5UX1RMU19IQU5EU0hBS0lORzoKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNv
dXJjZUxvYWRUaW1pbmcoKS5zZWN1cmVDb25uZWN0aW9uU3RhcnQgPSBkZWx0YVRpbWU7CisgICAg
ICAgIGQtPm1fcmVzcG9uc2UubmV0d29ya0xvYWRUaW1pbmcoKS5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBkZWx0YVRpbWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR19TT0NLRVRfQ0xJRU5U
X1RMU19IQU5EU0hBS0VEOgogICAgICAgICBicmVhazsKICAgICBjYXNlIEdfU09DS0VUX0NMSUVO
VF9DT01QTEVURToKLSAgICAgICAgZC0+bV9yZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS5j
b25uZWN0RW5kID0gZGVsdGFUaW1lOworICAgICAgICBkLT5tX3Jlc3BvbnNlLm5ldHdvcmtMb2Fk
VGltaW5nKCkuY29ubmVjdEVuZCA9IGRlbHRhVGltZTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpp
bmRleCA1MmIxYzMzNzcyODRiOGNhNzZiMDNjYjUzMTQ2YTZmNmQwYzIxMWRkLi41OWU2OTZmODZi
N2RmYTlkMzBjMzUwODlkZDY2YTYxNTlhZjU2ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAg
LTQwLDEwICs0MCwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtMb2FkVGltaW5nLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlTG9hZFRpbWluZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgTlNVUkxT
ZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uIHRvTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5n
ZURpc3Bvc2l0aQogICAgICAgICAvLyBhbGwgdGhlIGZpZWxkcyB3aGVuIHNlbmRpbmcgdGhlIHJl
c3BvbnNlIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mgb3ZlciBJUEMuCiAgICAgICAgIHJlc291
cmNlUmVzcG9uc2UuZGlzYWJsZUxhenlJbml0aWFsaXphdGlvbigpOwogCi0gICAgICAgIGNvcHlU
aW1pbmdEYXRhKFtkYXRhVGFzayBfdGltaW5nRGF0YV0sIHJlc291cmNlUmVzcG9uc2UucmVzb3Vy
Y2VMb2FkVGltaW5nKCkpOworICAgICAgICBjb3B5VGltaW5nRGF0YShbZGF0YVRhc2sgX3RpbWlu
Z0RhdGFdLCByZXNvdXJjZVJlc3BvbnNlLm5ldHdvcmtMb2FkVGltaW5nKCkpOwogICAgICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyQ29weSA9IEJsb2NrX2NvcHkoY29tcGxldGlvbkhhbmRsZXIp
OwogICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJl
c291cmNlUmVzcG9uc2UpLCBbY29tcGxldGlvbkhhbmRsZXJDb3B5LCB0YXNrSWRlbnRpZmllcl0o
V2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbikgewogICAgICAgICAgICAgTE9HKE5l
dHdvcmtTZXNzaW9uLCAiJWxsdSBkaWRSZWNlaXZlUmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXIg
KGNhbmNlbCkiLCB0YXNrSWRlbnRpZmllcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>