<?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>188887</bug_id>
          
          <creation_ts>2018-08-23 08:28:01 -0700</creation_ts>
          <short_desc>REGRESSION(r235216): Caused 50+ Layout Tests to Crash and 173 api Failures on Debug builds (Requested by Truitt on #webkit).</short_desc>
          <delta_ts>2018-08-23 08:31:38 -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>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>188765</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453059</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-23 08:28:01 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/235216 broke the build:
Caused 50+ Layout Tests to Crash and 173 api Failures on Debug builds (Requested by Truitt 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>1453061</commentid>
    <comment_count>1</comment_count>
      <attachid>347923</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-23 08:28:13 -0700</bug_when>
    <thetext>Created attachment 347923
ROLLOUT of r235216

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>1453062</commentid>
    <comment_count>2</comment_count>
      <attachid>347923</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-23 08:30:40 -0700</bug_when>
    <thetext>Comment on attachment 347923
ROLLOUT of r235216

Clearing flags on attachment: 347923

Committed r235224: &lt;https://trac.webkit.org/changeset/235224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453063</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-23 08:30:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453064</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-23 08:31:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/43644410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347923</attachid>
            <date>2018-08-23 08:28:13 -0700</date>
            <delta_ts>2018-08-23 08:30:40 -0700</delta_ts>
            <desc>ROLLOUT of r235216</desc>
            <filename>bug-188887-20180823112812.patch</filename>
            <type>text/plain</type>
            <size>34975</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdkODJlNmY2NTc5YTkzMzVi
ZTg2ZGE0MWU4MzYyODUzNTFlNWU5MzcuLjA0YWI4MjI0ZTJkOGQ5YzJmNGRlMmZkZjI4ZDBkN2Iz
NWVlYzJlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDgtMjMgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMzUyMTYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODg4ODcKKworICAgICAgICBDYXVzZWQgNTArIExheW91dCBUZXN0cyB0byBD
cmFzaCBhbmQgMTczIGFwaSBGYWlsdXJlcyBvbiBEZWJ1ZworICAgICAgICBidWlsZHMgKFJlcXVl
c3RlZCBieSBUcnVpdHQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0
OgorCisgICAgICAgICJNb3ZlIGxlZ2FjeSBkaXJlY3RvcnkgY29uZmlndXJhdGlvbiBmcm9tIFdl
YlByb2Nlc3NQb29sIHRvCisgICAgICAgIEFQSTo6V2Vic2l0ZURhdGFTdG9yZSIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODc2NQorICAgICAgICBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjM1MjE2CisKIDIwMTgtMDgtMjMgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZEdyYXBo
aWNzXSBSZW1vdmUgdGhlIHJlbWFpbmluZyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSBj
cnVmdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcAppbmRleCAxNGZhOGQ2YzA0ZjgyYmU0MDg4ODAzNGZj
OTE2YmYzYzUxNTQ4ZDRjLi5hZjE2N2RlNGY5YTYyYjM3YWIwNjk1OWE3OGY3NDk5MDcxNTY4YjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcApAQCAtMzgsMTIgKzM4LDIyIEBAIFJlZjxQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCkKIAog
UmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpj
cmVhdGVXaXRoTGVnYWN5T3B0aW9ucygpCiB7Ci0gICAgYXV0byBjb25maWd1cmF0aW9uID0gUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGVXaXRoV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24oV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRp
b24oKSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
OjpjcmVhdGUoKTsKIAogICAgIGNvbmZpZ3VyYXRpb24tPm1fc2hvdWxkSGF2ZUxlZ2FjeURhdGFT
dG9yZSA9IHRydWU7CiAgICAgY29uZmlndXJhdGlvbi0+bV9tYXhpbXVtUHJvY2Vzc0NvdW50ID0g
MTsKICAgICBjb25maWd1cmF0aW9uLT5tX2NhY2hlTW9kZWwgPSBXZWJLaXQ6OkNhY2hlTW9kZWxE
b2N1bWVudFZpZXdlcjsKIAorICAgIGNvbmZpZ3VyYXRpb24tPm1fYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKKyAgICBjb25maWd1cmF0aW9uLT5tX2FwcGxpY2F0
aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgPSAiQXBwbGljYXRpb25DYWNoZSI7Cisg
ICAgY29uZmlndXJhdGlvbi0+bV9kaXNrQ2FjaGVEaXJlY3RvcnkgPSBXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKKyAg
ICBjb25maWd1cmF0aW9uLT5tX21lZGlhQ2FjaGVEaXJlY3RvcnkgPSBXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7CisgICAg
Y29uZmlndXJhdGlvbi0+bV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0
b3J5KCk7CisgICAgY29uZmlndXJhdGlvbi0+bV9sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRMb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoKTsKKyAgICBjb25maWd1cmF0aW9uLT5tX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnkg
PSBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCk7CisgICAgY29uZmlndXJhdGlvbi0+bV93ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdFdl
YlNRTERhdGFiYXNlRGlyZWN0b3J5KCk7CisgICAgY29uZmlndXJhdGlvbi0+bV9qYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCk7CisKICAgICBy
ZXR1cm4gY29uZmlndXJhdGlvbjsKIH0KIApAQCAtNTUsNyArNjUsNyBAQCBSZWY8UHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNyZWF0ZVdpdGhXZWJz
aXRlRGF0YVN0bwogICAgIGNvbmZpZ3VyYXRpb24tPm1fYXBwbGljYXRpb25DYWNoZUZsYXRGaWxl
U3ViZGlyZWN0b3J5TmFtZSA9IGxlZ2FjeUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZUZs
YXRGaWxlU3ViZGlyZWN0b3J5TmFtZTsKICAgICBjb25maWd1cmF0aW9uLT5tX2Rpc2tDYWNoZURp
cmVjdG9yeSA9IGxlZ2FjeUNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlRGlyZWN0b3J5OwogICAg
IGNvbmZpZ3VyYXRpb24tPm1fbWVkaWFDYWNoZURpcmVjdG9yeSA9IGxlZ2FjeUNvbmZpZ3VyYXRp
b24ubWVkaWFDYWNoZURpcmVjdG9yeTsKLSAgICBjb25maWd1cmF0aW9uLT5tX2luZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5ID0gV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdEluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5KCk7CisgICAgY29uZmlndXJhdGlvbi0+bV9pbmRleGVkREJEYXRh
YmFzZURpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVm
YXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7CiAgICAgY29uZmlndXJhdGlvbi0+bV9s
b2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBsZWdhY3lDb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZURp
cmVjdG9yeTsKICAgICBjb25maWd1cmF0aW9uLT5tX21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnkg
PSBsZWdhY3lDb25maWd1cmF0aW9uLm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CiAgICAgY29u
ZmlndXJhdGlvbi0+bV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbGVnYWN5Q29u
ZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGFi
YTg0NWE3MDUwOTYxODFjZDAzODc4ZmQ0ZDI4YWMxMDY2NjE1ZmYuLmQwNDcyYzhhNzFkNmM4MTIx
OTBhYmRhNzc4M2YyOWY0MjZkYzNmNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTExOSwxOSArMTE5LDQgQEAgU3Ry
aW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeSgpCiB9CiAjZW5kaWYKIAotV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0
aW9uIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9u
KCkKLXsKLSAgICBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OkNvbmZpZ3VyYXRpb24gY29uZmln
dXJhdGlvbjsKLSAgICBjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBs
ZWdhY3lEZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpOwotICAgIGNvbmZpZ3VyYXRp
b24uYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9ICJBcHBsaWNhdGlv
bkNhY2hlIjsKLSAgICBjb25maWd1cmF0aW9uLm5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IGxlZ2Fj
eURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKLSAgICBjb25maWd1cmF0aW9uLm1lZGlh
Q2FjaGVEaXJlY3RvcnkgPSBsZWdhY3lEZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpOwotICAg
IGNvbmZpZ3VyYXRpb24ubWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IGxlZ2FjeURlZmF1bHRN
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCk7Ci0gICAgY29uZmlndXJhdGlvbi5pbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeSA9IGxlZ2FjeURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9y
eSgpOwotICAgIGNvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBsZWdhY3lE
ZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKTsKLSAgICBjb25maWd1cmF0aW9uLmphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5ID0gbGVnYWN5RGVmYXVsdEphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5KCk7Ci0gICAgCi0gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIEFQSQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggYmZjYmVjZjYxN2ViMTZkZDg5N2JmNjU5
NmQxOWQ0ZGVjMmUwN2IwZC4uNzY4NTU1ZDhhOTA2MjliMzMyMzI4NjJkN2Y3YjQ2MzQzOGZkMTQz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRh
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFT
dG9yZS5oCkBAIC01NywyNyArNTcsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgZGVm
YXVsdENhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdE5l
dHdvcmtDYWNoZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdE1lZGlhQ2Fj
aGVEaXJlY3RvcnkoKTsKKwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdEluZGV4ZWREQkRhdGFi
YXNlRGlyZWN0b3J5KCk7CiAgICAgc3RhdGljIFN0cmluZyBkZWZhdWx0U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdExvY2FsU3Rv
cmFnZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdE1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkoKTsKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1bHRXZWJTUUxEYXRhYmFzZURp
cmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnkoKTsKKwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVsdEphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5KCk7CiAKICAgICBzdGF0aWMgV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpDb25maWd1cmF0aW9uIGRlZmF1bHREYXRhU3RvcmVDb25maWd1cmF0aW9uKCk7CiAKLSAg
ICBzdGF0aWMgU3RyaW5nIGxlZ2FjeURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7
Ci0gICAgc3RhdGljIFN0cmluZyBsZWdhY3lEZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7
Ci0gICAgc3RhdGljIFN0cmluZyBsZWdhY3lEZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCk7
Ci0gICAgc3RhdGljIFN0cmluZyBsZWdhY3lEZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rv
cnkoKTsKLSAgICBzdGF0aWMgU3RyaW5nIGxlZ2FjeURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeSgpOwotICAgIHN0YXRpYyBTdHJpbmcgbGVnYWN5RGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkoKTsKLSAgICBzdGF0aWMgU3RyaW5nIGxlZ2FjeURlZmF1bHRNZWRpYUNhY2hlRGly
ZWN0b3J5KCk7Ci0gICAgc3RhdGljIFN0cmluZyBsZWdhY3lEZWZhdWx0SmF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3RvcnkoKTsKLQotICAgIHN0YXRpYyBXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OkNvbmZpZ3VyYXRpb24gbGVnYWN5RGVmYXVsdERhdGFTdG9yZUNvbmZpZ3VyYXRpb24oKTsK
LQogcHJpdmF0ZToKICAgICBlbnVtIFNob3VsZENyZWF0ZURpcmVjdG9yeSB7IENyZWF0ZURpcmVj
dG9yeSwgRG9udENyZWF0ZURpcmVjdG9yeSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpp
bmRleCBlNDE4Mzk2ZGI1ZGEyMjA3YzRiZGMxNDNhOTU0ZDQzYzg2YzA3MzQwLi4xNGM1ZTM2ZjJm
ZmU2NGFhMjMzNTllYTU2YmIwNDk5YmJiNTE2MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElXZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0KQEAgLTI5LDIwICsyOSwxMiBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJTYW5kYm94VXRpbGl0aWVzLmgiCiAKLSNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLQogI2lmIFBMQVRGT1JN
KElPUykKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjZW5k
aWYKIAogbmFtZXNwYWNlIEFQSSB7CiAKLU5TU3RyaW5nICpXZWJEYXRhYmFzZURpcmVjdG9yeURl
ZmF1bHRzS2V5ID0gQCJXZWJEYXRhYmFzZURpcmVjdG9yeSI7Ci1OU1N0cmluZyAqV2ViU3RvcmFn
ZURpcmVjdG9yeURlZmF1bHRzS2V5ID0gQCJXZWJLaXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhQ
cmVmZXJlbmNlS2V5IjsKLU5TU3RyaW5nICpXZWJLaXRNZWRpYUNhY2hlRGlyZWN0b3J5RGVmYXVs
dHNLZXkgPSBAIldlYktpdE1lZGlhQ2FjaGVEaXJlY3RvcnkiOwotTlNTdHJpbmcgKldlYktpdE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViS2l0TWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSI7Ci0KIFN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0QXBwbGlj
YXRpb25DYWNoZURpcmVjdG9yeSgpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTEwLDExMyAr
MTAyLDYgQEAgU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRKYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeSgpCiAgICAgcmV0dXJuIHRlbXBEaXJlY3RvcnlGaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oIkphdmFTY3JpcHRDb3JlRGVidWciLCBEb250Q3JlYXRlRGlyZWN0b3J5KTsK
IH0KIAotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRBcHBsaWNhdGlvbkNh
Y2hlRGlyZWN0b3J5KCkKLXsKLSAgICBOU1N0cmluZyAqYXBwTmFtZSA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07Ci0gICAgaWYgKCFhcHBOYW1lKQotICAgICAgICBh
cHBOYW1lID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBwcm9jZXNzTmFtZV07Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcXVpcmsgdXNlZCB0byBtYWtlIHRoZXNlIGFwcHMg
c2hhcmUgYXBwbGljYXRpb24gY2FjaGUgc3RvcmFnZSwgYnV0IGRvZXNuJ3QgYWNjb21wbGlzaCB0
aGF0IGFueSBtb3JlLgotICAgIC8vIFByZXNlcnZpbmcgaXQgYXZvaWRzIHRoZSBuZWVkIHRvIG1p
Z3JhdGUgZGF0YSB3aGVuIHVwZ3JhZGluZy4KLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRp
b246OmlzTW9iaWxlU2FmYXJpKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzV2ViQXBw
KCkpCi0gICAgICAgIGFwcE5hbWUgPSBAImNvbS5hcHBsZS5XZWJBcHBDYWNoZSI7Ci0jZW5kaWYK
LSAgICAKLSAgICBBU1NFUlQoYXBwTmFtZSk7Ci0gICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAg
IE5TU3RyaW5nICpjYWNoZURpciA9IFtOU0hvbWVEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJMaWJyYXJ5L0NhY2hlcyJdOwotI2Vsc2UKLSAgICBjaGFyIGNhY2hl
RGlyZWN0b3J5W01BWFBBVEhMRU5dOwotICAgIHNpemVfdCBjYWNoZURpcmVjdG9yeUxlbiA9IGNv
bmZzdHIoX0NTX0RBUldJTl9VU0VSX0NBQ0hFX0RJUiwgY2FjaGVEaXJlY3RvcnksIE1BWFBBVEhM
RU4pOwotICAgIGlmICghY2FjaGVEaXJlY3RvcnlMZW4pCi0gICAgICAgIHJldHVybiBTdHJpbmco
KTsKLSAgICAKLSAgICBOU1N0cmluZyAqY2FjaGVEaXIgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIHN0cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246Y2FjaGVEaXJlY3Rv
cnkgbGVuZ3RoOmNhY2hlRGlyZWN0b3J5TGVuIC0gMV07Ci0jZW5kaWYKLSAgICBOU1N0cmluZyog
Y2FjaGVQYXRoID0gW2NhY2hlRGlyIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDphcHBO
YW1lXTsKLSAgICByZXR1cm4gV2ViS2l0OjpzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRo
KFtjYWNoZVBhdGggc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF0pOwotfQotCi1TdHJpbmcgV2Vi
c2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpCi17Ci0g
ICAgTlNTdHJpbmcgKmNhY2hlUGF0aCA9IENGQnJpZGdpbmdSZWxlYXNlKF9DRlVSTENhY2hlQ29w
eUNhY2hlRGlyZWN0b3J5KFtbTlNVUkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gX0NGVVJMQ2FjaGVd
KSk7Ci0gICAgaWYgKCFjYWNoZVBhdGgpCi0gICAgICAgIGNhY2hlUGF0aCA9IEAifi9MaWJyYXJ5
L0NhY2hlcy9jb20uYXBwbGUuV2ViS2l0LldlYlByb2Nlc3MiOwotICAgIAotICAgIGNhY2hlUGF0
aCA9IFtjYWNoZVBhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0Q2Fj
aGUiXTsKLSAgICAKLSAgICByZXR1cm4gV2ViS2l0OjpzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtz
SW5QYXRoKFtjYWNoZVBhdGggc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF0pOwotfQotCi1TdHJp
bmcgV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5
KCkKLXsKLSAgICBOU1N0cmluZyAqZGF0YWJhc2VzRGlyZWN0b3J5ID0gW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYkRhdGFiYXNlRGlyZWN0b3J5
RGVmYXVsdHNLZXldOwotICAgIGlmICghZGF0YWJhc2VzRGlyZWN0b3J5IHx8ICFbZGF0YWJhc2Vz
RGlyZWN0b3J5IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIGRhdGFi
YXNlc0RpcmVjdG9yeSA9IEAifi9MaWJyYXJ5L1dlYktpdC9EYXRhYmFzZXMiOwotICAgIHJldHVy
biBXZWJLaXQ6OnN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoW2RhdGFiYXNlc0RpcmVj
dG9yeSBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXSk7Ci19Ci0KLVN0cmluZyBXZWJzaXRlRGF0
YVN0b3JlOjpsZWdhY3lEZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQotewotICAg
IC8vIEluZGV4ZWQgZGF0YWJhc2VzIGV4aXN0IGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSAiZGF0
YWJhc2UgZGlyZWN0b3J5IHBhdGguIgotICAgIC8vIEN1cnJlbnRseSwgdGhlIHRvcCBsZXZlbCBv
ZiB0aGF0IGRpcmVjdG9yeSBjb250YWlucyBlbnRpdGllcyByZWxhdGVkIHRvIFdlYlNRTCBkYXRh
YmFzZXMuCi0gICAgLy8gV2Ugc2hvdWxkIGZpeCB0aGlzLCBhbmQgbW92ZSBXZWJTUUwgaW50byBh
IHN1YmRpcmVjdG9yeSAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NDgwNykKLSAgICAvLyBJbiB0aGUgbWVhbnRpbWUsIGFuIGVudGl0eSBuYW1lIHByZWZpeGVkIHdp
dGggdGhyZWUgdW5kZXJzY29yZXMgd2lsbCBub3QgY29uZmxpY3Qgd2l0aCBhbnkgV2ViU1FMIGVu
dGl0aWVzLgotICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQobGVnYWN5RGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCksICJfX19JbmRl
eGVkREIiKTsKLX0KLQotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRMb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkoKQotewotICAgIE5TU3RyaW5nICpsb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6
V2ViU3RvcmFnZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKLSAgICBpZiAoIWxvY2FsU3RvcmFnZURp
cmVjdG9yeSB8fCAhW2xvY2FsU3RvcmFnZURpcmVjdG9yeSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dKQotICAgICAgICBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBAIn4vTGlicmFyeS9X
ZWJLaXQvTG9jYWxTdG9yYWdlIjsKLSAgICByZXR1cm4gV2ViS2l0OjpzdHJpbmdCeVJlc29sdmlu
Z1N5bWxpbmtzSW5QYXRoKFtsb2NhbFN0b3JhZ2VEaXJlY3Rvcnkgc3RyaW5nQnlTdGFuZGFyZGl6
aW5nUGF0aF0pOwotfQotCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdE1l
ZGlhQ2FjaGVEaXJlY3RvcnkoKQotewotICAgIE5TU3RyaW5nICptZWRpYUtleXNDYWNoZURpcmVj
dG9yeSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktl
eTpXZWJLaXRNZWRpYUNhY2hlRGlyZWN0b3J5RGVmYXVsdHNLZXldOwotICAgIGlmICghbWVkaWFL
ZXlzQ2FjaGVEaXJlY3RvcnkgfHwgIVttZWRpYUtleXNDYWNoZURpcmVjdG9yeSBpc0tpbmRPZkNs
YXNzOltOU1N0cmluZyBjbGFzc11dKSB7Ci0gICAgICAgIG1lZGlhS2V5c0NhY2hlRGlyZWN0b3J5
ID0gTlNUZW1wb3JhcnlEaXJlY3RvcnkoKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghV2ViS2l0
Ojpwcm9jZXNzSGFzQ29udGFpbmVyKCkpIHsKLSAgICAgICAgICAgIE5TU3RyaW5nICpidW5kbGVJ
ZGVudGlmaWVyID0gW05TQnVuZGxlIG1haW5CdW5kbGVdLmJ1bmRsZUlkZW50aWZpZXI7Ci0gICAg
ICAgICAgICBpZiAoIWJ1bmRsZUlkZW50aWZpZXIpCi0gICAgICAgICAgICAgICAgYnVuZGxlSWRl
bnRpZmllciA9IFtOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXS5wcm9jZXNzTmFtZTsKLSAgICAg
ICAgICAgIG1lZGlhS2V5c0NhY2hlRGlyZWN0b3J5ID0gW21lZGlhS2V5c0NhY2hlRGlyZWN0b3J5
IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpidW5kbGVJZGVudGlmaWVyXTsKLSAgICAg
ICAgfQotICAgICAgICBtZWRpYUtleXNDYWNoZURpcmVjdG9yeSA9IFttZWRpYUtleXNDYWNoZURp
cmVjdG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJLaXQvTWVkaWFDYWNo
ZSJdOwotICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtz
SW5QYXRoKFttZWRpYUtleXNDYWNoZURpcmVjdG9yeSBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRo
XSk7Ci19Ci0KLVN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0TWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSgpCi17Ci0gICAgTlNTdHJpbmcgKm1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JL
ZXk6V2ViS2l0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKLSAgICBpZiAo
IW1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgfHwgIVttZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIG1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkgPSBAIn4vTGlicmFyeS9XZWJLaXQvTWVkaWFLZXlzIjsKLSAgICByZXR1cm4g
V2ViS2l0OjpzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKFttZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5IHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdKTsKLX0KLQotU3RyaW5nIFdlYnNp
dGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9y
eSgpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBwYXRoID0gV2ViS2l0OjpwYXRo
Rm9yUHJvY2Vzc0NvbnRhaW5lcigpOwotICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKLSAgICAgICAg
cGF0aCA9IE5TSG9tZURpcmVjdG9yeSgpOwotICAgIAotICAgIHBhdGggPSBwYXRoICsgIi9MaWJy
YXJ5L1dlYktpdC9KYXZhU2NyaXB0Q29yZURlYnVnIjsKLSAgICBwYXRoID0gV2ViS2l0OjpzdHJp
bmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKHBhdGgpOwotICAgIAotICAgIHJldHVybiBwYXRo
OwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGphdmFTY3JpcHRDb25maWdQYXRoID0g
QCJ+L0xpYnJhcnkvV2ViS2l0L0phdmFTY3JpcHRDb3JlRGVidWciOwotICAgIAotICAgIHJldHVy
biBXZWJLaXQ6OnN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoW2phdmFTY3JpcHRDb25m
aWdQYXRoIHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdKTsKLSNlbmRpZgotfQotCiBTdHJpbmcg
V2Vic2l0ZURhdGFTdG9yZTo6dGVtcERpcmVjdG9yeUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeU5hbWUsIFNob3VsZENyZWF0ZURpcmVjdG9yeSBzaG91bGRD
cmVhdGVEaXJlY3RvcnkpCiB7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47
CkBAIC0zMjQsNCArMjA5LDQgQEAgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0
aW9uIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVDb25maWcKICAgICByZXR1cm4g
Y29uZmlndXJhdGlvbjsKIH0KIAotfSAvLyBuYW1lc3BhY2UgQVBJCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9BUElXZWJzaXRlRGF0YVN0b3JlR0xpYi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9BUElXZWJzaXRlRGF0YVN0b3Jl
R0xpYi5jcHAKaW5kZXggZDhiMTNlNzgyM2EyZWVkZjUzZjYzMjkzNzAwODQ4OWNiOTcyZDk4MS4u
NWVlMDFjMmFiZGYzNjdmMTQ5N2VmOTAyNzBhMmFjOGJlZWVmZTEwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvQVBJV2Vic2l0ZURhdGFTdG9yZUdMaWIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0FQSVdlYnNpdGVEYXRhU3Rv
cmVHTGliLmNwcApAQCAtOTMsNzUgKzkzLDYgQEAgU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6Ondl
YnNpdGVEYXRhRGlyZWN0b3J5RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmkKICAg
ICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFdl
YkNvcmU6OkZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZ19n
ZXRfdXNlcl9kYXRhX2RpcigpKSwgZGlyZWN0b3J5TmFtZSk7CiB9CiAKLVN0cmluZyBXZWJzaXRl
RGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCi17Ci0j
aWYgUExBVEZPUk0oV1BFKQotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdf
YnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIs
IG51bGxwdHIpKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5nZXQoKSk7Ci0jZW5kaWYKLSAg
ICByZXR1cm4gZGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKLX0KLQotU3RyaW5n
IFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQot
ewotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVj
dG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiY2Fj
aGUiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06OnN0cmluZ0Zy
b21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKLSNl
bmRpZgotICAgIHJldHVybiBkZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7Ci19Ci0KLVN0
cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnkoKQotewotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhYmFz
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIs
ICJkYXRhYmFzZXMiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJhc2VEaXJlY3RvcnkuZ2V0
KCkpOwotI2VuZGlmCi0gICAgcmV0dXJuIGRlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgp
OwotfQotCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdEluZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5KCkKLXsKLSNpZiBQTEFURk9STShXUEUpCi0gICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91
c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRkYiIsIG51bGxwdHIp
KTsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Ci0jZW5kaWYK
LSAgICByZXR1cm4gZGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7Ci19Ci0KLVN0
cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5
KCkKLXsKLSNpZiBQTEFURk9STShXUEUpCi0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RvcmFnZURp
cmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJs
b2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5nZXQo
KSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwot
fQotCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVsdE1lZGlhQ2FjaGVEaXJl
Y3RvcnkoKQotewotI2lmIFBMQVRGT1JNKFdQRSkKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBjYWNo
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUi
LCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3Rl
bTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVjdG9yeS5nZXQo
KSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsKLX0K
LQotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRNZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5KCkKLXsKLSNpZiBQTEFURk9STShXUEUpCi0gICAgR1VuaXF1ZVB0cjxnY2hhcj4g
bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0
YV9kaXIoKSwgIndwZSIsICJtZWRpYWtleXMiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNv
cmU6OkZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZGVmYXVsdE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKTsKLX0KLQotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6
OmxlZ2FjeURlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpCi17Ci0gICAg
R1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNjcmlwdENvcmVDb25maWdEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksIEJBU0VfRElSRUNUT1JZLCAiSmF2YVNjcmlw
dENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6
c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0Q29yZUNvbmZpZ0Rp
cmVjdG9yeS5nZXQoKSk7Ci19Ci0KIFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Q29uZmlndXJh
dGlvbiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29uZmlndXJhdGlvbigpCiB7
CiAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd2luL0FQSVdlYnNp
dGVEYXRhU3RvcmVXaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dpbi9BUElX
ZWJzaXRlRGF0YVN0b3JlV2luLmNwcAppbmRleCA1MGRmMmFhZWU2MTRlM2RiYTI3NjBkZmUyNjRl
OTM2NzI4MTNiNjFiLi5lYWZhNDcwZGUyMTJlMWI1YWYzOTcyYzkwZjdlZTQ1NjFlNzFmMmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd2luL0FQSVdlYnNpdGVEYXRh
U3RvcmVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93aW4vQVBJV2Vi
c2l0ZURhdGFTdG9yZVdpbi5jcHAKQEAgLTg1LDQ2ICs4NSw2IEBAIFN0cmluZyBXZWJzaXRlRGF0
YVN0b3JlOjp3ZWJzaXRlRGF0YURpcmVjdG9yeUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25z
dCBTdHJpCiAgICAgcmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChXZWJDb3JlOjpGaWxlU3lzdGVtOjpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJl
Y3RvcnkoKSwgZGlyZWN0b3J5TmFtZSk7CiB9CiAKLVN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjps
ZWdhY3lEZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCi17Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChXZWJDb3JlOjpGaWxl
U3lzdGVtOjpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgIkFwcGxpY2F0aW9u
Q2FjaGUiKTsKLX0KLQotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHROZXR3
b3JrQ2FjaGVEaXJlY3RvcnkoKQotewotICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoV2ViQ29yZTo6RmlsZVN5c3RlbTo6bG9jYWxVc2VyU3Bl
Y2lmaWNTdG9yYWdlRGlyZWN0b3J5KCksICJOZXR3b3JrQ2FjaGUiKTsKLX0KLQotU3RyaW5nIFdl
YnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCi17
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChXZWJDb3JlOjpGaWxlU3lzdGVtOjpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3Rvcnko
KSwgIldlYlNRTCIpOwotfQotCi1TdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6bGVnYWN5RGVmYXVs
dEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6Rmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06Omxv
Y2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCAiSW5kZXhlZERCIik7Ci19Ci0KLVN0
cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5
KCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVj
dG9yeSgpLCAiTG9jYWxTdG9yYWdlIik7Ci19Ci0KLVN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjps
ZWdhY3lEZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6
OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChXZWJDb3JlOjpGaWxlU3lzdGVt
Ojpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgIk1lZGlhQ2FjaGUiKTsKLX0K
LQotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmxlZ2FjeURlZmF1bHRNZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5KCkKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3Rv
cmFnZURpcmVjdG9yeSgpLCAiTWVkaWFLZXlTdG9yYWdlIik7Ci19Ci0KLVN0cmluZyBXZWJzaXRl
RGF0YVN0b3JlOjpsZWdhY3lEZWZhdWx0SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnko
KQotewotICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoV2ViQ29yZTo6RmlsZVN5c3RlbTo6bG9jYWxVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0
b3J5KCksICJKYXZhU2NyaXB0Q29yZURlYnVnIik7Ci19Ci0KIFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6Q29uZmlndXJhdGlvbiBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlQ29u
ZmlndXJhdGlvbigpCiB7CiAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBlMTlmMDRkZDNkODI5NDljN2Q0YTlhMTkz
NWE3ZDJkZGJjZDUzMWQxLi4yMzIyNzNmNzY1NWUwY2M1MzhiOTViZDU3Y2VkZjIzZDY5ODMxOWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KQEAgLTYyLDEwICs2MiwxNCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAorTlNTdHJpbmcgKldlYkRhdGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYkRh
dGFiYXNlRGlyZWN0b3J5IjsKIE5TU3RyaW5nICpXZWJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3RvcnkiOwogTlNTdHJpbmcgKldlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleSA9IEAiV2ViS2l0
TG9jYWxDYWNoZSI7CitOU1N0cmluZyAqV2ViU3RvcmFnZURpcmVjdG9yeURlZmF1bHRzS2V5ID0g
QCJXZWJLaXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhQcmVmZXJlbmNlS2V5IjsKIE5TU3RyaW5n
ICpXZWJLaXRKU0NKSVRFbmFibGVkRGVmYXVsdHNLZXkgPSBAIldlYktpdEpTQ0pJVEVuYWJsZWRE
ZWZhdWx0c0tleSI7CiBOU1N0cmluZyAqV2ViS2l0SlNDRlRMSklURW5hYmxlZERlZmF1bHRzS2V5
ID0gQCJXZWJLaXRKU0NGVExKSVRFbmFibGVkRGVmYXVsdHNLZXkiOworTlNTdHJpbmcgKldlYktp
dE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViS2l0TWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSI7CitOU1N0cmluZyAqV2ViS2l0TWVkaWFDYWNoZURpcmVjdG9yeURl
ZmF1bHRzS2V5ID0gQCJXZWJLaXRNZWRpYUNhY2hlRGlyZWN0b3J5IjsKIAogI2lmICFQTEFURk9S
TShJT1MpCiBzdGF0aWMgTlNTdHJpbmcgKldlYktpdEFwcGxpY2F0aW9uRGlkQ2hhbmdlQWNjZXNz
aWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZU5vdGlmaWNhdGlvbiA9IEAiTlNBcHBsaWNhdGlv
bkRpZENoYW5nZUFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VOb3RpZmljYXRpb24i
OwpAQCAtMzg5LDYgKzM5MywxMjEgQEAgU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpjb250YWluZXJU
ZW1wb3JhcnlEaXJlY3RvcnkoKSBjb25zdAogfQogI2VuZGlmCiAKK1N0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQorewor
ICAgIHJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQoKTsKKworICAgIE5TU3RyaW5nICpkYXRh
YmFzZXNEaXJlY3RvcnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBv
YmplY3RGb3JLZXk6V2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleV07CisgICAgaWYgKCFk
YXRhYmFzZXNEaXJlY3RvcnkgfHwgIVtkYXRhYmFzZXNEaXJlY3RvcnkgaXNLaW5kT2ZDbGFzczpb
TlNTdHJpbmcgY2xhc3NdXSkKKyAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0gQCJ+L0xpYnJh
cnkvV2ViS2l0L0RhdGFiYXNlcyI7CisgICAgcmV0dXJuIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlu
a3NJblBhdGgoW2RhdGFiYXNlc0RpcmVjdG9yeSBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXSk7
Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIC8vIEluZGV4ZWQgZGF0YWJhc2VzIGV4aXN0
IGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSAiZGF0YWJhc2UgZGlyZWN0b3J5IHBhdGguIgorICAg
IC8vIEN1cnJlbnRseSwgdGhlIHRvcCBsZXZlbCBvZiB0aGF0IGRpcmVjdG9yeSBjb250YWlucyBl
bnRpdGllcyByZWxhdGVkIHRvIFdlYlNRTCBkYXRhYmFzZXMuCisgICAgLy8gV2Ugc2hvdWxkIGZp
eCB0aGlzLCBhbmQgbW92ZSBXZWJTUUwgaW50byBhIHN1YmRpcmVjdG9yeSAoaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDgwNykKKyAgICAvLyBJbiB0aGUgbWVhbnRp
bWUsIGFuIGVudGl0eSBuYW1lIHByZWZpeGVkIHdpdGggdGhyZWUgdW5kZXJzY29yZXMgd2lsbCBu
b3QgY29uZmxpY3Qgd2l0aCBhbnkgV2ViU1FMIGVudGl0aWVzLgorICAgIHJldHVybiBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobGVnYWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnkoKSwgIl9fX0luZGV4ZWREQiIpOworfQorCitTdHJpbmcgV2ViUHJv
Y2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7
CisgICAgcmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpOworCisgICAgTlNTdHJpbmcgKmxv
Y2FsU3RvcmFnZURpcmVjdG9yeSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIG9iamVjdEZvcktleTpXZWJTdG9yYWdlRGlyZWN0b3J5RGVmYXVsdHNLZXldOworICAgIGlm
ICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5IHx8ICFbbG9jYWxTdG9yYWdlRGlyZWN0b3J5IGlzS2lu
ZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCisgICAgICAgIGxvY2FsU3RvcmFnZURpcmVjdG9y
eSA9IEAifi9MaWJyYXJ5L1dlYktpdC9Mb2NhbFN0b3JhZ2UiOworICAgIHJldHVybiBzdHJpbmdC
eVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKFtsb2NhbFN0b3JhZ2VEaXJlY3Rvcnkgc3RyaW5nQnlT
dGFuZGFyZGl6aW5nUGF0aF0pOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIHJlZ2lzdGVyVXNlckRl
ZmF1bHRzSWZOZWVkZWQoKTsKKyAgICAKKyAgICBOU1N0cmluZyAqbWVkaWFLZXlzQ2FjaGVEaXJl
Y3RvcnkgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JL
ZXk6V2ViS2l0TWVkaWFDYWNoZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKKyAgICBpZiAoIW1lZGlh
S2V5c0NhY2hlRGlyZWN0b3J5IHx8ICFbbWVkaWFLZXlzQ2FjaGVEaXJlY3RvcnkgaXNLaW5kT2ZD
bGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgeworICAgICAgICBtZWRpYUtleXNDYWNoZURpcmVjdG9y
eSA9IE5TVGVtcG9yYXJ5RGlyZWN0b3J5KCk7CisgICAgICAgIAorICAgICAgICBpZiAoIVdlYktp
dDo6cHJvY2Vzc0hhc0NvbnRhaW5lcigpKSB7CisgICAgICAgICAgICBOU1N0cmluZyAqYnVuZGxl
SWRlbnRpZmllciA9IFtOU0J1bmRsZSBtYWluQnVuZGxlXS5idW5kbGVJZGVudGlmaWVyOworICAg
ICAgICAgICAgaWYgKCFidW5kbGVJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGJ1bmRsZUlk
ZW50aWZpZXIgPSBbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10ucHJvY2Vzc05hbWU7CisgICAg
ICAgICAgICBtZWRpYUtleXNDYWNoZURpcmVjdG9yeSA9IFttZWRpYUtleXNDYWNoZURpcmVjdG9y
eSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6YnVuZGxlSWRlbnRpZmllcl07CisgICAg
ICAgIH0KKyAgICAgICAgbWVkaWFLZXlzQ2FjaGVEaXJlY3RvcnkgPSBbbWVkaWFLZXlzQ2FjaGVE
aXJlY3Rvcnkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0L01lZGlhQ2Fj
aGUiXTsKKyAgICB9CisgICAgcmV0dXJuIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgo
W21lZGlhS2V5c0NhY2hlRGlyZWN0b3J5IHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdKTsKK30K
KworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCk7
CisKKyAgICBOU1N0cmluZyAqbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJLaXRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5RGVmYXVsdHNLZXldOworICAgIGlmICghbWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSB8fCAhW21lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgaXNLaW5kT2ZDbGFzczpbTlNT
dHJpbmcgY2xhc3NdXSkKKyAgICAgICAgbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IEAifi9M
aWJyYXJ5L1dlYktpdC9NZWRpYUtleXMiOworICAgIHJldHVybiBzdHJpbmdCeVJlc29sdmluZ1N5
bWxpbmtzSW5QYXRoKFttZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5IHN0cmluZ0J5U3RhbmRhcmRp
emluZ1BhdGhdKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURl
ZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBOU1N0cmluZyAqYXBwTmFt
ZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CisgICAgaWYgKCFh
cHBOYW1lKQorICAgICAgICBhcHBOYW1lID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBw
cm9jZXNzTmFtZV07CisjaWYgUExBVEZPUk0oSU9TKQorICAgIC8vIFRoaXMgcXVpcmsgdXNlZCB0
byBtYWtlIHRoZXNlIGFwcHMgc2hhcmUgYXBwbGljYXRpb24gY2FjaGUgc3RvcmFnZSwgYnV0IGRv
ZXNuJ3QgYWNjb21wbGlzaCB0aGF0IGFueSBtb3JlLgorICAgIC8vIFByZXNlcnZpbmcgaXQgYXZv
aWRzIHRoZSBuZWVkIHRvIG1pZ3JhdGUgZGF0YSB3aGVuIHVwZ3JhZGluZy4KKyAgICBpZiAoSU9T
QXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgSU9TQXBwbGljYXRpb246OmlzV2ViQXBw
KCkpCisgICAgICAgIGFwcE5hbWUgPSBAImNvbS5hcHBsZS5XZWJBcHBDYWNoZSI7CisjZW5kaWYK
KworICAgIEFTU0VSVChhcHBOYW1lKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBOU1N0cmlu
ZyAqY2FjaGVEaXIgPSBbTlNIb21lRGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OkAiTGlicmFyeS9DYWNoZXMiXTsKKyNlbHNlCisgICAgY2hhciBjYWNoZURpcmVjdG9y
eVtNQVhQQVRITEVOXTsKKyAgICBzaXplX3QgY2FjaGVEaXJlY3RvcnlMZW4gPSBjb25mc3RyKF9D
U19EQVJXSU5fVVNFUl9DQUNIRV9ESVIsIGNhY2hlRGlyZWN0b3J5LCBNQVhQQVRITEVOKTsKKyAg
ICBpZiAoIWNhY2hlRGlyZWN0b3J5TGVuKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAg
ICBOU1N0cmluZyAqY2FjaGVEaXIgPSBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHN0
cmluZ1dpdGhGaWxlU3lzdGVtUmVwcmVzZW50YXRpb246Y2FjaGVEaXJlY3RvcnkgbGVuZ3RoOmNh
Y2hlRGlyZWN0b3J5TGVuIC0gMV07CisjZW5kaWYKKyAgICBOU1N0cmluZyogY2FjaGVQYXRoID0g
W2NhY2hlRGlyIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDphcHBOYW1lXTsKKyAgICBy
ZXR1cm4gc3RyaW5nQnlSZXNvbHZpbmdTeW1saW5rc0luUGF0aChbY2FjaGVQYXRoIHN0cmluZ0J5
U3RhbmRhcmRpemluZ1BhdGhdKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQ
bGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIE5TU3RyaW5nICpj
YWNoZVBhdGggPSBDRkJyaWRnaW5nUmVsZWFzZShfQ0ZVUkxDYWNoZUNvcHlDYWNoZURpcmVjdG9y
eShbW05TVVJMQ2FjaGUgc2hhcmVkVVJMQ2FjaGVdIF9DRlVSTENhY2hlXSkpOworICAgIGlmICgh
Y2FjaGVQYXRoKQorICAgICAgICBjYWNoZVBhdGggPSBAIn4vTGlicmFyeS9DYWNoZXMvY29tLmFw
cGxlLldlYktpdC5XZWJQcm9jZXNzIjsKKworICAgIGNhY2hlUGF0aCA9IFtjYWNoZVBhdGggc3Ry
aW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0Q2FjaGUiXTsKKworICAgIHJldHVy
biBzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKFtjYWNoZVBhdGggc3RyaW5nQnlTdGFu
ZGFyZGl6aW5nUGF0aF0pOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRm
b3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgU3RyaW5nIHBhdGggPSBwYXRoRm9yUHJvY2Vzc0NvbnRhaW5lcigpOwor
ICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcGF0aCA9IE5TSG9tZURpcmVjdG9yeSgp
OworICAgIAorICAgIHBhdGggPSBwYXRoICsgIi9MaWJyYXJ5L1dlYktpdC9KYXZhU2NyaXB0Q29y
ZURlYnVnIjsKKyAgICBwYXRoID0gc3RyaW5nQnlSZXNvbHZpbmdTeW1saW5rc0luUGF0aChwYXRo
KTsKKworICAgIHJldHVybiBwYXRoOworI2Vsc2UKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGph
dmFTY3JpcHRDb25maWdQYXRoID0gQCJ+L0xpYnJhcnkvV2ViS2l0L0phdmFTY3JpcHRDb3JlRGVi
dWciOworICAgIAorICAgIHJldHVybiBzdHJpbmdCeVJlc29sdmluZ1N5bWxpbmtzSW5QYXRoKFtq
YXZhU2NyaXB0Q29uZmlnUGF0aCBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXSk7CisjZW5kaWYK
K30KKwogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEphdmFTY3Jp
cHRDb25maWd1cmF0aW9uRmlsZUVuYWJsZWRGcm9tRGVmYXVsdHMoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDhkZGIxZjU1MGNlOGNhOTY3YzBjZWEy
OTNiNzFkNWU5NDFmNTllNC4uNmEyOTE0MDlkY2UzMjcxNjYzM2M0YWI0YmUyMDcwYzk5NWVhZDg5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00MTcsNiAr
NDE3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1faGlkZGVuUGFnZVRocm90dGxpbmdB
dXRvSW5jcmVhc2VzQ291bnRlci5jb3VudCgpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBNb3Zl
IHRoZXNlIHRvIEFQSTo6V2Vic2l0ZURhdGFTdG9yZS4KKyAgICBzdGF0aWMgU3RyaW5nIGxlZ2Fj
eVBsYXRmb3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOworICAgIHN0YXRpYyBTdHJp
bmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKTsKKyAg
ICBzdGF0aWMgU3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0
b3J5KCk7CisgICAgc3RhdGljIFN0cmluZyBsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCk7CisgICAgc3RhdGljIFN0cmluZyBsZWdhY3lQbGF0Zm9ybURlZmF1
bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7CisgICAgc3RhdGljIFN0cmluZyBsZWdhY3lQbGF0Zm9y
bURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7CisgICAgc3RhdGljIFN0cmluZyBs
ZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKKyAgICBzdGF0aWMg
U3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0
b3J5KCk7CisKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wp
OwogICAgIHZvaWQgY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwCmluZGV4IDNkMDQ0
NTMzYThlZGZhNDQwOWZkMmJmNTBiMDU5OTFjOWIwMjlhMWMuLmFkZWRiOTgzNTg2MDgyOTFlOTRi
Y2U4ZjE1MDg4NzVkOTVkNWE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcApAQCAtNzcsNiArNzcsMTYgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICNlbmRpZgogfQogCitXVEY6OlN0cmluZyBX
ZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeSgpCit7CisgICAgcmV0dXJuIEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdEFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKK30KKworV1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6
OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIHJldHVy
biBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7Cit9
CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBwYXJhbWV0ZXJz
Lm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2Rl
bCgpID09IENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKQEAgLTEwMCw2ICsxMTAsMzcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCiB7CiB9CiAKK1N0
cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VE
aXJlY3RvcnkoKQoreworICAgIHJldHVybiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRX
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6Omxl
Z2FjeVBsYXRmb3JtRGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkKK3sKKyAgICBy
ZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3RvcnkoKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1
bHRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKQoreworICAgIHJldHVybiBBUEk6OldlYnNpdGVEYXRh
U3RvcmU6OmRlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKTsKK30KKworU3RyaW5nIFdlYlBy
b2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
KCkKK3sKKyAgICByZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSgpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpCit7CisgICAgcmV0dXJuIEFQSTo6
V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOworfQorCitT
dHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0
Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIo
KSwgIndlYmtpdGd0ayIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0cikpOworICAgIHJl
dHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwogdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bv
b2xXaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlByb2Nlc3NQb29sV2lu
LmNwcAppbmRleCAxMDE1ZmYwNjA2Y2Y0YmI0Y2Y1NjJhMDc4OTI4ODczMzY1NmY5ZWQ2Li5hODhi
NTNmYzk5Yzc3YmM3OWQ4MGViOWNjYTY1NTllMTc3MWEwZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bvb2xXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQcm9jZXNzUG9vbFdpbi5jcHAKQEAgLTUzLDYgKzUzLDQ2
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxh
dGZvcm1EZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCit7CisgICAgcmV0dXJuIFdl
YkNvcmU6OkZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChXZWJDb3JlOjpGaWxl
U3lzdGVtOjpsb2NhbFVzZXJTcGVjaWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgIkFwcGxpY2F0aW9u
Q2FjaGUiKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1
bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNl
clNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCAiTWVkaWFDYWNoZSIpOworfQorCitTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0
b3J5KCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURp
cmVjdG9yeSgpLCAiV2ViU1FMIik7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5
UGxhdGZvcm1EZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIHJldHVy
biBXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoV2ViQ29yZTo6
RmlsZVN5c3RlbTo6bG9jYWxVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCksICJJbmRleGVk
REIiKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRM
b2NhbFN0b3JhZ2VEaXJlY3RvcnkoKQoreworICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoV2ViQ29yZTo6RmlsZVN5c3RlbTo6bG9jYWxVc2Vy
U3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCksICJMb2NhbFN0b3JhZ2UiKTsKK30KKworU3RyaW5n
IFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5KCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KFdlYkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFn
ZURpcmVjdG9yeSgpLCAiTWVkaWFLZXlTdG9yYWdlIik7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAg
ICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFdl
YkNvcmU6OkZpbGVTeXN0ZW06OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgpLCAi
TmV0d29ya0NhY2hlIik7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0SmF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkoKQoreworICAgIHJldHVy
biBXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoV2ViQ29yZTo6
RmlsZVN5c3RlbTo6bG9jYWxVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCksICJKYXZhU2Ny
aXB0Q29yZURlYnVnIik7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2
ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKaW5kZXggYzAzZTRlODY0Nzc2YTVh
ZWM2MDRhZWI1MjdkY2JjYWFmZDQyNmFjNC4uN2NiODk1MWFiZWQ3YzJkNDY1ZDU0ODgwZWQ0OTc0
MTBiMzRiNDAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYlBy
b2Nlc3NQb29sV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViUHJv
Y2Vzc1Bvb2xXUEUuY3BwCkBAIC03OCw2ICs3OCwxOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemUoKQogI2VuZGlmCiB9CiAKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdf
Z2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiYXBwY2FjaGUiLCBudWxscHRyKSk7CisgICAg
cmV0dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitXVEY6OlN0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCit7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91
c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgIm1lZGlhY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0
dXJuIFdlYkNvcmU6OkZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7CiAgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1v
cnlDYWNoZURpc2FibGVkIHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3
ZXI7CkBAIC05Nyw2ICsxMDksNDIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZh
bGlkYXRlQ29udGV4dCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorU3RyaW5nIFdlYlBy
b2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgp
Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlBy
b2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnko
Z19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2Vz
IiwgImluZGV4ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RmlsZVN5c3Rl
bTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURp
cmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rpcigp
LCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9yYWdlRGly
ZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdj
aGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbiht
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6
OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkK
K3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShn
X2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0
Q29yZURlYnVnIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpGaWxlU3lzdGVtOjpz
dHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGly
ZWN0b3J5LmdldCgpKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZl
UGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiB7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>