<?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>192414</bug_id>
          
          <creation_ts>2018-12-05 11:16:26 -0800</creation_ts>
          <short_desc>REGRESSION(r238844): The layout tests added with this change are flaky. (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2018-12-05 11:22:40 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>192069</blocked>
    
    <blocked>192371</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485320</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 11:16:26 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/238844 broke the build:
The layout tests added with this change are flaky. (Requested by ryanhaddad on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485323</commentid>
    <comment_count>1</comment_count>
      <attachid>356625</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 11:16:35 -0800</bug_when>
    <thetext>Created attachment 356625
ROLLOUT of r238844

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>1485327</commentid>
    <comment_count>2</comment_count>
      <attachid>356625</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 11:21:32 -0800</bug_when>
    <thetext>Comment on attachment 356625
ROLLOUT of r238844

Clearing flags on attachment: 356625

Committed r238902: &lt;https://trac.webkit.org/changeset/238902&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485328</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 11:21:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485329</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-05 11:22:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/46493874&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356625</attachid>
            <date>2018-12-05 11:16:35 -0800</date>
            <delta_ts>2018-12-05 11:21:32 -0800</delta_ts>
            <desc>ROLLOUT of r238844</desc>
            <filename>bug-192414-20181205111634.patch</filename>
            <type>text/plain</type>
            <size>62514</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmNmI3MmI5YzdjY2Ni
Mjg0M2U2NzQ4YjY0YjE1NWI5NTYxYTY3OS4uNThlZmQ4N2ZkNjZlOThjY2ZmMGUyZGIzYWIxMWMx
NDNhNDhkNTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTEyLTA1ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjM4ODQ0LCByMjM4ODQ2LCBhbmQgcjIzODg3NC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQxNAorCisgICAgICAgIFRo
ZSBsYXlvdXQgdGVzdHMgYWRkZWQgd2l0aCB0aGlzIGNoYW5nZSBhcmUgZmxha3kuIChSZXF1ZXN0
ZWQKKyAgICAgICAgYnkgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRl
ZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJJbXBsZW1lbnQgbm9uLXRpbWVzbGljZSBtb2RlIGVu
Y29kaW5nIGZvciBNZWRpYVJlY29yZGVyIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkyMDY5CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yMzg4NDQKKworICAgICAgICAiRml4IHRoZSBidWlsZCIKKyAgICAgICAgaHR0
cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzODg0NgorCisgICAgICAgICJGaXggTWVk
aWFSZWNvcmRlciBmbGFreSB0ZXN0cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjM3MQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjM4ODc0CisKIDIwMTgtMTItMDUgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIG9mIHRoZSBzY3JvbGxpbmcgY29k
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwCmluZGV4IGE3OGQ0YmU3ZWY5OTA5NzFmMDlkOThlNGRlYzUzNmRiZGQ5YjE5
YjkuLjhmNmJjZjc0NmI2YTQ3NmI3NmZiYzRhYmRkYzY1NTliMDA5Y2I5YzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKQEAgLTMzLDQ4ICszMywyMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmgiCi0jaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbC5oIgotI2VuZGlmCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY3JlYXRvckZ1bmN0aW9uIE1lZGlhUmVjb3JkZXI6Om1f
Y3VzdG9tQ3JlYXRvciA9IG51bGxwdHI7Ci0KLUV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVy
Pj4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3Ry
ZWFtPiYmIHN0cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCitSZWY8TWVkaWFSZWNvcmRlcj4gTWVk
aWFSZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYm
IHN0cmVhbSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBwcml2YXRlSW5zdGFuY2Ug
PSBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1wbChzdHJlYW0tPnByaXZhdGVTdHJlYW0oKSk7
Ci0gICAgaWYgKCFwcml2YXRlSW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBNZWRpYVJlY29yZGVyIGlzIHVuc3VwcG9ydGVkIG9uIHRo
aXMgcGxhdGZvcm0iX3MgfTsKLSAgICBhdXRvIHJlY29yZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRp
YVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVhbSksIFdURk1vdmUocHJpdmF0ZUluc3Rh
bmNlKSwgV1RGTW92ZShvcHRpb25zKSkpOworICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigq
bmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShvcHRp
b25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gV1RG
TW92ZShyZWNvcmRlcik7Ci19Ci0KLXZvaWQgTWVkaWFSZWNvcmRlcjo6c2V0Q3VzdG9tUHJpdmF0
ZVJlY29yZGVyQ3JlYXRvcihjcmVhdG9yRnVuY3Rpb24gY3JlYXRvcikKLXsKLSAgICBtX2N1c3Rv
bUNyZWF0b3IgPSBjcmVhdG9yOworICAgIHJldHVybiByZWNvcmRlcjsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBNZWRpYVJlY29yZGVyOjpnZXRQcml2YXRlSW1w
bChjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKLXsKLSAgICBpZiAobV9jdXN0b21D
cmVhdG9yKQotICAgICAgICByZXR1cm4gbV9jdXN0b21DcmVhdG9yKCk7Ci0gICAgCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3Jl
YXRlKHN0cmVhbSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotTWVkaWFSZWNv
cmRlcjo6TWVkaWFSZWNvcmRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbT4m
JiBzdHJlYW0sIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZT4mJiBwcml2YXRl
SW1wbCwgT3B0aW9ucyYmIG9wdGlvbikKK01lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3JkZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBPcHRpb25zJiYgb3B0
aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKICAgICAsIG1fb3B0aW9ucyhX
VEZNb3ZlKG9wdGlvbikpCiAgICAgLCBtX3N0cmVhbShXVEZNb3ZlKHN0cmVhbSkpCi0gICAgLCBt
X3ByaXZhdGUoV1RGTW92ZShwcml2YXRlSW1wbCkpCisgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s+KCkpIC8vIEZJWE1FOiB3ZSB3aWxsIG5lZWQg
dG8gZGVjaWRlIHdoaWNoIE1lZGlhUmVjb3JkZXJQcml2YXRlIGluc3RhbmNlIHRvIGNyZWF0ZSBi
YXNlZCBvbiB0aGUgbW9jayBlbmFibGVkIGZlYXR1cmUgZmxhZwogewogICAgIG1fdHJhY2tzID0g
V1RGOjptYXAobV9zdHJlYW0tPmdldFRyYWNrcygpLCBbXSAoYXV0byYmIHRyYWNrKSAtPiBSZWY8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsKICAgICAgICAgcmV0dXJuIHRyYWNrLT5wcml2YXRl
VHJhY2soKTsKQEAgLTEyMSwxNCArOTUsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNv
cmRlcjo6c3RvcFJlY29yZGluZygpCiB7CiAgICAgaWYgKHN0YXRlKCkgPT0gUmVjb3JkaW5nU3Rh
dGU6OkluYWN0aXZlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJUaGUgTWVkaWFSZWNvcmRlcidzIHN0YXRlIGNhbm5vdCBiZSBpbmFjdGl2ZSJfcyB9Owot
ICAgIAorCiAgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKICAgICAgICAgaWYgKCFt
X2lzQWN0aXZlIHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHN0b3BSZWNvcmRpbmdJbnRlcm5hbCgpOwogICAgICAg
ICBBU1NFUlQobV9zdGF0ZSA9PSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmUpOwotICAgICAgICBk
aXNwYXRjaEV2ZW50KEJsb2JFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kYXRhYXZhaWxhYmxl
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgY3Jl
YXRlUmVjb3JkaW5nRGF0YUJsb2IoKSkpOworICAgICAgICBkaXNwYXRjaEV2ZW50KEJsb2JFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5kYXRhYXZhaWxhYmxlRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgbV9wcml2YXRlLT5mZXRjaERhdGEoKSkp
OwogICAgICAgICBpZiAoIW1faXNBY3RpdmUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcEV2ZW50LCBFdmVu
dDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKQEAgLTE0NSwxNSAr
MTE5LDYgQEAgdm9pZCBNZWRpYVJlY29yZGVyOjpzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKQogICAg
ICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogCiAgICAgbV9zdGF0ZSA9IFJlY29y
ZGluZ1N0YXRlOjpJbmFjdGl2ZTsKLSAgICBtX3ByaXZhdGUtPnN0b3BSZWNvcmRpbmcoKTsKLX0K
LQotUmVmPEJsb2I+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZVJlY29yZGluZ0RhdGFCbG9iKCkKLXsK
LSAgICBhdXRvIGRhdGEgPSBtX3ByaXZhdGUtPmZldGNoRGF0YSgpOwotICAgIGlmICghZGF0YSkK
LSAgICAgICAgcmV0dXJuIEJsb2I6OmNyZWF0ZSgpOwotICAgIHJldHVybiBCbG9iOjpjcmVhdGUo
KmRhdGEsIG1fcHJpdmF0ZS0+bWltZVR5cGUoKSk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlcjo6
ZGlkQWRkT3JSZW1vdmVUcmFjaygpCkBAIC0xOTksNyArMTY0LDYgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiAg
ICAgYXV0byogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IHRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgICAgIHJldHVy
bjsKLQogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildIChhdXRvJikg
ewogICAgICAgICBmdW5jdGlvbigpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggOGM1YTYxMTJjNTM4
NmY0NjM3OGMwNWU0NDZmZjI3YjY0NTllMWIxZi4uN2M4YWVhNTc3MmM2NzFmZGJjNzdiYWUyNTQw
MzkzYjYzNDI3MGZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC0zNCwxMiArMzQsOSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE1lZGlhUmVj
b3JkZXJQcml2YXRlOwogCi10eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJp
dmF0ZT4oKmNyZWF0b3JGdW5jdGlvbikoKTsKLQogY2xhc3MgTWVkaWFSZWNvcmRlciBmaW5hbAog
ICAgIDogcHVibGljIEFjdGl2ZURPTU9iamVjdAogICAgICwgcHVibGljIFJlZkNvdW50ZWQ8TWVk
aWFSZWNvcmRlcj4KQEAgLTU5LDkgKzU2LDcgQEAgcHVibGljOgogICAgIAogICAgIH5NZWRpYVJl
Y29yZGVyKCk7CiAgICAgCi0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYVJlY29yZGVy
Pj4gY3JlYXRlKERvY3VtZW50JiwgUmVmPE1lZGlhU3RyZWFtPiYmLCBPcHRpb25zJiYgPSB7IH0p
OwotICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEN1c3RvbVByaXZhdGVS
ZWNvcmRlckNyZWF0b3IoY3JlYXRvckZ1bmN0aW9uKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhUmVj
b3JkZXI+IGNyZWF0ZShEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbT4mJiwgT3B0aW9ucyYmID0g
eyB9KTsKICAgICAKICAgICBSZWNvcmRpbmdTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhdGU7IH0KICAgICAKQEAgLTcyLDEyICs2Nyw4IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBzdG9wUmVjb3JkaW5nKCk7CiAgICAgCiBwcml2YXRlOgotICAgIE1lZGlhUmVjb3Jk
ZXIoRG9jdW1lbnQmLCBSZWY8TWVkaWFTdHJlYW0+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZT4mJiwgT3B0aW9ucyYmID0geyB9KTsKKyAgICBNZWRpYVJlY29yZGVyKERv
Y3VtZW50JiwgUmVmPE1lZGlhU3RyZWFtPiYmLCBPcHRpb25zJiYgPSB7IH0pOwogICAgIAotICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IGdldFByaXZhdGVJ
bXBsKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwotICAgIAotICAgIFJlZjxCbG9iPiBjcmVh
dGVSZWNvcmRpbmdEYXRhQmxvYigpOwotCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgZGVyZWYoKTsgfQpAQCAtMTA1LDE3ICs5NiwxNSBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldE5ld1JlY29yZGluZ1N0YXRlKFJlY29yZGluZ1N0YXRlLCBSZWY8RXZlbnQ+JiYpOwogICAg
IAotICAgIHN0YXRpYyBjcmVhdG9yRnVuY3Rpb24gbV9jdXN0b21DcmVhdG9yOwotICAgIAogICAg
IE9wdGlvbnMgbV9vcHRpb25zOwogICAgIFJlZjxNZWRpYVN0cmVhbT4gbV9zdHJlYW07Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgVW5p
cXVlUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBtX3ByaXZhdGU7CiAgICAgUmVjb3JkaW5nU3Rh
dGUgbV9zdGF0ZSB7IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSB9OwogICAgIFZlY3RvcjxSZWY8
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrczsKICAgICAKICAgICBib29sIG1faXNB
Y3RpdmUgeyB0cnVlIH07CiB9OwotCisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaWRsCmluZGV4IDhjMjQ5YjFmM2Fk
Y2U4OTUxODAyMWM0Y2EzOGJiMzYxNzFiYjNjYTkuLjQ2OTczODAzM2EwZmU1M2I1NGQwY2MxYjUx
OTQxMTljYzQ0OGE3OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5pZGwKQEAgLTI5LDcgKzI5LDYgQEAgZW51bSBSZWNv
cmRpbmdTdGF0ZSB7ICJpbmFjdGl2ZSIsICJyZWNvcmRpbmciLCAicGF1c2VkIiB9OwogICAgIENv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICBDb25zdHJ1Y3RvcihNZWRpYVN0cmVhbSBzdHJl
YW0sIG9wdGlvbmFsIE1lZGlhUmVjb3JkZXJPcHRpb25zIG9wdGlvbnMpLAogICAgIENvbnN0cnVj
dG9yQ2FsbFdpdGg9RG9jdW1lbnQsCi0gICAgQ29uc3RydWN0b3JNYXlUaHJvd0V4Y2VwdGlvbiwK
ICAgICBFbmFibGVkQXRSdW50aW1lPU1lZGlhUmVjb3JkZXIsCiAgICAgRXhwb3NlZD1XaW5kb3cK
IF0gaW50ZXJmYWNlIE1lZGlhUmVjb3JkZXIgOiBFdmVudFRhcmdldCB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAppbmRleCA0ZmVmY2EzY2JkMWNkY2NkZTNhYjQxOGEwOWQ3ZmU1YTE0NzQxMjc5Li41
MmJiMmZjMmQ3YThlODdkNDFmOWNlMTYwMWVkODE1NzQ2MjAyOWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKQEAgLTQ4MCw5ICs0ODAsNiBAQCBwbGF0Zm9ybS9tYWMvV2ViTlNBdHRyaWJ1dGVk
U3RyaW5nRXh0cmFzLm1tCiBwbGF0Zm9ybS9tYWMvV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIu
bW0KIHBsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0KIAotcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCi1wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KLQogcGxhdGZvcm0vbWVkaWFz
ZXNzaW9uL21hYy9NZWRpYVNlc3Npb25JbnRlcnJ1cHRpb25Qcm92aWRlck1hYy5tbQogCiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
N2EyNmZmY2Q5ZWI3NTQ4NDFkODJlODg1ZGI2MTI3MTM1ZTU2NWRhOS4uYmVhMGUzZTlkZjkxOGQ0
ZWJhYjNmMzhlYTZkMzQ0NmZmM2E0N2ZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5Miw4ICsxMzkyLDYgQEAKIAkJNEQz
QjAwQUIyMTVENjlBNzAwNzZCOTgzIC8qIE1lZGlhUmVjb3JkZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDREM0IwMEE5MjE1RDY5QTcwMDc2Qjk4MyAv
KiBNZWRpYVJlY29yZGVyLmggKi87IH07CiAJCTREM0IwMEFGMjE1RDZBNjkwMDc2Qjk4MyAvKiBC
bG9iRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDREM0IwMEFEMjE1RDZBNjkwMDc2Qjk4MyAvKiBCbG9iRXZlbnQuaCAqLzsgfTsKIAkJNEQzQjUw
MTYyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RDNCNTAxNDIxN0U1OEI3MDA2NjVE
QjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCAqLzsgfTsKLQkJNEQ3M0Y5NDYyMThCQzVGQTAw
M0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ3M0Y5NDQyMThCQzVGQTAwM0EzRUQ2IC8q
IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oICovOyB9OwotCQk0RDczRjk0RTIxOEM0QTg3
MDAzQTNFRDYgLyogTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEQ3M0Y5NEMyMThDNEE4NzAwM0Ez
RUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCAqLzsgfTsKIAkJNERCNzEz
MEQyMTZFQ0I0RDAwOTZBNEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0REI3MTMwQzIxNkVDMkJEMDA5
NkE0REQgLyogTWVkaWFSZWNvcmRlckVycm9yRXZlbnQuaCAqLzsgfTsKIAkJNEUxOTU5MjIwQTM5
REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RTE5NTkyMDBBMzlEQUJBMDAyMjBGRTUgLyogTWVk
aWFGZWF0dXJlTmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjQwQTM5REFD
QzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNzkzOSwxMCArNzkzNyw2IEBACiAJCTREM0IwMEE5MjE1RDY5
QTcwMDc2Qjk4MyAvKiBNZWRpYVJlY29yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUmVjb3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEQz
QjAwQUQyMTVENkE2OTAwNzZCOTgzIC8qIEJsb2JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCbG9iRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEQzQjUwMTQyMTdFNThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhUmVjb3JkZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTRENzNGOTQ0MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFW
RkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRENzNGOTQ1MjE4QkM1RkEwMDNBM0VENiAvKiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFS
ZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0RDczRjk0RDIxOEM0QTg3MDAzQTNFRDYgLyog
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
Ijsgd3JhcHNMaW5lcyA9IDA7IH07CiAJCTREN0VCM0Y0MjE3QzZBRTYwMEQ2NDg4OCAvKiBCbG9i
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvYkV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEQ5RjZCNjQyMTgyNTMyQjAwOTJBOUM1IC8qIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEQ5RjZCNjUyMTgyNTMyQjAwOTJBOUM1
IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgxNjUsMjUgKzE4MTU5LDEzIEBACiAJCTREM0I1MDEyMjE3RTU4QTMwMDY2NURCMSAvKiBtZWRp
YXJlY29yZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0RDNDMDVENDIxQUY0ODA5MDBGMjg5MEEgLyogY29jb2EgKi8sCiAJCQkJNEQzQjUwMTQyMTdF
NThCNzAwNjY1REIxIC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlLmggKi8sCi0JCQkJNEQ3M0Y5NDUy
MThCQzVGQTAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAgKi8sCi0J
CQkJNEQ3M0Y5NDQyMThCQzVGQTAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bC5oICovLAogCQkJCTREOUY2QjY1MjE4MjUzMkIwMDkyQTlDNSAvKiBNZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2suY3BwICovLAogCQkJCTREOUY2QjY0MjE4MjUzMkIwMDkyQTlDNSAvKiBNZWRpYVJl
Y29yZGVyUHJpdmF0ZU1vY2suaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWFyZWNvcmRlcjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTREM0MwNUQ0MjFBRjQ4MDkwMEYy
ODkwQSAvKiBjb2NvYSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJNEQ3M0Y5NEMyMThDNEE4NzAwM0EzRUQ2IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EuaCAqLywKLQkJCQk0RDczRjk0RDIxOEM0QTg3MDAzQTNFRDYgLyogTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gY29jb2E7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk1MTAzMTA0MjFCQThDNjRDMDAzMzI5
QzAgLyogY2xpZW50ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTMwMTUxLDggKzMwMTMzLDYgQEAKIAkJCQk0RDNCMDBBQjIxNUQ2OUE3MDA3NkI5ODMgLyog
TWVkaWFSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNERCNzEzMEQyMTZFQ0I0RDAwOTZB
NEREIC8qIE1lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RDNC
NTAxNjIxN0U1OEI3MDA2NjVEQjEgLyogTWVkaWFSZWNvcmRlclByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTRENzNGOTQ2MjE4QkM1RkEwMDNBM0VENiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0
ZUFWRkltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTRENzNGOTRFMjE4QzRBODcwMDNBM0VENiAv
KiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
OTA4NDNEMDFCMThFNDdEMDBCNjg1NjQgLyogTWVkaWFSZW1vdGVDb250cm9scy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0Q4QUNBOEYxRDIzOTcxOTAwRUNDNTlFIC8qIE1lZGlhUmVtb3RlU29mdExp
bmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRp
YVJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuaApp
bmRleCBiYmU4YTdiZjVkYWY5OTAzMTZkZTUyMGM0YjlkODBjYWI4YzQxNWVmLi43NWZiMDllMmE2
NTBlYjU4YzkwNTMyZGNkMmU5MDkxYmIzODc2MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CkBAIC0zNSwyMCArMzUsMTggQEAgY2xhc3MgTWVkaWFUaW1lOwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgQmxvYjsKK2NsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKLWNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwotY2xhc3MgU2hhcmVkQnVmZmVy
OwogCiBjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNh
bXBsZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpID0gMDsK
ICAgICAKLSAgICB2aXJ0dWFsIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZldGNoRGF0YSgpID0gMDsK
LSAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUoKSA9IDA7CisgICAgdmlydHVhbCBS
ZWY8QmxvYj4gZmV0Y2hEYXRhKCkgPSAwOwogICAgIHZpcnR1YWwgfk1lZGlhUmVjb3JkZXJQcml2
YXRlKCkgPSBkZWZhdWx0OwotICAgIHZpcnR1YWwgdm9pZCBzdG9wUmVjb3JkaW5nKCkgeyB9CiB9
OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjk1MjI4ODc2
MTdhNDlhMWQxYzg5NThjYzQwZGIyYjVkODc2NDMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEy
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJNZWRp
YVNhbXBsZS5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFt
UHJpdmF0ZSYgc3RyZWFtKQotewotICAgIGF1dG8gaW5zdGFuY2UgPSBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJ
bXBsKHN0cmVhbSkpOwotICAgIGlmICghaW5zdGFuY2UtPm1faXNXcml0ZXJSZWFkeSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGluc3RhbmNlOwotfQotCi1NZWRpYVJlY29y
ZGVyUHJpdmF0ZUFWRkltcGw6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbChjb25zdCBNZWRp
YVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKLXsKLSAgICBpZiAoIW1fd3JpdGVyLnNldHVwV3JpdGVy
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBhdXRvIHRyYWNrcyA9IHN0cmVhbS50cmFja3MoKTsK
LSAgICBib29sIHZpZGVvU2VsZWN0ZWQgPSBmYWxzZTsKLSAgICBib29sIGF1ZGlvU2VsZWN0ZWQg
PSBmYWxzZTsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKSB7Ci0gICAgICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKSB8fCB0cmFjay0+ZW5kZWQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBzd2l0Y2ggKHRyYWNrLT50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzogewotICAgICAgICAgICAgYXV0byYgc2V0dGluZ3Mg
PSB0cmFjay0+c2V0dGluZ3MoKTsKLSAgICAgICAgICAgIGlmICh2aWRlb1NlbGVjdGVkIHx8ICFz
ZXR0aW5ncy5zdXBwb3J0c1dpZHRoKCkgfHwgIXNldHRpbmdzLnN1cHBvcnRzSGVpZ2h0KCkpCi0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAvLyBGSVhNRTogd2Ugd2lsbCBuZWVk
IHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSB2aWRlbyB0cmFja3MsIGN1cnJlbnRs
eSB3ZSBvbmx5IGNob29zZSB0aGUgZmlyc3QgdHJhY2sgYXMgdGhlIHJlY29yZGVkIHRyYWNrLgot
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIHdvdWxkIGJldHRlciB0byB0aHJvdyBhbiBleGNlcHRp
b24gdG8gSmF2YVNjcmlwdCBpZiBzZXRWaWRlb0lucHV0IGZhaWxlZAotICAgICAgICAgICAgaWYg
KCFtX3dyaXRlci5zZXRWaWRlb0lucHV0KHNldHRpbmdzLndpZHRoKCksIHNldHRpbmdzLmhlaWdo
dCgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX3JlY29yZGVkVmlk
ZW9UcmFja0lEID0gdHJhY2stPmlkKCk7Ci0gICAgICAgICAgICB2aWRlb1NlbGVjdGVkID0gdHJ1
ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86IHsKLSAgICAgICAgICAgIGlmIChhdWRpb1NlbGVjdGVk
KQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgLy8gRklYTUU6IHdlIHdpbGwg
bmVlZCB0byBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXVkaW8gdHJhY2tzLCBjdXJy
ZW50bHkgd2Ugb25seSBjaG9vc2UgdGhlIGZpcnN0IHRyYWNrIGFzIHRoZSByZWNvcmRlZCB0cmFj
ay4KLSAgICAgICAgICAgIC8vIEZJWE1FOiB3ZSB3b3VsZCBiZXR0ZXIgdG8gdGhyb3cgYW4gZXhj
ZXB0aW9uIHRvIEphdmFTY3JpcHQgaWYgc2V0QXVkaW9JbnB1dCBmYWlsZWQKLSAgICAgICAgICAg
IGlmICghbV93cml0ZXIuc2V0QXVkaW9JbnB1dCgpKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIG1fcmVjb3JkZWRBdWRpb1RyYWNrSUQgPSB0cmFjay0+aWQoKTsKLSAgICAg
ICAgICAgIGF1ZGlvU2VsZWN0ZWQgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgbV9pc1dyaXRlclJlYWR5ID0gdHJ1
ZTsKLX0KLQotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBNZWRpYVNhbXBsZSYgc2FtcGxl
QnVmZmVyKQotewotICAgIGlmICh0cmFjay5pZCgpICE9IG1fcmVjb3JkZWRWaWRlb1RyYWNrSUQp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX3dyaXRlci5hcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihz
YW1wbGVCdWZmZXIucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwotfQot
Ci12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywgY29uc3QgV1RGOjpNZWRpYVRpbWUmIG1l
ZGlhVGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgaWYg
KHRyYWNrLmlkKCkgIT0gbV9yZWNvcmRlZEF1ZGlvVHJhY2tJRCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpKTsKLSAgICBBU1NFUlQoZGVz
Y3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlv
bjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7Ci0gICAgbV93cml0ZXIuYXBwZW5kQXVkaW9TYW1w
bGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwotfQot
Ci12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6c3RvcFJlY29yZGluZygpCi17Ci0g
ICAgbV93cml0ZXIuc3RvcFJlY29yZGluZygpOwotfQotCi1SZWZQdHI8U2hhcmVkQnVmZmVyPiBN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmZldGNoRGF0YSgpCi17Ci0gICAgcmV0dXJuIG1f
d3JpdGVyLmZldGNoRGF0YSgpOwotfQotCi1jb25zdCBTdHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbDo6bWltZVR5cGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25z
dCBTdHJpbmc+IG1wNE1pbWVUeXBlKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJ2aWRlby9tcDQi
KSk7Ci0gICAgLy8gRklYTUU6IHdlIHdpbGwgbmVlZCB0byBzdXBwb3J0IG1vcmUgTUlNRSB0eXBl
cy4KLSAgICByZXR1cm4gbXA0TWltZVR5cGU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJp
dmF0ZUFWRkltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY5MjNjMjQ3ZDZj
MjRmZTYwNGY3NzJkZWE2OGU1MDQ5OGUyMDI2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0KLSNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Ci0KLWNsYXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZG
SW1wbCBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJpdmF0ZSB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IGNyZWF0
ZShjb25zdCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJik7Ci0K
LSAgICB2b2lkIHNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBN
ZWRpYVNhbXBsZSYpIGZpbmFsOwotICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFs
OwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZldGNoRGF0YSgpIGZpbmFsOwotICAgIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUoKSBmaW5hbDsKLSAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKLSAg
ICAKLSAgICBTdHJpbmcgbV9yZWNvcmRlZFZpZGVvVHJhY2tJRDsKLSAgICBTdHJpbmcgbV9yZWNv
cmRlZEF1ZGlvVHJhY2tJRDsKLQotICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIG1fd3Jp
dGVyOwotICAgIAotICAgIGJvb2wgbV9pc1dyaXRlclJlYWR5IHsgZmFsc2UgfTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKaW5kZXggYzM0YTdhZmNkOWY0ZDc5OTI1
Y2I5MzEzODEwZjAyOTIwMDliMmE5OS4uYTRhOGJjYmQ4NjBiZDM2OTJjZTRiZTc2ZjUyMWM2Njkw
NDIwNzY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcApAQCAtMjgsOCAr
MjgsOCBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIkJsb2IuaCIK
ICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU2LDE5ICs1NiwxMyBAQCB2b2lk
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6Z2VuZXJhdGVNb2NrU3RyaW5nKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiB0cmFjawogICAgIG1fYnVmZmVyLmFwcGVuZCgiXHJcbi0tLS0tLS0tLVxy
XG4iKTsKIH0KIAotUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
OjpmZXRjaERhdGEoKQorUmVmPEJsb2I+IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jazo6ZmV0Y2hE
YXRhKCkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKG1fYnVmZmVyLmxlbmd0aCgpKTsKICAgICBtZW1jcHkodmFs
dWUuZGF0YSgpLCBtX2J1ZmZlci5jaGFyYWN0ZXJzOCgpLCBtX2J1ZmZlci5sZW5ndGgoKSk7CiAg
ICAgbV9idWZmZXIuY2xlYXIoKTsKLSAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoV1RG
TW92ZSh2YWx1ZSkpOwotfQotCi1jb25zdCBTdHJpbmcmIE1lZGlhUmVjb3JkZXJQcml2YXRlTW9j
azo6bWltZVR5cGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBTdHJpbmc+
IHRleHRQbGFpbk1pbWVUeXBlKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJ0ZXh0L3BsYWluIikp
OwotICAgIHJldHVybiB0ZXh0UGxhaW5NaW1lVHlwZTsKKyAgICByZXR1cm4gQmxvYjo6Y3JlYXRl
KFdURk1vdmUodmFsdWUpLCAidGV4dC9wbGFpbiIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suaAppbmRleCA2Y2E4MTczMTVmODcwYjRl
ODNhZWM3NjEyNTlmNTdiMDliYWI5N2E2Li40ZDlhZGI2MDM5MmU3YTllYmYxOTFlYTcxODA2MTZj
OWE4ZjAwNGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmgKQEAgLTMyLDE0ICsz
MiwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJsb2I7CiBjbGFzcyBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTsKIAotY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrIGZpbmFsIDogcHVibGljIE1lZGlhUmVjb3JkZXJQcml2YXRlIHsKK2NsYXNz
IE1lZGlhUmVjb3JkZXJQcml2YXRlTW9jayBmaW5hbCA6IHB1YmxpYyBNZWRpYVJlY29yZGVyUHJp
dmF0ZSB7CiBwcml2YXRlOgogICAgIHZvaWQgc2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJikgZmluYWw7CiAgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBXVEY6Ok1lZGlhVGlt
ZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHNpemVfdCkgZmluYWw7Ci0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZmV0Y2hEYXRhKCkg
ZmluYWw7Ci0gICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpIGZpbmFsOworICAgIFJlZjxCbG9i
PiBmZXRjaERhdGEoKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGdlbmVyYXRlTW9ja1N0cmluZyhN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiODc0Yjc1MjBmZGYxNDdhZDI2Mjc1NzdhOGY1MjIyNjcyMDlkYzBlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCisr
KyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
LSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4KLQotdHlwZWRlZiBzdHJ1
Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2FtcGxlQnVmZmVyUmVmOwotCi1PQkpDX0NMQVNT
IEFWQXNzZXRXcml0ZXI7Ci1PQkpDX0NMQVNTIEFWQXNzZXRXcml0ZXJJbnB1dDsKLQotbmFtZXNw
YWNlIFdURiB7Ci1jbGFzcyBNZWRpYVRpbWU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKLWNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwot
Ci1jbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlvblRocmVh
ZDo6TWFpbj4gewotcHVibGljOgotICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKCkgPSBk
ZWZhdWx0OwotICAgIAotICAgIGJvb2wgc2V0dXBXcml0ZXIoKTsKLSAgICBib29sIHNldFZpZGVv
SW5wdXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLSAgICBib29sIHNldEF1ZGlvSW5wdXQoKTsK
LSAgICB2b2lkIGFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmKTsKLSAg
ICB2b2lkIGFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6
ZV90KTsKLSAgICB2b2lkIHN0b3BSZWNvcmRpbmcoKTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmZXRjaERhdGEoKTsKLQotcHJpdmF0ZToKLSAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcj4g
bV93cml0ZXI7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRlb0lucHV0
OwotICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+IG1fYXVkaW9JbnB1dDsKLQotICAg
IFN0cmluZyBtX3BhdGg7Ci0gICAgTG9jayBtX3ZpZGVvTG9jazsKLSAgICBMb2NrIG1fYXVkaW9M
b2NrOwotICAgIEJpbmFyeVNlbWFwaG9yZSBtX2ZpbmlzaFdyaXRpbmdTZW1hcGhvcmU7Ci0gICAg
QmluYXJ5U2VtYXBob3JlIG1fZmluaXNoV3JpdGluZ0F1ZGlvU2VtYXBob3JlOwotICAgIEJpbmFy
eVNlbWFwaG9yZSBtX2ZpbmlzaFdyaXRpbmdWaWRlb1NlbWFwaG9yZTsKLSAgICBib29sIG1faGFz
U3RhcnRlZFdyaXRpbmcgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9pc0ZpcnN0QXVkaW9TYW1wbGUgeyB0cnVlIH07Ci0gICAgZGlzcGF0Y2hf
cXVldWVfdCBtX2F1ZGlvUHVsbFF1ZXVlOwotICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV92aWRlb1B1
bGxRdWV1ZTsKLSAgICBEZXF1ZTxSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+PiBtX3ZpZGVv
QnVmZmVyUG9vbDsKLSAgICBEZXF1ZTxSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+PiBtX2F1
ZGlvQnVmZmVyUG9vbDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkw
YWVlZTRjMmJiNWYzMWRjYzRmOTJkYjFlYjBhMTZhYzg4NDhjODMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyAv
ZGV2L251bGwKQEAgLTEsMjg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIgotCi0jaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2luY2x1ZGUgIkF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCi0jaW5jbHVk
ZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgotI2luY2x1ZGUg
PEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+Ci0jaW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FW
QXNzZXRXcml0ZXJJbnB1dC5oPgotI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5o
PgotCi10eXBlZGVmIEFWQXNzZXRXcml0ZXIgQVZBc3NldFdyaXRlclR5cGU7Ci10eXBlZGVmIEFW
QXNzZXRXcml0ZXJJbnB1dCBBVkFzc2V0V3JpdGVySW5wdXRUeXBlOwotCi1TT0ZUX0xJTktfRlJB
TUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKLQotU09GVF9MSU5LX0NMQVNTKEFWRm91bmRh
dGlvbiwgQVZBc3NldFdyaXRlcikKLVNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQXNz
ZXRXcml0ZXJJbnB1dCkKLQotU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZGaWxl
VHlwZU1QRUc0LCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwg
QVZWaWRlb0NvZGVjS2V5LCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRh
dGlvbiwgQVZWaWRlb0NvZGVjSDI2NCwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVChB
VkZvdW5kYXRpb24sIEFWVmlkZW9XaWR0aEtleSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05T
VEFOVChBVkZvdW5kYXRpb24sIEFWVmlkZW9IZWlnaHRLZXksIE5TU3RyaW5nICopCi1TT0ZUX0xJ
TktfQ09OU1RBTlQoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZVZpZGVvLCBOU1N0cmluZyAqKQot
U09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVBdWRpbywgTlNTdHJp
bmcgKikKLVNPRlRfTElOS19DT05TVEFOVChBVkZvdW5kYXRpb24sIEFWRW5jb2RlckJpdFJhdGVQ
ZXJDaGFubmVsS2V5LCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UKEFWRm91bmRhdGlv
biwgQVZGb3JtYXRJREtleSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVChBVkZvdW5k
YXRpb24sIEFWTnVtYmVyT2ZDaGFubmVsc0tleSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05T
VEFOVChBVkZvdW5kYXRpb24sIEFWU2FtcGxlUmF0ZUtleSwgTlNTdHJpbmcgKikKLQotI2RlZmlu
ZSBBVkZpbGVUeXBlTVBFRzQgZ2V0QVZGaWxlVHlwZU1QRUc0KCkKLSNkZWZpbmUgQVZNZWRpYVR5
cGVBdWRpbyBnZXRBVk1lZGlhVHlwZUF1ZGlvKCkKLSNkZWZpbmUgQVZNZWRpYVR5cGVWaWRlbyBn
ZXRBVk1lZGlhVHlwZVZpZGVvKCkKLSNkZWZpbmUgQVZWaWRlb0NvZGVjS2V5IGdldEFWVmlkZW9D
b2RlY0tleSgpCi0jZGVmaW5lIEFWVmlkZW9Db2RlY0gyNjQgZ2V0QVZWaWRlb0NvZGVjSDI2NCgp
Ci0jZGVmaW5lIEFWVmlkZW9XaWR0aEtleSBnZXRBVlZpZGVvV2lkdGhLZXkoKQotI2RlZmluZSBB
VlZpZGVvSGVpZ2h0S2V5IGdldEFWVmlkZW9IZWlnaHRLZXkoKQotI2RlZmluZSBBVkVuY29kZXJC
aXRSYXRlUGVyQ2hhbm5lbEtleSBnZXRBVkVuY29kZXJCaXRSYXRlUGVyQ2hhbm5lbEtleSgpCi0j
ZGVmaW5lIEFWRm9ybWF0SURLZXkgZ2V0QVZGb3JtYXRJREtleSgpCi0jZGVmaW5lIEFWTnVtYmVy
T2ZDaGFubmVsc0tleSBnZXRBVk51bWJlck9mQ2hhbm5lbHNLZXkoKQotI2RlZmluZSBBVlNhbXBs
ZVJhdGVLZXkgZ2V0QVZTYW1wbGVSYXRlS2V5KCkKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11
c2luZyBuYW1lc3BhY2UgUEFMOwotCi1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpz
ZXR1cFdyaXRlcigpCi17Ci0gICAgQVNTRVJUKCFtX3dyaXRlcik7Ci0gICAgCi0gICAgTlNTdHJp
bmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZp
ZGVvcyIpOwotICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2so
KSkudmFsdWVdOwotICAgIE5TU3RyaW5nICpwYXRoID0gW2RpcmVjdG9yeSBzdHJpbmdCeUFwcGVu
ZGluZ1N0cmluZzpmaWxlbmFtZV07Ci0KLSAgICBOU1VSTCAqb3V0cHV0VVJMID0gW05TVVJMIGZp
bGVVUkxXaXRoUGF0aDpwYXRoXTsKLSAgICBtX3BhdGggPSBbcGF0aCBVVEY4U3RyaW5nXTsKLSAg
ICBOU0Vycm9yICplcnJvciA9IG5pbDsKLSAgICBtX3dyaXRlciA9IGFkb3B0TlMoW2FsbG9jQVZB
c3NldFdyaXRlckluc3RhbmNlKCkgaW5pdFdpdGhVUkw6b3V0cHV0VVJMIGZpbGVUeXBlOkFWRmls
ZVR5cGVNUEVHNCBlcnJvcjomZXJyb3JdKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJjcmVhdGUgQVZBc3NldFdyaXRlciBpbnN0YW5j
ZSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlICVsZCIsIChsb25nKWVycm9yLmNvZGUpOwotICAgICAg
ICBtX3dyaXRlciA9IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnNldFZp
ZGVvSW5wdXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQotewotICAgIEFTU0VSVCghbV92aWRlb0lu
cHV0KTsKLQotICAgIE5TRGljdGlvbmFyeSAqdmlkZW9TZXR0aW5ncyA9IEB7IEFWVmlkZW9Db2Rl
Y0tleTogQVZWaWRlb0NvZGVjSDI2NCwgQVZWaWRlb1dpZHRoS2V5OiBbTlNOdW1iZXIgbnVtYmVy
V2l0aEludDp3aWR0aF0sIEFWVmlkZW9IZWlnaHRLZXk6IFtOU051bWJlciBudW1iZXJXaXRoSW50
OmhlaWdodF0gfTsKLSAgICBtX3ZpZGVvSW5wdXQgPSBhZG9wdE5TKFthbGxvY0FWQXNzZXRXcml0
ZXJJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhNZWRpYVR5cGU6QVZNZWRpYVR5cGVWaWRlbyBvdXRw
dXRTZXR0aW5nczp2aWRlb1NldHRpbmdzIHNvdXJjZUZvcm1hdEhpbnQ6bmlsXSk7Ci0gICAgW21f
dmlkZW9JbnB1dCBzZXRFeHBlY3RzTWVkaWFEYXRhSW5SZWFsVGltZTp0cnVlXTsKLSAgICAKLSAg
ICBpZiAoIVttX3dyaXRlciBjYW5BZGRJbnB1dDptX3ZpZGVvSW5wdXQuZ2V0KCldKSB7Ci0gICAg
ICAgIG1fdmlkZW9JbnB1dCA9IG51bGxwdHI7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAidGhlIHZpZGVvIGlucHV0IGlzIG5vdCBhbGxvd2VkIHRvIGFkZCB0byB0aGUg
QVZBc3NldFdyaXRlciIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFttX3dy
aXRlciBhZGRJbnB1dDptX3ZpZGVvSW5wdXQuZ2V0KCldOwotICAgIG1fdmlkZW9QdWxsUXVldWUg
PSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVWaWRlb1JlY29yZGluZ1B1bGxCdWZmZXJR
dWV1ZSIsIERJU1BBVENIX1FVRVVFX1NFUklBTCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJv
b2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnNldEF1ZGlvSW5wdXQoKQotewotICAgIEFT
U0VSVCghbV9hdWRpb0lucHV0KTsKLQotICAgIE5TRGljdGlvbmFyeSAqYXVkaW9TZXR0aW5ncyA9
IEB7IEFWRW5jb2RlckJpdFJhdGVQZXJDaGFubmVsS2V5IDogQCgyODAwMCksIEFWRm9ybWF0SURL
ZXkgOiBAKGtBdWRpb0Zvcm1hdE1QRUc0QUFDKSwgQVZOdW1iZXJPZkNoYW5uZWxzS2V5IDogQCgx
KSwgQVZTYW1wbGVSYXRlS2V5IDogQCgyMjA1MCkgfTsKLQotICAgIG1fYXVkaW9JbnB1dCA9IGFk
b3B0TlMoW2FsbG9jQVZBc3NldFdyaXRlcklucHV0SW5zdGFuY2UoKSBpbml0V2l0aE1lZGlhVHlw
ZTpBVk1lZGlhVHlwZUF1ZGlvIG91dHB1dFNldHRpbmdzOmF1ZGlvU2V0dGluZ3Mgc291cmNlRm9y
bWF0SGludDpuaWxdKTsKLSAgICBbbV9hdWRpb0lucHV0IHNldEV4cGVjdHNNZWRpYURhdGFJblJl
YWxUaW1lOnRydWVdOwotICAgIAotICAgIGlmICghW21fd3JpdGVyIGNhbkFkZElucHV0Om1fYXVk
aW9JbnB1dC5nZXQoKV0pIHsKLSAgICAgICAgbV9hdWRpb0lucHV0ID0gbnVsbHB0cjsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJ0aGUgYXVkaW8gaW5wdXQgaXMgbm90
IGFsbG93ZWQgdG8gYWRkIHRvIHRoZSBBVkFzc2V0V3JpdGVyIik7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgW21fd3JpdGVyIGFkZElucHV0Om1fYXVkaW9JbnB1dC5nZXQoKV07
Ci0gICAgbV9hdWRpb1B1bGxRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2ViQ29yZUF1
ZGlvUmVjb3JkaW5nUHVsbEJ1ZmZlclF1ZXVlIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGlubGluZSBDTVNhbXBsZUJ1ZmZlclJlZiBjb3B5
U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAoQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2lu
YWxCdWZmZXIpCi17Ci0gICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpOwotICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKLSAgICBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwg
bmlsLCAmY291bnQpOwotICAgIAotICAgIFZlY3RvcjxDTVNhbXBsZVRpbWluZ0luZm8+IHRpbWVJ
bmZvKGNvdW50KTsKLSAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShv
cmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJmNvdW50KTsKLSAgICAKLSAg
ICBmb3IgKENNSXRlbUNvdW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICB0aW1l
SW5mb1tpXS5kZWNvZGVUaW1lU3RhbXAgPSBrQ01UaW1lSW52YWxpZDsKLSAgICAgICAgdGltZUlu
Zm9baV0ucHJlc2VudGF0aW9uVGltZVN0YW1wID0gc3RhcnRUaW1lOwotICAgIH0KLSAgICAKLSAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBuZXdCdWZmZXI7Ci0gICAgQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291
bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcik7Ci0gICAgcmV0dXJuIG5ld0J1ZmZlcjsK
LX0KLQotdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVC
dWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQotewotICAgIEFTU0VSVChtX3Zp
ZGVvSW5wdXQpOwotICAgIGlmIChtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKCFtX2hhc1N0YXJ0ZWRXcml0aW5nKSB7Ci0gICAgICAgIGlmICghW21fd3JpdGVyIHN0YXJ0
V3JpdGluZ10pIHsKLSAgICAgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKLSAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiY3JlYXRlIEFWQXNzZXRXcml0ZXIgaW5z
dGFuY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGQiLCAobG9uZylbbV93cml0ZXIgZXJyb3Jd
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBbbV93cml0ZXIgc3Rh
cnRTZXNzaW9uQXRTb3VyY2VUaW1lOkNNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNs
b2NrKCkpXTsKLSAgICAgICAgbV9oYXNTdGFydGVkV3JpdGluZyA9IHRydWU7Ci0gICAgICAgIFJl
ZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gcHJvdGVjdGVkVGhpcyA9IHRoaXM7Ci0g
ICAgICAgIFttX3ZpZGVvSW5wdXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6bV92
aWRlb1B1bGxRdWV1ZSB1c2luZ0Jsb2NrOlt0aGlzLCBwcm90ZWN0ZWRUaGlzXSB7Ci0gICAgICAg
ICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgaWYgKCFbbV92aWRlb0lucHV0IGlzUmVhZHlGb3JN
b3JlTWVkaWFEYXRhXSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3ZpZGVvTG9jayk7Ci0gICAgICAgICAgICAgICAg
aWYgKG1fdmlkZW9CdWZmZXJQb29sLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgYXV0byBidWZmZXIgPSBtX3ZpZGVvQnVmZmVyUG9vbC50YWtl
Rmlyc3QoKTsKLSAgICAgICAgICAgICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKLSAgICAgICAg
ICAgICAgICBpZiAoIVttX3ZpZGVvSW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOmJ1ZmZlci5nZXQo
KV0pCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfSB3aGlsZSAodHJ1
ZSk7Ci0gICAgICAgICAgICBpZiAobV9pc1N0b3BwZWQgJiYgbV92aWRlb0J1ZmZlclBvb2wuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgW21fdmlkZW9JbnB1dCBtYXJrQXNGaW5pc2hlZF07
Ci0gICAgICAgICAgICAgICAgbV9maW5pc2hXcml0aW5nVmlkZW9TZW1hcGhvcmUuc2lnbmFsKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH1dOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZm
ZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwotICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV92aWRlb0xvY2spOwotICAgIG1fdmlkZW9CdWZmZXJQb29sLmFwcGVuZChyZXRh
aW5QdHIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lKSk7Ci19Ci0KLXZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29u
c3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgQVNTRVJUKG1f
YXVkaW9JbnB1dCk7Ci0gICAgaWYgKCghbV9oYXNTdGFydGVkV3JpdGluZyAmJiBtX3ZpZGVvSW5w
dXQpIHx8IG1faXNTdG9wcGVkKQotICAgICAgICByZXR1cm47Ci0gICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlQnVmZmVyOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0OwotICAg
IE9TU3RhdHVzIGVycm9yOwotICAgIGF1dG8mIGJhc2ljRGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLSAgICBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAmYmFzaWNEZXNjcmlwdGlvbiwgMCwg
TlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKG1faXNGaXJzdEF1ZGlvU2Ft
cGxlKSB7Ci0gICAgICAgIGlmICghbV92aWRlb0lucHV0KSB7Ci0gICAgICAgICAgICAvLyBhdWRp
by1vbmx5IHJlY29yZGluZy4KLSAgICAgICAgICAgIGlmICghW21fd3JpdGVyIHN0YXJ0V3JpdGlu
Z10pIHsKLSAgICAgICAgICAgICAgICBtX2lzU3RvcHBlZCA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgW21fd3JpdGVyIHN0YXJ0U2Vz
c2lvbkF0U291cmNlVGltZTpDTUNsb2NrR2V0VGltZShDTUNsb2NrR2V0SG9zdFRpbWVDbG9jaygp
KV07Ci0gICAgICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gdHJ1ZTsKLSAgICAgICAgfQot
ICAgICAgICBtX2lzRmlyc3RBdWRpb1NhbXBsZSA9IGZhbHNlOwotICAgICAgICBSZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IHByb3RlY3RlZFRoaXMgPSB0aGlzOwotICAgICAgICBb
bV9hdWRpb0lucHV0IHJlcXVlc3RNZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVlOm1fYXVkaW9QdWxs
UXVldWUgdXNpbmdCbG9jazpbdGhpcywgcHJvdGVjdGVkVGhpc10gewotICAgICAgICAgICAgZG8g
ewotICAgICAgICAgICAgICAgIGlmICghW21fYXVkaW9JbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlh
RGF0YV0pCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9hdWRpb0xvY2spOwotICAgICAgICAgICAgICAgIGlmIChtX2F1
ZGlvQnVmZmVyUG9vbC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gbV9hdWRpb0J1ZmZlclBvb2wudGFrZUZpcnN0KCk7
Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7Ci0gICAgICAgICAgICAgICAg
W21fYXVkaW9JbnB1dCBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVyLmdldCgpXTsKLSAgICAgICAg
ICAgIH0gd2hpbGUgKHRydWUpOwotICAgICAgICAgICAgaWYgKG1faXNTdG9wcGVkICYmIG1fYXVk
aW9CdWZmZXJQb29sLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIFttX2F1ZGlvSW5wdXQg
bWFya0FzRmluaXNoZWRdOwotICAgICAgICAgICAgICAgIG1fZmluaXNoV3JpdGluZ0F1ZGlvU2Vt
YXBob3JlLnNpZ25hbCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9XTsKLSAgICB9Ci0gICAg
Q01UaW1lIHN0YXJ0VGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2Nr
KCkpOwotCi0gICAgZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwg
Zm9ybWF0LCBzYW1wbGVDb3VudCwgc3RhcnRUaW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAg
ICBpZiAoZXJyb3IpCi0gICAgICAgIHJldHVybjsKLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3Qoc2FtcGxlQnVmZmVyLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9Mb2NrKTsKLSAgICBtX2F1ZGlvQnVm
ZmVyUG9vbC5hcHBlbmQocmV0YWluUHRyKHNhbXBsZUJ1ZmZlcikpOwotfQotCi12b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdG9wUmVjb3JkaW5nKCkKLXsKLSAgICBtX2lzU3RvcHBl
ZCA9IHRydWU7Ci0gICAgaWYgKCFtX2hhc1N0YXJ0ZWRXcml0aW5nKQotICAgICAgICByZXR1cm47
Ci0gICAgQVNTRVJUKFttX3dyaXRlciBzdGF0dXNdID09IEFWQXNzZXRXcml0ZXJTdGF0dXNXcml0
aW5nKTsKLSAgICBpZiAobV92aWRlb0lucHV0KQotICAgICAgICBtX2ZpbmlzaFdyaXRpbmdWaWRl
b1NlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICBpZiAobV9hdWRpb0lucHV0KQotICAgICAgICBtX2Zp
bmlzaFdyaXRpbmdBdWRpb1NlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICBbbV93cml0ZXIgZmluaXNo
V3JpdGluZ1dpdGhDb21wbGV0aW9uSGFuZGxlcjpeewotICAgICAgICBtX2lzU3RvcHBlZCA9IGZh
bHNlOwotICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2U7Ci0gICAgICAgIG1faXNG
aXJzdEF1ZGlvU2FtcGxlID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdmlkZW9JbnB1dCkgewotICAg
ICAgICAgICAgbV92aWRlb0lucHV0LmNsZWFyKCk7Ci0gICAgICAgICAgICBtX3ZpZGVvSW5wdXQg
PSBudWxscHRyOwotICAgICAgICAgICAgZGlzcGF0Y2hfcmVsZWFzZShtX3ZpZGVvUHVsbFF1ZXVl
KTsKLSAgICAgICAgfQotICAgICAgICBpZiAobV9hdWRpb0lucHV0KSB7Ci0gICAgICAgICAgICBt
X2F1ZGlvSW5wdXQuY2xlYXIoKTsKLSAgICAgICAgICAgIG1fYXVkaW9JbnB1dCA9IG51bGxwdHI7
Ci0gICAgICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fYXVkaW9QdWxsUXVldWUpOwotICAgICAg
ICB9Ci0gICAgICAgIG1fd3JpdGVyLmNsZWFyKCk7Ci0gICAgICAgIG1fd3JpdGVyID0gbnVsbHB0
cjsKLSAgICAgICAgbV9maW5pc2hXcml0aW5nU2VtYXBob3JlLnNpZ25hbCgpOwotICAgIH1dOwot
fQotCi1SZWZQdHI8U2hhcmVkQnVmZmVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6ZmV0
Y2hEYXRhKCkKLXsKLSAgICBpZiAoKG1fcGF0aC5pc0VtcHR5KCkgJiYgIW1faXNTdG9wcGVkKSB8
fCAhbV9oYXNTdGFydGVkV3JpdGluZykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgCi0g
ICAgbV9maW5pc2hXcml0aW5nU2VtYXBob3JlLndhaXQoKTsKLSAgICByZXR1cm4gU2hhcmVkQnVm
ZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUobV9wYXRoKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9V
TkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3Y2Y0NGZmNjkz
ZGFlNDAyMWRlNWNkMTE0N2I5MzgxNzQyNDhkY2YzLi43N2JmYzk4MjFhNWRjZjA1NDQwOGIyOGU3
MTBjMWIzYWRmMjM2NDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0y
MjgsOCArMjI4LDYgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSNpbmNs
dWRlICJNZWRpYVJlY29yZGVyLmgiCi0jaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVNb2Nr
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5oIgogI2VuZGlmCkBAIC01MTksMTAgKzUxNyw2IEBAIHZvaWQgSW50ZXJu
YWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAgICAgcGFnZS5zZXRGdWxs
c2NyZWVuQ29udHJvbHNIaWRkZW4oZmFsc2UpOwogCiAgICAgTWVkaWFFbmdpbmVDb25maWd1cmF0
aW9uRmFjdG9yeTo6ZGlzYWJsZU1vY2soKTsKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6c2V0Q3VzdG9tUHJpdmF0ZVJlY29yZGVyQ3JlYXRv
cihudWxscHRyKTsKLSNlbmRpZgogfQogCiBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCYg
ZG9jdW1lbnQpCkBAIC0xNDc5LDE2ICsxNDczLDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1vY2tN
ZWRpYUNhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgV2ViQ29yZTo6RGVw
cmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKGVuYWJs
ZWQpOwogfQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlPiBj
cmVhdGVSZWNvcmRlck1vY2tTb3VyY2UoKQotewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrPihuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrKTsK
LX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoKQot
ewotICAgIFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnNldEN1c3RvbVByaXZhdGVSZWNvcmRlckNy
ZWF0b3IoY3JlYXRlUmVjb3JkZXJNb2NrU291cmNlKTsKLX0KLQogI2VuZGlmCiAKIEV4Y2VwdGlv
bk9yPFJlZjxET01SZWN0Pj4gSW50ZXJuYWxzOjphYnNvbHV0ZUNhcmV0Qm91bmRzKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGM3YzllZWU5NzY5YzBhN2E0MTdkM2FmYTY4OTg3
NTMxY2QxZGJkN2EuLjhhZTM0NDNiYjEwYWRiZDUxZmEwMWNhNTI2MjMyMGJjMGU1YzhmMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTA3LDcgKzUwNyw2IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzZXRNb2NrTWVkaWFDYXB0dXJl
RGV2aWNlc0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRDdXN0b21Qcml2YXRlUmVjb3JkZXJD
cmVhdG9yKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCmluZGV4IGU5YWFkNThjYjg3NTQ5NDJiYzA2M2U4NDMwNTUzYmFmZjVj
ZjZhMDUuLjI3MTkzNDYxMTRiZDBjYmIxNmUwMTQ1MjA2MmYxZmU0ZjYyY2Y5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU3NSw3ICs1NzUsNiBAQCBlbnVtIENvbXBv
c2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
XSB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sZWFuIGVu
YWJsZWQpOwogICAgIFtDb25kaXRpb25hbD1XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQsIE1heVRo
cm93RXhjZXB0aW9uXSB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
RE9NU3RyaW5nIGRldmljZU5hbWUsIERPTVN0cmluZyBkZXZpY2VTdGF0ZSk7CiAgICAgW0NvbmRp
dGlvbmFsPU1FRElBX1NUUkVBTV0gdm9pZCBzZXRNb2NrTWVkaWFDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNXSB2b2lk
IHNldEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IoKTsKIAogICAgIFtDb25kaXRpb25hbD1X
RUJfUlRDXSB2b2lkIGVtdWxhdGVSVENQZWVyQ29ubmVjdGlvblBsYXRmb3JtRXZlbnQoUlRDUGVl
ckNvbm5lY3Rpb24gY29ubmVjdGlvbiwgRE9NU3RyaW5nIGFjdGlvbik7CiAgICAgW0NvbmRpdGlv
bmFsPVdFQl9SVENdIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeShET01TdHJp
bmcgdGVzdENhc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNjNDQzZDljNTY2NzE1MjllMDUzODM4ZDRkZDVlMzkxN2Yx
OTIyMmMuLmYyNmU1NjFiYzUyZjA3N2Y1MmMzMDkyZGFlNjY5MDJmY2NkMjZkMmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxOC0xMi0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzODg0NCwgcjIz
ODg0NiwgYW5kIHIyMzg4NzQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI0MTQKKworICAgICAgICBUaGUgbGF5b3V0IHRlc3RzIGFkZGVkIHdpdGgg
dGhpcyBjaGFuZ2UgYXJlIGZsYWt5LiAoUmVxdWVzdGVkCisgICAgICAgIGJ5IHJ5YW5oYWRkYWQg
b24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAi
SW1wbGVtZW50IG5vbi10aW1lc2xpY2UgbW9kZSBlbmNvZGluZyBmb3IgTWVkaWFSZWNvcmRlciIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjA2OQor
ICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjM4ODQ0CisKKyAgICAg
ICAgIkZpeCB0aGUgYnVpbGQiCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8yMzg4NDYKKworICAgICAgICAiRml4IE1lZGlhUmVjb3JkZXIgZmxha3kgdGVzdHMiCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTIzNzEKKyAg
ICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzODg3NAorCiAyMDE4LTEy
LTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlv
dXQgVGVzdCBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2UtdGltaW5nLXJlc29sdXRpb24uaHRtbCBp
cyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby1vbmx5LWRhdGFhdmFpbGFibGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LUFWLWF1ZGlvLW9ubHktZGF0YWF2YWlsYWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRhY2UyOWM2YzAwMmRhYTdmOTFhNzI1YzU4MmRkOWZmNDIzYzk2N2Eu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLW9ubHktZGF0
YWF2YWlsYWJsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQot
UEFTUyBNZWRpYVJlY29yZGVyIGNhbiBzdWNjZXNzZnVsbHkgcmVjb3JkIHRoZSBhdWRpbyBmb3Ig
YSBhdWRpby1vbmx5IHN0cmVhbSAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLW9ubHktZGF0YWF2YWlsYWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFW
LWF1ZGlvLW9ubHktZGF0YWF2YWlsYWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YjE3NWRhZjM1ZmVhZGVkZTljNjU4ODI0ZWY0Y2JkNDA0NjFlOWFmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby1vbmx5LWRhdGFhdmFpbGFibGUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLSAgICA8dGl0bGU+TWVkaWFSZWNvcmRlciBjYW4gc3VjY2Vzc2Z1bGx5IHJl
Y29yZCB0aGUgYXVkaW8gZm9yIGEgYXVkaW8tb25seSBzdHJlYW08L3RpdGxlPgotICAgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVyZS1yZWNv
cmQvTWVkaWFSZWNvcmRlci5odG1sI21lZGlhcmVjb3JkZXIiPgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxhdWRpbyBpZD0icGxheWVyIj4KLTwvYXVkaW8+Ci08c2NyaXB0PgotCi0gICAgY29uc3QgYWMg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7Ci0gICAgY29uc3Qgb3NjID0gYWMuY3JlYXRlT3Nj
aWxsYXRvcigpOwotICAgIGNvbnN0IGRlc3QgPSBhYy5jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0
aW9uKCk7Ci0gICAgY29uc3QgYXVkaW8gPSBkZXN0LnN0cmVhbTsKLSAgICBvc2MuY29ubmVjdChk
ZXN0KTsKLSAgICBjb25zdCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKGF1ZGlvKTsKLSAg
ICByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSAoYmxvYkV2ZW50KSA9PiB7Ci0gICAgICAgIGFz
c2VydF90cnVlKGJsb2JFdmVudCBpbnN0YW5jZW9mIEJsb2JFdmVudCwgJ3RoZSB0eXBlIG9mIGV2
ZW50IHNob3VsZCBiZSBCbG9iRXZlbnQnKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhibG9iRXZl
bnQudHlwZSwgJ2RhdGFhdmFpbGFibGUnLCAndGhlIGV2ZW50IHR5cGUgc2hvdWxkIGJlIGRhdGFh
dmFpbGFibGUnKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYmxvYkV2ZW50LmlzVHJ1c3RlZCwgJ2lz
VHJ1c3RlZCBzaG91bGQgYmUgdHJ1ZSB3aGVuIHRoZSBldmVudCBpcyBjcmVhdGVkIGJ5IEMrKycp
OwotICAgICAgICBhc3NlcnRfdHJ1ZShibG9iRXZlbnQuZGF0YSBpbnN0YW5jZW9mIEJsb2IsICd0
aGUgdHlwZSBvZiBkYXRhIHNob3VsZCBiZSBCbG9iJyk7Ci0gICAgICAgIGFzc2VydF90cnVlKGJs
b2JFdmVudC5kYXRhLnNpemUgPiAwLCAndGhlIGJsb2Igc2hvdWxkIGNvbnRhaW4gc29tZSBidWZm
ZXJzJyk7Ci0gICAgICAgIGNvbnN0IHBsYXllciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
bGF5ZXIiKTsKLSAgICAgICAgcGxheWVyLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJM
KGJsb2JFdmVudC5kYXRhKTsKLSAgICAgICAgcGxheWVyLm9uY2FucGxheSA9ICgpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGxheWVyLmR1cmF0aW9uLCAwLCAndGhlIGR1
cmF0aW9uIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMCcpOwotICAgICAgICAgICAgZG9uZSgpOwot
ICAgICAgICB9OwotICAgICAgICBwbGF5ZXIubG9hZCgpOwotICAgIH07Ci0KLSAgICByZWNvcmRl
ci5zdGFydCgpOwotICAgIG9zYy5zdGFydCgpOwotICAgIGFzc2VydF9lcXVhbHMocmVjb3JkZXIu
c3RhdGUsICdyZWNvcmRpbmcnLCAnTWVkaWFSZWNvcmRlciBoYXMgYmVlbiBzdGFydGVkIHN1Y2Nl
c3NmdWxseScpOwotICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICByZWNvcmRlci5zdG9w
KCk7Ci0gICAgICAgIG9zYy5zdG9wKCk7Ci0gICAgfSwgNTAwKTsKLQotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYt
YXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDcwOGMxMjg1Mjk4ZTUzNDViYzdjZjllZWY2ODE2Y2YwZjYyMTViMmIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFh
dmFpbGFibGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLQot
UEFTUyBNZWRpYVJlY29yZGVyIGNhbiBzdWNjZXNzZnVsbHkgcmVjb3JkIHRoZSB2aWRlbyBmb3Ig
YSBhdWRpby12aWRlbyBzdHJlYW0gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIt
QVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMTJmMjQxMjA2Y2ExNDJjMDdhODgzZDBlOWI3MTUzNDNhNjJiY2IwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxh
YmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5NZWRpYVJlY29yZGVyIGNhbiBzdWNjZXNzZnVs
bHkgcmVjb3JkIHRoZSB2aWRlbyBmb3IgYSBhdWRpby12aWRlbyBzdHJlYW08L3RpdGxlPgotICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21lZGlhY2FwdHVy
ZS1yZWNvcmQvTWVkaWFSZWNvcmRlci5odG1sI21lZGlhcmVjb3JkZXIiPgotICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uL2NvbW1vbi9jYW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgotICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vY29tbW9uL2NhbnZhcy10ZXN0cy5jc3MiPgotPC9oZWFk
PgotPGJvZHk+Ci08ZGl2PgotICAgIDx2aWRlbyBpZD0icGxheWVyIiBjb250cm9scz0idHJ1ZSI+
Ci0gICAgPC92aWRlbz4KLTwvZGl2PgotPGRpdj4KLSAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdp
ZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KLSAgICA8L2NhbnZhcz4KLSAgICA8Y2FudmFzIGlkPSJm
cmFtZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHN0eWxlPSJ2aXNpYmlsaXR5OnZpc2libGU7
IGRpc3BsYXk6YmxvY2siPgotICAgIDwvY2FudmFzPgotPC9kaXY+Ci08c2NyaXB0PgotICAgIHZh
ciBjb250ZXh0OwotICAgIHZhciBkcmF3U3RhcnRUaW1lOwotCi0gICAgZnVuY3Rpb24gY3JlYXRl
VmlkZW9TdHJlYW0oKSB7Ci0gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMiKTsKLSAgICAgICAgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcy
ZCcpOwotICAgICAgICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBkb1JlZEltYWdlRHJhdygpIHsKLSAgICAgICAgaWYgKGNvbnRleHQpIHsKLSAg
ICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gIiNmZjAwMDAiOwotICAgICAgICAgICAgY29u
dGV4dC5maWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7Ci0gICAgICAgICAgICBpZiAoRGF0ZS5ub3co
KSAtIGRyYXdTdGFydFRpbWUgPCAyMDAwKSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LnJlcXVl
c3RBbmltYXRpb25GcmFtZShkb1JlZEltYWdlRHJhdyk7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGRyYXdTdGFydFRpbWUgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAg
ICAgIGRvR3JlZW5JbWFnZURyYXcoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGRvR3JlZW5JbWFnZURyYXcoKSB7Ci0gICAgICAgIGlmIChjb250ZXh0
KSB7Ci0gICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICIjMDBmZjAwIjsKLSAgICAgICAg
ICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgMjAwLCAyMDApOwotICAgICAgICAgICAgaWYgKERh
dGUubm93KCkgLSBkcmF3U3RhcnRUaW1lIDwgMTAwMDApIHsKLSAgICAgICAgICAgICAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGRvR3JlZW5JbWFnZURyYXcpOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29uc3QgYWMgPSBuZXcgd2Via2l0QXVkaW9Db250
ZXh0KCk7Ci0gICAgY29uc3Qgb3NjID0gYWMuY3JlYXRlT3NjaWxsYXRvcigpOwotICAgIGNvbnN0
IGRlc3QgPSBhYy5jcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCk7Ci0gICAgY29uc3QgYXVk
aW8gPSBkZXN0LnN0cmVhbTsKLSAgICBvc2MuY29ubmVjdChkZXN0KTsKLQotICAgIGNvbnN0IHZp
ZGVvID0gY3JlYXRlVmlkZW9TdHJlYW0oKTsKLSAgICBhc3NlcnRfZXF1YWxzKHZpZGVvLmdldEF1
ZGlvVHJhY2tzKCkubGVuZ3RoLCAwLCAidmlkZW8gbWVkaWFzdHJlYW0gc3RhcnRzIHdpdGggbm8g
YXVkaW8gdHJhY2siKTsKLSAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoLCAxLCAiYXVkaW8gbWVkaWFzdHJlYW0gc3RhcnRzIHdpdGggb25lIGF1ZGlvIHRyYWNr
Iik7Ci0gICAgdmlkZW8uYWRkVHJhY2soYXVkaW8uZ2V0QXVkaW9UcmFja3MoKVswXSk7Ci0gICAg
YXNzZXJ0X2VxdWFscyh2aWRlby5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCwgMSwgInZpZGVvIG1l
ZGlhc3RyZWFtIHN0YXJ0cyB3aXRoIG9uZSBhdWRpbyB0cmFjayIpOwotICAgIGNvbnN0IHJlY29y
ZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOwotICAgIGxldCBtb2RlID0gMDsKLQotICAg
IHJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChibG9iRXZlbnQpID0+IHsKLSAgICAgICAgYXNz
ZXJ0X3RydWUoYmxvYkV2ZW50IGluc3RhbmNlb2YgQmxvYkV2ZW50LCAndGhlIHR5cGUgb2YgZXZl
bnQgc2hvdWxkIGJlIEJsb2JFdmVudCcpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJsb2JFdmVu
dC50eXBlLCAnZGF0YWF2YWlsYWJsZScsICd0aGUgZXZlbnQgdHlwZSBzaG91bGQgYmUgZGF0YWF2
YWlsYWJsZScpOwotICAgICAgICBhc3NlcnRfdHJ1ZShibG9iRXZlbnQuaXNUcnVzdGVkLCAnaXNU
cnVzdGVkIHNob3VsZCBiZSB0cnVlIHdoZW4gdGhlIGV2ZW50IGlzIGNyZWF0ZWQgYnkgQysrJyk7
Ci0gICAgICAgIGFzc2VydF90cnVlKGJsb2JFdmVudC5kYXRhIGluc3RhbmNlb2YgQmxvYiwgJ3Ro
ZSB0eXBlIG9mIGRhdGEgc2hvdWxkIGJlIEJsb2InKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYmxv
YkV2ZW50LmRhdGEuc2l6ZSA+IDAsICd0aGUgYmxvYiBzaG91bGQgY29udGFpbiBzb21lIGJ1ZmZl
cnMnKTsKLSAgICAgICAgcGxheWVyLnNyYyA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJs
b2JFdmVudC5kYXRhKTsKLSAgICAgICAgY29uc3QgcmVzRnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZnJhbWUiKTsKLSAgICAgICAgY29uc3QgcmVzQ29udGV4dCA9IHJlc0ZyYW1lLmdl
dENvbnRleHQoJzJkJyk7Ci0gICAgICAgIHBsYXllci5vbmNhbnBsYXkgPSAoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHBsYXllci5kdXJhdGlvbiwgMC4xLCAndGhlIGR1
cmF0aW9uIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gMTAwbXMnKTsKLSAgICAgICAgICAgIHBsYXll
ci5wbGF5KCk7Ci0gICAgICAgIH07Ci0gICAgICAgIHBsYXllci5vbnBsYXkgPSAoKSA9PiB7Ci0g
ICAgICAgICAgICBpZiAobW9kZSA9PT0gMikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBwbGF5ZXIucGF1c2UoKTsKLSAgICAgICAgICAgIHBsYXllci5jdXJyZW50VGltZSA9
IDE7Ci0gICAgICAgIH07Ci0gICAgICAgIHBsYXllci5vbnNlZWtlZCA9ICgpID0+IHsKLSAgICAg
ICAgICAgIHJlc0NvbnRleHQuZHJhd0ltYWdlKHBsYXllciwgMCwgMCk7Ci0gICAgICAgICAgICBp
ZiAoIW1vZGUpIHsKLSAgICAgICAgICAgICAgICBfYXNzZXJ0UGl4ZWxBcHByb3gocmVzRnJhbWUs
IDIwLCAyMCwgMjU1LCAwLCAwLCAyNTUsICIyMCwgMjAiLCAiMjU1LCAwLCAwLCAyNTUiLCA1MCk7
Ci0gICAgICAgICAgICAgICAgX2Fzc2VydFBpeGVsQXBwcm94KHJlc0ZyYW1lLCA1MCwgNTAsIDI1
NSwgMCwgMCwgMjU1LCAiNTAsIDUwIiwgIjI1NSwgMCwgMCwgMjU1IiwgNTApOwotICAgICAgICAg
ICAgICAgIG1vZGUgPSAxOwotICAgICAgICAgICAgICAgIHBsYXllci5jdXJyZW50VGltZSA9IDM7
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09IDEpIHsKLSAgICAgICAgICAgICAgICBf
YXNzZXJ0UGl4ZWxBcHByb3gocmVzRnJhbWUsIDIxLCAyMSwgMCwgMjU1LCAwLCAyNTUsICIyMSwg
MjEiLCAiMCwgMjU1LCAwLCAyNTUiLCA1MCk7Ci0gICAgICAgICAgICAgICAgX2Fzc2VydFBpeGVs
QXBwcm94KHJlc0ZyYW1lLCA1MSwgNTEsIDAsIDI1NSwgMCwgMjU1LCAiNTEsIDUxIiwgIjAsIDI1
NSwgMCwgMjU1IiwgNTApOwotICAgICAgICAgICAgICAgIG1vZGUgPTI7Ci0gICAgICAgICAgICAg
ICAgZG9uZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBwbGF5ZXIubG9h
ZCgpOwotICAgIH07Ci0gICAgcmVjb3JkZXIuc3RhcnQoKTsKLSAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZGVyLnN0YXRlLCAncmVjb3JkaW5nJywgJ01lZGlhUmVjb3JkZXIgaGFzIGJlZW4gc3RhcnRl
ZCBzdWNjZXNzZnVsbHknKTsKLSAgICBkcmF3U3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKLSAgICBk
b1JlZEltYWdlRHJhdygpOwotICAgIG9zYy5zdGFydCgpOwotICAgIHNldFRpbWVvdXQoKCkgPT4g
ewotICAgICAgICByZWNvcmRlci5zdG9wKCk7Ci0gICAgfSwgNDAwMCk7Ci0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLXZpZGVvLW9ubHktZGF0YWF2YWlsYWJsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIt
QVYtdmlkZW8tb25seS1kYXRhYXZhaWxhYmxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDY5YTdiZTc0ZTFiMmUwZmIxNWFkZjQzNGU4MzY4YTdhMjFjMDcwNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtdmlkZW8tb25seS1kYXRh
YXZhaWxhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi0K
LVBBU1MgTWVkaWFSZWNvcmRlciBjYW4gc3VjY2Vzc2Z1bGx5IHJlY29yZCB0aGUgdmlkZW8gZm9y
IGEgdmlkZW8tb25seSBzdHJlYW0gCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi12aWRlby1vbmx5LWRhdGFhdmFpbGFibGUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1B
Vi12aWRlby1vbmx5LWRhdGFhdmFpbGFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmI2OGM3YmEyMzEzNmQ4NjM3NjVkZWRlMDBkNmIwNWRiMDRjYzY2Yi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtdmlkZW8tb25seS1kYXRhYXZhaWxhYmxl
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5NZWRpYVJlY29yZGVyIGNhbiBzdWNjZXNzZnVsbHkg
cmVjb3JkIHRoZSB2aWRlbyBmb3IgYSB2aWRlby1vbmx5IHN0cmVhbTwvdGl0bGU+Ci0gICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vbWVkaWFjYXB0dXJlLXJl
Y29yZC9NZWRpYVJlY29yZGVyLmh0bWwjbWVkaWFyZWNvcmRlciI+Ci0gICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iLi4vY29tbW9uL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9jb21tb24vY2FudmFzLXRlc3RzLmNzcyI+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxkaXY+Ci0gICAgPHZpZGVvIGlkPSJwbGF5ZXIiIGNvbnRyb2xzPXRydWU+Ci0gICAg
PC92aWRlbz4KLTwvZGl2PgotPGRpdj4KLSAgICA8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIy
MDAiIGhlaWdodD0iMjAwIj4KLSAgICA8L2NhbnZhcz4KLSAgICA8Y2FudmFzIGlkPSJmcmFtZSIg
d2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHN0eWxlPSJ2aXNpYmlsaXR5OnZpc2libGU7IGRpc3Bs
YXk6YmxvY2siPgotICAgIDwvY2FudmFzPgotPC9kaXY+Ci08c2NyaXB0PgotICAgIHZhciBjb250
ZXh0OwotICAgIHZhciBkcmF3U3RhcnRUaW1lOwotCi0gICAgZnVuY3Rpb24gY3JlYXRlVmlkZW9T
dHJlYW0oKSB7Ci0gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjYW52YXMiKTsKLSAgICAgICAgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwot
ICAgICAgICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBkb1JlZEltYWdlRHJhdygpIHsKLSAgICAgICAgaWYgKGNvbnRleHQpIHsKLSAgICAgICAg
ICAgIGNvbnRleHQuZmlsbFN0eWxlID0gIiNmZjAwMDAiOwotICAgICAgICAgICAgY29udGV4dC5m
aWxsUmVjdCgwLCAwLCAyMDAsIDIwMCk7Ci0gICAgICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGRy
YXdTdGFydFRpbWUgPCAyMDAwKSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmlt
YXRpb25GcmFtZShkb1JlZEltYWdlRHJhdyk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGRyYXdTdGFydFRpbWUgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgICAgIGRv
R3JlZW5JbWFnZURyYXcoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGRvR3JlZW5JbWFnZURyYXcoKSB7Ci0gICAgICAgIGlmIChjb250ZXh0KSB7Ci0g
ICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICIjMDBmZjAwIjsKLSAgICAgICAgICAgIGNv
bnRleHQuZmlsbFJlY3QoMCwgMCwgMjAwLCAyMDApOwotICAgICAgICAgICAgaWYgKERhdGUubm93
KCkgLSBkcmF3U3RhcnRUaW1lIDwgMTAwMDApIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cucmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGRvR3JlZW5JbWFnZURyYXcpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgY29uc3QgdmlkZW8gPSBjcmVhdGVWaWRlb1N0cmVhbSgpOwot
ICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOwotICAgIGxldCBt
b2RlID0gMDsKLSAgICByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSAoYmxvYkV2ZW50KSA9PiB7
Ci0gICAgICAgIGFzc2VydF90cnVlKGJsb2JFdmVudCBpbnN0YW5jZW9mIEJsb2JFdmVudCwgJ3Ro
ZSB0eXBlIG9mIGV2ZW50IHNob3VsZCBiZSBCbG9iRXZlbnQnKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhibG9iRXZlbnQudHlwZSwgJ2RhdGFhdmFpbGFibGUnLCAndGhlIGV2ZW50IHR5cGUgc2hv
dWxkIGJlIGRhdGFhdmFpbGFibGUnKTsKLSAgICAgICAgYXNzZXJ0X3RydWUoYmxvYkV2ZW50Lmlz
VHJ1c3RlZCwgJ2lzVHJ1c3RlZCBzaG91bGQgYmUgdHJ1ZSB3aGVuIHRoZSBldmVudCBpcyBjcmVh
dGVkIGJ5IEMrKycpOwotICAgICAgICBhc3NlcnRfdHJ1ZShibG9iRXZlbnQuZGF0YSBpbnN0YW5j
ZW9mIEJsb2IsICd0aGUgdHlwZSBvZiBkYXRhIHNob3VsZCBiZSBCbG9iJyk7Ci0gICAgICAgIGFz
c2VydF90cnVlKGJsb2JFdmVudC5kYXRhLnNpemUgPiAwLCAndGhlIGJsb2Igc2hvdWxkIGNvbnRh
aW4gc29tZSBidWZmZXJzJyk7Ci0gICAgICAgIHBsYXllci5zcmMgPSB3aW5kb3cuVVJMLmNyZWF0
ZU9iamVjdFVSTChibG9iRXZlbnQuZGF0YSk7Ci0gICAgICAgIGNvbnN0IHJlc0ZyYW1lID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIik7Ci0gICAgICAgIGNvbnN0IHJlc0NvbnRleHQg
PSByZXNGcmFtZS5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICBwbGF5ZXIub25jYW5wbGF5ID0g
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihwbGF5ZXIuZHVyYXRpb24s
IDAuMSwgJ3RoZSBkdXJhdGlvbiBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIDEwMG1zJyk7Ci0gICAg
ICAgICAgICBwbGF5ZXIucGxheSgpOwotICAgICAgICB9OwotICAgICAgICBwbGF5ZXIub25wbGF5
ID0gKCkgPT4gewotICAgICAgICAgICAgaWYgKG1vZGUgPT09IDIpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgcGxheWVyLnBhdXNlKCk7Ci0gICAgICAgICAgICBwbGF5ZXIu
Y3VycmVudFRpbWUgPSAxOwotICAgICAgICB9OwotICAgICAgICBwbGF5ZXIub25zZWVrZWQgPSAo
KSA9PiB7Ci0gICAgICAgICAgICByZXNDb250ZXh0LmRyYXdJbWFnZShwbGF5ZXIsIDAsIDApOwot
ICAgICAgICAgICAgaWYgKCFtb2RlKSB7Ci0gICAgICAgICAgICAgICAgX2Fzc2VydFBpeGVsQXBw
cm94KHJlc0ZyYW1lLCAyMCwgMjAsIDI1NSwgMCwgMCwgMjU1LCAiMjAsMiAwIiwgIjI1NSwgMCwg
MCwgMjU1IiwgNTApOwotICAgICAgICAgICAgICAgIF9hc3NlcnRQaXhlbEFwcHJveChyZXNGcmFt
ZSwgNTAsIDUwLCAyNTUsIDAsIDAsIDI1NSwgIjUwLCA1MCIsICIyNTUsIDAsIDAsIDI1NSIsIDUw
KTsKLSAgICAgICAgICAgICAgICBtb2RlID0gMTsKLSAgICAgICAgICAgICAgICBwbGF5ZXIuY3Vy
cmVudFRpbWUgPSAzOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAxKXsKLSAgICAg
ICAgICAgICAgICBfYXNzZXJ0UGl4ZWxBcHByb3gocmVzRnJhbWUsIDIxLCAyMSwgMCwgMjU1LCAw
LCAyNTUsICIyMSwgMjEiLCAiMCwgMjU1LCAwLCAyNTUiLCA1MCk7Ci0gICAgICAgICAgICAgICAg
X2Fzc2VydFBpeGVsQXBwcm94KHJlc0ZyYW1lLCA1MSwgNTEsIDAsIDI1NSwgMCwgMjU1LCAiNTEs
IDUxIiwgIjAsIDI1NSwgMCwgMjU1IiwgNTApOwotICAgICAgICAgICAgICAgIG1vZGUgPSAyOwot
ICAgICAgICAgICAgICAgIGRvbmUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAg
ICAgcGxheWVyLmxvYWQoKTsKLSAgICB9OwotICAgIHJlY29yZGVyLnN0YXJ0KCk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhyZWNvcmRlci5zdGF0ZSwgJ3JlY29yZGluZycsICdNZWRpYVJlY29yZGVyIGhh
cyBiZWVuIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5Jyk7Ci0gICAgZHJhd1N0YXJ0VGltZSA9IERhdGUu
bm93KCk7Ci0gICAgZG9SZWRJbWFnZURyYXcoKTsKLSAgICBzZXRUaW1lb3V0KCgpID0+IHsKLSAg
ICAgICAgcmVjb3JkZXIuc3RvcCgpOwotICAgIH0sIDQwMDApOwotCi08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci1kYXRhYXZhaWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItZGF0YWF2YWlsYWJsZS5odG1sCmluZGV4IDRh
YzNkNmQ1MGJmMTdiNjgyZjQ5MzJiYjBlYTNhYWFmZWVmYzkwM2YuLmJkY2E3ZjdhNDBhMTM3YzE4
ZmI3MDUyMzBhY2ZmYmQyNGU5MzVhYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1kYXRhYXZhaWxhYmxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLWRhdGFhdmFpbGFi
bGUuaHRtbApAQCAtMTIsOSArMTIsNiBAQAogPHNjcmlwdD4KICAgICB2YXIgY29udGV4dDsKIAot
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0Q3VzdG9tUHJp
dmF0ZVJlY29yZGVyQ3JlYXRvcigpOwotCiAgICAgZnVuY3Rpb24gY3JlYXRlVmlkZW9TdHJlYW0o
KSB7CiAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52
YXMiKTsKICAgICAgICAgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwpAQCAtNDcs
NyArNDQsNyBAQAogICAgICAgICBkcmF3U29tZXRoaW5nT25DYW52YXMoKTsKICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICByZWNvcmRlci5zdG9wKCk7Ci0gICAgICAgIH0s
IDEwMDApCisgICAgICAgIH0sIDIwMDApCiAgICAgfSwgJ01lZGlhUmVjb3JkZXIgd2lsbCBmaXJl
IGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aXRoIGEgYmxvYiBkYXRhIGZvciBhIHZpZGVvLW9ubHkg
c3RyZWFtIHdoZW4gc3RvcCgpIGlzIGNhbGxlZCcpOwogCiAgICAgYXN5bmNfdGVzdCh0ID0+IHsK
QEAgLTY4LDcgKzY1LDcgQEAKICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAg
ICByZWNvcmRlci5zdG9wKCk7CiAgICAgICAgICAgICBvc2Muc3RvcCgpOwotICAgICAgICB9LCAx
MDAwKTsKKyAgICAgICAgfSwgMjAwMCk7CiAgICAgfSwgJ01lZGlhUmVjb3JkZXIgd2lsbCBmaXJl
IGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aXRoIGEgYmxvYiBkYXRhIGZvciBhIGF1ZGlvLW9ubHkg
c3RyZWFtIHdoZW4gc3RvcCgpIGlzIGNhbGxlZCcpOwogCiAgICAgYXN5bmNfdGVzdCh0ID0+IHsK
QEAgLTk2LDcgKzkzLDcgQEAKICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAg
ICByZWNvcmRlci5zdG9wKCk7CiAgICAgICAgICAgICBvc2Muc3RvcCgpOwotICAgICAgICB9LCAx
MDAwKTsKKyAgICAgICAgfSwgMjAwMCk7CiAgICAgfSwgJ01lZGlhUmVjb3JkZXIgd2lsbCBmaXJl
IGEgZGF0YWF2YWlsYWJsZSBldmVudCB3aXRoIGEgYmxvYiBkYXRhIGZvciBhIHZpZGVvLWF1ZGlv
IHN0cmVhbSB3aGVuIHN0b3AoKSBpcyBjYWxsZWQnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItbW9jay1k
YXRhYXZhaWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXItbW9jay1kYXRhYXZhaWxhYmxlLmh0bWwKaW5kZXggNDNlZTQ4ODc1MmE0YmI0
NmUzNjQ2NGI0YjA0OGM0YjY0ZjNlOTc2Ni4uMTI4NmI4YmRlNDA5NGZkNDQwMzdmODlkYzU2N2Yz
NWE3NjA1ZTA1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLW1vY2stZGF0YWF2YWlsYWJsZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1tb2NrLWRhdGFhdmFpbGFibGUu
aHRtbApAQCAtMTIsOSArMTIsNiBAQAogPHNjcmlwdD4KICAgICB2YXIgY29udGV4dDsKIAotICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0Q3VzdG9tUHJpdmF0
ZVJlY29yZGVyQ3JlYXRvcigpOwotCiAgICAgZnVuY3Rpb24gY3JlYXRlVmlkZW9TdHJlYW0oKSB7
CiAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMi
KTsKICAgICAgICAgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwpAQCAtNDQsNyAr
NDEsNyBAQAogICAgICAgICBkcmF3U29tZXRoaW5nT25DYW52YXMoKTsKICAgICAgICAgc2V0VGlt
ZW91dCgoKSA9PiB7CiAgICAgICAgICAgICByZWNvcmRlci5zdG9wKCk7Ci0gICAgICAgIH0sIDEw
MDApOworICAgICAgICB9LCAyMDAwKTsKICAgICB9LCAnTWVkaWFSZWNvcmRlciB3aWxsIGZpcmUg
YSBkYXRhYXZhaWxhYmxlIGV2ZW50IHdoaWNoIG9ubHkgY29udGFpbnMgdmlkZW8gYnVmZmVycyBm
b3IgYSB2aWRlby1vbmx5IHN0cmVhbSB3aGVuIHN0b3AoKSBpcyBjYWxsZWQnKTsKIAogICAgIGFz
eW5jX3Rlc3QodCA9PiB7CkBAIC03MCw3ICs2Nyw3IEBACiAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4gewogICAgICAgICAgICAgcmVjb3JkZXIuc3RvcCgpOwogICAgICAgICAgICAgb3NjLnN0b3Ao
KTsKLSAgICAgICAgfSwgMTAwMCk7CisgICAgICAgIH0sIDIwMDApOwogICAgIH0sICdNZWRpYVJl
Y29yZGVyIHdpbGwgZmlyZSBhIGRhdGFhdmFpbGFibGUgZXZlbnQgd2hpY2ggb25seSBjb250YWlu
cyBhdWRpbyBidWZmZXJzIGZvciBhIGF1ZGlvLW9ubHkgc3RyZWFtIHdoZW4gc3RvcCgpIGlzIGNh
bGxlZCcpOwogCiAgICAgYXN5bmNfdGVzdCh0ID0+IHsKQEAgLTEwMyw3ICsxMDAsNyBAQAogICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgIHJlY29yZGVyLnN0b3AoKTsKICAg
ICAgICAgICAgIG9zYy5zdG9wKCk7Ci0gICAgICAgIH0sIDEwMDApOworICAgICAgICB9LCAyMDAw
KTsKICAgICB9LCAnTWVkaWFSZWNvcmRlciB3aWxsIGZpcmUgYSBkYXRhYXZhaWxhYmxlIGV2ZW50
IHdoaWNoIG9ubHkgY29udGFpbnMgYm90aCB2aWRlbyBhbmQgYXVkaW8gYnVmZmVycyB3aGVuIHN0
b3AoKSBpcyBjYWxsZWQnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDM2ODhlM2NkNWEzNWI1MzZhYzZhYWZiMTBiNmY1YzFmMWI2
ZTNlM2IuLmFjMWMwZDI0OWQ1ZDEwNWQyYzFlODNkNjYyZWQ1NWE1ZGM3MjE3YWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC01OTksOSArNTk5LDYgQEAg
d2Via2l0Lm9yZy9iLzE4NjkzMyB3ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9wbGF5
Lmh0bWwKIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvIFsgU2tpcCBd
CiBodHRwL3Rlc3RzL3dlYnJ0YyBbIFNraXAgXQotCi1odHRwL3dwdC9tZWRpYXJlY29yZGVyIFsg
U2tpcCBdCi0KICMgVGhlIE1lZGlhU3RyZWFtIGltcGxlbWVudGF0aW9uIGlzIGFsc28gc3RpbGwg
bm90IGNvbXBsZXRlZAogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbW9jay1t
ZWRpYS1zb3VyY2Utd2ViYXVkaW8uaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzc5MjAz
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgWyBGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWM3MGE4MmI3
ZDY1YmYwMWFmZTU1YjVhZDUwYWYxZGZlYWJmNGNhYy4uYTJkZjVlMmNlOTAyZGNjNjU0NDlkZjhm
MTdjZTAzY2NlMjViOTU2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTQ5NCw4ICs0OTQsNiBAQCBodHRwL3Rlc3RzL3dlYnJ0YyBbIFNraXAgXQogaHR0
cC90ZXN0cy93ZWJzb2NrZXQgWyBTa2lwIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QgWyBT
a2lwIF0KIAotaHR0cC93cHQvbWVkaWFyZWNvcmRlciBbIFNraXAgXQotCiAjIFNlcnZpY2Utd29y
a2VycyB0ZXN0cyB0aGF0IGZhaWwsIHRpbWUgb3V0IG9yIGNyYXNoLgogd2Via2l0Lm9yZy9iLzE3
NTQxOSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jb250cm9sbGVyLWNoYW5nZS5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMTc1NDE5IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL25v
LXBhZ2UtY2FjaGUtd2hlbi1jb250cm9sbGVkLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>