<?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>103958</bug_id>
          
          <creation_ts>2012-12-03 18:29:04 -0800</creation_ts>
          <short_desc>REGRESSION(r136460): This patch caused compile error when building DumpRenderTree (Requested by tasak on #webkit).</short_desc>
          <delta_ts>2012-12-03 18:43:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103897</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fishd</cc>
    
    <cc>sky</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782112</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:29:04 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/136460 broke the build:
This patch caused compile error when building DumpRenderTree (Requested by tasak on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782114</commentid>
    <comment_count>1</comment_count>
      <attachid>177391</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:29:47 -0800</bug_when>
    <thetext>Created attachment 177391
ROLLOUT of r136460

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782121</commentid>
    <comment_count>2</comment_count>
      <attachid>177391</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:43:35 -0800</bug_when>
    <thetext>Comment on attachment 177391
ROLLOUT of r136460

Clearing flags on attachment: 177391

Committed r136466: &lt;http://trac.webkit.org/changeset/136466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782122</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:43:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177391</attachid>
            <date>2012-12-03 18:29:47 -0800</date>
            <delta_ts>2012-12-03 18:43:35 -0800</delta_ts>
            <desc>ROLLOUT of r136460</desc>
            <filename>bug-103958-20121204023601.patch</filename>
            <type>text/plain</type>
            <size>69890</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBlNGU4NTM5MDI3YTk5
NWI0ZWI1NzYyNmY1YjQyYmY2YmI0YjNiOTFmLi4zZGJjY2UzNjlkZTZkYjJkMTBkNmE0MmU2YTU5
M2E5NzMzOWZmZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMi0wMyAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNjQ2MC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTM2NDYwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDM5NTgKKworICAgICAgICBUaGlzIHBhdGNoIGNhdXNlZCBjb21waWxl
IGVycm9yIHdoZW4gYnVpbGRpbmcgRHVtcFJlbmRlclRyZWUKKyAgICAgICAgKFJlcXVlc3RlZCBi
eSB0YXNhayBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAgICAg
ICogY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRoZW1lRW5naW5lKToKKyAgICAgICAgKFNjcm9sbGJh
clRyYWNrRXh0cmFQYXJhbXMpOgorICAgICAgICAoQnV0dG9uRXh0cmFQYXJhbXMpOgorICAgICAg
ICAoVGV4dEZpZWxkRXh0cmFQYXJhbXMpOgorICAgICAgICAoTWVudUxpc3RFeHRyYVBhcmFtcyk6
CisgICAgICAgIChTbGlkZXJFeHRyYVBhcmFtcyk6CisgICAgICAgIChJbm5lclNwaW5CdXR0b25F
eHRyYVBhcmFtcyk6CisgICAgICAgIChQcm9ncmVzc0JhckV4dHJhUGFyYW1zKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJU
aGVtZUVuZ2luZTo6cGFpbnQpOgorCiAyMDEyLTEyLTAzICBTY290dCBWaW9sZXQgIDxza3lAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGxpbnV4IHRoZW1lIHJlbGF0
ZWQgZmlsZXMgYW5kIHN3aXRjaCB0byBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAyODgzYTIyODc0
NjJiMzU2YzBjOThiOGEyNmIzOTBhNzg0MmEwMi4uMjllMzQwYjRkYTJlMmY3YTg0NjczYmU3MTI0
NWY1ZDIyMzgzOTJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTEyLTAzICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTM2NDYwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMzY0NjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzk1OAorCisgICAgICAgIFRoaXMgcGF0Y2ggY2F1c2VkIGNvbXBpbGUg
ZXJyb3Igd2hlbiBidWlsZGluZyBEdW1wUmVuZGVyVHJlZQorICAgICAgICAoUmVxdWVzdGVkIGJ5
IHRhc2FrIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Bs
YXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRTY3JvbGxi
YXJDb2xvcnMpOgorICAgICAgICAoV2ViQ29yZTo6Y2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OnNhdHVyYXRlQW5kQnJpZ2h0ZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6Om91dGxpbmVDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRBcnJvd0J1
dHRvbik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVt
TGludXguaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBsYXRmb3JtVGhl
bWVDaHJvbWl1bUxpbnV4KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVGhlbWVDaHJvbWl1
bUxpbnV4Ojp0aHVtYkluYWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1U
aGVtZUNocm9taXVtTGludXg6OnRodW1iQWN0aXZlQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OnRyYWNrQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OlBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGlu
dXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRo
ZW1lQ2hyb21pdW1MaW51eDo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUcmFja1BpZWNlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRCdXR0b24pOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFRodW1iKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6c2hvdWxkQ2Vu
dGVyT25UaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtTGlu
dXg6OmJ1dHRvblNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1
bUxpbnV4OjptaW5pbXVtVGh1bWJMZW5ndGgpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5oOiBBZGRlZC4KKyAgICAgICAgKFNjcm9sbGJh
clRoZW1lQ2hyb21pdW1MaW51eCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkOjpleHRyYURlZmF1bHRTdHlsZVNoZWV0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OmdldFdlYlRoZW1lU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnRoZW1lRm9yUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUNocm9taXVtTGludXg6On5SZW5kZXJUaGVtZUNocm9taXVtTGludXgpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzeXN0ZW1Db2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmV4dHJhRGVmYXVsdFN0eWxlU2hl
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojpjb250cm9s
U3VwcG9ydHNUaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXg6OmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9y
ZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51
eDo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6aW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9u
Rm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1M
aW51eDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1MaW51eDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0Zm9ybUluYWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6c2xpZGVyVGlja1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjpzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6YWRqdXN0U2xpZGVyVGh1bWJT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c3VwcG9y
dHNDb250cm9sVGludHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpzZXRDYXJldEJsaW5rSW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjpjYXJldEJsaW5rSW50ZXJ2YWxJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNldFNlbGVjdGlvbkNvbG9ycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50Q2hlY2tib3gp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRDaGVja2Jv
eFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWlu
dFJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6c2V0
UmFkaW9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6
cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4
OjpwYWludFRleHRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
TGludXg6OnBhaW50TWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4OjpwYWludFNsaWRlclRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmFkanVzdElubmVyU3BpbkJ1dHRvblN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRJbm5lclNwaW5C
dXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWlu
dFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1MaW51
eDo6c2hvdWxkT3BlblBpY2tlcldpdGhGNEtleSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1MaW51eC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KToKKwogMjAxMi0xMi0wMyAgSnVsaWVuIENoYWZm
cmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0
XSBTdXBwb3J0IHBhZGRpbmdzIGFuZCBtYXJnaW5zIG9uIGdyaWQgaXRlbXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMTViM2Q0N2IxZThiMDdmYWM1ODNmMWVkOGE3NTAwNTFiNTZiN2Yx
Ny4uMDE0MzFjNmIzNjRjZDMyYjRkZjUzNjk4YmYwOTM4MGEyZDFmMzlhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMi0wMyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEzNjQ2MC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMTM2NDYwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDM5NTgKKworICAgICAgICBUaGlzIHBhdGNoIGNhdXNlZCBjb21waWxlIGVycm9yIHdoZW4g
YnVpbGRpbmcgRHVtcFJlbmRlclRyZWUKKyAgICAgICAgKFJlcXVlc3RlZCBieSB0YXNhayBvbiAj
d2Via2l0KS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL2xpbnV4
L1dlYlJlbmRlclRoZW1lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Ny
b2xsYmFyQ29sb3JzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNlbGVjdGlv
bkNvbG9ycyk6CisgICAgICAgICogc3JjL2xpbnV4L1dlYlJlbmRlclRoZW1lLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpzZXRDYXJldEJsaW5rSW50ZXJ2
YWwpOgorCiAyMDEyLTEyLTAzICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGxpbnV4IHRoZW1lIHJlbGF0ZWQgZmlsZXMgYW5kIHN3
aXRjaCB0byBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lw
aSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IGI5NzRkMzgwM2JhOWQ2Yzk2
OTFmYWMwNGJlNDY0ZDI3ZmQyOTJkOWUuLjM2ZTQxNTZkNDE5NzczZjc5M2FjYTlhZTM3NTlhOWI2
NzMyMWZmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC0xNTIsNiArMTUyLDcgQEAKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udEluZm8uaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViU2FuZGJveFN1cHBvcnQuaCcsCisgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViU2FuZGJveFN1cHBvcnQuaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL21hYy9XZWJUaGVtZUVuZ2luZS5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvd2luL1dlYlNhbmRib3hTdXBwb3J0LmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5oIGIvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY4NGYyOTJkN2Y4NzhlMzBlZTM0OTgwODljOGQ5NzZjMTVlODA0NGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1l
RW5naW5lLmgKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlRoZW1lRW5naW5lX2gKKyNkZWZp
bmUgV2ViVGhlbWVFbmdpbmVfaAorCisjaW5jbHVkZSAiLi4vV2ViQ2FudmFzLmgiCisjaW5jbHVk
ZSAiLi4vV2ViQ29sb3IuaCIKKyNpbmNsdWRlICIuLi9XZWJTaXplLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdHJ1Y3QgV2ViUmVjdDsKKworY2xhc3MgV2ViVGhlbWVFbmdpbmUgeworcHVi
bGljOgorICAgIC8vIFRoZSBVSSBwYXJ0IHdoaWNoIGlzIGJlaW5nIGFjY2Vzc2VkLgorICAgIGVu
dW0gUGFydCB7CisgICAgICAgIC8vIFNjcm9sbGJhclRoZW1lIHBhcnRzCisgICAgICAgIFBhcnRT
Y3JvbGxiYXJEb3duQXJyb3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJMZWZ0QXJyb3csCisgICAg
ICAgIFBhcnRTY3JvbGxiYXJSaWdodEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVXBBcnJv
dywKKyAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUaHVtYiwKKyAgICAgICAgUGFydFNj
cm9sbGJhclZlcnRpY2FsVGh1bWIsCisgICAgICAgIFBhcnRTY3JvbGxiYXJIb3Jpem9udGFsVHJh
Y2ssCisgICAgICAgIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLAorCisgICAgICAgIC8vIFJl
bmRlclRoZW1lIHBhcnRzCisgICAgICAgIFBhcnRDaGVja2JveCwKKyAgICAgICAgUGFydFJhZGlv
LAorICAgICAgICBQYXJ0QnV0dG9uLAorICAgICAgICBQYXJ0VGV4dEZpZWxkLAorICAgICAgICBQ
YXJ0TWVudUxpc3QsCisgICAgICAgIFBhcnRTbGlkZXJUcmFjaywKKyAgICAgICAgUGFydFNsaWRl
clRodW1iLAorICAgICAgICBQYXJ0SW5uZXJTcGluQnV0dG9uLAorICAgICAgICBQYXJ0UHJvZ3Jl
c3NCYXIKKyAgICB9OworCisgICAgLy8gVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFzc29jaWF0
ZWQgUGFydC4KKyAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVEaXNhYmxlZCwKKyAgICAg
ICAgU3RhdGVIb3ZlciwKKyAgICAgICAgU3RhdGVOb3JtYWwsCisgICAgICAgIFN0YXRlUHJlc3Nl
ZCwKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgZHJhd2luZyB0aGUgUGFy
dFNjcm9sbGJhckhvcml6b250YWxUcmFjayBhbmQKKyAgICAvLyBQYXJ0U2Nyb2xsYmFyVmVydGlj
YWxUcmFjay4KKyAgICBzdHJ1Y3QgU2Nyb2xsYmFyVHJhY2tFeHRyYVBhcmFtcyB7CisgICAgICAg
IC8vIFRoZSBib3VuZHMgb2YgdGhlIGVudGlyZSB0cmFjaywgYXMgb3Bwb3NlZCB0byB0aGUgcGFy
dCBiZWluZyBwYWludGVkLgorICAgICAgICBpbnQgdHJhY2tYOworICAgICAgICBpbnQgdHJhY2tZ
OworICAgICAgICBpbnQgdHJhY2tXaWR0aDsKKyAgICAgICAgaW50IHRyYWNrSGVpZ2h0OworICAg
IH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0Q2hlY2tib3gsIFBhcnRQdXNo
QnV0dG9uIGFuZCBQYXJ0UmFkaW8uCisgICAgc3RydWN0IEJ1dHRvbkV4dHJhUGFyYW1zIHsKKyAg
ICAgICAgYm9vbCBjaGVja2VkOworICAgICAgICBib29sIGluZGV0ZXJtaW5hdGU7IC8vIFdoZXRo
ZXIgdGhlIGJ1dHRvbiBzdGF0ZSBpcyBpbmRldGVybWluYXRlLgorICAgICAgICBib29sIGlzRGVm
YXVsdDsgLy8gV2hldGhlciB0aGUgYnV0dG9uIGlzIGRlZmF1bHQgYnV0dG9uLgorICAgICAgICBi
b29sIGhhc0JvcmRlcjsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07
CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0VGV4dEZpZWxkCisgICAgc3RydWN0
IFRleHRGaWVsZEV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBpc1RleHRBcmVhOworICAgICAg
ICBib29sIGlzTGlzdGJveDsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAg
IH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0TWVudUxpc3QKKyAgICBzdHJ1
Y3QgTWVudUxpc3RFeHRyYVBhcmFtcyB7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAg
ICBib29sIGhhc0JvcmRlclJhZGl1czsKKyAgICAgICAgaW50IGFycm93WDsKKyAgICAgICAgaW50
IGFycm93WTsKKyAgICAgICAgV2ViQ29sb3IgYmFja2dyb3VuZENvbG9yOworICAgIH07CisKKyAg
ICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBQYXJ0U2xpZGVyVHJhY2sgYW5kIFBhcnRTbGlkZXJU
aHVtYgorICAgIHN0cnVjdCBTbGlkZXJFeHRyYVBhcmFtcyB7CisgICAgICAgIGJvb2wgdmVydGlj
YWw7CisgICAgICAgIGJvb2wgaW5EcmFnOworICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0
ZXJzIGZvciBQYXJ0SW5uZXJTcGluQnV0dG9uCisgICAgc3RydWN0IElubmVyU3BpbkJ1dHRvbkV4
dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBzcGluVXA7CisgICAgICAgIGJvb2wgcmVhZE9ubHk7
CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRQcm9ncmVzc0Jhcgor
ICAgIHN0cnVjdCBQcm9ncmVzc0JhckV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBkZXRlcm1p
bmF0ZTsKKyAgICAgICAgaW50IHZhbHVlUmVjdFg7CisgICAgICAgIGludCB2YWx1ZVJlY3RZOwor
ICAgICAgICBpbnQgdmFsdWVSZWN0V2lkdGg7CisgICAgICAgIGludCB2YWx1ZVJlY3RIZWlnaHQ7
CisgICAgfTsKKworICAgIHVuaW9uIEV4dHJhUGFyYW1zIHsKKyAgICAgICAgU2Nyb2xsYmFyVHJh
Y2tFeHRyYVBhcmFtcyBzY3JvbGxiYXJUcmFjazsKKyAgICAgICAgQnV0dG9uRXh0cmFQYXJhbXMg
YnV0dG9uOworICAgICAgICBUZXh0RmllbGRFeHRyYVBhcmFtcyB0ZXh0RmllbGQ7CisgICAgICAg
IE1lbnVMaXN0RXh0cmFQYXJhbXMgbWVudUxpc3Q7CisgICAgICAgIFNsaWRlckV4dHJhUGFyYW1z
IHNsaWRlcjsKKyAgICAgICAgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgaW5uZXJTcGluOwor
ICAgICAgICBQcm9ncmVzc0JhckV4dHJhUGFyYW1zIHByb2dyZXNzQmFyOworICAgIH07CisKKyAg
ICAvLyBHZXRzIHRoZSBzaXplIG9mIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LiBGb3IgdmFyaWFibGUg
c2l6ZWQgaXRlbXMKKyAgICAvLyBsaWtlIHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYnMsIHRoZSB3
aWR0aCB3aWxsIGJlIHRoZSByZXF1aXJlZCB3aWR0aCBvZgorICAgIC8vIHRoZSB0cmFjayB3aGls
ZSB0aGUgaGVpZ2h0IHdpbGwgYmUgdGhlIG1pbmltdW0gaGVpZ2h0LgorICAgIHZpcnR1YWwgV2Vi
U2l6ZSBnZXRTaXplKFBhcnQpIHsgcmV0dXJuIFdlYlNpemUoKTsgfQorICAgIC8vIFBhaW50IHRo
ZSBnaXZlbiB0aGUgZ2l2ZW4gdGhlbWUgcGFydC4KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2Vi
Q2FudmFzKiwgUGFydCwgU3RhdGUsIGNvbnN0IFdlYlJlY3QmLCBjb25zdCBFeHRyYVBhcmFtcyop
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCA0OTZiODZkNDE4MTBjM2UxZjhjZDNlY2QwZGE2
NmZkNDcxZjUzNmI1Li5mN2IzNTFmOThhMDEyYzJlMDU5MThhNTRkY2QxZDExM2ExYWI2MGU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMTcwMCwxMiArMTcwMCwx
NyBAQAogICAgICAgICB9XSwKICAgICAgICAgWyd1c2VfZGVmYXVsdF9yZW5kZXJfdGhlbWU9PTEn
LCB7CiAgICAgICAgICAgJ3NvdXJjZXMvJzogWworICAgICAgICAgICAgWydleGNsdWRlJywgJ3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmgnXSwKKyAgICAgICAg
ICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1M
aW51eC5jcHAnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9Q
bGF0Zm9ybVRoZW1lQ2hyb21pdW1XaW4uaCddLAogICAgICAgICAgICAgWydleGNsdWRlJywgJ3Bs
YXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bVdpbi5jcHAnXSwKKyAgICAgICAg
ICAgIFsnZXhjbHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVt
TGludXguY3BwJ10sCisgICAgICAgICAgICBbJ2V4Y2x1ZGUnLCAncGxhdGZvcm0vY2hyb21pdW0v
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmgnXSwKICAgICAgICAgICAgIFsnZXhjbHVkZScs
ICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2luLmNwcCddLAogICAg
ICAgICAgICAgWydleGNsdWRlJywgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1XaW4uaCddLAogICAgICAgICAgIF0sCi0gICAgICAgIH0sIHsgIyB1c2VfZGVmYXVsdF9y
ZW5kZXJfdGhlbWU9PTAKKyAgICAgICAgfV0sCisgICAgICAgIFsndXNlX2RlZmF1bHRfcmVuZGVy
X3RoZW1lPT0wJywgewogICAgICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAgIFsnZXhj
bHVkZScsICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1EZWZhdWx0LmNw
cCddLAogICAgICAgICAgICAgWydleGNsdWRlJywgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3Jt
VGhlbWVDaHJvbWl1bURlZmF1bHQuaCddLApAQCAtMjAwOCw2ICsyMDEzLDcgQEAKICAgICAgICAg
fV0sCiAgICAgICAgIFsndXNlX2RlZmF1bHRfcmVuZGVyX3RoZW1lPT0xJywgewogICAgICAgICAg
ICdzb3VyY2VzLyc6IFsKKyAgICAgICAgICAgIFsnZXhjbHVkZScsICdSZW5kZXJUaGVtZUNocm9t
aXVtTGludXguKiddLAogICAgICAgICAgICAgWydleGNsdWRlJywgJ1JlbmRlclRoZW1lQ2hyb21p
dW1XaW4uKiddLAogICAgICAgICAgIF0sCiAgICAgICAgIH1dLApAQCAtMjA1NCw3ICsyMDYwLDcg
QEAKICAgICAgICAgWydPUz09ImFuZHJvaWQiJywgewogICAgICAgICAgICdzb3VyY2VzLyc6IFsK
ICAgICAgICAgICAgIFsnaW5jbHVkZScsICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUZv
bnRQcm92aWRlckxpbnV4XFwuY3BwJCddLAotICAgICAgICAgICAgWydpbmNsdWRlJywgJ3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtRGVmYXVsdFxcLmNwcCQnXSwKKyAgICAgICAgICAgIFsn
aW5jbHVkZScsICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4XFwuY3BwJCddLAog
ICAgICAgICAgIF0sCiAgICAgICAgIH0seyAjIE9TIT0iYW5kcm9pZCIKICAgICAgICAgICAnc291
cmNlcy8nOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTI1ODNlMjdmOTgxMzRlYWZlMDFiZDg1NDQz
NmIyOWRiOGNmZDA4Yi4uMTI4Zjg3YzViZmQxNDBiMjE5NWYxNjg0YzExOTUwMTE5ODI2OGIxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQ1OCw2ICszNDU4LDggQEAKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUZvbnRQcm92aWRlci5oJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUZvbnRQcm92aWRlckxpbnV4LmNwcCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Gb250UHJvdmlkZXJXaW4uY3Bw
JywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCcs
CisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCcsCkBAIC00NjcwLDYgKzQ2NzIs
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1EZWZh
dWx0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNo
cm9taXVtRGVmYXVsdC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVRoZW1lQ2hyb21pdW1MaW51eC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1BsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1BsYXRmb3JtV2lkZ2V0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1BvcHVwQ29udGFpbmVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9w
dXBDb250YWluZXIuaCcsCkBAIC00Njg4LDYgKzQ2OTIsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1EZWZhdWx0LmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bURl
ZmF1bHQuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bUxpbnV4LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1Njcm9sbGJhclRoZW1lQ2hyb21pdW1NYWMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNocm9taXVtTGlu
dXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1UaGVtZUNo
cm9taXVtTGludXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwY2M2NGJhOTZlZTI0NDU2ZmIyMTVlYTQyY2Zl
NWEyN2U4MzgwZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTAsMCArMSwyMjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXgu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1bnNpZ25lZCBQbGF0Zm9ybVRoZW1lQ2hyb21p
dW1MaW51eDo6c190aHVtYkluYWN0aXZlQ29sb3IgPSAweGVhZWFlYTsKK3Vuc2lnbmVkIFBsYXRm
b3JtVGhlbWVDaHJvbWl1bUxpbnV4OjpzX3RodW1iQWN0aXZlQ29sb3IgPSAweGY0ZjRmNDsKK3Vu
c2lnbmVkIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4OjpzX3RyYWNrQ29sb3IgPSAweGQzZDNk
MzsKKwordm9pZCBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6c2V0U2Nyb2xsYmFyQ29sb3Jz
KAorICAgIFNrQ29sb3IgaW5hY3RpdmVDb2xvciwgU2tDb2xvciBhY3RpdmVDb2xvciwgU2tDb2xv
ciB0cmFja0NvbG9yKQoreworICAgIHNfdGh1bWJJbmFjdGl2ZUNvbG9yID0gaW5hY3RpdmVDb2xv
cjsKKyAgICBzX3RodW1iQWN0aXZlQ29sb3IgPSBhY3RpdmVDb2xvcjsKKyAgICBzX3RyYWNrQ29s
b3IgPSB0cmFja0NvbG9yOworfQorCitzdGF0aWMgU2tTY2FsYXIgY2xhbXAoU2tTY2FsYXIgdmFs
dWUsIFNrU2NhbGFyIG1pbiwgU2tTY2FsYXIgbWF4KQoreworICAgIHJldHVybiBzdGQ6Om1pbihz
dGQ6Om1heCh2YWx1ZSwgbWluKSwgbWF4KTsKK30KKworU2tDb2xvciBQbGF0Zm9ybVRoZW1lQ2hy
b21pdW1MaW51eDo6c2F0dXJhdGVBbmRCcmlnaHRlbihjb25zdCBTa1NjYWxhciBoc3ZbM10sIFNr
U2NhbGFyIHNhdHVyYXRlQW1vdW50LCBTa1NjYWxhciBicmlnaHRlbkFtb3VudCkKK3sKKyAgICBT
a1NjYWxhciBjb2xvclszXTsKKyAgICBjb2xvclswXSA9IGhzdlswXTsKKyAgICBjb2xvclsxXSA9
IGNsYW1wKGhzdlsxXSArIHNhdHVyYXRlQW1vdW50LCAwLjAsIDEuMCk7CisgICAgY29sb3JbMl0g
PSBjbGFtcChoc3ZbMl0gKyBicmlnaHRlbkFtb3VudCwgMC4wLCAxLjApOworICAgIHJldHVybiBT
a0hTVlRvQ29sb3IoY29sb3IpOworfQorCitTa0NvbG9yIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxp
bnV4OjpvdXRsaW5lQ29sb3IoY29uc3QgU2tTY2FsYXIgaHN2MVszXSwgY29uc3QgU2tTY2FsYXIg
aHN2MlszXSkKK3sKKyAgICAvLyBHVEsgVGhlbWUgZW5naW5lcyBoYXZlIHdheSB0b28gbXVjaCBj
b250cm9sIG92ZXIgdGhlIGxheW91dCBvZgorICAgIC8vIHRoZSBzY3JvbGxiYXIuIFdlIG1pZ2h0
IGJlIGFibGUgdG8gbW9yZSBjbG9zZWx5IGFwcHJveGltYXRlIGl0cworICAgIC8vIGxvb2stYW5k
LWZlZWwsIGlmIHdlIHNlbnQgd2hvbGUgaW1hZ2VzIGluc3RlYWQgb2YganVzdCBjb2xvcnMKKyAg
ICAvLyBmcm9tIHRoZSBicm93c2VyIHRvIHRoZSByZW5kZXJlci4gQnV0IGV2ZW4gdGhlbiwgc29t
ZSB0aGVtZXMKKyAgICAvLyB3b3VsZCBqdXN0IGJyZWFrLgorICAgIC8vCisgICAgLy8gU28sIGlu
c3RlYWQsIHdlIGRvbid0IGV2ZW4gdHJ5IHRvIDEwMCUgcmVwbGljYXRlIHRoZSBsb29rIG9mCisg
ICAgLy8gdGhlIG5hdGl2ZSBzY3JvbGxiYXIuIFdlIHJlbmRlciBvdXIgb3duIHZlcnNpb24sIGJ1
dCB3ZSBtYWtlCisgICAgLy8gc3VyZSB0byBwaWNrIGNvbG9ycyB0aGF0IGJsZW5kIGluIG5pY2Vs
eSB3aXRoIHRoZSBzeXN0ZW0gR1RLCisgICAgLy8gdGhlbWUuIEluIG1vc3QgY2FzZXMsIHdlIGNh
biBqdXN0IHNhbXBsZSBhIGNvdXBsZSBvZiBwaXhlbHMKKyAgICAvLyBmcm9tIHRoZSBzeXN0ZW0g
c2Nyb2xsYmFyIGFuZCB1c2UgdGhvc2UgY29sb3JzIHRvIGRyYXcgb3VyCisgICAgLy8gc2Nyb2xs
YmFyLgorICAgIC8vCisgICAgLy8gVGhpcyB3b3JrcyBmaW5lIGZvciB0aGUgdHJhY2sgY29sb3Ig
YW5kIHRoZSBvdmVyYWxsIHRodW1iCisgICAgLy8gY29sb3IuIEJ1dCBpdCBmYWlscyBzcGVjdGFj
dWxhcmx5IGZvciB0aGUgb3V0bGluZSBjb2xvciB1c2VkCisgICAgLy8gYXJvdW5kIHRoZSB0aHVt
YiBwaWVjZS4gTm90IGFsbCB0aGVtZXMgaGF2ZSBhIGNsZWFybHkgZGVmaW5lZAorICAgIC8vIG91
dGxpbmUuIEZvciBzb21lIG9mIHRoZW0gaXQgaXMgcGFydGlhbGx5IHRyYW5zcGFyZW50LCBhbmQg
Zm9yCisgICAgLy8gb3RoZXJzIHRoZSB0aGlja25lc3MgaXMgdmVyeSB1bnByZWRpY3RhYmxlLgor
ICAgIC8vCisgICAgLy8gU28sIGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFwcHJveGltYXRlIHRoZSBz
eXN0ZW0gdGhlbWUsIHdlCisgICAgLy8gaW5zdGVhZCB0cnkgdG8gY29tcHV0ZSBhIHJlYXNvbmFi
bGUgbG9va2luZyBjaG9pY2UgYmFzZWQgb24gdGhlCisgICAgLy8ga25vd24gY29sb3Igb2YgdGhl
IHRyYWNrIGFuZCB0aGUgdGh1bWIgcGllY2UuIFRoaXMgaXMgZGlmZmljdWx0CisgICAgLy8gd2hl
biB0cnlpbmcgdG8gZGVhbCBib3RoIHdpdGggaGlnaC0gYW5kIGxvdy1jb250cmFzdCB0aGVtZXMs
CisgICAgLy8gYW5kIGJvdGggd2l0aCBwb3NpdGl2ZSBhbmQgaW52ZXJ0ZWQgdGhlbWVzLgorICAg
IC8vCisgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIHRlc3RlZCB0byBsb29rIE9L
IHdpdGggYWxsIG9mIHRoZQorICAgIC8vIGRlZmF1bHQgR1RLIHRoZW1lcy4KKyAgICBTa1NjYWxh
ciBtaW5EaWZmID0gY2xhbXAoKGhzdjFbMV0gKyBoc3YyWzFdKSAqIDEuMiwgMC4yOCwgMC41KTsK
KyAgICBTa1NjYWxhciBkaWZmID0gY2xhbXAoZmFicyhoc3YxWzJdIC0gaHN2MlsyXSkgLyAyLCBt
aW5EaWZmLCAwLjUpOworCisgICAgaWYgKGhzdjFbMl0gKyBoc3YyWzJdID4gMS4wKQorICAgICAg
ICBkaWZmID0gLWRpZmY7CisKKyAgICByZXR1cm4gc2F0dXJhdGVBbmRCcmlnaHRlbihoc3YyLCAt
MC4yLCBkaWZmKTsKK30KKwordm9pZCBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRB
cnJvd0J1dHRvbihHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBJbnRSZWN0JiByZWN0LCBBcnJv
d0RpcmVjdGlvbiBkaXJlY3Rpb24sIENvbnRyb2xTdGF0ZXMgc3RhdGVzKQoreworICAgIFBsYXRm
b3JtQ29udGV4dFNraWEqIHBsYXRmb3JtQ29udGV4dCA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKTsK
KyAgICBpbnQgd2lkdGhNaWRkbGUsIGxlbmd0aE1pZGRsZTsKKyAgICBTa1BhaW50IHBhaW50Owor
ICAgIGlmIChkaXJlY3Rpb24gPT0gTm9ydGggfHwgZGlyZWN0aW9uID09IFNvdXRoKSB7CisgICAg
ICAgIHdpZHRoTWlkZGxlID0gcmVjdC53aWR0aCgpIC8gMiArIDE7CisgICAgICAgIGxlbmd0aE1p
ZGRsZSA9IHJlY3QuaGVpZ2h0KCkgLyAyICsgMTsKKyAgICB9IGVsc2UgeworICAgICAgICBsZW5n
dGhNaWRkbGUgPSByZWN0LndpZHRoKCkgLyAyICsgMTsKKyAgICAgICAgd2lkdGhNaWRkbGUgPSBy
ZWN0LmhlaWdodCgpIC8gMiArIDE7CisgICAgfQorCisgICAgLy8gQ2FsY3VsYXRlIGJ1dHRvbiBj
b2xvci4KKyAgICBTa1NjYWxhciB0cmFja0hTVlszXTsKKyAgICBTa0NvbG9yVG9IU1YodHJhY2tD
b2xvcigpLCB0cmFja0hTVik7CisgICAgU2tDb2xvciBidXR0b25Db2xvciA9IHNhdHVyYXRlQW5k
QnJpZ2h0ZW4odHJhY2tIU1YsIDAsIDAuMik7CisgICAgU2tDb2xvciBiYWNrZ3JvdW5kQ29sb3Ig
PSBidXR0b25Db2xvcjsKKyAgICBpZiAoc3RhdGVzICYgUHJlc3NlZFN0YXRlKSB7CisgICAgICAg
IFNrU2NhbGFyIGJ1dHRvbkhTVlszXTsKKyAgICAgICAgU2tDb2xvclRvSFNWKGJ1dHRvbkNvbG9y
LCBidXR0b25IU1YpOworICAgICAgICBidXR0b25Db2xvciA9IHNhdHVyYXRlQW5kQnJpZ2h0ZW4o
YnV0dG9uSFNWLCAwLCAtMC4xKTsKKyAgICB9IGVsc2UgaWYgKHN0YXRlcyAmIEhvdmVyU3RhdGUp
IHsKKyAgICAgICAgU2tTY2FsYXIgYnV0dG9uSFNWWzNdOworICAgICAgICBTa0NvbG9yVG9IU1Yo
YnV0dG9uQ29sb3IsIGJ1dHRvbkhTVik7CisgICAgICAgIGJ1dHRvbkNvbG9yID0gc2F0dXJhdGVB
bmRCcmlnaHRlbihidXR0b25IU1YsIDAsIDAuMDUpOworICAgIH0KKworICAgIFNrSVJlY3Qgc2ty
ZWN0OworICAgIHNrcmVjdC5zZXQocmVjdC54KCksIHJlY3QueSgpLCByZWN0LngoKSArIHJlY3Qu
d2lkdGgoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKKyAgICAvLyBQYWludCB0aGUgYmFj
a2dyb3VuZCAodGhlIGFyZWEgdmlzaWJsZSBiZWhpbmQgdGhlIHJvdW5kZWQgY29ybmVycykuCisg
ICAgcGFpbnQuc2V0Q29sb3IoYmFja2dyb3VuZENvbG9yKTsKKyAgICBwbGF0Zm9ybUNvbnRleHQt
PmRyYXdJUmVjdChza3JlY3QsIHBhaW50KTsKKworICAgIC8vIFBhaW50IHRoZSBidXR0b24ncyBv
dXRsaW5lIGFuZCBmaWxsIHRoZSBtaWRkbGUKKyAgICBTa1BhdGggb3V0bGluZTsKKyAgICBzd2l0
Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgTm9ydGg6CisgICAgICAgIG91dGxpbmUubW92ZVRv
KHJlY3QueCgpICsgMC41LCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgKyAwLjUpOworICAgICAg
ICBvdXRsaW5lLnJMaW5lVG8oMCwgLShyZWN0LmhlaWdodCgpIC0gMikpOworICAgICAgICBvdXRs
aW5lLnJMaW5lVG8oMiwgLTIpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8ocmVjdC53aWR0aCgp
IC0gNSwgMCk7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygyLCAyKTsKKyAgICAgICAgb3V0bGlu
ZS5yTGluZVRvKDAsIHJlY3QuaGVpZ2h0KCkgLSAyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBTb3V0aDoKKyAgICAgICAgb3V0bGluZS5tb3ZlVG8ocmVjdC54KCkgKyAwLjUsIHJlY3QueSgp
IC0gMC41KTsKKyAgICAgICAgb3V0bGluZS5yTGluZVRvKDAsIHJlY3QuaGVpZ2h0KCkgLSAyKTsK
KyAgICAgICAgb3V0bGluZS5yTGluZVRvKDIsIDIpOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8o
cmVjdC53aWR0aCgpIC0gNSwgMCk7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygyLCAtMik7Cisg
ICAgICAgIG91dGxpbmUuckxpbmVUbygwLCAtKHJlY3QuaGVpZ2h0KCkgLSAyKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRWFzdDoKKyAgICAgICAgb3V0bGluZS5tb3ZlVG8ocmVjdC54KCkg
LSAwLjUsIHJlY3QueSgpICsgMC41KTsKKyAgICAgICAgb3V0bGluZS5yTGluZVRvKHJlY3Qud2lk
dGgoKSAtIDIsIDApOworICAgICAgICBvdXRsaW5lLnJMaW5lVG8oMiwgMik7CisgICAgICAgIG91
dGxpbmUuckxpbmVUbygwLCByZWN0LmhlaWdodCgpIC0gNSk7CisgICAgICAgIG91dGxpbmUuckxp
bmVUbygtMiwgMik7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygtKHJlY3Qud2lkdGgoKSAtIDIp
LCAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZXN0OgorICAgICAgICBvdXRsaW5lLm1v
dmVUbyhyZWN0LngoKSArIHJlY3Qud2lkdGgoKSArIDAuNSwgcmVjdC55KCkgKyAwLjUpOworICAg
ICAgICBvdXRsaW5lLnJMaW5lVG8oLShyZWN0LndpZHRoKCkgLSAyKSwgMCk7CisgICAgICAgIG91
dGxpbmUuckxpbmVUbygtMiwgMik7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygwLCByZWN0Lmhl
aWdodCgpIC0gNSk7CisgICAgICAgIG91dGxpbmUuckxpbmVUbygyLCAyKTsKKyAgICAgICAgb3V0
bGluZS5yTGluZVRvKHJlY3Qud2lkdGgoKSAtIDIsIDApOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgb3V0bGluZS5jbG9zZSgpOworCisgICAgcGFpbnQuc2V0U3R5bGUoU2tQYWludDo6a0Zp
bGxfU3R5bGUpOworICAgIHBhaW50LnNldENvbG9yKGJ1dHRvbkNvbG9yKTsKKyAgICBwbGF0Zm9y
bUNvbnRleHQtPmRyYXdQYXRoKG91dGxpbmUsIHBhaW50KTsKKworICAgIHBhaW50LnNldEFudGlB
bGlhcyh0cnVlKTsKKyAgICBwYWludC5zZXRTdHlsZShTa1BhaW50OjprU3Ryb2tlX1N0eWxlKTsK
KyAgICBTa1NjYWxhciB0aHVtYkhTVlszXTsKKyAgICBTa0NvbG9yVG9IU1YodGh1bWJJbmFjdGl2
ZUNvbG9yKCksIHRodW1iSFNWKTsKKyAgICBwYWludC5zZXRDb2xvcihvdXRsaW5lQ29sb3IodHJh
Y2tIU1YsIHRodW1iSFNWKSk7CisgICAgcGxhdGZvcm1Db250ZXh0LT5kcmF3UGF0aChvdXRsaW5l
LCBwYWludCk7CisKKyAgICAvLyBJZiB0aGUgYnV0dG9uIGlzIGRpc2FibGVkIG9yIHJlYWQtb25s
eSwgdGhlIGFycm93IGlzIGRyYXduIHdpdGggdGhlIG91dGxpbmUgY29sb3IuCisgICAgaWYgKHN0
YXRlcyAmIEVuYWJsZWRTdGF0ZSAmJiAhKHN0YXRlcyAmIFJlYWRPbmx5U3RhdGUpKQorICAgICAg
ICBwYWludC5zZXRDb2xvcihTS19Db2xvckJMQUNLKTsKKworICAgIHBhaW50LnNldEFudGlBbGlh
cyhmYWxzZSk7CisgICAgcGFpbnQuc2V0U3R5bGUoU2tQYWludDo6a0ZpbGxfU3R5bGUpOworCisg
ICAgU2tQYXRoIHBhdGg7CisgICAgLy8gVGhlIGNvbnN0YW50cyBpbiB0aGlzIGJsb2NrIG9mIGNv
ZGUgYXJlIGhhbmQtdGFpbG9yZWQgdG8gcHJvZHVjZSBnb29kCisgICAgLy8gbG9va2luZyBhcnJv
d3Mgd2l0aG91dCBhbnRpLWFsaWFzaW5nLgorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAg
Y2FzZSBOb3J0aDoKKyAgICAgICAgcGF0aC5tb3ZlVG8ocmVjdC54KCkgKyB3aWR0aE1pZGRsZSAt
IDQsIHJlY3QueSgpICsgbGVuZ3RoTWlkZGxlICsgMik7CisgICAgICAgIHBhdGguckxpbmVUbyg3
LCAwKTsKKyAgICAgICAgcGF0aC5yTGluZVRvKC00LCAtNCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU291dGg6CisgICAgICAgIHBhdGgubW92ZVRvKHJlY3QueCgpICsgd2lkdGhNaWRkbGUg
LSA0LCByZWN0LnkoKSArIGxlbmd0aE1pZGRsZSAtIDMpOworICAgICAgICBwYXRoLnJMaW5lVG8o
NywgMCk7CisgICAgICAgIHBhdGguckxpbmVUbygtNCwgNCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRWFzdDoKKyAgICAgICAgcGF0aC5tb3ZlVG8ocmVjdC54KCkgKyBsZW5ndGhNaWRkbGUg
LSAzLCByZWN0LnkoKSArIHdpZHRoTWlkZGxlIC0gNCk7CisgICAgICAgIHBhdGguckxpbmVUbygw
LCA3KTsKKyAgICAgICAgcGF0aC5yTGluZVRvKDQsIC00KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXZXN0OgorICAgICAgICBwYXRoLm1vdmVUbyhyZWN0LngoKSArIGxlbmd0aE1pZGRsZSAr
IDEsIHJlY3QueSgpICsgd2lkdGhNaWRkbGUgLSA1KTsKKyAgICAgICAgcGF0aC5yTGluZVRvKDAs
IDkpOworICAgICAgICBwYXRoLnJMaW5lVG8oLTQsIC00KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHBhdGguY2xvc2UoKTsKKworICAgIHBsYXRmb3JtQ29udGV4dC0+ZHJhd1BhdGgocGF0
aCwgcGFpbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVRoZW1lQ2hyb21p
dW1MaW51eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1M2FlYjY0MjllNTI5MjFkZmMxYjRmMGI1ZmJmYzM1ZGQ2
NjFhMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBs
YXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4X2gKKyNkZWZpbmUgUGxhdGZvcm1UaGVtZUNocm9taXVt
TGludXhfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlNr
Q29sb3IuaCIKKyNpbmNsdWRlICJTa1NjYWxhci5oIgorI2luY2x1ZGUgIlRoZW1lVHlwZXMuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51
eCB7CitwdWJsaWM6CisgICAgZW51bSBBcnJvd0RpcmVjdGlvbiB7CisgICAgICAgIE5vcnRoLAor
ICAgICAgICBFYXN0LAorICAgICAgICBTb3V0aCwKKyAgICAgICAgV2VzdCwKKyAgICB9OworCisg
ICAgc3RhdGljIHZvaWQgc2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9y
KTsKKyAgICBzdGF0aWMgdW5zaWduZWQgdGh1bWJJbmFjdGl2ZUNvbG9yKCkgeyByZXR1cm4gc190
aHVtYkluYWN0aXZlQ29sb3I7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgdGh1bWJBY3RpdmVDb2xv
cigpIHsgcmV0dXJuIHNfdGh1bWJBY3RpdmVDb2xvcjsgfQorICAgIHN0YXRpYyB1bnNpZ25lZCB0
cmFja0NvbG9yKCkgeyByZXR1cm4gc190cmFja0NvbG9yOyB9CisKKyAgICBzdGF0aWMgU2tDb2xv
ciBzYXR1cmF0ZUFuZEJyaWdodGVuKGNvbnN0IFNrU2NhbGFyIGhzdlszXSwgU2tTY2FsYXIgc2F0
dXJhdGVBbW91bnQsIFNrU2NhbGFyIGJyaWdodGVuQW1vdW50KTsKKyAgICBzdGF0aWMgU2tDb2xv
ciBvdXRsaW5lQ29sb3IoY29uc3QgU2tTY2FsYXIgaHN2MVszXSwgY29uc3QgU2tTY2FsYXIgaHN2
MlszXSk7CisgICAgc3RhdGljIHZvaWQgcGFpbnRBcnJvd0J1dHRvbihHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JiwgQXJyb3dEaXJlY3Rpb24sIENvbnRyb2xTdGF0ZXMpOworCitwcml2
YXRlOgorICAgIFBsYXRmb3JtVGhlbWVDaHJvbWl1bUxpbnV4KCkgeyB9CisKKyAgICBzdGF0aWMg
dW5zaWduZWQgc190aHVtYkluYWN0aXZlQ29sb3I7CisgICAgc3RhdGljIHVuc2lnbmVkIHNfdGh1
bWJBY3RpdmVDb2xvcjsKKyAgICBzdGF0aWMgdW5zaWduZWQgc190cmFja0NvbG9yOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGxhdGZvcm1UaGVtZUNocm9taXVt
TGludXhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg4YTQw
OWU1YWE3NTlmMmU4NjM2YTk3MjA3MWRkNThmNzZhMTY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDks
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1D
b250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
IlNjcm9sbGJhci5oIgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1
YmxpYy9XZWJSZWN0Lmg+CisjaW5jbHVkZSA8cHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2Nyb2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1l
OjpuYXRpdmVUaGVtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXgsIHRoZW1lLCAoKSk7CisgICAgcmV0dXJuICZ0aGVtZTsKK30KKworaW50
IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJh
ckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQoreworICAgIC8vIEhvcml6IGFuZCBWZXJ0IHNjcm9s
bGJhcnMgYXJlIHRoZSBzYW1lIHRoaWNrbmVzcy4KKyAgICBJbnRTaXplIHNjcm9sbGJhclNpemUg
PSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUoV2Vi
S2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2spOworICAgIHJl
dHVybiBzY3JvbGxiYXJTaXplLndpZHRoKCk7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bUxpbnV4OjpwYWludFRyYWNrUGllY2UoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFy
VGhlbWVDbGllbnQqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCwgU2Nyb2xsYmFyUGFy
dCBwYXJ0VHlwZSkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZSBzdGF0ZSA9
IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQoKSA9PSBwYXJ0VHlwZSA/IFdlYktpdDo6V2ViVGhlbWVF
bmdpbmU6OlN0YXRlSG92ZXIgOiBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZU5vcm1hbDsK
KyAgICBJbnRSZWN0IGFsaWduUmVjdCA9IHRyYWNrUmVjdChzY3JvbGxiYXIsIGZhbHNlKTsKKyAg
ICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBX
ZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMo
KTsKKyAgICBleHRyYVBhcmFtcy5zY3JvbGxiYXJUcmFjay50cmFja1ggPSBhbGlnblJlY3QueCgp
OworICAgIGV4dHJhUGFyYW1zLnNjcm9sbGJhclRyYWNrLnRyYWNrWSA9IGFsaWduUmVjdC55KCk7
CisgICAgZXh0cmFQYXJhbXMuc2Nyb2xsYmFyVHJhY2sudHJhY2tXaWR0aCA9IGFsaWduUmVjdC53
aWR0aCgpOworICAgIGV4dHJhUGFyYW1zLnNjcm9sbGJhclRyYWNrLnRyYWNrSGVpZ2h0ID0gYWxp
Z25SZWN0LmhlaWdodCgpOworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVF
bmdpbmUoKS0+cGFpbnQoY2FudmFzLCBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpv
bnRhbFNjcm9sbGJhciA/IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJIb3Jp
em9udGFsVHJhY2sgOiBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFyVmVydGlj
YWxUcmFjaywgc3RhdGUsIFdlYktpdDo6V2ViUmVjdChyZWN0KSwgJmV4dHJhUGFyYW1zKTsKK30K
Kwordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50QnV0dG9uKEdyYXBoaWNz
Q29udGV4dCogZ2MsIFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHJlY3QsIFNjcm9sbGJhclBhcnQgcGFydCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpQYXJ0IHBhaW50UGFydDsKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZSBz
dGF0ZSA9IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlN0YXRlTm9ybWFsOworICAgIFdlYktpdDo6
V2ViQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAg
IGJvb2wgY2hlY2tNaW4gPSBmYWxzZTsKKyAgICBib29sIGNoZWNrTWF4ID0gZmFsc2U7CisgICAg
aWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7Cisg
ICAgICAgIGlmIChwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQpIHsKKyAgICAgICAgICAgIHBh
aW50UGFydCA9IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJMZWZ0QXJyb3c7
CisgICAgICAgICAgICBjaGVja01pbiA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBwYWludFBhcnQgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFyUmln
aHRBcnJvdzsKKyAgICAgICAgICAgIGNoZWNrTWF4ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmIChwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQpIHsKKyAgICAg
ICAgICAgIHBhaW50UGFydCA9IFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJV
cEFycm93OworICAgICAgICAgICAgY2hlY2tNaW4gPSB0cnVlOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgcGFpbnRQYXJ0ID0gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9s
bGJhckRvd25BcnJvdzsKKyAgICAgICAgICAgIGNoZWNrTWF4ID0gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiAoKGNoZWNrTWluICYmIChzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSA8PSAw
KSkKKyAgICAgICAgfHwgKGNoZWNrTWF4ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpID09IHNj
cm9sbGJhci0+bWF4aW11bSgpKSkgeworICAgICAgICBzdGF0ZSA9IFdlYktpdDo6V2ViVGhlbWVF
bmdpbmU6OlN0YXRlRGlzYWJsZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHBhcnQgPT0g
c2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgpKQorICAgICAgICAgICAgc3RhdGUgPSBXZWJLaXQ6Oldl
YlRoZW1lRW5naW5lOjpTdGF0ZVByZXNzZWQ7CisgICAgICAgIGVsc2UgaWYgKHBhcnQgPT0gc2Ny
b2xsYmFyLT5ob3ZlcmVkUGFydCgpKQorICAgICAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRo
ZW1lRW5naW5lOjpTdGF0ZUhvdmVyOworICAgIH0KKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJy
ZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50KGNhbnZhcywgcGFpbnRQYXJ0LCBzdGF0ZSwgV2Vi
S2l0OjpXZWJSZWN0KHJlY3QpLCAwKTsKK30KKwordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVt
TGludXg6OnBhaW50VGh1bWIoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyVGhlbWVDbGll
bnQqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJLaXQ6OldlYlRo
ZW1lRW5naW5lOjpTdGF0ZSBzdGF0ZTsKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0g
Z2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBpZiAoc2Nyb2xsYmFyLT5wcmVz
c2VkUGFydCgpID09IFRodW1iUGFydCkKKyAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1l
RW5naW5lOjpTdGF0ZVByZXNzZWQ7CisgICAgZWxzZSBpZiAoc2Nyb2xsYmFyLT5ob3ZlcmVkUGFy
dCgpID09IFRodW1iUGFydCkKKyAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1lRW5naW5l
OjpTdGF0ZUhvdmVyOworICAgIGVsc2UKKyAgICAgICAgc3RhdGUgPSBXZWJLaXQ6OldlYlRoZW1l
RW5naW5lOjpTdGF0ZU5vcm1hbDsKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRo
ZW1lRW5naW5lKCktPnBhaW50KGNhbnZhcywgc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IEhv
cml6b250YWxTY3JvbGxiYXIgPyBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Nyb2xsYmFy
SG9yaXpvbnRhbFRodW1iIDogV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhclZl
cnRpY2FsVGh1bWIsIHN0YXRlLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksIDApOworfQorCitib29s
IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6c2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxi
YXJUaGVtZUNsaWVudCosIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0KQoreworICAgIHJl
dHVybiAoZXZ0LnNoaWZ0S2V5KCkgJiYgZXZ0LmJ1dHRvbigpID09IExlZnRCdXR0b24pIHx8IChl
dnQuYnV0dG9uKCkgPT0gTWlkZGxlQnV0dG9uKTsKK30KKworSW50U2l6ZSBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXg6OmJ1dHRvblNpemUoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJh
cikKK3sKKyAgICBpZiAoc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xs
YmFyKSB7CisgICAgICAgIEludFNpemUgc2l6ZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+dGhlbWVFbmdpbmUoKS0+Z2V0U2l6ZShXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0U2Ny
b2xsYmFyVXBBcnJvdyk7CisgICAgICAgIHJldHVybiBJbnRTaXplKHNpemUud2lkdGgoKSwgc2Ny
b2xsYmFyLT5oZWlnaHQoKSA8IDIgKiBzaXplLmhlaWdodCgpID8gc2Nyb2xsYmFyLT5oZWlnaHQo
KSAvIDIgOiBzaXplLmhlaWdodCgpKTsKKyAgICB9CisKKyAgICAvLyBIb3Jpem9udGFsU2Nyb2xs
YmFyCisgICAgSW50U2l6ZSBzaXplID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVt
ZUVuZ2luZSgpLT5nZXRTaXplKFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTY3JvbGxiYXJM
ZWZ0QXJyb3cpOworICAgIHJldHVybiBJbnRTaXplKHNjcm9sbGJhci0+d2lkdGgoKSA8IDIgKiBz
aXplLndpZHRoKCkgPyBzY3JvbGxiYXItPndpZHRoKCkgLyAyIDogc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKTsKK30KKworaW50IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6bWluaW11
bVRodW1iTGVuZ3RoKFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCit7CisgICAgaWYg
KHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgeworICAgICAg
ICBJbnRTaXplIHNpemUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5l
KCktPmdldFNpemUoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhclZlcnRpY2Fs
VGh1bWIpOworICAgICAgICByZXR1cm4gc2l6ZS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBJbnRT
aXplIHNpemUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdl
dFNpemUoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNjcm9sbGJhckhvcml6b250YWxUaHVt
Yik7CisgICAgcmV0dXJuIHNpemUud2lkdGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bUxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9T
Y3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzBkMDNmYjAyMzIxMzRl
YzJjYTI5NDE5ZmRhYjI3MzQ5NDc1NGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmgKQEAgLTAs
MCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eF9oCisjZGVmaW5l
IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eF9oCisKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZUNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBTY3JvbGxiYXJU
aGVtZUNocm9taXVtTGludXggOiBwdWJsaWMgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bSB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUpOworCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRUcmFja1BpZWNlKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgY29u
c3QgSW50UmVjdCYsIFNjcm9sbGJhclBhcnQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRC
dXR0b24oR3JhcGhpY3NDb250ZXh0KiwgU2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBJbnRS
ZWN0JiwgU2Nyb2xsYmFyUGFydCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludFRodW1iKEdy
YXBoaWNzQ29udGV4dCosIFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgY29uc3QgSW50UmVjdCYpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXJUaGVtZUNs
aWVudCosIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOworICAgICAgICB2aXJ0dWFsIEludFNp
emUgYnV0dG9uU2l6ZShTY3JvbGxiYXJUaGVtZUNsaWVudCopOworICAgICAgICB2aXJ0dWFsIGlu
dCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKTsKKyAgICB9OworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IDc4YTljYzlh
Y2JmNjg0MmI5NjhjMDYwYzgxMmJmMTY1YmZiMjM4NDMuLmQyNWE4MDQ0NDNhN2U2MDBjMDBlMjhk
ZjZhNTUzZTAwYWI0OWI2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcApAQCAtNzQsNyArNzQsNyBAQCBTdHJp
bmcgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hl
ZXQoKQogCiBTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmV4dHJhRGVmYXVsdFN0
eWxlU2hlZXQoKQogewotICAgIHJldHVybiBSZW5kZXJUaGVtZUNocm9taXVtRGVmYXVsdDo6ZXh0
cmFEZWZhdWx0U3R5bGVTaGVldCgpICsKKyAgICByZXR1cm4gUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgKwogICAgICAgICBTdHJpbmcodGhlbWVDaHJv
bWl1bUFuZHJvaWRVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YodGhlbWVDaHJvbWl1bUFuZHJv
aWRVc2VyQWdlbnRTdHlsZVNoZWV0KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKaW5kZXggZWE5ZWMzMjIxMzc5
ZWIwMzIyZjRlNzI1ZDM2NmEyZjMwMjRlZGU4OC4uMDI3NjI4ZTgxYWUxMmNmMWZiNzhkMTQyMWQx
M2NhMDFjZjYyOTkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKQEAgLTI2LDExICsyNiwxMSBAQAogI2lmbmRlZiBS
ZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZF9oCiAjZGVmaW5lIFJlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkX2gKIAotI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1EZWZhdWx0LmgiCisjaW5j
bHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgUmVuZGVyVGhlbWVD
aHJvbWl1bURlZmF1bHQgeworY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJs
aWMgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFEZWZh
dWx0U3R5bGVTaGVldCgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWY0ZmM3ODIy
ZDI2ODE5ZDY1Y2MwYThmY2M5NGE1YjQwNDgyMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTAsMCAr
MSwzODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBHb29nbGUg
SW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4
LmgiCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgi
CisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIK
KyNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgor
I2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCisjaW5jbHVkZSA8cHVibGljL1BsYXRm
b3JtLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJlY3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvbGlu
dXgvV2ViVGhlbWVFbmdpbmUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1bnNpZ25lZCBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6Om1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
ID0KKyAgICAweGZmMWU5MGZmOwordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojpt
X2FjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9CisgICAgQ29sb3I6OmJsYWNrOwordW5z
aWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjptX2luYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yID0KKyAgICAweGZmYzhjOGM4OwordW5zaWduZWQgUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4OjptX2luYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yID0KKyAgICAweGZmMzIz
MjMyOworCitkb3VibGUgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjptX2NhcmV0QmxpbmtJbnRl
cnZhbDsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRCdXR0b25CYWNrZ3JvdW5kQ29s
b3IgPSAweGZmZGRkZGRkOworCitzdGF0aWMgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGUg
Z2V0V2ViVGhlbWVTdGF0ZShjb25zdCBSZW5kZXJUaGVtZSogdGhlbWUsIGNvbnN0IFJlbmRlck9i
amVjdCogbykKK3sKKyAgICBpZiAoIXRoZW1lLT5pc0VuYWJsZWQobykpCisgICAgICAgIHJldHVy
biBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpTdGF0ZURpc2FibGVkOworICAgIGlmICh0aGVtZS0+
aXNQcmVzc2VkKG8pKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3Rh
dGVQcmVzc2VkOworICAgIGlmICh0aGVtZS0+aXNIb3ZlcmVkKG8pKQorICAgICAgICByZXR1cm4g
V2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6U3RhdGVIb3ZlcjsKKworICAgIHJldHVybiBXZWJLaXQ6
OldlYlRoZW1lRW5naW5lOjpTdGF0ZU5vcm1hbDsKK30KKworUGFzc1JlZlB0cjxSZW5kZXJUaGVt
ZT4gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCkpOworfQorCisvLyBSZW5kZXJUaGVt
ZTo6dGhlbWVGb3JQYWdlIGZvciBBbmRyb2lkIGlzIGRlZmluZWQgaW4gUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQuY3BwLgorI2lmICFPUyhBTkRST0lEKQorUGFzc1JlZlB0cjxSZW5kZXJUaGVt
ZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKiBwYWdlKQoreworICAgIHN0YXRpYyBS
ZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNyZWF0ZSgpLmxlYWtS
ZWYoKTsKKyAgICByZXR1cm4gcnQ7Cit9CisjZW5kaWYKKworUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKQoreworICAgIG1fY2FyZXRCbGlua0ludGVy
dmFsID0gUmVuZGVyVGhlbWU6OmNhcmV0QmxpbmtJbnRlcnZhbCgpOworfQorCitSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6On5SZW5kZXJUaGVtZUNocm9taXVtTGludXgoKQoreworfQorCitDb2xv
ciBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnN5c3RlbUNvbG9yKGludCBjc3NWYWx1ZUlkKSBj
b25zdAoreworICAgIHN0YXRpYyBjb25zdCBDb2xvciBsaW51eEJ1dHRvbkdyYXlDb2xvcigweGZm
ZGRkZGRkKTsKKworICAgIGlmIChjc3NWYWx1ZUlkID09IENTU1ZhbHVlQnV0dG9uZmFjZSkKKyAg
ICAgICAgcmV0dXJuIGxpbnV4QnV0dG9uR3JheUNvbG9yOworICAgIHJldHVybiBSZW5kZXJUaGVt
ZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJZCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBSZW5kZXJU
aGVtZUNocm9taXVtU2tpYTo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpICsKKyAgICAgICAgICAg
U3RyaW5nKHRoZW1lQ2hyb21pdW1MaW51eFVzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZih0aGVt
ZUNocm9taXVtTGludXhVc2VyQWdlbnRTdHlsZVNoZWV0KSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4Ojpjb250cm9sU3VwcG9ydHNUaW50cyhjb25zdCBSZW5kZXJPYmplY3Qq
IG8pIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzRW5hYmxlZChvKTsKK30KKworQ29sb3IgUmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4OjphY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ29sb3IoMHgyOCwgMHgyOCwgMHgyOCk7Cit9CisKK0Nv
bG9yIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6YWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENvbG9yOjpibGFjazsKK30KKworQ29s
b3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjppbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xvcigweGM4LCAweGM4LCAweGM4
KTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjppbmFjdGl2ZUxpc3RCb3hT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xvcigweDMy
LCAweDMyLCAweDMyKTsKK30KKworQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOworfQorCitDb2xvciBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdAoreworICAgIHJldHVybiBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
OworfQorCitDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hY3RpdmVTZWxl
Y3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51
eDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1faW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7Cit9CisKKyNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKK0ludFNpemUgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4
OjpzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEludFNpemUoMSwgNik7Cit9
CisKK2ludCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNsaWRlclRpY2tPZmZzZXRGcm9tVHJh
Y2tDZW50ZXIoKSBjb25zdAoreworICAgIHJldHVybiAtMTY7Cit9CisjZW5kaWYKKwordm9pZCBS
ZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHls
ZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgSW50U2l6ZSBzaXplID0g
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYktp
dDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRTbGlkZXJUaHVtYik7CisKKyAgICBpZiAoc3R5bGUtPmFw
cGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KSB7CisgICAgICAgIHN0eWxl
LT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+
c2V0SGVpZ2h0KExlbmd0aChzaXplLmhlaWdodCgpLCBGaXhlZCkpOworICAgIH0gZWxzZSBpZiAo
c3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCkgeworICAgICAg
ICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUuaGVpZ2h0KCksIEZpeGVkKSk7CisgICAgICAg
IHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdFNsaWRlclRodW1iU2l6
ZShzdHlsZSwgZWxlbWVudCk7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Ojpz
dXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91Ymxl
IGludGVydmFsKQoreworICAgIG1fY2FyZXRCbGlua0ludGVydmFsID0gaW50ZXJ2YWw7Cit9CisK
K2RvdWJsZSBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNhcmV0QmxpbmtJbnRlcnZhbEludGVy
bmFsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYXJldEJsaW5rSW50ZXJ2YWw7Cit9CisKK3Zv
aWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRTZWxlY3Rpb25Db2xvcnMoCisgICAgdW5z
aWduZWQgYWN0aXZlQmFja2dyb3VuZENvbG9yLAorICAgIHVuc2lnbmVkIGFjdGl2ZUZvcmVncm91
bmRDb2xvciwKKyAgICB1bnNpZ25lZCBpbmFjdGl2ZUJhY2tncm91bmRDb2xvciwKKyAgICB1bnNp
Z25lZCBpbmFjdGl2ZUZvcmVncm91bmRDb2xvcikKK3sKKyAgICBtX2FjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvciA9IGFjdGl2ZUJhY2tncm91bmRDb2xvcjsKKyAgICBtX2FjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvciA9IGFjdGl2ZUZvcmVncm91bmRDb2xvcjsKKyAgICBtX2luYWN0
aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gaW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3I7Cisg
ICAgbV9pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvciA9IGluYWN0aXZlRm9yZWdyb3Vu
ZENvbG9yOworfQorCitib29sIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRDaGVja2Jv
eChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFt
czsKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2FudmFzID0gaS5jb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKS0+Y2FudmFzKCk7CisgICAgZXh0cmFQYXJhbXMuYnV0dG9uLmNoZWNrZWQgPSBpc0No
ZWNrZWQobyk7CisgICAgZXh0cmFQYXJhbXMuYnV0dG9uLmluZGV0ZXJtaW5hdGUgPSBpc0luZGV0
ZXJtaW5hdGUobyk7CisKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5n
aW5lKCktPnBhaW50KGNhbnZhcywgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydENoZWNrYm94
LCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRy
YVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlbmRlclRoZW1lQ2hyb21p
dW1MaW51eDo6c2V0Q2hlY2tib3hTaXplKFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAg
ICAvLyBJZiB0aGUgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCBzcGVjaWZpZWQsIHRoZW4gd2Ug
aGF2ZSBub3RoaW5nIHRvIGRvLgorICAgIGlmICghc3R5bGUtPndpZHRoKCkuaXNJbnRyaW5zaWNP
ckF1dG8oKSAmJiAhc3R5bGUtPmhlaWdodCgpLmlzQXV0bygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBJbnRTaXplIHNpemUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5n
aW5lKCktPmdldFNpemUoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydENoZWNrYm94KTsKKyAg
ICBzZXRTaXplSWZBdXRvKHN0eWxlLCBzaXplKTsKK30KKworYm9vbCBSZW5kZXJUaGVtZUNocm9t
aXVtTGludXg6OnBhaW50UmFkaW8oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6RXh0
cmFQYXJhbXMgZXh0cmFQYXJhbXM7CisgICAgV2ViS2l0OjpXZWJDYW52YXMqIGNhbnZhcyA9IGku
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIGV4dHJhUGFyYW1zLmJ1
dHRvbi5jaGVja2VkID0gaXNDaGVja2VkKG8pOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludChjYW52YXMsIFdlYktpdDo6V2ViVGhlbWVFbmdp
bmU6OlBhcnRSYWRpbywgZ2V0V2ViVGhlbWVTdGF0ZSh0aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0
KHJlY3QpLCAmZXh0cmFQYXJhbXMpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW5k
ZXJUaGVtZUNocm9taXVtTGludXg6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0Cit7CisgICAgLy8gSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGJvdGggc3BlY2lmaWVk
LCB0aGVuIHdlIGhhdmUgbm90aGluZyB0byBkby4KKyAgICBpZiAoIXN0eWxlLT53aWR0aCgpLmlz
SW50cmluc2ljT3JBdXRvKCkgJiYgIXN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgSW50U2l6ZSBzaXplID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgp
LT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRSYWRp
byk7CisgICAgc2V0U2l6ZUlmQXV0byhzdHlsZSwgc2l6ZSk7Cit9CisKK2Jvb2wgUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4OjpwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50
SW5mbyYgaSwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5n
aW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBXZWJLaXQ6OldlYkNhbnZhcyogY2Fu
dmFzID0gaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisgICAgZXh0cmFQ
YXJhbXMuYnV0dG9uLmlzRGVmYXVsdCA9IGlzRGVmYXVsdChvKTsKKyAgICBleHRyYVBhcmFtcy5i
dXR0b24uaGFzQm9yZGVyID0gdHJ1ZTsKKyAgICBleHRyYVBhcmFtcy5idXR0b24uYmFja2dyb3Vu
ZENvbG9yID0gZGVmYXVsdEJ1dHRvbkJhY2tncm91bmRDb2xvcjsKKyAgICBpZiAoby0+aGFzQmFj
a2dyb3VuZCgpKQorICAgICAgICBleHRyYVBhcmFtcy5idXR0b24uYmFja2dyb3VuZENvbG9yID0g
by0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENv
bG9yKS5yZ2IoKTsKKworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdp
bmUoKS0+cGFpbnQoY2FudmFzLCBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0QnV0dG9uLCBn
ZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBh
cmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbmRlclRoZW1lQ2hyb21pdW1M
aW51eDo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIGks
IGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gV2ViVGhlbWVFbmdpbmUgZG9lcyBub3Qg
aGFuZGxlIGJvcmRlciByb3VuZGVkIGNvcm5lciBhbmQgYmFja2dyb3VuZCBpbWFnZQorICAgIC8v
IHNvIHJldHVybiB0cnVlIHRvIGRyYXcgQ1NTIGJvcmRlciBhbmQgYmFja2dyb3VuZC4KKyAgICBp
ZiAoby0+c3R5bGUoKS0+aGFzQm9yZGVyUmFkaXVzKCkgfHwgby0+c3R5bGUoKS0+aGFzQmFja2dy
b3VuZEltYWdlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgQ29udHJvbFBhcnQgcGFy
dCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKworICAgIFdlYktpdDo6V2ViVGhlbWVFbmdp
bmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOworICAgIGV4dHJhUGFyYW1zLnRleHRGaWVsZC5p
c1RleHRBcmVhID0gcGFydCA9PSBUZXh0QXJlYVBhcnQ7CisgICAgZXh0cmFQYXJhbXMudGV4dEZp
ZWxkLmlzTGlzdGJveCA9IHBhcnQgPT0gTGlzdGJveFBhcnQ7CisKKyAgICBXZWJLaXQ6OldlYkNh
bnZhcyogY2FudmFzID0gaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7CisK
KyAgICAvLyBGYWxsYmFjayB0byB3aGl0ZSBpZiB0aGUgc3BlY2lmaWVkIGNvbG9yIG9iamVjdCBp
cyBpbnZhbGlkLgorICAgIENvbG9yIGJhY2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpOworICAg
IGlmIChvLT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kQ29sb3IpLmlzVmFsaWQoKSkKKyAgICAgICAgYmFja2dyb3VuZENvbG9yID0gby0+c3R5bGUo
KS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKTsKKyAg
ICBleHRyYVBhcmFtcy50ZXh0RmllbGQuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENvbG9y
LnJnYigpOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgp
LT5wYWludChjYW52YXMsIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRUZXh0RmllbGQsIGdl
dFdlYlRoZW1lU3RhdGUodGhpcywgbyksIFdlYktpdDo6V2ViUmVjdChyZWN0KSwgJmV4dHJhUGFy
YW1zKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4OjpwYWludE1lbnVMaXN0KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBj
b25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghby0+aXNCb3goKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgY29uc3QgaW50IHJpZ2h0ID0gcmVjdC54KCkgKyByZWN0LndpZHRo
KCk7CisgICAgY29uc3QgaW50IG1pZGRsZSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDI7
CisKKyAgICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsK
KyAgICBleHRyYVBhcmFtcy5tZW51TGlzdC5hcnJvd1ggPSAoby0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkgPT0gUlRMKSA/IHJlY3QueCgpICsgNyA6IHJpZ2h0IC0gMTM7CisgICAgZXh0cmFQYXJhbXMu
bWVudUxpc3QuYXJyb3dZID0gbWlkZGxlOworICAgIGNvbnN0IFJlbmRlckJveCogYm94ID0gdG9S
ZW5kZXJCb3gobyk7CisgICAgLy8gTWF0Y2ggQ2hyb21pdW0gV2luIGJlaGF2aW91ciBvZiBzaG93
aW5nIGFsbCBib3JkZXJzIGlmIGFueSBhcmUgc2hvd24uCisgICAgZXh0cmFQYXJhbXMubWVudUxp
c3QuaGFzQm9yZGVyID0gYm94LT5ib3JkZXJSaWdodCgpIHx8IGJveC0+Ym9yZGVyTGVmdCgpIHx8
IGJveC0+Ym9yZGVyVG9wKCkgfHwgYm94LT5ib3JkZXJCb3R0b20oKTsKKyAgICBleHRyYVBhcmFt
cy5tZW51TGlzdC5oYXNCb3JkZXJSYWRpdXMgPSBvLT5zdHlsZSgpLT5oYXNCb3JkZXJSYWRpdXMo
KTsKKyAgICAvLyBGYWxsYmFjayB0byB0cmFuc3BhcmVudCBpZiB0aGUgc3BlY2lmaWVkIGNvbG9y
IG9iamVjdCBpcyBpbnZhbGlkLgorICAgIGV4dHJhUGFyYW1zLm1lbnVMaXN0LmJhY2tncm91bmRD
b2xvciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBpZiAoby0+aGFzQmFja2dyb3VuZCgpKQor
ICAgICAgICBleHRyYVBhcmFtcy5tZW51TGlzdC5iYWNrZ3JvdW5kQ29sb3IgPSBvLT5zdHlsZSgp
LT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLnJnYigp
OworCisgICAgV2ViS2l0OjpXZWJDYW52YXMqIGNhbnZhcyA9IGkuY29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCktPmNhbnZhcygpOworCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50
aGVtZUVuZ2luZSgpLT5wYWludChjYW52YXMsIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OlBhcnRN
ZW51TGlzdCwgZ2V0V2ViVGhlbWVTdGF0ZSh0aGlzLCBvKSwgV2ViS2l0OjpXZWJSZWN0KHJlY3Qp
LCAmZXh0cmFQYXJhbXMpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJUaGVt
ZUNocm9taXVtTGludXg6OnBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQ
YWludEluZm8mIGksIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgV2ViS2l0OjpXZWJUaGVt
ZUVuZ2luZTo6RXh0cmFQYXJhbXMgZXh0cmFQYXJhbXM7CisgICAgV2ViS2l0OjpXZWJDYW52YXMq
IGNhbnZhcyA9IGkuY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOworICAgIGV4
dHJhUGFyYW1zLnNsaWRlci52ZXJ0aWNhbCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBT
bGlkZXJWZXJ0aWNhbFBhcnQ7CisKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRo
ZW1lRW5naW5lKCktPnBhaW50KGNhbnZhcywgV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydFNs
aWRlclRyYWNrLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVj
dCksICZleHRyYVBhcmFtcyk7CisKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBw
YWludFNsaWRlclRpY2tzKG8sIGksIHJlY3QpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFNsaWRlclRodW1iKFJl
bmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQor
eworICAgIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1zOwor
ICAgIFdlYktpdDo6V2ViQ2FudmFzKiBjYW52YXMgPSBpLmNvbnRleHQtPnBsYXRmb3JtQ29udGV4
dCgpLT5jYW52YXMoKTsKKyAgICBleHRyYVBhcmFtcy5zbGlkZXIudmVydGljYWwgPSBvLT5zdHls
ZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQ7CisgICAgZXh0cmFQ
YXJhbXMuc2xpZGVyLmluRHJhZyA9IGlzUHJlc3NlZChvKTsKKworICAgIFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnQoY2FudmFzLCBXZWJLaXQ6OldlYlRo
ZW1lRW5naW5lOjpQYXJ0U2xpZGVyVGh1bWIsIGdldFdlYlRoZW1lU3RhdGUodGhpcywgbyksIFdl
YktpdDo6V2ViUmVjdChyZWN0KSwgJmV4dHJhUGFyYW1zKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjphZGp1c3RJbm5lclNwaW5CdXR0b25T
dHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KikgY29uc3QK
K3sKKyAgICBJbnRTaXplIHNpemUgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1l
RW5naW5lKCktPmdldFNpemUoV2ViS2l0OjpXZWJUaGVtZUVuZ2luZTo6UGFydElubmVyU3BpbkJ1
dHRvbik7CisKKyAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQp
KTsKKyAgICBzdHlsZS0+c2V0TWluV2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsK
K30KKworYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50SW5uZXJTcGluQnV0dG9u
KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OkV4dHJhUGFyYW1zIGV4dHJhUGFyYW1z
OworICAgIFdlYktpdDo6V2ViQ2FudmFzKiBjYW52YXMgPSBpLmNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpLT5jYW52YXMoKTsKKyAgICBleHRyYVBhcmFtcy5pbm5lclNwaW4uc3BpblVwID0gKGNv
bnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihvKSAmIFNwaW5VcFN0YXRlKTsKKyAgICBleHRyYVBhcmFt
cy5pbm5lclNwaW4ucmVhZE9ubHkgPSBpc1JlYWRPbmx5Q29udHJvbChvKTsKKworICAgIFdlYktp
dDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnQoY2FudmFzLCBXZWJL
aXQ6OldlYlRoZW1lRW5naW5lOjpQYXJ0SW5uZXJTcGluQnV0dG9uLCBnZXRXZWJUaGVtZVN0YXRl
KHRoaXMsIG8pLCBXZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBhcmFtcyk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCisjaWYgRU5BQkxFKFBST0dSRVNTX0VMRU1FTlQpCisKK2Jvb2wgUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCogbywg
Y29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghby0+
aXNQcm9ncmVzcygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFJlbmRlclByb2dyZXNz
KiByZW5kZXJQcm9ncmVzcyA9IHRvUmVuZGVyUHJvZ3Jlc3Mobyk7CisgICAgSW50UmVjdCB2YWx1
ZVJlY3QgPSBwcm9ncmVzc1ZhbHVlUmVjdEZvcihyZW5kZXJQcm9ncmVzcywgcmVjdCk7CisKKyAg
ICBXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpFeHRyYVBhcmFtcyBleHRyYVBhcmFtczsKKyAgICBl
eHRyYVBhcmFtcy5wcm9ncmVzc0Jhci5kZXRlcm1pbmF0ZSA9IHJlbmRlclByb2dyZXNzLT5pc0Rl
dGVybWluYXRlKCk7CisgICAgZXh0cmFQYXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0WCA9IHZh
bHVlUmVjdC54KCk7CisgICAgZXh0cmFQYXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0WSA9IHZh
bHVlUmVjdC55KCk7CisgICAgZXh0cmFQYXJhbXMucHJvZ3Jlc3NCYXIudmFsdWVSZWN0V2lkdGgg
PSB2YWx1ZVJlY3Qud2lkdGgoKTsKKyAgICBleHRyYVBhcmFtcy5wcm9ncmVzc0Jhci52YWx1ZVJl
Y3RIZWlnaHQgPSB2YWx1ZVJlY3QuaGVpZ2h0KCk7CisKKyAgICBEaXJlY3Rpb25GbGlwcGluZ1Nj
b3BlIHNjb3BlKG8sIGksIHJlY3QpOworICAgIFdlYktpdDo6V2ViQ2FudmFzKiBjYW52YXMgPSBp
LmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKKyAgICBXZWJLaXQ6OlBsYXRm
b3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50KGNhbnZhcywgV2ViS2l0OjpXZWJU
aGVtZUVuZ2luZTo6UGFydFByb2dyZXNzQmFyLCBnZXRXZWJUaGVtZVN0YXRlKHRoaXMsIG8pLCBX
ZWJLaXQ6OldlYlJlY3QocmVjdCksICZleHRyYVBhcmFtcyk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCisjZW5kaWYKKworYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OnNob3VsZE9wZW5Q
aWNrZXJXaXRoRjRLZXkoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZjNGIzNWRiNThiYjMyZDFhNmQ0YmRk
ODViYzE0ZTY4NWZjMTkwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAq
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdC4KKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBN
aWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEdvb2dsZSwg
SW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBSZW5kZXJUaGVtZUNocm9taXVtTGlu
dXhfaAorI2RlZmluZSBSZW5kZXJUaGVtZUNocm9taXVtTGludXhfaAorCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xh
c3MgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4IDogcHVibGljIFJlbmRlclRoZW1lQ2hyb21pdW1T
a2lhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclRoZW1l
PiBjcmVhdGUoKTsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5bGVTaGVl
dCgpOworCisgICAgICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoaW50IGNzc1ZhbGlkSWQp
IGNvbnN0OworCisgICAgICAgIC8vIEEgbWV0aG9kIGFza2luZyBpZiB0aGUgY29udHJvbCBjaGFu
Z2VzIGl0cyB0aW50IHdoZW4gdGhlIHdpbmRvdyBoYXMgZm9jdXMgb3Igbm90LgorICAgICAgICB2
aXJ0dWFsIGJvb2wgY29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0KikgY29u
c3Q7CisKKyAgICAgICAgLy8gTGlzdCBCb3ggc2VsZWN0aW9uIGNvbG9yCisgICAgICAgIHZpcnR1
YWwgQ29sb3IgYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIENvbG9yIGFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29s
b3IoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBDb2xvciBpbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBDb2xvciBpbmFjdGl2
ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdDsKKworICAgICAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxh
dGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0OworCisjaWYgRU5B
QkxFKERBVEFMSVNUX0VMRU1FTlQpCisgICAgICAgIHZpcnR1YWwgSW50U2l6ZSBzbGlkZXJUaWNr
U2l6ZSgpIGNvbnN0IE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIGludCBzbGlkZXJUaWNrT2Zm
c2V0RnJvbVRyYWNrQ2VudGVyKCkgY29uc3QgT1ZFUlJJREU7CisjZW5kaWYKKyAgICAgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdDsKKworICAgICAgICBzdGF0aWMgdm9pZCBzZXRDYXJldEJsaW5rSW50ZXJ2YWwoZG91Ymxl
IGludGVydmFsKTsKKyAgICAgICAgdmlydHVhbCBkb3VibGUgY2FyZXRCbGlua0ludGVydmFsSW50
ZXJuYWwoKSBjb25zdDsKKworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDaGVja2JveChSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRDaGVja2JveFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKKworICAgICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRSYWRpbyhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRSYWRpb1NpemUoUmVu
ZGVyU3R5bGUqKSBjb25zdDsKKworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRCdXR0b24oUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdChS
ZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwor
CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RJbm5lclNwaW5CdXR0b25TdHlsZShTdHlsZVJl
c29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBwYWludElubmVyU3BpbkJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jik7CisKKyAgICAgICAgdmlydHVhbCBib29sIHBvcHNNZW51QnlTcGFj
ZU9yUmV0dXJuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCisjaWYgRU5BQkxF
KFBST0dSRVNTX0VMRU1FTlQpCisgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFy
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyNlbmRp
ZgorCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRPcGVuUGlja2VyV2l0aEY0S2V5KCkgY29u
c3QgT1ZFUlJJREU7CisKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0aW9uQ29sb3JzKHVu
c2lnbmVkIGFjdGl2ZUJhY2tncm91bmRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUZvcmVncm91bmRDb2xvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlQmFja2dyb3VuZENv
bG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5h
Y3RpdmVGb3JlZ3JvdW5kQ29sb3IpOworCisgICAgcHJvdGVjdGVkOgorICAgICAgICBSZW5kZXJU
aGVtZUNocm9taXVtTGludXgoKTsKKyAgICAgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4KCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICAvLyBBIGdlbmVyYWwgbWV0aG9kIGFz
a2luZyBpZiBhbnkgY29udHJvbCB0aW50aW5nIGlzIHN1cHBvcnRlZCBhdCBhbGwuCisgICAgICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0OworCisgICAgICAgIHN0
YXRpYyBkb3VibGUgbV9jYXJldEJsaW5rSW50ZXJ2YWw7CisKKyAgICAgICAgc3RhdGljIHVuc2ln
bmVkIG1fYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOworICAgICAgICBzdGF0aWMgdW5z
aWduZWQgbV9hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3I7CisgICAgICAgIHN0YXRpYyB1
bnNpZ25lZCBtX2luYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOworICAgICAgICBzdGF0
aWMgdW5zaWduZWQgbV9pbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcjsKKyAgICB9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJUaGVtZUNocm9taXVt
TGludXhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGRhOTVlYzdhMGJjN2Y1YmRk
YWFmZDM0YzcyMTZlNThjNzRjZGFkYmUuLmNiMTUzZWFiMGI4ZjBiZTdiYzU3N2VkZDZjNTc4YTQ0
YmQwMTU3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTQzOSw2ICs0MzksNyBA
QAogICAgICAgICAgICAgICAgICdzcmMvbGludXgvV2ViRm9udEluZm8uY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL2xpbnV4L1dlYkZvbnRSZW5kZXJpbmcuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5jcHAnLAorICAgICAgICAgICAgICAgICdz
cmMvbGludXgvV2ViUmVuZGVyVGhlbWUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL3gxMS9X
ZWJTY3JlZW5JbmZvRmFjdG9yeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvbWFjL1dlYklu
cHV0RXZlbnRGYWN0b3J5Lm1tJywKICAgICAgICAgICAgICAgICAnc3JjL21hYy9XZWJTY3JlZW5J
bmZvRmFjdG9yeS5tbScsCkBAIC04NDUsNiArODQ2LDEwIEBACiAgICAgICAgICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICAgICAgWyd1c2VfZGVmYXVsdF9y
ZW5kZXJfdGhlbWU9PTEnLCB7CisgICAgICAgICAgICAgICAgICAgICdzb3VyY2VzLyc6IFsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFsnZXhjbHVkZScsICdzcmMvbGludXgvV2ViUmVuZGVyVGhl
bWUuY3BwJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBbJ2V4Y2x1ZGUnLCAncHVibGljL2xp
bnV4L1dlYlJlbmRlclRoZW1lLmgnXSwKKyAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgICAgICAgJ2luY2x1ZGVfZGlycyc6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICdw
dWJsaWMvZGVmYXVsdCcsCiAgICAgICAgICAgICAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJSZW5kZXJUaGVtZS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViUmVuZGVyVGhlbWUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZTUxN2M2NjQ3OWQ3ZTRkYjk0NTFjYmU5ZTNiZWE0OWY4NWEwOTg4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViUmVuZGVyVGhlbWUu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEpvZWwgU3Rhbmxl
eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJlbmRlclRoZW1lX2gKKyNkZWZpbmUgV2Vi
UmVuZGVyVGhlbWVfaAorCisjaW5jbHVkZSAiLi4vcGxhdGZvcm0vV2ViQ29tbW9uLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCisvLyBTZXQgY2FyZXQgYmxpbmsgaW50ZXJ2YWwgZm9yIHRleHQg
aW5wdXQgYXJlYXMuCitXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Q2FyZXRCbGlua0ludGVydmFsKGRv
dWJsZSk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA2ZjQxOTM5ODkwNmNkZDg4ZmFkNTk4
MzEwMGQxMGRhOWJhNDlhY2Q3Li5mNjZhZTQ4YzQ4ZDhhMzhlZWUyMGQ3NGZmYzc0NTM3MWU3MGIx
MDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0x
NzksNiArMTc5LDEwIEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oIgogI2Vu
ZGlmCiAjZWxzZQorI2lmIE9TKFVOSVgpICYmICFPUyhEQVJXSU4pICYmICFFTkFCTEUoREVGQVVM
VF9SRU5ERVJfVEhFTUUpCisjaW5jbHVkZSAiUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXguaCIK
KyNpbmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtTGludXguaCIKKyNlbmRpZgogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCiAjZW5kaWYKIApAQCAtMzU2OSw2ICszNTczLDggQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgewog
I2lmIEVOQUJMRShERUZBVUxUX1JFTkRFUl9USEVNRSkKICAgICBQbGF0Zm9ybVRoZW1lQ2hyb21p
dW1EZWZhdWx0OjpzZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwgYWN0aXZlQ29sb3Is
IHRyYWNrQ29sb3IpOworI2VsaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9TKEFORFJP
SUQpCisgICAgUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycyhp
bmFjdGl2ZUNvbG9yLCBhY3RpdmVDb2xvciwgdHJhY2tDb2xvcik7CiAjZW5kaWYKIH0KIApAQCAt
MzU3OSw2ICszNTg1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKHVu
c2lnbmVkIGFjdGl2ZUJhY2tncm91bmRDb2xvciwKICNpZiBFTkFCTEUoREVGQVVMVF9SRU5ERVJf
VEhFTUUpCiAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bURlZmF1bHQ6OnNldFNlbGVjdGlvbkNvbG9y
cyhhY3RpdmVCYWNrZ3JvdW5kQ29sb3IsIGFjdGl2ZUZvcmVncm91bmRDb2xvciwgaW5hY3RpdmVC
YWNrZ3JvdW5kQ29sb3IsIGluYWN0aXZlRm9yZWdyb3VuZENvbG9yKTsKICAgICB0aGVtZSgpLT5w
bGF0Zm9ybUNvbG9yc0RpZENoYW5nZSgpOworI2VsaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikg
JiYgIU9TKEFORFJPSUQpCisgICAgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRTZWxlY3Rp
b25Db2xvcnMoYWN0aXZlQmFja2dyb3VuZENvbG9yLCBhY3RpdmVGb3JlZ3JvdW5kQ29sb3IsIGlu
YWN0aXZlQmFja2dyb3VuZENvbG9yLCBpbmFjdGl2ZUZvcmVncm91bmRDb2xvcik7CisgICAgdGhl
bWUoKS0+cGxhdGZvcm1Db2xvcnNEaWRDaGFuZ2UoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9saW51eC9XZWJSZW5kZXJUaGVtZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTZlYTIyYzRiMzhjYjA0YjJiYjVkOWExYjQyOWRiMDdmODQxYmJmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2xpbnV4L1dlYlJlbmRlclRoZW1l
LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEpvZWwgU3Rh
bmxleS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UmVuZGVyVGhlbWUuaCIKKworI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIgor
I2luY2x1ZGUgIldlYlZpZXcuaCIKKwordXNpbmcgV2ViQ29yZTo6UmVuZGVyVGhlbWU7Cit1c2lu
ZyBXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTGludXg7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIHNldENhcmV0QmxpbmtJbnRlcnZhbChkb3VibGUgaW50ZXJ2YWwpCit7CisgICAg
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRDYXJldEJsaW5rSW50ZXJ2YWwoaW50ZXJ2YWwp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzMGY1YjlhYWVkN2RmZDkzOTNkNTFlYTE1MGZlNTJh
NTY4MTQ3NDRiLi4zNmM4OTQxMTBkNjkyOWJlZWNlYzc3MjRkYzU2ODQwYjBlODhlM2Q4IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMTItMDMgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwu
Y29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzY0NjAuCisgICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzNjQ2MAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTU4CisKKyAgICAgICAgVGhpcyBw
YXRjaCBjYXVzZWQgY29tcGlsZSBlcnJvciB3aGVuIGJ1aWxkaW5nIER1bXBSZW5kZXJUcmVlCisg
ICAgICAgIChSZXF1ZXN0ZWQgYnkgdGFzYWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHk6CisgICAgICAgIChT
aG91bGRCdWlsZFRlc3QpOgorCiAyMDEyLTEyLTAzICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGxpbnV4IHRoZW1lIHJlbGF0ZWQg
ZmlsZXMgYW5kIHN3aXRjaCB0byBkZWZhdWx0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvYnVpbGRfdW5pdHRlc3QucHkKaW5kZXggYWMwZGVjYTNmY2U0
NGQxZDcxNWIxZjU5OTlhNDZlMGVmYmE0YjI2Yy4uYzQ5NjE3OWU0NjE4YmNjNTgyYTMwOTFkM2Nm
N2NiMDlkNGQ3ZGFiZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2J1aWxkX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9idWlsZF91bml0dGVzdC5weQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBTaG91
bGRCdWlsZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAoWyJTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvZm9vIl0sIFsibWFjLWxlb3BhcmQiLCAibWFjLWxpb24i
LCAgIm1hYy1tb3VudGFpbmxpb24iLCAibWFjLXNub3dsZW9wYXJkIl0pLAogICAgICAgICAoWyJT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC93eGNvZGUvd2luL2ZvbyJdLCBbXSksCiAgICAgICAg
IChbIlNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSIsICJTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCJdLCBbIm1hYy1sZW9wYXJkIiwgIm1h
Yy1saW9uIiwgICJtYWMtbW91bnRhaW5saW9uIiwgIm1hYy1zbm93bGVvcGFyZCJdKSwKLSAgICAg
ICAgKFsiU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1EZWZhdWx0
LmgiXSwgWyJjaHJvbWl1bS1saW51eCJdKSwKKyAgICAgICAgKFsiU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIl0sIFsiY2hyb21pdW0tbGludXgiXSks
CiAgICAgICAgIChbIlNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVdpbkNFLmgi
XSwgW10pLAogICAgICAgICAoWyJUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9MZWFrc1ZpZXdlci9MZWFrc1ZpZXdlci5qcyJdLCBbXSks
CiAgICAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>