<?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>189263</bug_id>
          
          <creation_ts>2018-09-04 10:24:26 -0700</creation_ts>
          <short_desc>Add process pool configuration flag to turn on automatic process pre-warming</short_desc>
          <delta_ts>2018-09-04 13:47:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1456359</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-04 10:24:26 -0700</bug_when>
    <thetext>Add process pool configuration flag to turn on automatic process pre-warming and disassociate it from the warmInitialProcess() SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456360</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-04 10:24:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/44101941&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456401</commentid>
    <comment_count>2</comment_count>
      <attachid>348835</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-04 11:51:28 -0700</bug_when>
    <thetext>Created attachment 348835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456440</commentid>
    <comment_count>3</comment_count>
      <attachid>348835</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-04 13:47:28 -0700</bug_when>
    <thetext>Comment on attachment 348835
Patch

Clearing flags on attachment: 348835

Committed r235632: &lt;https://trac.webkit.org/changeset/235632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456441</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-04 13:47:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348835</attachid>
            <date>2018-09-04 11:51:28 -0700</date>
            <delta_ts>2018-09-04 13:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189263-20180904115127.patch</filename>
            <type>text/plain</type>
            <size>53118</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZjMDNhNTY1MWMyNjBjYWNm
MDAwOTNhOTljNWEyYWM4ZjBjNzUzNDMuLmIzNWQ3NWY0YmRiYmRmZDIzYThlMTJlMmI4YjQ5ZmI5
MzU2YTFmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTgtMDktMDQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJvY2VzcyBwb29sIGNvbmZp
Z3VyYXRpb24gZmxhZyB0byB0dXJuIG9uIGF1dG9tYXRpYyBwcm9jZXNzIHByZS13YXJtaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkyNjMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ0MTAxOTQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwcm9jZXNzIHBvb2wgY29uZmlndXJhdGlvbiBm
bGFnIHRvIHR1cm4gb24gYXV0b21hdGljIHByb2Nlc3MgcHJlLXdhcm1pbmcgYW5kIGRpc2Fzc29j
aWF0ZQorICAgICAgICBpdCBmcm9tIHRoZSB3YXJtSW5pdGlhbFByb2Nlc3MoKSBTUEkuCisKKyAg
ICAgICAgRm9yIG5vdywgdHVybmluZyBvbiAicHJvY2VzcyBzd2FwIG9uIG5hdmlnYXRpb24iIHZp
YSBleHBlcmltZW50YWwgZmVhdHVyZXMgYWxzbyB0dXJucyBvbgorICAgICAgICBhdXRvbWF0aWMg
cHJvY2VzcyBwcmUtd2FybWluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOjpjb3B5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgor
ICAgICAgICAoV0tDb250ZXh0U2V0UHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5KToKKyAg
ICAgICAgKFdLQ29udGV4dFdhcm1Jbml0aWFsUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3dhcm1Jbml0aWFs
UHJvY2Vzc10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9oYXNQcmV3YXJtZWRXZWJQcm9j
ZXNzXSk6CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudElnbm9yaW5n
UHJld2FybWVkXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiBzZXRQcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHk6XSk6CisgICAgICAgICgtW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBwcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHld
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OlNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzZXRNYXhpbXVtTnVtYmVyT2ZQcm9jZXNz
ZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0cnlUYWtlUHJld2FybWVkUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcmV3YXJtUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpZFJlYWNoR29vZFRpbWVUb1ByZXdhcm0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6c2VuZFRvT25lUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjptX2lzSW5QcmV3YXJtZWRQb29sKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIwMTgtMDgtMzEgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBh
Y2Nlc3MgdGhyb3VnaCBzYW1lLXNpdGUgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
aW5kZXggOGI0OTkxYTg3YWRjNjVlOWIxOTRlMDU4NDcxZmIyY2JhM2RlYTQ4Mi4uYzExM2VkODMx
ZTY1MmMzNWY1MWRkZTQ1NTQyODQ1OWJkODc1ZGI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
QEAgLTg5LDcgKzg5LDYgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOjpjb3B5KCkKIAogICAgIGNvcHktPm1fc2hvdWxkSGF2ZUxlZ2FjeURh
dGFTdG9yZSA9IHRoaXMtPm1fc2hvdWxkSGF2ZUxlZ2FjeURhdGFTdG9yZTsKICAgICBjb3B5LT5t
X21heGltdW1Qcm9jZXNzQ291bnQgPSB0aGlzLT5tX21heGltdW1Qcm9jZXNzQ291bnQ7Ci0gICAg
Y29weS0+bV9tYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50ID0gdGhpcy0+bV9tYXhpbXVtUHJl
d2FybWVkUHJvY2Vzc0NvdW50OwogICAgIGNvcHktPm1fY2FjaGVNb2RlbCA9IHRoaXMtPm1fY2Fj
aGVNb2RlbDsKICAgICBjb3B5LT5tX2Rpc2tDYWNoZURpcmVjdG9yeSA9IHRoaXMtPm1fZGlza0Nh
Y2hlRGlyZWN0b3J5OwogICAgIGNvcHktPm1fZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9u
RW5hYmxlZCA9IHRoaXMtPm1fZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZDsK
QEAgLTEyMyw2ICsxMjIsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fcHJvY2Vzc1N3YXBzT25OYXZp
Z2F0aW9uID0gdGhpcy0+bV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb247CiAgICAgY29weS0+bV9h
bHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJvY2Vzc2VzID0gdGhpcy0+bV9hbHdheXNLZWVwQW5k
UmV1c2VTd2FwcGVkUHJvY2Vzc2VzOwogICAgIGNvcHktPm1fcHJvY2Vzc1N3YXBzT25XaW5kb3dP
cGVuV2l0aE9wZW5lciA9IHRoaXMtPm1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5l
cjsKKyAgICBjb3B5LT5tX2lzQXV0b21hdGljUHJvY2Vzc1dhcm1pbmdFbmFibGVkID0gdGhpcy0+
bV9pc0F1dG9tYXRpY1Byb2Nlc3NXYXJtaW5nRW5hYmxlZDsKICNpZiBFTkFCTEUoUFJPWElNSVRZ
X05FVFdPUktJTkcpCiAgICAgY29weS0+bV93aXJlbGVzc0NvbnRleHRJZGVudGlmaWVyID0gdGhp
cy0+bV93aXJlbGVzc0NvbnRleHRJZGVudGlmaWVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
aW5kZXggNTU4NzIyZWUwZjIxOTE5NzZkNjY0ZDJjYWRjNmNjYjEwYTNlYjYzZS4uNDViMWI3NTA2
YTU0NWJjOTVjMjViY2JiMDY0M2IzYzNlNWQyNzE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAt
NTMsOCArNTMsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbWF4aW11bVByb2Nlc3NDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bVByb2Nlc3NDb3VudDsgfQogICAgIHZvaWQgc2V0TWF4
aW11bVByb2Nlc3NDb3VudCh1bnNpZ25lZCBtYXhpbXVtUHJvY2Vzc0NvdW50KSB7IG1fbWF4aW11
bVByb2Nlc3NDb3VudCA9IG1heGltdW1Qcm9jZXNzQ291bnQ7IH0KIAotICAgIHVuc2lnbmVkIG1h
eGltdW1QcmV3YXJtZWRQcm9jZXNzQ291bnQoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1QcmV3
YXJtZWRQcm9jZXNzQ291bnQ7IH0KLSAgICB2b2lkIHNldE1heGltdW1QcmV3YXJtZWRQcm9jZXNz
Q291bnQodW5zaWduZWQgbWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudCkgeyBtX21heGltdW1Q
cmV3YXJtZWRQcm9jZXNzQ291bnQgPSBtYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50OyB9Cisg
ICAgYm9vbCBpc0F1dG9tYXRpY1Byb2Nlc3NXYXJtaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWQ7IH0KKyAgICB2b2lkIHNldElzQXV0
b21hdGljUHJvY2Vzc1dhcm1pbmdFbmFibGVkKGJvb2wgdmFsdWUpIHsgbV9pc0F1dG9tYXRpY1By
b2Nlc3NXYXJtaW5nRW5hYmxlZCA9IHZhbHVlOyB9CiAKICAgICBib29sIGRpc2tDYWNoZVNwZWN1
bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rpc2tDYWNoZVNwZWN1
bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2tDYWNoZVNwZWN1bGF0
aXZlVmFsaWRhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGlza0NhY2hlU3BlY3VsYXRp
dmVWYWxpZGF0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7IH0KQEAgLTE2Nyw3ICsxNjcsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9zaG91bGRIYXZlTGVnYWN5RGF0YVN0b3JlIHsgZmFsc2UgfTsKIAog
ICAgIHVuc2lnbmVkIG1fbWF4aW11bVByb2Nlc3NDb3VudCB7IDAgfTsKLSAgICB1bnNpZ25lZCBt
X21heGltdW1QcmV3YXJtZWRQcm9jZXNzQ291bnQgeyAwIH07CiAgICAgYm9vbCBtX2Rpc2tDYWNo
ZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIFdlYktpdDo6Q2Fj
aGVNb2RlbCBtX2NhY2hlTW9kZWwgeyBXZWJLaXQ6OkNhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nl
ciB9OwogICAgIGludDY0X3QgbV9kaXNrQ2FjaGVTaXplT3ZlcnJpZGUgeyAtMSB9OwpAQCAtMTk5
LDYgKzE5OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlv
biB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Fsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNz
ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3Bl
bmVyIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJs
ZWQgeyBmYWxzZSB9OwogICAgIFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVudFNlcnZpY2VC
dW5kbGVJZGVudGlmaWVyOwogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggYzhhNmMzNWI1YmRjM2UxOTg3YjRiMDEz
ZjVjZjI2NDEwZDQ4Mjk3OS4uMjhkODc4ZWYzNjg5ODA0ZTA1ZDgwNzliZTYzN2QwMTNjOTFhNGIy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC00
MDIsOSArNDAyLDkgQEAgdm9pZCBXS0NvbnRleHRTZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0
RXZhbHVhdGlvbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgYm8KICAgICB0b0ltcGwoY29udGV4
dFJlZiktPnNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHZhbHVlKTsKIH0K
IAotdm9pZCBXS0NvbnRleHRTZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXMoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIHVuc2lnbmVkIHZhbHVlKQordm9pZCBXS0NvbnRleHRTZXRQ
cmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIGJv
b2wgdmFsdWUpCiB7Ci0gICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRNYXhpbXVtTnVtYmVyT2ZQ
cmV3YXJtZWRQcm9jZXNzZXModmFsdWUpOworICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Y29uZmln
dXJhdGlvbigpLnNldElzQXV0b21hdGljUHJvY2Vzc1dhcm1pbmdFbmFibGVkKHZhbHVlKTsKIH0K
IAogdm9pZCBXS0NvbnRleHRTZXRDdXN0b21XZWJDb250ZW50U2VydmljZUJ1bmRsZUlkZW50aWZp
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG5hbWUpCkBAIC01MTUsNyAr
NTE1LDcgQEAgdm9pZCBXS0NvbnRleHRTZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIGJvb2wgZW5hYmxlZCkKIAogdm9pZCBXS0NvbnRleHRXYXJtSW5pdGlh
bFByb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7Ci0gICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT53YXJtSW5pdGlhbFByb2Nlc3MoKTsKKyAgICB0b0ltcGwoY29udGV4dFJlZiktPnByZXdh
cm1Qcm9jZXNzKCk7CiB9CiAKIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgdm9pZCogY29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0
aW9uIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0UHJpdmF0ZS5oCmluZGV4IDRhYjVhOTQwN2JiNmI3ZGE3Y2Q2NWI2MzA0NDFjMDVhOTcyOTU2
OGIuLmNhNDU3ZDdmZmI1YzZkODU4MDcwZDIzOGJhMTI4N2FkMTkyNmQ0ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTY5LDcg
KzY5LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZShXS0NvbnRleHRSZWYgY28KIAogV0tfRVhQT1JUIHZvaWQgV0tDb250
ZXh0U2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oV0tDb250ZXh0UmVmIGNv
bnRleHQsIGJvb2wgdmFsdWUpOwogCi1XS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRNYXhpbXVt
TnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXMoV0tDb250ZXh0UmVmIGNvbnRleHQsIHVuc2lnbmVk
IGNvdW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldFByZXdhcm1zUHJvY2Vzc2VzQXV0
b21hdGljYWxseShXS0NvbnRleHRSZWYgY29udGV4dCwgYm9vbCB2YWx1ZSk7CiAKIFdLX0VYUE9S
VCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQo
V0tDb250ZXh0UmVmIGNvbnRleHQsIGJvb2wgdmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IGUzOTBiOWQzNTU2
NDQ1NTZhMTU3MmY2N2E3MDYxYjU0YjJiNmRhZjMuLjk1Y2Q3NTI0NjVmNjg4MDc1N2E4MWU0NzVm
ZWM3MzhiZDNlOTQxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0yMDcsMTEgKzIwNyw2IEBAIC0gKHZvaWQpX3NldE1h
eGltdW1OdW1iZXJPZlByb2Nlc3NlczooTlNVSW50ZWdlcil2YWx1ZQogICAgIF9wcm9jZXNzUG9v
bC0+c2V0TWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKHZhbHVlKTsKIH0KIAotLSAodm9pZClfc2V0
TWF4aW11bU51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzOihOU1VJbnRlZ2VyKXZhbHVlCi17Ci0g
ICAgX3Byb2Nlc3NQb29sLT5zZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXModmFs
dWUpOwotfQotCiAtICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlv
bjooQk9PTCl2YWx1ZQogewogICAgIF9wcm9jZXNzUG9vbC0+c2V0Q2FuSGFuZGxlSFRUUFNTZXJ2
ZXJUcnVzdEV2YWx1YXRpb24odmFsdWUpOwpAQCAtNDAzLDcgKzM5OCw3IEBAIC0gKHZvaWQpX3Nl
dEF1dG9tYXRpb25EZWxlZ2F0ZTooaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4pYXV0b21hdGlv
bkRlbGVnYXRlCiAKIC0gKHZvaWQpX3dhcm1Jbml0aWFsUHJvY2VzcwogewotICAgIF9wcm9jZXNz
UG9vbC0+d2FybUluaXRpYWxQcm9jZXNzKCk7CisgICAgX3Byb2Nlc3NQb29sLT5wcmV3YXJtUHJv
Y2VzcygpOwogfQogCiAtICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlCkBA
IC00ODQsMTkgKzQ3OSwxOCBAQCAtICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNo
RmFpbEZvclRlc3RpbmcKICAgICBfcHJvY2Vzc1Bvb2wtPnNldFNob3VsZE1ha2VOZXh0TmV0d29y
a1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyh0cnVlKTsKIH0KIAotLSAoc2l6ZV90KV9wcmV3
YXJtZWRXZWJQcm9jZXNzQ291bnQKKy0gKEJPT0wpX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3MKIHsK
LSAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBfcHJvY2Vz
c1Bvb2wtPnByb2Nlc3NlcygpKSB7Ci0gICAgICAgIGlmIChwcm9jZXNzLT5pc0luUHJld2FybWVk
UG9vbCgpKQotICAgICAgICAgICAgKytyZXN1bHQ7CisgICAgICAgIGlmIChwcm9jZXNzLT5pc1By
ZXdhcm1lZCgpKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9Ci0gICAgcmV0dXJuIHJl
c3VsdDsKKyAgICByZXR1cm4gTk87CiB9CiAKIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdu
b3JpbmdQcmV3YXJtZWQKIHsKLSAgICByZXR1cm4gW3NlbGYgX3dlYlByb2Nlc3NDb3VudF0gLSBb
c2VsZiBfcHJld2FybWVkV2ViUHJvY2Vzc0NvdW50XTsKKyAgICByZXR1cm4gW3NlbGYgX3dlYlBy
b2Nlc3NDb3VudF0gLSAoW3NlbGYgX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3NdID8gMSA6IDApOwog
fQogCiAtIChzaXplX3QpX3dlYlBhZ2VDb250ZW50UHJvY2Vzc0NvdW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5o
CmluZGV4IDM2NDUzNWE1ZjI3M2Q2YWJhMWE5YjA3ZjkxYzVhNmQ3MGRjODM0Y2QuLmJjM2VjODI2
ZjZmMTg2YTNjOGJkOWNlMjU5OGVlZTlmZjQ0OTVlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC05
Myw3ICs5Myw3IEBACiAKIC8vIFRlc3Qgb25seS4KIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKHNpemVfdClf
cHJld2FybWVkV2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoQk9PTClfaGFzUHJld2FybWVkV2ViUHJvY2VzcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0g
KHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChzaXplX3QpX3BsdWdp
blByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMp
KTsKIC0gKHNpemVfdClfc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKQEAgLTExMyw3ICsxMTMsNiBA
QAogLSAodm9pZClfc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyOihC
T09MKWFsbG93cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDExLjMpKTsK
IC0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6KE5TU3Ry
aW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykp
OwogLSAodm9pZClfc2V0TWF4aW11bU51bWJlck9mUHJvY2Vzc2VzOihOU1VJbnRlZ2VyKXZhbHVl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpLCBpb3MoMTEuMykpOwotLSAodm9pZClf
c2V0TWF4aW11bU51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzOihOU1VJbnRlZ2VyKXZhbHVlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdF
bmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9P
TCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBh
cnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvc3goMTAuMTIu
MywgV0tfTUFDX1RCQSksIGlvcygxMC4zLCBXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgZ2V0dGVyPV9pc1N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkLCBzZXR0ZXI9X3NldFN0b3Jh
Z2VBY2Nlc3NBUElFbmFibGVkOikgQk9PTCBfc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTMuNCksIGlvcygxMS4zKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgKaW5kZXggOTU0OWJkY2M1MzU3MmVhZWZjYWQ4NTlhMmNjNzM4MmQ0ZTgyZmFm
My4uZGFhODAwZjI2YjI5ZWE0OTQ1YzA5NmE1NjllNTA4NTk5YWQyNWE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaApAQCAtMzUsNyArMzUsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdl
ciBtYXhpbXVtUHJvY2Vzc0NvdW50OwotQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIg
bWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgTlNTdHJpbmcgKmN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmll
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0c0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAu
MCkpOwpAQCAtNjYsNiArNjUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNzU3dhcHNPbk5hdmln
YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbHdheXNLZWVwQW5kUmV1c2VTd2FwcGVk
UHJvY2Vzc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25XaW5kb3dP
cGVuV2l0aE9wZW5lciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByZXdhcm1zUHJvY2Vzc2Vz
QXV0b21hdGljYWxseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBhZ2VDYWNoZUVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9u
T25TeXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IGYyZmQ1
ZGVmOGNiNjQ1ZTg0NmI1OGVlYTU2MGUxZDY4NTNkNDcxYzEuLjU5MTAwMDdmYTY0ZGIzOWQzMzc0
ODIyMWQ1ZDMxMmZmMDE3ODkzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpA
QCAtMjUwLDE0ICsyNTAsMTQgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24KICAg
ICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+cHJvY2Vzc1N3YXBzT25OYXZpZ2F0
aW9uKCk7CiB9CiAKLS0gKHZvaWQpc2V0TWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudDooTlNV
SW50ZWdlciljb3VudAorLSAodm9pZClzZXRQcmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHk6
KEJPT0wpcHJld2FybXMKIHsKLSAgICBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5zZXRNYXhp
bXVtUHJld2FybWVkUHJvY2Vzc0NvdW50KGNvdW50KTsKKyAgICBfcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLT5zZXRJc0F1dG9tYXRpY1Byb2Nlc3NXYXJtaW5nRW5hYmxlZChwcmV3YXJtcyk7CiB9
CiAKLS0gKE5TVUludGVnZXIpbWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudAorLSAoQk9PTClw
cmV3YXJtc1Byb2Nlc3Nlc0F1dG9tYXRpY2FsbHkKIHsKLSAgICByZXR1cm4gX3Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi0+bWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudCgpOworICAgIHJldHVy
biBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5pc0F1dG9tYXRpY1Byb2Nlc3NXYXJtaW5nRW5h
YmxlZCgpOwogfQogCiAtICh2b2lkKXNldEFsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNz
ZXM6KEJPT0wpc3dhcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggZjNjYjI3ZDZmZjlkZWJhMTNhNjMzODMxOGQ4
NTBjMWRhNGFjN2ZkZi4uOWUyODRiN2VmZDU2M2Q2MjRjNWRlMzI2ZjRiYWI2N2Q2YTRjMDZkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmPFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHk+IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYKIH0K
IAogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcG9vbCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9y
aWdpbiwgV2Vic2l0ZURhdGFTdG9yZSYgc3RvcmUpCi0gICAgOiBXZWJQcm9jZXNzUHJveHkgeyBw
b29sLCBzdG9yZSwgSXNJblByZXdhcm1lZFBvb2w6Ok5vIH0KKyAgICA6IFdlYlByb2Nlc3NQcm94
eSB7IHBvb2wsIHN0b3JlLCBJc1ByZXdhcm1lZDo6Tm8gfQogICAgICwgbV9zZWN1cml0eU9yaWdp
bihzZWN1cml0eU9yaWdpbikKICAgICAsIG1fc2VydmljZVdvcmtlclBhZ2VJRChnZW5lcmF0ZVBh
Z2VJRCgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmlu
ZGV4IGRiOTMzNTFjZTkzNWVjZTU1ZTE4MDAyMjkwMDdiNzdiMjU2ZGM5ZjcuLjQxMWZlNjEyNTJm
OWRjYTliNmU5NWI0ZTJjOTllNWZjZWRiOWJiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTMzNyw3ICszMzcsNyBAQCBXZWJQcm9jZXNzUG9vbDo6
fldlYlByb2Nlc3NQb29sKCkKICAgICB3aGlsZSAoIW1fcHJvY2Vzc2VzLmlzRW1wdHkoKSkgewog
ICAgICAgICBhdXRvJiBwcm9jZXNzID0gbV9wcm9jZXNzZXMuZmlyc3QoKTsKIAotICAgICAgICBB
U1NFUlQocHJvY2Vzcy0+aXNJblByZXdhcm1lZFBvb2woKSk7CisgICAgICAgIEFTU0VSVChwcm9j
ZXNzLT5pc1ByZXdhcm1lZCgpKTsKICAgICAgICAgLy8gV2UgbmVlZCB0byBiZSB0aGUgb25seSBv
bmUgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB0aGUgcHJlLXdhcm1lZCBwcm9jZXNzIHNvIHRoYXQg
aXQgZ2V0cyBkZXN0cm95ZWQuCiAgICAgICAgIC8vIFdlYlByb2Nlc3NQcm94aWVzIGN1cnJlbnRs
eSBhbHdheXMgZXhwZWN0IHRvIGhhdmUgYSBXZWJQcm9jZXNzUG9vbC4KICAgICAgICAgQVNTRVJU
KHByb2Nlc3MtPmhhc09uZVJlZigpKTsKQEAgLTQwMCwyMiArNDAwLDkgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50KHN0ZDo6dW5pcXVl
X3B0cjxBUEk6OkMKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TWF4aW11bU51bWJlck9mUHJv
Y2Vzc2VzKHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZlByb2Nlc3NlcykKIHsKLSAgICAvLyBHdWFy
ZCBhZ2FpbnN0IEFQSSBtaXN1c2UuCi0gICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSAhPSBtX3By
ZXdhcm1lZFByb2Nlc3NDb3VudCkKLSAgICAgICAgQ1JBU0goKTsKLQogICAgIG1fY29uZmlndXJh
dGlvbi0+c2V0TWF4aW11bVByb2Nlc3NDb3VudChtYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXMpOwog
fQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9j
ZXNzZXModW5zaWduZWQgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKQotewotICAgIC8vIEd1YXJk
IGFnYWluc3QgQVBJIG1pc3VzZS4KLSAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpKQotICAgICAg
ICBDUkFTSCgpOwotCi0gICAgbV9jb25maWd1cmF0aW9uLT5zZXRNYXhpbXVtUHJld2FybWVkUHJv
Y2Vzc0NvdW50KG1heGltdW1OdW1iZXJPZlByb2Nlc3Nlcyk7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcihjb25zdCBT
dHJpbmcmIGN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcikKIHsKICAgICAv
LyBHdWFyZCBhZ2FpbnN0IEFQSSBtaXN1c2UuCkBAIC03ODEsMTQgKzc2OCwxNiBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiAgICAgcGxh
dGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOwogfQogCi1XZWJQcm9jZXNz
UHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3Rv
cmUmIHdlYnNpdGVEYXRhU3RvcmUsIFdlYlByb2Nlc3NQcm94eTo6SXNJblByZXdhcm1lZFBvb2wg
aXNJblByZXdhcm1lZFBvb2wpCitXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVh
dGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUsIFdlYlBy
b2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQgaXNQcmV3YXJtZWQpCiB7Ci0gICAgYXV0byBwcm9jZXNz
UHJveHkgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZSgqdGhpcywgd2Vic2l0ZURhdGFTdG9yZSwg
aXNJblByZXdhcm1lZFBvb2wpOworICAgIGF1dG8gcHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1By
b3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRhU3RvcmUsIGlzUHJld2FybWVkKTsKICAgICBh
dXRvJiBwcm9jZXNzID0gcHJvY2Vzc1Byb3h5LmdldCgpOwogICAgIGluaXRpYWxpemVOZXdXZWJQ
cm9jZXNzKHByb2Nlc3MsIHdlYnNpdGVEYXRhU3RvcmUpOwogICAgIG1fcHJvY2Vzc2VzLmFwcGVu
ZChXVEZNb3ZlKHByb2Nlc3NQcm94eSkpOwotICAgIGlmIChpc0luUHJld2FybWVkUG9vbCA9PSBX
ZWJQcm9jZXNzUHJveHk6OklzSW5QcmV3YXJtZWRQb29sOjpZZXMpCi0gICAgICAgICsrbV9wcmV3
YXJtZWRQcm9jZXNzQ291bnQ7CisgICAgaWYgKGlzUHJld2FybWVkID09IFdlYlByb2Nlc3NQcm94
eTo6SXNQcmV3YXJtZWQ6OlllcykgeworICAgICAgICBBU1NFUlQoIW1fcHJld2FybWVkUHJvY2Vz
cyk7CisgICAgICAgIG1fcHJld2FybWVkUHJvY2VzcyA9ICZwcm9jZXNzOworICAgIH0KIAogICAg
IGlmIChtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXNUZXJtaW5hdGlvblRpbWVyLmlzQWN0aXZlKCkp
CiAgICAgICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3Nlc1Rlcm1pbmF0aW9uVGltZXIuc3RvcCgp
OwpAQCAtNzk4LDIyICs3ODcsMTUgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6
Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGEKIAogUmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OnRyeVRha2VQcmV3YXJtZWRQcm9jZXNz
KFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCiB7Ci0gICAgaWYgKCFtX3ByZXdh
cm1lZFByb2Nlc3NDb3VudCkKKyAgICBpZiAoIW1fcHJld2FybWVkUHJvY2VzcykKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHByb2Nlc3MgOiBtX3Byb2Nl
c3NlcykgewotICAgICAgICBpZiAocHJvY2Vzcy0+aXNJblByZXdhcm1lZFBvb2woKSkgewotICAg
ICAgICAgICAgLS1tX3ByZXdhcm1lZFByb2Nlc3NDb3VudDsKLSAgICAgICAgICAgIHByb2Nlc3Mt
Pm1hcmtJc05vTG9uZ2VySW5QcmV3YXJtZWRQb29sKCk7Ci0gICAgICAgICAgICBpZiAoJnByb2Nl
c3MtPndlYnNpdGVEYXRhU3RvcmUoKSAhPSAmd2Vic2l0ZURhdGFTdG9yZSkKLSAgICAgICAgICAg
ICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0
b3JlKHdlYnNpdGVEYXRhU3RvcmUucGFyYW1ldGVycygpKSwgMCk7Ci0gICAgICAgICAgICByZXR1
cm4gcHJvY2Vzcy5nZXQoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBBU1NFUlQobV9wcmV3YXJt
ZWRQcm9jZXNzLT5pc1ByZXdhcm1lZCgpKTsKKyAgICBtX3ByZXdhcm1lZFByb2Nlc3MtPm1hcmtJ
c05vTG9uZ2VySW5QcmV3YXJtZWRQb29sKCk7CisgICAgaWYgKCZtX3ByZXdhcm1lZFByb2Nlc3Mt
PndlYnNpdGVEYXRhU3RvcmUoKSAhPSAmd2Vic2l0ZURhdGFTdG9yZSkKKyAgICAgICAgbV9wcmV3
YXJtZWRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0
b3JlKHdlYnNpdGVEYXRhU3RvcmUucGFyYW1ldGVycygpKSwgMCk7CiAKLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICBtX3ByZXdhcm1lZFByb2Nlc3NDb3VudCA9IDA7Ci0gICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wcmV3YXJtZWRQcm9jZXNzLCBu
dWxscHRyKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwMDMsMjQgKzk4NSwxNSBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6
Ondhcm1Jbml0aWFsUHJvY2VzcygpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwcmV3YXJtUHJvY2Vz
cygpCiB7Ci0gICAgdW5zaWduZWQgbWF4UHJld2FybWVkID0gbWF4aW11bU51bWJlck9mUHJld2Fy
bWVkUHJvY2Vzc2VzKCk7Ci0gICAgaWYgKG1heFByZXdhcm1lZCAmJiBtX3ByZXdhcm1lZFByb2Nl
c3NDb3VudCA+PSBtYXhQcmV3YXJtZWQpIHsKLSAgICAgICAgQVNTRVJUKCFtX3Byb2Nlc3Nlcy5p
c0VtcHR5KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgU2FmYXJpIGhhcyBiZWVuIHBhdGNoZWQgdG8gdXNlIHNl
dE1heGltdW1OdW1iZXJPZlByZXdhcm1lZFByb2Nlc3NlcwotICAgIGlmICghbWF4UHJld2FybWVk
KQotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnNldE1heGltdW1QcmV3YXJtZWRQcm9jZXNzQ291
bnQoMSk7Ci0KLSAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpID49IG1heGltdW1OdW1iZXJPZlBy
b2Nlc3NlcygpKQorICAgIGlmIChtX3ByZXdhcm1lZFByb2Nlc3MpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmICghbV93ZWJzaXRlRGF0YVN0b3JlKQogICAgICAgICBtX3dlYnNpdGVEYXRhU3Rv
cmUgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS5wdHIoKTsKLSAg
ICBjcmVhdGVOZXdXZWJQcm9jZXNzKG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9y
ZSgpLCBXZWJQcm9jZXNzUHJveHk6OklzSW5QcmV3YXJtZWRQb29sOjpZZXMpOworCisgICAgY3Jl
YXRlTmV3V2ViUHJvY2VzcyhtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKSwg
V2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdhcm1lZDo6WWVzKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNz
UG9vbDo6ZW5hYmxlUHJvY2Vzc1Rlcm1pbmF0aW9uKCkKQEAgLTEwNzYsOCArMTA0OSwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqIHBy
b2Nlc3MpCiB7CiAgICAgQVNTRVJUKG1fcHJvY2Vzc2VzLmNvbnRhaW5zKHByb2Nlc3MpKTsKIAot
ICAgIGlmIChwcm9jZXNzLT5pc0luUHJld2FybWVkUG9vbCgpKQotICAgICAgICAtLW1fcHJld2Fy
bWVkUHJvY2Vzc0NvdW50OworICAgIGlmIChtX3ByZXdhcm1lZFByb2Nlc3MgPT0gcHJvY2Vzcykg
eworICAgICAgICBBU1NFUlQobV9wcmV3YXJtZWRQcm9jZXNzLT5pc1ByZXdhcm1lZCgpKTsKKyAg
ICAgICAgbV9wcmV3YXJtZWRQcm9jZXNzID0gbnVsbHB0cjsKKyAgICB9CiAKICAgICAvLyBGSVhN
RSAoTXVsdGktV2ViUHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gU29tZSBvZiB0
aGUgaW52YWxpZGF0aW9uIGNhbGxzIG9mIHRoZSBvdGhlciBzdXBwbGVtZW50cyBhcmUgc3RpbGwg
bmVjZXNzYXJ5IGluIG11bHRpLXByb2Nlc3MgbW9kZSwgYnV0IHRoZXkgc2hvdWxkIG9ubHkgYWZm
ZWN0IGRhdGEgc3RydWN0dXJlcyBwZXJ0YWluaW5nIHRvIHRoZSBwcm9jZXNzIGJlaW5nIGRpc2Nv
bm5lY3RlZC4KICAgICAvLyBDbGVhcmluZyBldmVyeXRoaW5nIGNhdXNlcyBhc3NlcnRpb24gZmFp
bHVyZXMsIHNvIGl0J3MgbGVzcyB0cm91YmxlIHRvIHNraXAgdGhhdCBmb3Igbm93LgpAQCAtMTE4
MCw4ICsxMTU1LDEyIEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVX
ZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAjZW5kaWYKIAogICAgIGF1
dG8gcGFnZSA9IHByb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UocGFnZUNsaWVudCwgV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbikpOwotICAgIGlmIChwYWdlLT5wcmVmZXJlbmNlcygpLnByb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5wcmVmZXJlbmNlcygpLnByb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgIG1fY29uZmlndXJhdGlvbi0+
c2V0UHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uKHRydWUpOworICAgICAgICAvLyBGSVhNRTogRm9y
IG5vdywgdHVybmluZyBvbiBQU09OIGZyb20gdGhlIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBtZW51
IGFsc28gdHVybnMgb24KKyAgICAgICAgLy8gYXV0b21hdGljIHByb2Nlc3Mgd2FybWluZyB1bnRp
bCBjbGllbnRzIGNhbiBiZSB1cGRhdGVkLgorICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnNldElz
QXV0b21hdGljUHJvY2Vzc1dhcm1pbmdFbmFibGVkKHRydWUpOworICAgIH0KIAogICAgIHJldHVy
biBwYWdlOwogfQpAQCAtMTMyNiwxNSArMTMwNSwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
b3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJ
OgogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRSZWFjaEdvb2RUaW1lVG9QcmV3YXJtKCkKIHsK
LSAgICB1bnNpZ25lZCBtYXhQcmV3YXJtZWQgPSBtYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9j
ZXNzZXMoKTsKLSAgICBpZiAoIW1heFByZXdhcm1lZCkKKyAgICBpZiAoIWNvbmZpZ3VyYXRpb24o
KS5pc0F1dG9tYXRpY1Byb2Nlc3NXYXJtaW5nRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIW1fd2Vic2l0ZURhdGFTdG9yZSkKLSAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3Jl
ID0gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCkucHRyKCk7Ci0KLSAg
ICB3aGlsZSAobV9wcmV3YXJtZWRQcm9jZXNzQ291bnQgPCBtYXhQcmV3YXJtZWQpCi0gICAgICAg
IGNyZWF0ZU5ld1dlYlByb2Nlc3MobV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3Jl
KCksIFdlYlByb2Nlc3NQcm94eTo6SXNJblByZXdhcm1lZFBvb2w6Olllcyk7CisgICAgcHJld2Fy
bVByb2Nlc3MoKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cG9wdWxhdGVWaXNpdGVkTGlu
a3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYTEyZDY0
NWYzMTczZDEzZDgwYWRlYjVlNzMzZDRjYzE4OTU1ZWNhYy4uYTkzOTk4ZWExZmEwODg4ODRjMGEz
NDFkZGU0YjU5MTczMzI5M2NmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCkBAIC0xNTYsOSArMTU2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWF4aW11bU51
bWJlck9mUHJvY2Vzc2VzKHVuc2lnbmVkKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhl
cmUgYXJlIG5vIHByb2Nlc3NlcyBydW5uaW5nLgogICAgIHVuc2lnbmVkIG1heGltdW1OdW1iZXJP
ZlByb2Nlc3NlcygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbmZpZ3VyYXRpb24tPm1heGltdW1Qcm9j
ZXNzQ291bnQoKSA/IFVJTlRfTUFYIDogbV9jb25maWd1cmF0aW9uLT5tYXhpbXVtUHJvY2Vzc0Nv
dW50KCk7IH0KIAotICAgIHZvaWQgc2V0TWF4aW11bU51bWJlck9mUHJld2FybWVkUHJvY2Vzc2Vz
KHVuc2lnbmVkKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIHByb2Nl
c3NlcyBydW5uaW5nLgotICAgIHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZlByZXdhcm1lZFByb2Nl
c3NlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi0+bWF4aW11bVByZXdhcm1lZFBy
b2Nlc3NDb3VudCgpOyB9Ci0KICAgICB2b2lkIHNldEN1c3RvbVdlYkNvbnRlbnRTZXJ2aWNlQnVu
ZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBTdHJpbmcmIGN1c3RvbVdl
YkNvbnRlbnRTZXJ2aWNlQnVuZGxlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fY29uZmlndXJhdGlv
bi0+Y3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyKCk7IH0KIApAQCAtMjk3
LDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcmIGhvc3Qp
OwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1By
b2Nlc3NDb3VudExpbWl0KFdlYnNpdGVEYXRhU3RvcmUmKTsgLy8gV2lsbCByZXR1cm4gYW4gZXhp
c3Rpbmcgb25lIGlmIGxpbWl0IGlzIG1ldC4KLSAgICB2b2lkIHdhcm1Jbml0aWFsUHJvY2Vzcygp
OworICAgIHZvaWQgcHJld2FybVByb2Nlc3MoKTsKIAogICAgIGJvb2wgc2hvdWxkVGVybWluYXRl
KFdlYlByb2Nlc3NQcm94eSopOwogCkBAIC00NzQsNyArNDcxLDcgQEAgcHJpdmF0ZToKIAogICAg
IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHRyeVRha2VQcmV3YXJtZWRQcm9jZXNzKFdlYnNpdGVE
YXRhU3RvcmUmKTsKIAotICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJvY2VzcyhX
ZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Byb3h5OjpJc0luUHJld2FybWVkUG9vbCA9IFdl
YlByb2Nlc3NQcm94eTo6SXNJblByZXdhcm1lZFBvb2w6Ok5vKTsKKyAgICBXZWJQcm9jZXNzUHJv
eHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQcm94
eTo6SXNQcmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObyk7CiAgICAg
dm9pZCBpbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmLCBXZWJzaXRlRGF0
YVN0b3JlJik7CiAKICAgICB2b2lkIHJlcXVlc3RXZWJDb250ZW50U3RhdGlzdGljcyhTdGF0aXN0
aWNzUmVxdWVzdCopOwpAQCAtNTM3LDcgKzUzNCw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNz
YWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAKICAgICBWZWN0b3I8UmVmUHRy
PFdlYlByb2Nlc3NQcm94eT4+IG1fcHJvY2Vzc2VzOwotICAgIHVuc2lnbmVkIG1fcHJld2FybWVk
UHJvY2Vzc0NvdW50IHsgMCB9OworICAgIFdlYlByb2Nlc3NQcm94eSogbV9wcmV3YXJtZWRQcm9j
ZXNzIHsgbnVsbHB0ciB9OwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5KiBtX3Byb2Nlc3NXaXRoUGFn
ZUNhY2hlIHsgbnVsbHB0ciB9OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTc3MSw3
ICs3NjgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9PbmVQcm9jZXNzKFQmJiBtZXNz
YWdlKQogICAgIH0KIAogICAgIGlmICghbWVzc2FnZVNlbnQpIHsKLSAgICAgICAgd2FybUluaXRp
YWxQcm9jZXNzKCk7CisgICAgICAgIHByZXdhcm1Qcm9jZXNzKCk7CiAgICAgICAgIFJlZlB0cjxX
ZWJQcm9jZXNzUHJveHk+IHByb2Nlc3MgPSBtX3Byb2Nlc3Nlcy5sYXN0KCk7CiAgICAgICAgIGlm
IChwcm9jZXNzLT5jYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICAgICAgcHJvY2Vzcy0+c2VuZChz
dGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNGY2ZTNmMWI3OGRkYWZjODU5ZjQyNjU5ZTkzNjVkOTY2
ZDZhY2Y5Zi4uZTRmNDdkOTMwYTdiZWQ0YzFiNjIxZGZmOWRiMzE5OGQ4MGNmNGNlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMTYsMTggKzEx
NiwxOCBAQCBzdGF0aWMgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQYWdlUHJveHlNYXAmIGdsb2JhbFBh
Z2VNYXAoKQogICAgIHJldHVybiBwYWdlTWFwOwogfQogCi1SZWY8V2ViUHJvY2Vzc1Byb3h5PiBX
ZWJQcm9jZXNzUHJveHk6OmNyZWF0ZShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNp
dGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUsIElzSW5QcmV3YXJtZWRQb29sIGlzSW5QcmV3
YXJtZWRQb29sKQorUmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUo
V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0
YVN0b3JlLCBJc1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKIHsKLSAgICBhdXRvIHByb3h5ID0gYWRv
cHRSZWYoKm5ldyBXZWJQcm9jZXNzUHJveHkocHJvY2Vzc1Bvb2wsIHdlYnNpdGVEYXRhU3RvcmUs
IGlzSW5QcmV3YXJtZWRQb29sKSk7CisgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgV2Vi
UHJvY2Vzc1Byb3h5KHByb2Nlc3NQb29sLCB3ZWJzaXRlRGF0YVN0b3JlLCBpc1ByZXdhcm1lZCkp
OwogICAgIHByb3h5LT5jb25uZWN0KCk7CiAgICAgcmV0dXJuIHByb3h5OwogfQogCi1XZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdl
YnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUsIElzSW5QcmV3YXJtZWRQb29sIGlzSW5Q
cmV3YXJtZWRQb29sKQorV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vz
c1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlLCBJ
c1ByZXdhcm1lZCBpc1ByZXdhcm1lZCkKICAgICA6IENoaWxkUHJvY2Vzc1Byb3h5KHByb2Nlc3NQ
b29sLmFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSgpKQogICAgICwgbV9yZXNwb25zaXZl
bmVzc1RpbWVyKCp0aGlzKQogICAgICwgbV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigq
dGhpcykKLSAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wsIGlzSW5QcmV3YXJtZWRQb29s
ID09IElzSW5QcmV3YXJtZWRQb29sOjpZZXMgPyBJc1dlYWs6OlllcyA6IElzV2Vhazo6Tm8pCisg
ICAgLCBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sLCBpc1ByZXdhcm1lZCA9PSBJc1ByZXdhcm1l
ZDo6WWVzID8gSXNXZWFrOjpZZXMgOiBJc1dlYWs6Ok5vKQogICAgICwgbV9tYXlIYXZlVW5pdmVy
c2FsRmlsZVJlYWRTYW5kYm94RXh0ZW5zaW9uKGZhbHNlKQogICAgICwgbV9udW1iZXJPZlRpbWVz
U3VkZGVuVGVybWluYXRpb25XYXNEaXNhYmxlZCgwKQogICAgICwgbV90aHJvdHRsZXIoKnRoaXMs
IHByb2Nlc3NQb29sLnNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSkKQEAgLTEzNyw3
ICsxMzcsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9v
bCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkoc3RkOjptYWtlX3VuaXF1ZTxVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5PigqdGhpcykp
CiAjZW5kaWYKLSAgICAsIG1faXNJblByZXdhcm1lZFBvb2woaXNJblByZXdhcm1lZFBvb2wgPT0g
SXNJblByZXdhcm1lZFBvb2w6OlllcykKKyAgICAsIG1faXNQcmV3YXJtZWQoaXNQcmV3YXJtZWQg
PT0gSXNQcmV3YXJtZWQ6OlllcykKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRP
ckNoZWNrRGlzYWJsZWQoKSk7CiAKQEAgLTQ0Nyw5ICs0NDcsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c3VzcGVuZGVkUGFnZVdhc0Rlc3Ryb3llZChTdXNwZW5kZWRQYWdlUHJveHkmIHN1c3Bl
bmRlZFBhZwogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6bWFya0lzTm9Mb25nZXJJblByZXdhcm1l
ZFBvb2woKQogewotICAgIEFTU0VSVChtX2lzSW5QcmV3YXJtZWRQb29sKTsKKyAgICBBU1NFUlQo
bV9pc1ByZXdhcm1lZCk7CiAKLSAgICBtX2lzSW5QcmV3YXJtZWRQb29sID0gZmFsc2U7CisgICAg
bV9pc1ByZXdhcm1lZCA9IGZhbHNlOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fcHJvY2Vzc1Bvb2wp
OwogICAgIG1fcHJvY2Vzc1Bvb2wuc2V0SXNXZWFrKElzV2Vhazo6Tm8pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA2YzE4ZTg2NjZhZGUxMGM0ODdi
NmY2Njc2NTZiZTY1NzkxN2QzMGMyLi43ZDgwODViMzQ1ZjVlZWViYWQyZDNjYmM4YWNlNzFjMzA2
M2NiM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAt
OTcsMTIgKzk3LDEyIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFdl
YlBhZ2VQcm94eSo+IFdlYlBhZ2VQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0ZWRBY3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0aW9u
TWFwOwogCi0gICAgZW51bSBjbGFzcyBJc0luUHJld2FybWVkUG9vbCB7CisgICAgZW51bSBjbGFz
cyBJc1ByZXdhcm1lZCB7CiAgICAgICAgIE5vLAogICAgICAgICBZZXMKICAgICB9OwogCi0gICAg
c3RhdGljIFJlZjxXZWJQcm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNp
dGVEYXRhU3RvcmUmLCBJc0luUHJld2FybWVkUG9vbCk7CisgICAgc3RhdGljIFJlZjxXZWJQcm9j
ZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUmLCBJc1By
ZXdhcm1lZCk7CiAgICAgfldlYlByb2Nlc3NQcm94eSgpOwogCiAgICAgV2ViQ29ubmVjdGlvbiog
d2ViQ29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQ29ubmVjdGlvbi5nZXQoKTsgfQpA
QCAtMjE4LDcgKzIxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VCYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCgpOwogI2VuZGlmCiAKLSAgICBib29sIGlzSW5Q
cmV3YXJtZWRQb29sKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUHJld2FybWVkUG9vbDsgfQorICAg
IGJvb2wgaXNQcmV3YXJtZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUHJld2FybWVkOyB9CiAgICAg
dm9pZCBtYXJrSXNOb0xvbmdlckluUHJld2FybWVkUG9vbCgpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC0yMzIsNyArMjMyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7Ci0gICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nl
c3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYsIElzSW5QcmV3YXJtZWRQb29sKTsKKyAgICBXZWJQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlJiwgSXNQcmV3YXJt
ZWQpOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKICAgICB2b2lkIGdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CkBAIC0zOTIsNyAr
MzkyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOjpIYXNBY3Rpdml0eSk+
PiBtX2xvY2FsUG9ydEFjdGl2aXR5Q29tcGxldGlvbkhhbmRsZXJzOwogCiAgICAgYm9vbCBtX2hh
c0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0lu
UHJld2FybWVkUG9vbDsKKyAgICBib29sIG1faXNQcmV3YXJtZWQ7CiAKICNpZiBQTEFURk9STShX
QVRDSE9TKQogICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuIG1f
YmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xzOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUwYjYzNzIyNWYw
YWIxYjM2ZjJkMzJkODI2ZTMxZDU3MGM3OGZlNWUuLjZmNTcxYmMxODBjYmU0NTRkOTUwYTkxY2Ez
ZWQ1YjVkOTI2ODVlYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wOS0wNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwcm9jZXNzIHBvb2wgY29uZmlndXJhdGlvbiBm
bGFnIHRvIHR1cm4gb24gYXV0b21hdGljIHByb2Nlc3MgcHJlLXdhcm1pbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTI2MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDQxMDE5NDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzUHJlV2FybWluZy5tbTog
UmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5pdGlh
bFdhcm1lZFByb2Nlc3NVc2VkLm1tLgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NldE1heGltdW1QcmV3YXJt
ZWRQcm9jZXNzQ291bnQubW06IFJlbW92ZWQuCisKIDIwMTgtMDgtMzEgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQ29uc29saWRhdGUgdGhl
IGltcGxlbWVudGF0aW9ucyBvZiByZWFkU3RyaW5nLCBzdHJpbmdGb3JUeXBlLCBhbmQgcmVhZFVS
TCBpbiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
Y2M2NDBjNTg3NGNjNmQ0YTU3YTgwODc4ZTBhNDUwZGIyZjVhYWM5ZS4uMmIzYWYwNDhhYTUwZTZj
ZjczYTE1YjI0OTk3Y2FiNTgyYWE5N2ViOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1
Niw3ICsxNTYsNyBAQAogCQkzRkNDNEZFODFFQzRFOENBMDA3NkUzN0MgLyogUGljdHVyZUluUGlj
dHVyZURlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0ZDQzRGRTYxRUM0RTg3RTAwNzZFMzdDIC8qIFBpY3R1cmVJblBpY3R1
cmVEZWxlZ2F0ZS5odG1sICovOyB9OwogCQk0MTM1RkI4NDIwMTFGQUE3MDAzMzIxMzkgLyogSW5q
ZWN0SW50ZXJuYWxzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTM1RkI4MzIwMTFGQUEzMDAzMzIxMzkgLyogSW5qZWN0SW50ZXJuYWxz
X0J1bmRsZS5jcHAgKi87IH07CiAJCTQxMzVGQjg1MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJD
b3JlVGVzdFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RT
dXBwb3J0LmR5bGliICovOyB9OwotCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogU2V0TWF4
aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODgyRjAyMjEwMTBBNzAwMDJGRjI4OCAvKiBTZXRNYXhpbXVt
UHJld2FybWVkUHJvY2Vzc0NvdW50Lm1tICovOyB9OworCQk0MTg4MkYwMzIxMDEwQzBEMDAyRkYy
ODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1ByZVdh
cm1pbmcubW0gKi87IH07CiAJCTQ0MzNBMzk2MjA4MDQ0MTQwMDkxRUQ1NyAvKiBTeW5jaHJvbm91
c1RpbWVvdXRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0MzNBMzk1MjA4MDQ0MTMwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0
cy5tbSAqLzsgfTsKIAkJNDQ4MTdBMkYxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQ4MTdBMkUxRjA0ODZCRjAwMDAzODEwIC8qIFdLUmVxdWVzdEFjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tICovOyB9OwogCQk0NDhEN0U0NzFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJv
bm1lbnRVdGlsaXRpZXNUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxp
dGllc1Rlc3QuY3BwICovOyB9OwpAQCAtMjAxLDcgKzIwMSw2IEBACiAJCTUxOEVFNTE5MjBBNzhD
RTUwMEUwMjRGMyAvKiBEb3VibGVEZWZlcnNMb2FkaW5nUGx1Z2luLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4RUU1MTcyMEE3OENERjAwRTAyNEYz
IC8qIERvdWJsZURlZmVyc0xvYWRpbmdQbHVnaW4ubW0gKi87IH07CiAJCTUxOEVFNTFCMjBBNzhE
MDAwMEUwMjRGMyAvKiBEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZUFmdGVyQ3Jhc2gubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThFRTUxQTIw
QTc4Q0ZCMDBFMDI0RjMgLyogRG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVBZnRlckNyYXNo
Lm1tICovOyB9OwogCQk1MThFRTUxRDIwQTc4RDM2MDBFMDI0RjMgLyogRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxOEVFNTFDMjBBNzhEMzMwMEUwMjRGMyAvKiBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uLm1tICovOyB9OwotCQk1MTk4QTI0MDFFQTdFNTlGMDA4OTEwQjcgLyogSW5p
dGlhbFdhcm1lZFByb2Nlc3NVc2VkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE5OEEyM0YxRUE3RTU5NTAwODkxMEI3IC8qIEluaXRpYWxXYXJtZWRQ
cm9jZXNzVXNlZC5tbSAqLzsgfTsKIAkJNTFBNTg3N0QxRDFCNDlDRDAwNEJBOUFGIC8qIEluZGV4
ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy0zLmh0bWwgKi87IH07CiAJCTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlBRiAv
KiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE1ODc4MjFEMjcyRUI1MDA0QkE5
QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi87IH07CiAJCTUxQTU4
Nzg2MUQyNzNBQTkwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBNTg3ODQxRDI3
MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi87IH07CkBA
IC0xNDIxLDcgKzE0MjAsNyBAQAogCQkzRkNDNEZFNjFFQzRFODdFMDA3NkUzN0MgLyogUGljdHVy
ZUluUGljdHVyZURlbGVnYXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBQaWN0
dXJlSW5QaWN0dXJlRGVsZWdhdGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEzNUZCODMyMDExRkFBMzAwMzMyMTM5IC8qIEluamVjdEludGVybmFsc19CdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSW5qZWN0SW50ZXJuYWxzX0J1bmRs
ZS5jcHA7IHBhdGggPSBUZXN0cy9JbmplY3RJbnRlcm5hbHNfQnVuZGxlLmNwcDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2Vi
Q29yZVRlc3RTdXBwb3J0LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxp
Y2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgcGF0aCA9IGxpYldlYkNvcmVU
ZXN0U3VwcG9ydC5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJ
NDE4ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFNldE1heGltdW1QcmV3YXJtZWRQcm9jZXNzQ291
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXRNYXhpbXVt
UHJld2FybWVkUHJvY2Vzc0NvdW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzUHJlV2FybWluZy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NzNCNUExQUYyMjg2QTAwNkM3QjM2IC8qIEZp
bGVTeXN0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5
c3RlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTczQjVDMUFGMjI4NzUw
MDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQ4MCw3ICsxNDc5LDYgQEAKIAkJNTE4RUU1MTcyMEE3OENERjAwRTAyNEYzIC8qIERvdWJsZURl
ZmVyc0xvYWRpbmdQbHVnaW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBEb3VibGVEZWZlcnNMb2FkaW5nUGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MThFRTUxQTIwQTc4Q0ZCMDBFMDI0RjMgLyogRG9BZnRlck5leHRQcmVzZW50YXRp
b25VcGRhdGVBZnRlckNyYXNoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVBZnRlckNyYXNoLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MThFRTUxQzIwQTc4RDMzMDBFMDI0RjMgLyogRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxOThBMjNGMUVBN0U1OTUwMDg5MTBCNyAvKiBJbml0aWFs
V2FybWVkUHJvY2Vzc1VzZWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBJbml0aWFsV2FybWVkUHJvY2Vzc1VzZWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxQTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3Mt
My5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluZGV4ZWREQk11bHRpUHJvY2Vz
cy0zLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc4MjFEMjcyRUI1
MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYg
LyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM3LDcgKzIzMzUsNiBAQAogCQkJCTUxQkNFRTQ5
MUM4NEY0QUYwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFC
MUVFOEQxQzgwRjU4ODAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tICovLAogCQkJ
CTU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkubW0gKi8sCi0JCQkJNTE5OEEyM0YxRUE3RTU5NTAwODkxMEI3IC8q
IEluaXRpYWxXYXJtZWRQcm9jZXNzVXNlZC5tbSAqLywKIAkJCQk3OUM1RDQzMDIwOUQ3NjgzMDBG
MUU3Q0EgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlSXNUZXh0RmllbGQubW0gKi8sCiAJCQkJ
MkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNo
Lm1tICovLAogCQkJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5n
TmF2aWdhdGlvbi5tbSAqLywKQEAgLTIzNzQsNiArMjM3MSw3IEBACiAJCQkJQzk1NTAxQkUxOUFE
MkZBRjAwNDlCRTNFIC8qIFByZWZlcmVuY2VzLm1tICovLAogCQkJCUNEMjI3RTQzMjExQTRENUQw
MEQyODVBRiAvKiBQcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW0gKi8sCiAJCQkJN0MxQUY3OTMx
RThEQ0JBQjAwMjY0NUI5IC8qIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gKi8sCisJCQkJNDE4
ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tICovLAogCQkJCTUx
OEMxMTUyMjA1QjA0RjkwMDFGRjRBRSAvKiBQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSAqLywK
IAkJCQk1Nzk4RTJBRjFDQUY1QzI4MDBDNUNCQTAgLyogUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2Uu
bW0gKi8sCiAJCQkJQTFDNEZCNkMxQkFDQ0U1MDAwMzc0MkQwIC8qIFF1aWNrTG9vay5tbSAqLywK
QEAgLTIzOTMsNyArMjM5MSw2IEBACiAJCQkJNUNBOTg1NTEyMTEzQ0I4QzAwNTdFQjZCIC8qIFNh
ZmVCcm93c2luZy5tbSAqLywKIAkJCQlDRTA5NDczNjIwNjMyMjNCMDAzQzlCQTAgLyogU2NoZW1l
UmVnaXN0cnkubW0gKi8sCiAJCQkJNTFFQjEyOTMxRkRGMDUwNTAwQTVBMUJEIC8qIFNlcnZpY2VX
b3JrZXJCYXNpYy5tbSAqLywKLQkJCQk0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogU2V0TWF4
aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudC5tbSAqLywKIAkJCQk1Q0NCMTBERjIxMzQ1NzlEMDBB
QzVBRjAgLyogU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0gKi8sCiAJCQkJMzdCQ0E2
MUIxQjU5NkJBOTAwMjAxMkNBIC8qIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0Fj
dGlvbnMubW0gKi8sCiAJCQkJMkQ5QTUzQUUxQjMxRkE4RDAwNzRENUFBIC8qIFNocmlua1RvRml0
Lm1tICovLApAQCAtMzgxMCw3ICszODA3LDYgQEAKIAkJCQk3QzgzRTBCRTFEMEE2NTEzMDBGRUJD
RjMgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0Uw
QkYxRDBBNjUyMjAwRkVCQ0YzIC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRD
bG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxOThBMjQw
MUVBN0U1OUYwMDg5MTBCNyAvKiBJbml0aWFsV2FybWVkUHJvY2Vzc1VzZWQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QTk1QkRFMTFFOUJFQzVGMDA4NjU0OTggLyogSW5qZWN0ZWRCdW5kbGVBcHBs
ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZCMUE0MTFBRTYwMDQ0N0M0QyAv
KiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMTQ4QjA2MjAy
QUM2QTQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVo
YXZpb3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zOTA4LDYgKzM5MDQsNyBAQAogCQkJCUExRUMx
MTg4MUY0MjU0MTIwMEQwMTQ2RSAvKiBQcmV2aWV3TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjBDMUE0MTFBRTYwMDQ0N0M0QyAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVO
b0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjQ3QjEyNjFFQkEzQjg1
MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
MTg4MkYwMzIxMDEwQzBEMDAyRkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1MThDMTE1MzIwNUIwNTA0MDAxRkY0QUUgLyogUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDMTFEMEE2NTJGMDBGRUJDRjMgLyog
UHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDODFB
NDExQTdFMDA0NDdDNEMgLyogUHVibGljU3VmZml4Lm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zOTQy
LDcgKzM5MzksNiBAQAogCQkJCTUxRUIxMjk0MUZERjA1MjUwMEE1QTFCRCAvKiBTZXJ2aWNlV29y
a2VyQmFzaWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDQjFBNDExQTdFMDA0NDdDNEMg
LyogU2V0QW5kVXBkYXRlQ2FjaGVNb2RlbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUND
MUE0MTFBN0UwMDQ0N0M0QyAvKiBTZXREb2N1bWVudFVSSS5tbSBpbiBTb3VyY2VzICovLAotCQkJ
CTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBTZXRNYXhpbXVtUHJld2FybWVkUHJvY2Vzc0Nv
dW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0U2RTgxQTAyMEE2OTM1RjAwRTJDODBGIC8qIFNl
dFRpbWVvdXRGdW5jdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDUyMUQwQTY0MTgw
MEZFQkNGMyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE3OTkxODgx
RTFDOTk0RTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Jbml0aWFsV2FybWVk
UHJvY2Vzc1VzZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
aXRpYWxXYXJtZWRQcm9jZXNzVXNlZC5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTMxZWM0NjQwZTI0YzlkYjQxNWM4MWU1ZTMwMjUyMTI2YmQ4ZGZiYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luaXRpYWxXYXJtZWRQcm9jZXNzVXNlZC5tbQorKysgL2Rldi9udWxsCkBA
IC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUZXN0LmgiCi0jaW1wb3J0ICJUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmgiCi0KLSNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQot
c3RhdGljIE5TU3RyaW5nICpsb2FkYWJsZVVSTCA9IEAiZGF0YTp0ZXh0L2h0bWwsbm8lMjBlcnJv
ciUyMEEiOwotCi1URVNUKFdLUHJvY2Vzc1Bvb2wsIEluaXRpYWxXYXJtZWRQcm9jZXNzVXNlZCkK
LXsKLSAgICBhdXRvIHBvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0p
OwotICAgIFtwb29sIF9zZXRNYXhpbXVtTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXM6MV07Ci0g
ICAgW3Bvb2wgX3dhcm1Jbml0aWFsUHJvY2Vzc107Ci0KLSAgICBFWFBFQ1RfRVEoc3RhdGljX2Nh
c3Q8c2l6ZV90PigxKSwgW3Bvb2wgX3ByZXdhcm1lZFdlYlByb2Nlc3NDb3VudF0pOwotICAgIEVY
UEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDEpLCBbcG9vbCBfd2ViUGFnZUNvbnRlbnRQcm9j
ZXNzQ291bnRdKTsKLQotICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS5w
cm9jZXNzUG9vbCA9IHBvb2wuZ2V0KCk7Ci0gICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3JlXTsK
LQotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7Ci0KLSAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigwKSwgW3Bv
b2wgX3ByZXdhcm1lZFdlYlByb2Nlc3NDb3VudF0pOwotICAgIEVYUEVDVF9FUShzdGF0aWNfY2Fz
dDxzaXplX3Q+KDEpLCBbcG9vbCBfd2ViUGFnZUNvbnRlbnRQcm9jZXNzQ291bnRdKTsKLQotICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6bG9hZGFibGVVUkxdXV07Ci0gICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZv
ckRpZEZpbmlzaE5hdmlnYXRpb25dOwotCi0gICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVf
dD4oMSksIFtwb29sIF9wcmV3YXJtZWRXZWJQcm9jZXNzQ291bnRdKTsKLSAgICBFWFBFQ1RfRVEo
c3RhdGljX2Nhc3Q8c2l6ZV90PigyKSwgW3Bvb2wgX3dlYlBhZ2VDb250ZW50UHJvY2Vzc0NvdW50
XSk7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzUHJlV2FybWluZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1ByZVdhcm1pbmcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzEwYTdhMWM4
YjhhZjYyODE4OWNmMDBkYjIzYTJhZmEwNjZlNDAyNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1ByZVdhcm1pbmcubW0KQEAg
LTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworc3RhdGljIE5T
U3RyaW5nICpsb2FkYWJsZVVSTCA9IEAiZGF0YTp0ZXh0L2h0bWwsbm8lMjBlcnJvciUyMEEiOwor
CitURVNUKFdLUHJvY2Vzc1Bvb2wsIFdhcm1Jbml0aWFsUHJvY2VzcykKK3sKKyAgICBhdXRvIHBv
b2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOworCisgICAgRVhQRUNU
X0ZBTFNFKFtwb29sIF9oYXNQcmV3YXJtZWRXZWJQcm9jZXNzXSk7CisKKyAgICBbcG9vbCBfd2Fy
bUluaXRpYWxQcm9jZXNzXTsKKworICAgIEVYUEVDVF9UUlVFKFtwb29sIF9oYXNQcmV3YXJtZWRX
ZWJQcm9jZXNzXSk7CisKKyAgICBbcG9vbCBfd2FybUluaXRpYWxQcm9jZXNzXTsgLy8gTm8tb3Au
CisKKyAgICBFWFBFQ1RfVFJVRShbcG9vbCBfaGFzUHJld2FybWVkV2ViUHJvY2Vzc10pOworfQor
CitURVNUKFdLUHJvY2Vzc1Bvb2wsIEluaXRpYWxXYXJtZWRQcm9jZXNzVXNlZCkKK3sKKyAgICBh
dXRvIHBvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOworICAgIFtw
b29sIF93YXJtSW5pdGlhbFByb2Nlc3NdOworCisgICAgRVhQRUNUX1RSVUUoW3Bvb2wgX2hhc1By
ZXdhcm1lZFdlYlByb2Nlc3NdKTsKKyAgICBFWFBFQ1RfRVEoMVUsIFtwb29sIF93ZWJQYWdlQ29u
dGVudFByb2Nlc3NDb3VudF0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9u
LmdldCgpLnByb2Nlc3NQb29sID0gcG9vbC5nZXQoKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRh
U3RvcmVdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIEVYUEVDVF9GQUxTRShbcG9vbCBfaGFzUHJld2Fy
bWVkV2ViUHJvY2Vzc10pOworICAgIEVYUEVDVF9FUSgxVSwgW3Bvb2wgX3dlYlBhZ2VDb250ZW50
UHJvY2Vzc0NvdW50XSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOmxvYWRhYmxlVVJMXV1dOworICAg
IFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIEVYUEVD
VF9GQUxTRShbcG9vbCBfaGFzUHJld2FybWVkV2ViUHJvY2Vzc10pOworICAgIEVYUEVDVF9FUSgx
VSwgW3Bvb2wgX3dlYlBhZ2VDb250ZW50UHJvY2Vzc0NvdW50XSk7Cit9CisKK1RFU1QoV0tQcm9j
ZXNzUG9vbCwgQXV0b21hdGljUHJvY2Vzc1dhcm1pbmcpCit7CisgICAgYXV0byBwcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpLnByZXdhcm1z
UHJvY2Vzc2VzQXV0b21hdGljYWxseSA9IFlFUzsKKyAgICBhdXRvIHBvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIEVYUEVDVF9GQUxTRShbcG9vbCBfaGFzUHJld2Fy
bWVkV2ViUHJvY2Vzc10pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uLmdl
dCgpLnByb2Nlc3NQb29sID0gcG9vbC5nZXQoKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIG5vblBlcnNpc3RlbnREYXRhU3Rv
cmVdOworCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7CisgICAgRVhQRUNUX0ZBTFNFKFtwb29sIF9oYXNQcmV3YXJtZWRX
ZWJQcm9jZXNzXSk7CisgICAgRVhQRUNUX0VRKDFVLCBbcG9vbCBfd2ViUGFnZUNvbnRlbnRQcm9j
ZXNzQ291bnRdKTsKKworICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOmxvYWRhYmxlVVJMXV1dOworICAgIFt3
ZWJWaWV3MSBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICB3aGlsZSAo
IVtwb29sIF9oYXNQcmV3YXJtZWRXZWJQcm9jZXNzXSkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6c2xlZXAoMC4wMSk7CisKKyAgICBFWFBFQ1RfVFJVRShbcG9vbCBfaGFzUHJld2FybWVk
V2ViUHJvY2Vzc10pOworICAgIEVYUEVDVF9FUSgyVSwgW3Bvb2wgX3dlYlBhZ2VDb250ZW50UHJv
Y2Vzc0NvdW50XSk7CisKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3Bvb2wgX2hhc1By
ZXdhcm1lZFdlYlByb2Nlc3NdKTsKKyAgICBFWFBFQ1RfRVEoMlUsIFtwb29sIF93ZWJQYWdlQ29u
dGVudFByb2Nlc3NDb3VudF0pOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IGY4N2Q2Y2UwOGM4YmIxMTM5ZjQ5NjI0MzRjZTI0ZjBkZGQ5YzQ0OTIuLjVj
NDdmNmY5Mjc2OThiOWMwNDYxNTlkMzA4ZTA1NjJhNjMzNDUwZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtMjc4LDcgKzI3OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJh
c2ljKQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSBZRVM7Ci0gICAg
cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpLm1heGltdW1QcmV3YXJtZWRQcm9jZXNzQ291
bnQgPSAxOworICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcmV3YXJtc1Byb2Nl
c3Nlc0F1dG9tYXRpY2FsbHkgPSBZRVM7CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMo
W1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5nZXQoKV0pOwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC0zMjUs
NyArMzI1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTm9Td2FwcGluZ0ZvcmVUTERQbHVzMikKIHsK
ICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uZ2V0KCkucHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uID0gWUVTOwotICAgIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5nZXQoKS5tYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50ID0gMTsK
KyAgICBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCkucHJld2FybXNQcm9jZXNzZXNBdXRv
bWF0aWNhbGx5ID0gWUVTOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9j
ZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKIAogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtOTI1LDcgKzkyNSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzKQogewogICAg
IGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gc2V0UHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uOllFU107Ci0gICAgW3Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiBzZXRNYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50OjFdOworICAgIFtwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0UHJld2FybXNQcm9jZXNzZXNBdXRvbWF0aWNhbGx5OllF
U107CiAgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0p
OwogCiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC05NDQsNyArOTQ0LDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgTnVtYmVyT2ZQcmV3YXJtZWRQcm9jZXNzZXMpCiAKICAgICBFWFBFQ1RfRVEoMnUs
IFtwcm9jZXNzUG9vbCBfd2ViUHJvY2Vzc0NvdW50XSk7CiAgICAgRVhQRUNUX0VRKDF1LCBbcHJv
Y2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkXSk7Ci0gICAgRVhQRUNU
X0VRKDF1LCBbcHJvY2Vzc1Bvb2wgX3ByZXdhcm1lZFdlYlByb2Nlc3NDb3VudF0pOworICAgIEVY
UEVDVF9UUlVFKFtwcm9jZXNzUG9vbCBfaGFzUHJld2FybWVkV2ViUHJvY2Vzc10pOwogCiAgICAg
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwpAQCAtOTUzLDcgKzk1Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IE51bWJlck9mUHJld2FybWVkUHJvY2Vzc2VzKQogCiAgICAgRVhQRUNUX0VRKDN1LCBbcHJvY2Vz
c1Bvb2wgX3dlYlByb2Nlc3NDb3VudF0pOwogICAgIEVYUEVDVF9FUSgydSwgW3Byb2Nlc3NQb29s
IF93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZF0pOwotICAgIEVYUEVDVF9FUSgxdSwg
W3Byb2Nlc3NQb29sIF9wcmV3YXJtZWRXZWJQcm9jZXNzQ291bnRdKTsKKyAgICBFWFBFQ1RfVFJV
RShbcHJvY2Vzc1Bvb2wgX2hhc1ByZXdhcm1lZFdlYlByb2Nlc3NdKTsKIH0KIAogc3RhdGljIGNv
bnN0IGNoYXIqIHZpc2liaWxpdHlCeXRlcyA9IFIiUFNPTlJFU09VUkNFKApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXRNYXhpbXVtUHJld2FybWVk
UHJvY2Vzc0NvdW50Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXRNYXhpbXVtUHJld2FybWVkUHJvY2Vzc0NvdW50Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYmM1NGY4N2YzNWY5ODBmZTZjNzI3N2ZhNWIyMTYyM2MyZjhiMWNjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2V0TWF4aW11bVByZXdhcm1lZFByb2Nlc3NDb3VudC5tbQor
KysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLQotI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3QuaCIK
LSNpbXBvcnQgPFdlYktpdC9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViS2l0
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotVEVTVChXS1Byb2Nlc3NQb29sLCBTZXRNYXhpbXVt
UHJld2FybWVkUHJvY2Vzc0NvdW50KQotewotICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIFtwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0TWF4aW11bVByZXdhcm1lZFByb2Nl
c3NDb3VudDoyXTsKLSAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bv
b2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmdldCgpXSk7Ci0KLSAgICBFWFBFQ1RfRVEoMHUsIFtwcm9jZXNzUG9vbCBfcHJld2FybWVkV2Vi
UHJvY2Vzc0NvdW50XSk7Ci0KLSAgICBbcHJvY2Vzc1Bvb2wgX3dhcm1Jbml0aWFsUHJvY2Vzc107
Ci0KLSAgICBFWFBFQ1RfRVEoMXUsIFtwcm9jZXNzUG9vbCBfcHJld2FybWVkV2ViUHJvY2Vzc0Nv
dW50XSk7Ci0KLSAgICBbcHJvY2Vzc1Bvb2wgX3dhcm1Jbml0aWFsUHJvY2Vzc107Ci0KLSAgICBF
WFBFQ1RfRVEoMnUsIFtwcm9jZXNzUG9vbCBfcHJld2FybWVkV2ViUHJvY2Vzc0NvdW50XSk7Ci0K
LSAgICBbcHJvY2Vzc1Bvb2wgX3dhcm1Jbml0aWFsUHJvY2Vzc107Ci0KLSAgICBFWFBFQ1RfRVEo
MnUsIFtwcm9jZXNzUG9vbCBfcHJld2FybWVkV2ViUHJvY2Vzc0NvdW50XSk7Ci0KLSAgICAvLyBU
ZXN0IHRvIG1ha2Ugc3VyZSB0aGlzIGRvZXNuJ3QgY2F1c2UgYSBjcmFzaAotICAgIFtwcm9jZXNz
UG9vbCBfc2V0TWF4aW11bU51bWJlck9mUHJvY2Vzc2VzOjFdOwotfQotCi0jZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>