<?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>179388</bug_id>
          
          <creation_ts>2017-11-07 12:46:12 -0800</creation_ts>
          <short_desc>REGRESSION(r224512): An API test added with this change is failing an assertion on the bots. (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2017-11-15 12:08:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>179016</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ryanhaddad</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369142</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-07 12:46:12 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/224512 broke the build:
An API test added with this change is failing an assertion on the bots. (Requested by ryanhaddad on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369143</commentid>
    <comment_count>1</comment_count>
      <attachid>326241</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-07 12:46:23 -0800</bug_when>
    <thetext>Created attachment 326241
ROLLOUT of r224512

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>1369148</commentid>
    <comment_count>2</comment_count>
      <attachid>326241</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-07 12:52:46 -0800</bug_when>
    <thetext>Comment on attachment 326241
ROLLOUT of r224512

Clearing flags on attachment: 326241

Committed r224544: &lt;https://trac.webkit.org/changeset/224544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369149</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-11-07 12:52:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372082</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:08:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/35567039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326241</attachid>
            <date>2017-11-07 12:46:23 -0800</date>
            <delta_ts>2017-11-07 12:52:46 -0800</delta_ts>
            <desc>ROLLOUT of r224512</desc>
            <filename>bug-179388-20171107154623.patch</filename>
            <type>text/plain</type>
            <size>36769</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY2M2E4OTViZTU0NjQ2
ZThmMjBhMGI2ODJjNDVkZjM0NzNhZWZjNS4uOTdkOTAzZTgzN2Q4ZTc1ZDU2MWUyOWY3NWVhYmU3
YjA4YjgwZWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTExLTA3ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjI0NTEyIGFuZCByMjI0NTIxLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Mzg4CisKKyAgICAgICAgQW4gQVBJIHRlc3Qg
YWRkZWQgd2l0aCB0aGlzIGNoYW5nZSBpcyBmYWlsaW5nIGFuIGFzc2VydGlvbiBvbgorICAgICAg
ICB0aGUgYm90cy4gKFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uICN3ZWJraXQpLgorCisgICAg
ICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltBdHRhY2htZW50IFN1cHBvcnRd
IEltcGxlbWVudCBkZWxlZ2F0ZSBob29rcyBmb3IgYXR0YWNobWVudAorICAgICAgICBlbGVtZW50
IGluc2VydGlvbiBhbmQgcmVtb3ZhbCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTAxNgorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMjI0NTEyCisKKyAgICAgICAgIlJlbW92ZSBzdHJheSBsb2dnaW5nIGZyb20gYSBu
ZXdseSBhZGRlZCBBUEkgdGVzdCIKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzIyNDUyMQorCiAyMDE3LTExLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgPHZpZGVvPiBkb2VzIG5vdCByZXNwZWN0IHBvaW50ZXItZXZlbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGE5Njk3NDU3OGFkYzg3NmEzMzE4MmU2ZmYyYWE2YTI5MTBkZjE1MDQuLjI1
MWE4OTQxZTVjZDBiNjA1ZTUzMjM4ZDY2MjUxMDBjNDA2NzQyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTctMTEtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjQ1MTIgYW5kIHIyMjQ1
MjEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzkz
ODgKKworICAgICAgICBBbiBBUEkgdGVzdCBhZGRlZCB3aXRoIHRoaXMgY2hhbmdlIGlzIGZhaWxp
bmcgYW4gYXNzZXJ0aW9uIG9uCisgICAgICAgIHRoZSBib3RzLiAoUmVxdWVzdGVkIGJ5IHJ5YW5o
YWRkYWQgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAg
ICAgICAiW0F0dGFjaG1lbnQgU3VwcG9ydF0gSW1wbGVtZW50IGRlbGVnYXRlIGhvb2tzIGZvciBh
dHRhY2htZW50CisgICAgICAgIGVsZW1lbnQgaW5zZXJ0aW9uIGFuZCByZW1vdmFsIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MDE2CisgICAgICAg
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjQ1MTIKKworICAgICAgICAiUmVt
b3ZlIHN0cmF5IGxvZ2dpbmcgZnJvbSBhIG5ld2x5IGFkZGVkIEFQSSB0ZXN0IgorICAgICAgICBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjI0NTIxCisKIDIwMTctMTEtMDcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbU2VydmljZSBXb3JrZXJz
XSBBZGQgc3VwcG9ydCBmb3IgImluc3RhbGwiIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggOTViYTQxODBiZmQwZDNjNWRkNDEzNDkzNmFhNWQ1OWVlMTI4NmYwYS4uM2E2MDg1
M2JiMzYxMjkwZDY2NGRiNjA2ZDBhNThmMjQ1MTE0MjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMzQyOCw3ICszNDI4LDcgQEAgdm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5n
ZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIEZyYW1lU2VsZWN0aW9uOjoKICAg
ICBtX2VkaXRvclVJVXBkYXRlVGltZXJTaG91bGRDaGVja1NwZWxsaW5nQW5kR3JhbW1hciA9IG9w
dGlvbnMgJiBGcmFtZVNlbGVjdGlvbjo6Q2xvc2VUeXBpbmcKICAgICAgICAgJiYgIShvcHRpb25z
ICYgRnJhbWVTZWxlY3Rpb246OlNwZWxsQ29ycmVjdGlvblRyaWdnZXJlZCk7CiAgICAgbV9lZGl0
b3JVSVVwZGF0ZVRpbWVyV2FzVHJpZ2dlcmVkQnlEaWN0YXRpb24gPSBvcHRpb25zICYgRnJhbWVT
ZWxlY3Rpb246OkRpY3RhdGlvblRyaWdnZXJlZDsKLSAgICBzY2hlZHVsZUVkaXRvclVJVXBkYXRl
KCk7CisgICAgbV9lZGl0b3JVSVVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCiAj
aWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiAhUExBVEZPUk0oSU9TKQpA
QCAtMzYwMSwxMCArMzYwMSw2IEBAIHZvaWQgRWRpdG9yOjplZGl0b3JVSVVwZGF0ZVRpbWVyRmly
ZWQoKQogICAgICAgICBtX2FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXItPnJlc3BvbmRUb0NoYW5n
ZWRTZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKIAogICAgIG1fb2xkU2VsZWN0aW9uRm9yRWRpdG9y
VUlVcGRhdGUgPSBtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwotCi0jaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBub3RpZnlDbGllbnRPZkF0dGFjaG1lbnRVcGRhdGVz
KCk7Ci0jZW5kaWYKIH0KIAogc3RhdGljIE5vZGUqIGZpbmRGaXJzdE1hcmthYmxlKE5vZGUqIG5v
ZGUpCkBAIC0zNzM3LDQ4ICszNzMzLDggQEAgUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdlRm9y
VGV4dENoZWNraW5nUmVzdWx0KGNvbnN0IFRleHRDaGVja2luZ1Jlc3VsdCYgcmVzdWwKICAgICBy
ZXR1cm4gVGV4dEl0ZXJhdG9yOjpzdWJyYW5nZSgqY29udGV4dFJhbmdlLCByZXN1bHQubG9jYXRp
b24sIHJlc3VsdC5sZW5ndGgpOwogfQogCi12b2lkIEVkaXRvcjo6c2NoZWR1bGVFZGl0b3JVSVVw
ZGF0ZSgpCi17Ci0gICAgbV9lZGl0b3JVSVVwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOwot
fQotCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotdm9pZCBFZGl0b3I6OmRpZElu
c2VydEF0dGFjaG1lbnRFbGVtZW50KEhUTUxBdHRhY2htZW50RWxlbWVudCYgYXR0YWNobWVudCkK
LXsKLSAgICBhdXRvIGlkZW50aWZpZXIgPSBhdHRhY2htZW50LnVuaXF1ZUlkZW50aWZpZXIoKTsK
LSAgICBpZiAoaWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
ICghbV9yZW1vdmVkQXR0YWNobWVudElkZW50aWZpZXJzLnRha2UoaWRlbnRpZmllcikpCi0gICAg
ICAgIG1faW5zZXJ0ZWRBdHRhY2htZW50SWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIpOwotICAg
IHNjaGVkdWxlRWRpdG9yVUlVcGRhdGUoKTsKLX0KLQotdm9pZCBFZGl0b3I6OmRpZFJlbW92ZUF0
dGFjaG1lbnRFbGVtZW50KEhUTUxBdHRhY2htZW50RWxlbWVudCYgYXR0YWNobWVudCkKLXsKLSAg
ICBhdXRvIGlkZW50aWZpZXIgPSBhdHRhY2htZW50LnVuaXF1ZUlkZW50aWZpZXIoKTsKLSAgICBp
ZiAoaWRlbnRpZmllci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghbV9p
bnNlcnRlZEF0dGFjaG1lbnRJZGVudGlmaWVycy50YWtlKGlkZW50aWZpZXIpKQotICAgICAgICBt
X3JlbW92ZWRBdHRhY2htZW50SWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIpOwotICAgIHNjaGVk
dWxlRWRpdG9yVUlVcGRhdGUoKTsKLX0KLQotdm9pZCBFZGl0b3I6Om5vdGlmeUNsaWVudE9mQXR0
YWNobWVudFVwZGF0ZXMoKQotewotICAgIGlmIChhdXRvKiBlZGl0b3JDbGllbnQgPSBjbGllbnQo
KSkgewotICAgICAgICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBtX3JlbW92ZWRBdHRhY2htZW50
SWRlbnRpZmllcnMpCi0gICAgICAgICAgICBlZGl0b3JDbGllbnQtPmRpZFJlbW92ZUF0dGFjaG1l
bnQoaWRlbnRpZmllcik7Ci0gICAgICAgIGZvciAoYXV0byYgaWRlbnRpZmllciA6IG1faW5zZXJ0
ZWRBdHRhY2htZW50SWRlbnRpZmllcnMpCi0gICAgICAgICAgICBlZGl0b3JDbGllbnQtPmRpZElu
c2VydEF0dGFjaG1lbnQoaWRlbnRpZmllcik7Ci0gICAgfQotCi0gICAgbV9yZW1vdmVkQXR0YWNo
bWVudElkZW50aWZpZXJzLmNsZWFyKCk7Ci0gICAgbV9pbnNlcnRlZEF0dGFjaG1lbnRJZGVudGlm
aWVycy5jbGVhcigpOwotfQotCiB2b2lkIEVkaXRvcjo6aW5zZXJ0QXR0YWNobWVudChjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
ZmlsZXBhdGgsIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjb250ZW50VHlwZSkKIHsKICAgICBpZiAo
IWNvbnRlbnRUeXBlKQpAQCAtMzc5NSw3ICszNzUxLDcgQEAgdm9pZCBFZGl0b3I6Omluc2VydEF0
dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LAogCiB2b2lkIEVkaXRvcjo6aW5zZXJ0QXR0YWNobWVudEZyb21GaWxlKGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgUmVmPEZpbGU+JiYgZmlsZSkKIHsKLSAgICBhdXRvIGF0dGFjaG1lbnQgPSBIVE1MQXR0
YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmF0dGFjaG1lbnRUYWcsIGRvY3VtZW50
KCkpOworICAgIGF1dG8gYXR0YWNobWVudCA9IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRl
KEhUTUxOYW1lczo6YXR0YWNobWVudFRhZywgZG9jdW1lbnQoKSwgaWRlbnRpZmllcik7CiAgICAg
YXR0YWNobWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6dGl0bGVBdHRyLCBmaWxlbmFtZSk7
CiAgICAgYXR0YWNobWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3VidGl0bGVBdHRyLCBm
aWxlU2l6ZURlc2NyaXB0aW9uKGZpbGUtPnNpemUoKSkpOwogICAgIGF0dGFjaG1lbnQtPnNldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OnR5cGVBdHRyLCBjb250ZW50VHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaAppbmRleCBlYTMyNmE4Y2RmMDJkNWZiODE5ZDM3YTY4OWRjNzRkMjhmMWQzMjI4Li4y
YmE4OWI2MGVjOWU0ZTYzNjhhYmRmNTRiMTBhNWZmNTc4Y2RjOGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgKQEAgLTUwMyw4ICs1MDMsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc2VydEF0dGFjaG1lbnQoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJp
bmcmIGZpbGVwYXRoLCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY29udGVudFR5cGUgPSBzdGQ6Om51
bGxvcHQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5zZXJ0QXR0YWNobWVudChjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFJlZjxTaGFyZWRCdWZm
ZXI+JiYgZGF0YSwgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNvbnRlbnRUeXBlID0gc3RkOjpudWxs
b3B0KTsKLSAgICB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnRFbGVtZW50KEhUTUxBdHRhY2htZW50
RWxlbWVudCYpOwotICAgIHZvaWQgZGlkUmVtb3ZlQXR0YWNobWVudEVsZW1lbnQoSFRNTEF0dGFj
aG1lbnRFbGVtZW50Jik7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTU1MiwxMiArNTUwLDYgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YUluUlRGRm9ybWF0
KE5TQXR0cmlidXRlZFN0cmluZyAqKTsKICNlbmRpZgogCi0gICAgdm9pZCBzY2hlZHVsZUVkaXRv
clVJVXBkYXRlKCk7Ci0KLSNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgIHZvaWQg
bm90aWZ5Q2xpZW50T2ZBdHRhY2htZW50VXBkYXRlcygpOwotI2VuZGlmCi0KICAgICB2b2lkIHBv
c3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb25Gb3JDdXQoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgRnJhbWUmIG1fZnJhbWU7CkBAIC01NzcsMTEgKzU2
OSw2IEBAIHByaXZhdGU6CiAgICAgRWRpdG9yUGFyYWdyYXBoU2VwYXJhdG9yIG1fZGVmYXVsdFBh
cmFncmFwaFNlcGFyYXRvciB7IEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2IH07CiAgICAg
Ym9vbCBtX292ZXJ3cml0ZU1vZGVFbmFibGVkIHsgZmFsc2UgfTsKIAotI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCi0gICAgSGFzaFNldDxTdHJpbmc+IG1faW5zZXJ0ZWRBdHRhY2htZW50
SWRlbnRpZmllcnM7Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fcmVtb3ZlZEF0dGFjaG1lbnRJZGVu
dGlmaWVyczsKLSNlbmRpZgotCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX29sZFNlbGVjdGlvbkZv
ckVkaXRvclVJVXBkYXRlOwogICAgIFRpbWVyIG1fZWRpdG9yVUlVcGRhdGVUaW1lcjsKICAgICBi
b29sIG1fZWRpdG9yVUlVcGRhdGVUaW1lclNob3VsZENoZWNrU3BlbGxpbmdBbmRHcmFtbWFyIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNw
cAppbmRleCBkMTM2YjQ4OGU0N2E0NmFiMjljZmJhOTc3OWJlNWE5MGIxYTdiN2I5Li4zYmZmMGM3
YmY5YzE4ZmYxZThiNjNjY2Q4ZDlkYWI2MGJjMTYzMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuY3BwCkBAIC0zMywxNyArMzMsMjQgQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlckF0
dGFjaG1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvVVVJRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxBdHRhY2htZW50RWxlbWVudDo6
SFRNTEF0dGFjaG1lbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKK0hUTUxBdHRhY2htZW50RWxlbWVudDo6SFRNTEF0dGFjaG1lbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyKQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCisgICAgLCBtX3VuaXF1ZUlkZW50aWZpZXIoaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
aGFzVGFnTmFtZShhdHRhY2htZW50VGFnKSk7CiB9CiAKK0hUTUxBdHRhY2htZW50RWxlbWVudDo6
SFRNTEF0dGFjaG1lbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxBdHRhY2htZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCwgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQoreworfQorCiBIVE1MQXR0YWNobWVu
dEVsZW1lbnQ6On5IVE1MQXR0YWNobWVudEVsZW1lbnQoKSA9IGRlZmF1bHQ7CiAKIFJlZjxIVE1M
QXR0YWNobWVudEVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTUxLDYgKzU4LDEx
IEBAIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRN
TEF0dGFjaG1lbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKK1JlZjxIVE1MQXR0
YWNobWVudEVsZW1lbnQ+IEhUTUxBdHRhY2htZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBpZGVu
dGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBdHRhY2htZW50RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCwgaWRlbnRpZmllcikpOworfQorCiBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKICAgICByZXR1
cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyQXR0YWNobWVudD4oKnRoaXMsIFdURk1vdmUoc3R5bGUp
KTsKQEAgLTY5LDI1ICs4MSw2IEBAIHZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpzZXRGaWxl
KEZpbGUqIGZpbGUpCiAgICAgICAgIHJlbmRlcmVyLT5pbnZhbGlkYXRlKCk7CiB9CiAKLU5vZGU6
Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxBdHRhY2htZW50RWxlbWVudDo6aW5zZXJ0
ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSB0eXBlLCBDb250YWluZXJOb2RlJiBhbmNlc3Rv
cikKLXsKLSAgICBhdXRvIHJlc3VsdCA9IEhUTUxFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3Rv
cih0eXBlLCBhbmNlc3Rvcik7Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFt
ZSgpKSB7Ci0gICAgICAgIGlmICh0eXBlLmNvbm5lY3RlZFRvRG9jdW1lbnQpCi0gICAgICAgICAg
ICBmcmFtZS0+ZWRpdG9yKCkuZGlkSW5zZXJ0QXR0YWNobWVudEVsZW1lbnQoKnRoaXMpOwotICAg
IH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIEhUTUxBdHRhY2htZW50RWxlbWVudDo6
cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSB0eXBlLCBDb250YWluZXJOb2RlJiBhbmNl
c3RvcikKLXsKLSAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rvcih0eXBlLCBhbmNl
c3Rvcik7Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKSB7Ci0gICAg
ICAgIGlmICh0eXBlLmRpc2Nvbm5lY3RlZEZyb21Eb2N1bWVudCkKLSAgICAgICAgICAgIGZyYW1l
LT5lZGl0b3IoKS5kaWRSZW1vdmVBdHRhY2htZW50RWxlbWVudCgqdGhpcyk7Ci0gICAgfQotfQot
CiB2b2lkIEhUTUxBdHRhY2htZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFt
ZSA9PSBwcm9ncmVzc0F0dHIgfHwgbmFtZSA9PSBzdWJ0aXRsZUF0dHIgfHwgbmFtZSA9PSB0aXRs
ZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0cikgewpAQCAtOTgsMTYgKzkxLDYgQEAgdm9pZCBIVE1M
QXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b20KICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQogCi1TdHJpbmcgSFRNTEF0dGFjaG1lbnRFbGVtZW50Ojp1bmlxdWVJZGVudGlmaWVy
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihI
VE1MTmFtZXM6OndlYmtpdGF0dGFjaG1lbnRpZEF0dHIpOwotfQotCi12b2lkIEhUTUxBdHRhY2ht
ZW50RWxlbWVudDo6c2V0VW5pcXVlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIp
Ci17Ci0gICAgc2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Ondl
YmtpdGF0dGFjaG1lbnRpZEF0dHIsIGlkZW50aWZpZXIpOwotfQotCiBTdHJpbmcgSFRNTEF0dGFj
aG1lbnRFbGVtZW50OjphdHRhY2htZW50VGl0bGUoKSBjb25zdAogewogICAgIGF1dG8mIHRpdGxl
ID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih0aXRsZUF0dHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVudEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmgKaW5kZXggYmQ5YzU2NDg3YmE2MmVj
M2U5NDllMjQ2MWE5ZGI0MWQwNDQxNTViNi4uM2E0NGE1ZjExOTljNzIwOWMzYjFhZTQ5YmVmYmI4
MTYxMWE2MDMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0YWNobWVu
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVu
dC5oCkBAIC0zNywxNSArMzcsMTMgQEAgY2xhc3MgUmVuZGVyQXR0YWNobWVudDsKIGNsYXNzIEhU
TUxBdHRhY2htZW50RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxIVE1MQXR0YWNobWVudEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPEhUTUxBdHRhY2htZW50RWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBGaWxlKiBmaWxlKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRGaWxlKEZpbGUqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB1
bmlxdWVJZGVudGlmaWVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRVbmlxdWVJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYpOwotCi0gICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJ
bnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAgIHZv
aWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFs
OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB1bmlxdWVJZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyOyB9CisgICAgdm9pZCBzZXRVbmlxdWVJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikgeyBtX3VuaXF1ZUlkZW50aWZpZXIgPSBpZGVudGlm
aWVyOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgYXR0YWNobWVudFRpdGxlKCkgY29u
c3Q7CiAgICAgU3RyaW5nIGF0dGFjaG1lbnRUeXBlKCkgY29uc3Q7CkBAIC01NCw2ICs1Miw3IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBIVE1MQXR0YWNobWVudEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CisgICAgSFRNTEF0dGFjaG1lbnRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7CiAg
ICAgdmlydHVhbCB+SFRNTEF0dGFjaG1lbnRFbGVtZW50KCk7CiAKICAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpAQCAtNjksNiArNjgsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOwogICAgIAogICAgIFJlZlB0cjxGaWxlPiBtX2ZpbGU7CisgICAgU3RyaW5n
IG1fdW5pcXVlSWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggYjZmMDQzMzk1NDIwZjA5
NjkwNGU3NTVjYjAxMWZhNTdmYWNlMDI3ZC4uOTdiNjc0MjczMmExYzZlMWViMGEyNjk4ZDZmOTIz
MWQ2NTRhZDAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
QEAgLTM4MSw3ICszODEsNiBAQCB2ZXJzaW9uCiB2bGluawogdnNwYWNlCiB3ZWJraXRhbGxvd2Z1
bGxzY3JlZW4KLXdlYmtpdGF0dGFjaG1lbnRpZAogd2Via2l0YXR0YWNobWVudHBhdGgKIHdlYmtp
dGRpcmVjdG9yeQogd2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGUwMmNj
MDkwMzg4OTg2YjUyMDcyZDYyYTFmMmYwYzdjNjkyZThkYzMuLjMwYzA5ZDIxYzNkN2RjYzE0MzZl
ZmVhODk5ZGY4YTE1MGNlZTY3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRp
dG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAt
NzIsMTEgKzcyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBcHBseVN0eWxlKCkg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShSYW5nZSos
IFJhbmdlKikgPSAwOwogCi0jaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudChjb25zdCBTdHJpbmcmKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVtb3ZlQXR0YWNobWVudChjb25zdCBTdHJpbmcmKSB7IH0KLSNlbmRpZgot
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXNw
b25kVG9DaGFuZ2VkU2VsZWN0aW9uKEZyYW1lKikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggM2Iy
ZThjYmZiMTU2MzMzYjM3Y2RiMmFkOWFlMzFlMzBkMTZjZjBkOS4uYzA4N2I4OTY4MTQyMTFmZmEw
ZjVmZTZkM2IwNmY5NzJlZjUyYThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMTAsOSArMTEwLDYg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBlZGl0b3JTdGF0ZURpZENoYW5nZTooTlNEaWN0aW9uYXJ5ICopZWRp
dG9yU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVtb3Zl
QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEluc2VydEF0dGFjaG1lbnQ6KF9XS0F0dGFjaG1lbnQgKilh
dHRhY2htZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLSAoQk9PTClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7
CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWN0aW9uc0ZvckVs
ZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBkZWZhdWx0QWN0aW9uczoo
TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopZGVmYXVsdEFjdGlvbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyYzZiNWQ0YjZi
OTU1ZWViNTFlZDQ1YzRlZWFkMWYyMzg2NWZkNTMyLi5iMTg1MDE0ODc4YzRiNDM4ZTg3NzhiNDM1
ZDQwM2ViYjhhMzk1NWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTExOTcsMjQgKzExOTcsNiBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5
ICpkaWN0aW9uYXJ5UmVwcmVzZW50YXRpb25Gb3JFZGl0b3JTdGF0ZShjb25zdCBXZWJLaXQ6OkVk
aXRvcgogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzZWxmIGVkaXRvclN0YXRlRGlkQ2hh
bmdlOmRpY3Rpb25hcnlSZXByZXNlbnRhdGlvbkZvckVkaXRvclN0YXRlKF9wYWdlLT5lZGl0b3JT
dGF0ZSgpKV07CiB9CiAKLSNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQotCi0tICh2b2lk
KV9kaWRJbnNlcnRBdHRhY2htZW50OihOU1N0cmluZyAqKWlkZW50aWZpZXIKLXsKLSAgICBpZCA8
V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pc2VsZi5VSURlbGVnYXRlOwotICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEluc2VydEF0dGFjaG1lbnQ6KV0pCi0gICAgICAgIFt1
aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZGlkSW5zZXJ0QXR0YWNobWVudDpbd3JhcHBlcihBUEk6
OkF0dGFjaG1lbnQ6OmNyZWF0ZShpZGVudGlmaWVyLCAqX3BhZ2UpLmxlYWtSZWYoKSkgYXV0b3Jl
bGVhc2VdXTsKLX0KLQotLSAodm9pZClfZGlkUmVtb3ZlQXR0YWNobWVudDooTlNTdHJpbmcgKilp
ZGVudGlmaWVyCi17Ci0gICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSAo
aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KXNlbGYuVUlEZWxlZ2F0ZTsKLSAgICBpZiAoW3VpRGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRSZW1vdmVBdHRh
Y2htZW50OildKQotICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzZWxmIGRpZFJlbW92ZUF0
dGFjaG1lbnQ6W3dyYXBwZXIoQVBJOjpBdHRhY2htZW50OjpjcmVhdGUoaWRlbnRpZmllciwgKl9w
YWdlKS5sZWFrUmVmKCkpIGF1dG9yZWxlYXNlXV07Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQotCiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNpZmljIG1ldGhvZHMKIAog
I2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggODA5N2UwNDQ1M2ZlMTljMTAwN2E1YjAy
Yjc5N2Y1NGQ3YWI5YjRkYi4uNDhkZTAzN2RiMjM3NTdkMTc4MzFhYmUxNjM0NGYxZTM2YTBjZDgz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmgKQEAgLTE0OCwxMSArMTQ4LDYgQEAgc3RydWN0IFByaW50SW5mbzsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlFZGdlSW5zZXRzIF9jb21wdXRlZFVub2Jz
Y3VyZWRTYWZlQXJlYUluc2V0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQotLSAodm9pZClfZGlkUmVtb3ZlQXR0YWNobWVudDooTlNTdHJpbmcgKilpZGVudGlmaWVy
OwotLSAodm9pZClfZGlkSW5zZXJ0QXR0YWNobWVudDooTlNTdHJpbmcgKilpZGVudGlmaWVyOwot
I2VuZGlmCi0KIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CiAtIChXZWJLaXQ6OldlYlBh
Z2VQcm94eSopX3BhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1BhZ2VDbGllbnRJbXBsQ29jb2EuaAppbmRleCBmZmMyMzQzY2EzYWRlMTJjNmM4NWI4MjEzODM1
MmI1OGZlMWE4ZDIxLi5kOGNmNjEzMmM3YTRkY2RjZDEyNTUxNDEyYmViNjYyYWY1ZGY2M2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENv
Y29hLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxD
b2NvYS5oCkBAIC0zNywxMiArMzcsNiBAQCBwdWJsaWM6CiAgICAgICAgIDogbV93ZWJWaWV3KHdl
YlZpZXcpIHsgfQogICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgZmluYWw7CiAg
ICAgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpIGZpbmFsOwotCi0jaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKLSAgICB2b2lkIGRpZEluc2VydEF0dGFjaG1lbnQoY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlbW92ZUF0dGFjaG1lbnQoY29u
c3QgU3RyaW5nJiBpZGVudGlmaWVyKSBmaW5hbDsKLSNlbmRpZgotCiBwcm90ZWN0ZWQ6CiAgICAg
V0tXZWJWaWV3ICptX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggMmQ4NjJjNGNiNTUzODgwYTVi
MDBkZDVhOTM4NzM0NmI0N2EwYWI1NC4uMWFjMjgxMmViNGQwNjY2YmJlNjQ1ZTIyZmE3NzE2MzIx
NDNjNWE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsQ29jb2EuaCIKIAotI2ltcG9ydCAiV0tXZWJWaWV3SW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTQzLDI3ICs0Myw1IEBAIHZvaWQgUGFnZUNsaWVudEltcGxDb2NvYTo6aXNQbGF5
aW5nQXVkaW9EaWRDaGFuZ2UoKQogICAgIFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6
TlNTdHJpbmdGcm9tU2VsZWN0b3IoQHNlbGVjdG9yKF9pc1BsYXlpbmdBdWRpbykpXTsKICNlbmRp
ZgogfQotCi0jaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLQotdm9pZCBQYWdlQ2xpZW50
SW1wbENvY29hOjpkaWRJbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikK
LXsKLSNpZiBXS19BUElfRU5BQkxFRAotICAgIFttX3dlYlZpZXcgX2RpZEluc2VydEF0dGFjaG1l
bnQ6aWRlbnRpZmllcl07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKLSNl
bmRpZgotfQotCi12b2lkIFBhZ2VDbGllbnRJbXBsQ29jb2E6OmRpZFJlbW92ZUF0dGFjaG1lbnQo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQotewotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgW21f
d2ViVmlldyBfZGlkUmVtb3ZlQXR0YWNobWVudDppZGVudGlmaWVyXTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGlkZW50aWZpZXIpOwotI2VuZGlmCi19Ci0KLSNlbmRpZgogICAgIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDUwMDViYTk1N2ZiOGU4MGZjMjRkYTU0
ZTY4NDJiZDIxNjMwYmVlNWEuLjA0NzEwZmQxNDZmYTAwMjVkMTZiYTkyMzU3YjEyZDMxZDQ5MjUx
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM4NCwxMSArMzg0LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VEYXRhSW50ZXJhY3Rpb25DYXJl
dFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcHJldmlvdXNDYXJldFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGNhcmV0UmVjdCkgPSAwOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQotICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRBdHRhY2htZW50KGNv
bnN0IFN0cmluZyYgaWRlbnRpZmllcikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUF0
dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKSB7IH0KLSNlbmRpZgotCiAjaWYgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdmlydHVhbCBKU0dsb2JhbENvbnRleHRS
ZWYgamF2YXNjcmlwdEdsb2JhbENvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDE4Njc3NTc5MmU4
ZGFlZGY0Nzg3NmQ2NTE5NDJjMmZhZWI1MTlmZTMuLmVlZjEzYjNhMGZiNDdmMDZjOGE5YzBhODUy
MDNiNDgxNjc4YTYxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNzExMywxNiArNzExMyw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnRBdHRhY2ht
ZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBmaWxlCiAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnRBdHRhY2htZW50KGlkZW50aWZp
ZXIsIGZpbGVuYW1lLCBjb250ZW50VHlwZSwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
IHsgJmRhdGEgfSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEluc2VydEF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQotewotICAg
IG1fcGFnZUNsaWVudC5kaWRJbnNlcnRBdHRhY2htZW50KGlkZW50aWZpZXIpOwotfQotCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVtb3ZlQXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIpCi17Ci0gICAgbV9wYWdlQ2xpZW50LmRpZFJlbW92ZUF0dGFjaG1lbnQoaWRlbnRpZmllcik7
Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2U2
ODIzNmQyZjg2OTI1YjZmZmEyZmZlOGZiYjg0MDk2MDViNTAwMy4uMTA2N2ViOWFiOTY2MWJhNzNm
ZmQ4NjJmNTE2ZjYyYjMyNzMzNGM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTE2MzcsMTEgKzE2MzcsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdG9wQWxs
VVJMU2NoZW1lVGFza3MoKTsKIAotI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAg
dm9pZCBkaWRJbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7Ci0gICAg
dm9pZCBkaWRSZW1vdmVBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7Ci0jZW5k
aWYKLQogICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKICAgICBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjFlZjVlNThhNDM4YWY0YTRkNjI5
MDhiODU5NmEzYWQzNzZlYjcxNy4uNWJlOTE0YjM4Y2VhNWM1YWI3ZWU0NzBkMTMyMWU1ZTcwMjVk
M2Q2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtNDk4LDkgKzQ5OCw0IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAg
ICAgU3RvcFVSTFNjaGVtZVRhc2sodWludDY0X3QgaGFuZGxlcklkZW50aWZpZXIsIHVpbnQ2NF90
IHRhc2tJZGVudGlmaWVyKQogCiAgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nIHN1YkZy
YW1lSG9zdCwgU3RyaW5nIHRvcEZyYW1lSG9zdCwgdWludDY0X3QgY29udGV4dElEKQotCi0jaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKLSAgICBEaWRJbnNlcnRBdHRhY2htZW50KFN0cmlu
ZyBpZGVudGlmaWVyKQotICAgIERpZFJlbW92ZUF0dGFjaG1lbnQoU3RyaW5nIGlkZW50aWZpZXIp
Ci0jZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggNTM5M2RmMjBjZDQzYmZlMmY3
MzJjODM2NDZkODA1MTAwMjNlZGYzMy4uMDBmYTdhMzEzOWUzNzNiMTM3NzZmZTc1ZGY3NzUyMjJm
ZTM0MzA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTE1NywyMCArMTU3LDYgQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiBzdHls
ZSwgUmFuZ2UqIHJhbmdlKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLSNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQotCi12b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkSW5zZXJ0QXR0YWNo
bWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCi17Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZEluc2VydEF0dGFjaG1lbnQoaWRlbnRpZmllcikpOwotfQot
Ci12b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlkUmVtb3ZlQXR0YWNobWVudChjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIpCi17Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlbW92ZUF0dGFjaG1lbnQoaWRlbnRpZmllcikpOwotfQotCi0jZW5kaWYKLQogdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OmRpZEFwcGx5U3R5bGUoKQogewogICAgIG1fcGFnZS0+ZGlkQXBwbHlT
dHlsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGE4YTYxYjA1MmM5OTg2ODcwNDVkZTZiOTlj
NWMwMzU5OWNkYzZlMDIuLjQxNTRmOWFjMTAwYmM0ZDhmMDNiYWRhYTYyODU5Yjg3NTk5OWNkNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTU5LDExICs1OSw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRBcHBseVN0eWxlKCkgZmluYWw7CiAgICAgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKikgZmluYWw7CiAKLSNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQotICAgIHZvaWQgZGlkSW5zZXJ0QXR0YWNobWVudChjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVtb3ZlQXR0YWNobWVu
dChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpIGZpbmFsOwotI2VuZGlmCi0KICAgICB2b2lkIGRp
ZEJlZ2luRWRpdGluZygpIGZpbmFsOwogICAgIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRz
KCkgZmluYWw7CiAgICAgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKFdlYkNvcmU6OkZy
YW1lKikgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggMTdjMTY2M2VjOGQ3NGIzZTkzOWQxNTJhYmIxZmU0NGE3NDUwZmZkMS4uZWQ0NWFl
MGU2NjEzN2I0ZGE1YTc1ZTAyMzc0NzBkZmM5N2QzNDI5MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTExLTA3
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjI0NTEyIGFuZCByMjI0NTIxLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5Mzg4CisKKyAgICAgICAgQW4gQVBJ
IHRlc3QgYWRkZWQgd2l0aCB0aGlzIGNoYW5nZSBpcyBmYWlsaW5nIGFuIGFzc2VydGlvbiBvbgor
ICAgICAgICB0aGUgYm90cy4gKFJlcXVlc3RlZCBieSByeWFuaGFkZGFkIG9uICN3ZWJraXQpLgor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltBdHRhY2htZW50IFN1
cHBvcnRdIEltcGxlbWVudCBkZWxlZ2F0ZSBob29rcyBmb3IgYXR0YWNobWVudAorICAgICAgICBl
bGVtZW50IGluc2VydGlvbiBhbmQgcmVtb3ZhbCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTAxNgorICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjI0NTEyCisKKyAgICAgICAgIlJlbW92ZSBzdHJheSBsb2dnaW5nIGZy
b20gYSBuZXdseSBhZGRlZCBBUEkgdGVzdCIKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzIyNDUyMQorCiAyMDE3LTExLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzdHJheSBsb2dnaW5nIGZyb20gYSBu
ZXdseSBhZGRlZCBBUEkgdGVzdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KaW5kZXggZjRiZmUxMDMwMTU1
MzkzNjI1NTAwYTIzZDgzMTFiMjhiMWI5MmZlYy4uMmVjMjNmNGNjYWM3ZTQ4Njk3ZTVhM2YxZWZj
MzA3NzhkY2YyYThhNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCkBAIC0zMyw5MCArMzMsNiBAQAog
CiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotQGludGVyZmFjZSBBdHRhY2htZW50VXBkYXRlT2JzZXJ2
ZXIgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheSAqaW5zZXJ0ZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TQXJyYXkgKnJlbW92ZWQ7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBBdHRhY2ht
ZW50VXBkYXRlT2JzZXJ2ZXIgewotICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheTxfV0tBdHRh
Y2htZW50ICo+PiBfaW5zZXJ0ZWQ7Ci0gICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PF9XS0F0
dGFjaG1lbnQgKj4+IF9yZW1vdmVkOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdAotewotICAg
IGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7Ci0gICAgICAgIF9pbnNlcnRlZCA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgICAgICBfcmVtb3ZlZCA9IGFkb3B0
TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgIH0KLSAgICByZXR1cm4gc2Vs
ZjsKLX0KLQotLSAoTlNBcnJheTxfV0tBdHRhY2htZW50ICo+ICopaW5zZXJ0ZWQKLXsKLSAgICBy
ZXR1cm4gX2luc2VydGVkLmdldCgpOwotfQotCi0tIChOU0FycmF5PF9XS0F0dGFjaG1lbnQgKj4g
KilyZW1vdmVkCi17Ci0gICAgcmV0dXJuIF9yZW1vdmVkLmdldCgpOwotfQotCi0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEluc2VydEF0dGFjaG1lbnQ6KF9XS0F0dGFj
aG1lbnQgKilhdHRhY2htZW50Ci17Ci0gICAgW19pbnNlcnRlZCBhZGRPYmplY3Q6YXR0YWNobWVu
dF07Ci19Ci0KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVtb3Zl
QXR0YWNobWVudDooX1dLQXR0YWNobWVudCAqKWF0dGFjaG1lbnQKLXsKLSAgICBbX3JlbW92ZWQg
YWRkT2JqZWN0OmF0dGFjaG1lbnRdOwotfQotCi1AZW5kCi0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKLQotY2xhc3MgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgewotcHVibGlj
OgotICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlKFRlc3RXS1dlYlZpZXcgKndl
YlZpZXcpCi0gICAgICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgewotICAgICAgICBtX3By
ZXZpb3VzRGVsZWdhdGUgPSByZXRhaW5QdHIod2ViVmlldy5VSURlbGVnYXRlKTsKLSAgICAgICAg
bV9vYnNlcnZlciA9IGFkb3B0TlMoW1tBdHRhY2htZW50VXBkYXRlT2JzZXJ2ZXIgYWxsb2NdIGlu
aXRdKTsKLSAgICAgICAgd2ViVmlldy5VSURlbGVnYXRlID0gbV9vYnNlcnZlci5nZXQoKTsKLSAg
ICB9Ci0KLSAgICB+T2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUoKQotICAgIHsKLSAg
ICAgICAgW21fd2ViVmlldyBzZXRVSURlbGVnYXRlOm1fcHJldmlvdXNEZWxlZ2F0ZS5nZXQoKV07
Ci0gICAgfQotCi0gICAgQXR0YWNobWVudFVwZGF0ZU9ic2VydmVyICpvYnNlcnZlcigpIGNvbnN0
IHsgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCk7IH0KLQotICAgIHZvaWQgZXhwZWN0QXR0YWNobWVu
dFVwZGF0ZXMoTlNBcnJheTxfV0tBdHRhY2htZW50ICo+ICpyZW1vdmVkLCBOU0FycmF5PF9XS0F0
dGFjaG1lbnQgKj4gKmluc2VydGVkKQotICAgIHsKLSAgICAgICAgQk9PTCByZW1vdmVkQXR0YWNo
bWVudHNNYXRjaCA9IFtvYnNlcnZlcigpLnJlbW92ZWQgaXNFcXVhbDpyZW1vdmVkXTsKLSAgICAg
ICAgaWYgKCFyZW1vdmVkQXR0YWNobWVudHNNYXRjaCkKLSAgICAgICAgICAgIE5TTG9nKEAiRXhw
ZWN0ZWQgcmVtb3ZlZCBhdHRhY2htZW50czogJUAgdG8gbWF0Y2ggJUAuIiwgb2JzZXJ2ZXIoKS5y
ZW1vdmVkLCByZW1vdmVkKTsKLSAgICAgICAgRVhQRUNUX1RSVUUocmVtb3ZlZEF0dGFjaG1lbnRz
TWF0Y2gpOwotCi0gICAgICAgIEJPT0wgaW5zZXJ0ZWRBdHRhY2htZW50c01hdGNoID0gW29ic2Vy
dmVyKCkuaW5zZXJ0ZWQgaXNFcXVhbDppbnNlcnRlZF07Ci0gICAgICAgIGlmICghaW5zZXJ0ZWRB
dHRhY2htZW50c01hdGNoKQotICAgICAgICAgICAgTlNMb2coQCJFeHBlY3RlZCBpbnNlcnRlZCBh
dHRhY2htZW50czogJUAgdG8gbWF0Y2ggJUAuIiwgb2JzZXJ2ZXIoKS5pbnNlcnRlZCwgaW5zZXJ0
ZWQpOwotICAgICAgICBFWFBFQ1RfVFJVRShpbnNlcnRlZEF0dGFjaG1lbnRzTWF0Y2gpOwotICAg
IH0KLQotcHJpdmF0ZToKLSAgICBSZXRhaW5QdHI8QXR0YWNobWVudFVwZGF0ZU9ic2VydmVyPiBt
X29ic2VydmVyOwotICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBtX3dlYlZpZXc7Ci0gICAg
UmV0YWluUHRyPGlkPiBtX3ByZXZpb3VzRGVsZWdhdGU7Ci19OwotCi19Ci0KLUBpbnRlcmZhY2Ug
VGVzdFdLV2ViVmlldyAoQXR0YWNobWVudFRlc3RpbmcpCi1AZW5kCi0KIHN0YXRpYyBSZXRhaW5Q
dHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpCiB7CiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKQEAgLTE0MSwxOCArNTcsNiBAQCBzdGF0aWMgTlNEYXRhICp0ZXN0SW1hZ2VE
YXRhKCkKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgKEF0dGFjaG1lbnRUZXN0aW5n
KQogCi0tIChCT09MKV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAq
KWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQKLXsKLSAgICBfX2Jsb2NrIGJv
b2wgZG9uZSA9IGZhbHNlOwotICAgIF9fYmxvY2sgYm9vbCBzdWNjZXNzOwotICAgIFtzZWxmIF9l
eGVjdXRlRWRpdENvbW1hbmQ6Y29tbWFuZCBhcmd1bWVudDphcmd1bWVudCBjb21wbGV0aW9uOl4o
Qk9PTCBjb21wbGV0aW9uU3VjY2VzcykgewotICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICAgICAg
c3VjY2VzcyA9IGNvbXBsZXRpb25TdWNjZXNzOwotICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7Ci0gICAgcmV0dXJuIHN1Y2Nlc3M7Ci19Ci0KIC0gKF9XS0F0dGFj
aG1lbnQgKilzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTooTlNTdHJp
bmcgKilmaWxlbmFtZSBjb250ZW50VHlwZTooTlNTdHJpbmcgKiljb250ZW50VHlwZSBkYXRhOihO
U0RhdGEgKilkYXRhIG9wdGlvbnM6KF9XS0F0dGFjaG1lbnREaXNwbGF5T3B0aW9ucyAqKW9wdGlv
bnMKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwpAQCAtMTY4LDEzICs3Miw2IEBA
IHN0YXRpYyBOU0RhdGEgKnRlc3RJbWFnZURhdGEoKQogICAgIHJldHVybiBbc2VsZiBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignJUAnKS5nZXRBdHRyaWJ1dGUoJyVAJykiLCBxdWVyeVNlbGVjdG9y
LCBhdHRyaWJ1dGVOYW1lXV07CiB9CiAKLS0gKHZvaWQpZXhwZWN0VXBkYXRlc0FmdGVyQ29tbWFu
ZDooTlNTdHJpbmcgKiljb21tYW5kIHdpdGhBcmd1bWVudDooTlNTdHJpbmcgKilhcmd1bWVudCBl
eHBlY3RlZFJlbW92YWxzOihOU0FycmF5PF9XS0F0dGFjaG1lbnQgKj4gKilyZW1vdmVkIGV4cGVj
dGVkSW5zZXJ0aW9uczooTlNBcnJheTxfV0tBdHRhY2htZW50ICo+ICopaW5zZXJ0ZWQKLXsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpPYnNlcnZlQXR0YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZl
cihzZWxmKTsKLSAgICBFWFBFQ1RfVFJVRShbc2VsZiBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0
Q29tbWFuZDpjb21tYW5kIGFyZ3VtZW50OmFyZ3VtZW50XSk7Ci0gICAgb2JzZXJ2ZXIuZXhwZWN0
QXR0YWNobWVudFVwZGF0ZXMocmVtb3ZlZCwgaW5zZXJ0ZWQpOwotfQotCiBAZW5kCiAKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAgLTE4MiwxMTMgKzc5LDE5IEBAIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKIFRFU1QoV0tBdHRhY2htZW50VGVzdHMsIEF0dGFjaG1lbnRFbGVtZW50SW5z
ZXJ0aW9uKQogewogICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVu
dHMoKTsKLSAgICBSZXRhaW5QdHI8X1dLQXR0YWNobWVudD4gZmlyc3RBdHRhY2htZW50OwotICAg
IFJldGFpblB0cjxfV0tBdHRhY2htZW50PiBzZWNvbmRBdHRhY2htZW50OwotICAgIHsKLSAgICAg
ICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQo
KSk7Ci0gICAgICAgIC8vIFVzZSB0aGUgZ2l2ZW4gY29udGVudCB0eXBlIGZvciB0aGUgYXR0YWNo
bWVudCBlbGVtZW50J3MgdHlwZS4KLSAgICAgICAgZmlyc3RBdHRhY2htZW50ID0gcmV0YWluUHRy
KFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2htZW50V2l0aEZpbGVuYW1lOkAiZm9v
IiBjb250ZW50VHlwZTpAInRleHQvaHRtbCIgZGF0YTp0ZXN0SFRNTERhdGEoKSBvcHRpb25zOm5p
bF0pOwotICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28iLCBbd2ViVmlldyB2YWx1ZU9mQXR0
cmlidXRlOkAidGl0bGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOwotICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJ0ZXh0L2h0bWwiLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRl
OkAidHlwZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7Ci0gICAgICAgIEVYUEVD
VF9XS19TVFJFUShAIjM4IGJ5dGVzIiwgW3dlYlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInN1YnRp
dGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKLSAgICAgICAgb2JzZXJ2ZXIu
ZXhwZWN0QXR0YWNobWVudFVwZGF0ZXMoQFsgXSwgQFsgZmlyc3RBdHRhY2htZW50LmdldCgpIF0p
OwotICAgIH0KLSAgICB7Ci0gICAgICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3Bl
IHNjb3BlKHdlYlZpZXcuZ2V0KCkpOwotICAgICAgICAvLyBTaW5jZSBubyBjb250ZW50IHR5cGUg
aXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIGNvbXB1dGUgaXQgZnJvbSB0aGUgZmlsZSBleHRlbnNp
b24uCi0gICAgICAgIFt3ZWJWaWV3IF9leGVjdXRlRWRpdENvbW1hbmQ6QCJEZWxldGVCYWNrd2Fy
ZCIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKLSAgICAgICAgc2Vjb25kQXR0YWNobWVu
dCA9IHJldGFpblB0cihbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhG
aWxlbmFtZTpAImJhci5wbmciIGNvbnRlbnRUeXBlOm5pbCBkYXRhOnRlc3RJbWFnZURhdGEoKSBv
cHRpb25zOm5pbF0pOwotICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJiYXIucG5nIiwgW3dlYlZp
ZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVu
dCJdKTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiaW1hZ2UvcG5nIiwgW3dlYlZpZXcgdmFs
dWVPZkF0dHJpYnV0ZTpAInR5cGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOwot
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIzNyBLQiIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1
dGU6QCJzdWJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7Ci0gICAgICAg
IHNjb3BlLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVzKEBbIGZpcnN0QXR0YWNobWVudC5nZXQoKSBd
LCBAWyBzZWNvbmRBdHRhY2htZW50LmdldCgpIF0pOwotICAgIH0KLX0KLQotVEVTVChXS0F0dGFj
aG1lbnRUZXN0cywgQXR0YWNobWVudFVwZGF0ZXNXaGVuSW5zZXJ0aW5nQW5kRGVsZXRpbmdOZXds
aW5lKQotewotICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JUZXN0aW5nQXR0YWNobWVudHMo
KTsKLSAgICBSZXRhaW5QdHI8X1dLQXR0YWNobWVudD4gYXR0YWNobWVudDsKLSAgICB7Ci0gICAg
ICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0ZvclNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0
KCkpOwotICAgICAgICBhdHRhY2htZW50ID0gcmV0YWluUHRyKFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlJbnNlcnRBdHRhY2htZW50V2l0aEZpbGVuYW1lOkAiZm9vLnR4dCIgY29udGVudFR5cGU6QCJ0
ZXh0L3BsYWluIiBkYXRhOnRlc3RIVE1MRGF0YSgpIG9wdGlvbnM6bmlsXSk7Ci0gICAgICAgIG9i
c2VydmVyLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVzKEBbIF0sIEBbYXR0YWNobWVudC5nZXQoKV0p
OwotICAgIH0KLSAgICBbd2ViVmlldyBleHBlY3RVcGRhdGVzQWZ0ZXJDb21tYW5kOkAiSW5zZXJ0
UGFyYWdyYXBoIiB3aXRoQXJndW1lbnQ6bmlsIGV4cGVjdGVkUmVtb3ZhbHM6QFtdIGV4cGVjdGVk
SW5zZXJ0aW9uczpAW11dOwotICAgIFt3ZWJWaWV3IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1hbmQ6
QCJEZWxldGVCYWNrd2FyZCIgd2l0aEFyZ3VtZW50Om5pbCBleHBlY3RlZFJlbW92YWxzOkBbXSBl
eHBlY3RlZEluc2VydGlvbnM6QFtdXTsKLSAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoZG9jdW1lbnQuYm9keSkiXTsKLSAg
ICBbd2ViVmlldyBleHBlY3RVcGRhdGVzQWZ0ZXJDb21tYW5kOkAiSW5zZXJ0UGFyYWdyYXBoIiB3
aXRoQXJndW1lbnQ6bmlsIGV4cGVjdGVkUmVtb3ZhbHM6QFtdIGV4cGVjdGVkSW5zZXJ0aW9uczpA
W11dOwotICAgIFt3ZWJWaWV3IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1hbmQ6QCJEZWxldGVGb3J3
YXJkIiB3aXRoQXJndW1lbnQ6bmlsIGV4cGVjdGVkUmVtb3ZhbHM6QFthdHRhY2htZW50LmdldCgp
XSBleHBlY3RlZEluc2VydGlvbnM6QFtdXTsKLX0KIAotVEVTVChXS0F0dGFjaG1lbnRUZXN0cywg
QXR0YWNobWVudFVwZGF0ZXNXaGVuVW5kb2luZ0FuZFJlZG9pbmcpCi17Ci0gICAgYXV0byB3ZWJW
aWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwotICAgIFJldGFpblB0cjxfV0tB
dHRhY2htZW50PiBhdHRhY2htZW50OwotICAgIHsKLSAgICAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRV
cGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7Ci0gICAgICAgIGF0dGFjaG1l
bnQgPSByZXRhaW5QdHIoW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydEF0dGFjaG1lbnRXaXRo
RmlsZW5hbWU6QCJmb28udHh0IiBjb250ZW50VHlwZTpAInRleHQvcGxhaW4iIGRhdGE6dGVzdEhU
TUxEYXRhKCkgb3B0aW9uczpuaWxdKTsKLSAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVu
dFVwZGF0ZXMoQFsgXSwgQFthdHRhY2htZW50LmdldCgpXSk7Ci0gICAgfQotICAgIFt3ZWJWaWV3
IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1hbmQ6QCJVbmRvIiB3aXRoQXJndW1lbnQ6bmlsIGV4cGVj
dGVkUmVtb3ZhbHM6QFthdHRhY2htZW50LmdldCgpXSBleHBlY3RlZEluc2VydGlvbnM6QFtdXTsK
LSAgICBbd2ViVmlldyBleHBlY3RVcGRhdGVzQWZ0ZXJDb21tYW5kOkAiUmVkbyIgd2l0aEFyZ3Vt
ZW50Om5pbCBleHBlY3RlZFJlbW92YWxzOkBbXSBleHBlY3RlZEluc2VydGlvbnM6QFthdHRhY2ht
ZW50LmdldCgpXV07Ci0gICAgW3dlYlZpZXcgZXhwZWN0VXBkYXRlc0FmdGVyQ29tbWFuZDpAIkRl
bGV0ZUJhY2t3YXJkIiB3aXRoQXJndW1lbnQ6bmlsIGV4cGVjdGVkUmVtb3ZhbHM6QFthdHRhY2ht
ZW50LmdldCgpXSBleHBlY3RlZEluc2VydGlvbnM6QFtdXTsKLSAgICBbd2ViVmlldyBleHBlY3RV
cGRhdGVzQWZ0ZXJDb21tYW5kOkAiVW5kbyIgd2l0aEFyZ3VtZW50Om5pbCBleHBlY3RlZFJlbW92
YWxzOkBbXSBleHBlY3RlZEluc2VydGlvbnM6QFthdHRhY2htZW50LmdldCgpXV07Ci0gICAgW3dl
YlZpZXcgZXhwZWN0VXBkYXRlc0FmdGVyQ29tbWFuZDpAIlJlZG8iIHdpdGhBcmd1bWVudDpuaWwg
ZXhwZWN0ZWRSZW1vdmFsczpAW2F0dGFjaG1lbnQuZ2V0KCldIGV4cGVjdGVkSW5zZXJ0aW9uczpA
W11dOwotfQotCi1URVNUKFdLQXR0YWNobWVudFRlc3RzLCBBdHRhY2htZW50VXBkYXRlc1doZW5D
aGFuZ2luZ0ZvbnRTdHlsZXMpCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3Rp
bmdBdHRhY2htZW50cygpOwotICAgIFJldGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50
OwotICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiSW5zZXJ0
VGV4dCIgYXJndW1lbnQ6QCJIZWxsbyJdOwotICAgIHsKLSAgICAgICAgT2JzZXJ2ZUF0dGFjaG1l
bnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7Ci0gICAgICAgIGF0dGFj
aG1lbnQgPSByZXRhaW5QdHIoW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydEF0dGFjaG1lbnRX
aXRoRmlsZW5hbWU6QCJmb28udHh0IiBjb250ZW50VHlwZTpAInRleHQvcGxhaW4iIGRhdGE6dGVz
dEhUTUxEYXRhKCkgb3B0aW9uczpuaWxdKTsKLSAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNo
bWVudFVwZGF0ZXMoQFsgXSwgQFthdHRhY2htZW50LmdldCgpXSk7Ci0gICAgfQotICAgIFt3ZWJW
aWV3IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1hbmQ6QCJJbnNlcnRUZXh0IiB3aXRoQXJndW1lbnQ6
QCJXb3JsZCIgZXhwZWN0ZWRSZW1vdmFsczpAW10gZXhwZWN0ZWRJbnNlcnRpb25zOkBbXV07Ci0g
ICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwi
IGFyZ3VtZW50Om5pbF07Ci0gICAgW3dlYlZpZXcgZXhwZWN0VXBkYXRlc0FmdGVyQ29tbWFuZDpA
IlRvZ2dsZUJvbGQiIHdpdGhBcmd1bWVudDpuaWwgZXhwZWN0ZWRSZW1vdmFsczpAW10gZXhwZWN0
ZWRJbnNlcnRpb25zOkBbXV07Ci0gICAgW3dlYlZpZXcgZXhwZWN0VXBkYXRlc0FmdGVyQ29tbWFu
ZDpAIlRvZ2dsZUl0YWxpYyIgd2l0aEFyZ3VtZW50Om5pbCBleHBlY3RlZFJlbW92YWxzOkBbXSBl
eHBlY3RlZEluc2VydGlvbnM6QFtdXTsKLSAgICBbd2ViVmlldyBleHBlY3RVcGRhdGVzQWZ0ZXJD
b21tYW5kOkAiVG9nZ2xlVW5kZXJsaW5lIiB3aXRoQXJndW1lbnQ6bmlsIGV4cGVjdGVkUmVtb3Zh
bHM6QFtdIGV4cGVjdGVkSW5zZXJ0aW9uczpAW11dOwotCi0gICAgLy8gSW5zZXJ0aW5nIHRleHQg
c2hvdWxkIGRlbGV0ZSB0aGUgY3VycmVudCBzZWxlY3Rpb24sIHJlbW92aW5nIHRoZSBhdHRhY2ht
ZW50IGluIHRoZSBwcm9jZXNzLgotICAgIFt3ZWJWaWV3IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1h
bmQ6QCJJbnNlcnRUZXh0IiB3aXRoQXJndW1lbnQ6QCJmb28iIGV4cGVjdGVkUmVtb3ZhbHM6QFth
dHRhY2htZW50LmdldCgpXSBleHBlY3RlZEluc2VydGlvbnM6QFtdXTsKLX0KLQotVEVTVChXS0F0
dGFjaG1lbnRUZXN0cywgQXR0YWNobWVudFVwZGF0ZXNXaGVuSW5zZXJ0aW5nTGlzdHMpCi17Ci0g
ICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygpOwotICAgIFJl
dGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50OwotICAgIHsKLSAgICAgICAgT2JzZXJ2
ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7Ci0gICAg
ICAgIGF0dGFjaG1lbnQgPSByZXRhaW5QdHIoW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydEF0
dGFjaG1lbnRXaXRoRmlsZW5hbWU6QCJmb28udHh0IiBjb250ZW50VHlwZTpAInRleHQvcGxhaW4i
IGRhdGE6dGVzdEhUTUxEYXRhKCkgb3B0aW9uczpuaWxdKTsKLSAgICAgICAgb2JzZXJ2ZXIuZXhw
ZWN0QXR0YWNobWVudFVwZGF0ZXMoQFsgXSwgQFthdHRhY2htZW50LmdldCgpXSk7Ci0gICAgfQot
ICAgIFt3ZWJWaWV3IGV4cGVjdFVwZGF0ZXNBZnRlckNvbW1hbmQ6QCJJbnNlcnRPcmRlcmVkTGlz
dCIgd2l0aEFyZ3VtZW50Om5pbCBleHBlY3RlZFJlbW92YWxzOkBbXSBleHBlY3RlZEluc2VydGlv
bnM6QFtdXTsKLSAgICAvLyBUaGlzIGVkaXQgY29tbWFuZCBiZWhhdmVzIG1vcmUgbGlrZSBhICJ0
b2dnbGUiLCBhbmQgd2lsbCBhY3R1YWxseSBicmVhayB1cyBvdXQgb2YgdGhlIGxpc3Qgd2UganVz
dCBpbnNlcnRlZC4KLSAgICBbd2ViVmlldyBleHBlY3RVcGRhdGVzQWZ0ZXJDb21tYW5kOkAiSW5z
ZXJ0T3JkZXJlZExpc3QiIHdpdGhBcmd1bWVudDpuaWwgZXhwZWN0ZWRSZW1vdmFsczpAW10gZXhw
ZWN0ZWRJbnNlcnRpb25zOkBbXV07Ci0gICAgW3dlYlZpZXcgZXhwZWN0VXBkYXRlc0FmdGVyQ29t
bWFuZDpAIkluc2VydFVub3JkZXJlZExpc3QiIHdpdGhBcmd1bWVudDpuaWwgZXhwZWN0ZWRSZW1v
dmFsczpAW10gZXhwZWN0ZWRJbnNlcnRpb25zOkBbXV07Ci0gICAgW3dlYlZpZXcgZXhwZWN0VXBk
YXRlc0FmdGVyQ29tbWFuZDpAIkluc2VydFVub3JkZXJlZExpc3QiIHdpdGhBcmd1bWVudDpuaWwg
ZXhwZWN0ZWRSZW1vdmFsczpAW10gZXhwZWN0ZWRJbnNlcnRpb25zOkBbXV07Ci19Ci0KLVRFU1Qo
V0tBdHRhY2htZW50VGVzdHMsIEF0dGFjaG1lbnRVcGRhdGVzV2hlbkluc2VydGluZ1JpY2hNYXJr
dXApCi17Ci0gICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvclRlc3RpbmdBdHRhY2htZW50cygp
OwotICAgIFJldGFpblB0cjxfV0tBdHRhY2htZW50PiBhdHRhY2htZW50OwotICAgIHsKLSAgICAg
ICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQo
KSk7Ci0gICAgICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAi
SW5zZXJ0SFRNTCIgYXJndW1lbnQ6QCI8ZGl2PjxzdHJvbmc+PGF0dGFjaG1lbnQgdGl0bGU9J2En
IHdlYmtpdGF0dGFjaG1lbnRpZD0nYTA2ZmVjNDEtOWFhMC00YzJjLWJhM2EtMDE0OWI1NGFhZDk5
Jz48L2F0dGFjaG1lbnQ+PC9zdHJvbmc+PC9kaXY+Il07Ci0gICAgICAgIGF0dGFjaG1lbnQgPSBv
YnNlcnZlci5vYnNlcnZlcigpLmluc2VydGVkWzBdOwotICAgICAgICBvYnNlcnZlci5leHBlY3RB
dHRhY2htZW50VXBkYXRlcyhAWyBdLCBAW2F0dGFjaG1lbnQuZ2V0KCldKTsKLSAgICB9Ci0gICAg
ewotICAgICAgICBPYnNlcnZlQXR0YWNobWVudFVwZGF0ZXNGb3JTY29wZSBvYnNlcnZlcih3ZWJW
aWV3LmdldCgpKTsKLSAgICAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2F0dGFjaG1lbnQnKS5yZW1vdmUoKSJdOwotICAg
ICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Ci0gICAgICAgIG9i
c2VydmVyLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVzKEBbYXR0YWNobWVudC5nZXQoKV0sIEBbIF0p
OwotICAgIH0KKyAgICAvLyBVc2UgdGhlIGdpdmVuIGNvbnRlbnQgdHlwZSBmb3IgdGhlIGF0dGFj
aG1lbnQgZWxlbWVudCdzIHR5cGUuCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydEF0
dGFjaG1lbnRXaXRoRmlsZW5hbWU6QCJmb28iIGNvbnRlbnRUeXBlOkAidGV4dC9odG1sIiBkYXRh
OnRlc3RIVE1MRGF0YSgpIG9wdGlvbnM6bmlsXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmb28i
LCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAidGl0bGUiIGZvclF1ZXJ5U2VsZWN0b3I6QCJh
dHRhY2htZW50Il0pOworICAgIEVYUEVDVF9XS19TVFJFUShAInRleHQvaHRtbCIsIFt3ZWJWaWV3
IHZhbHVlT2ZBdHRyaWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJd
KTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCIzOCBieXRlcyIsIFt3ZWJWaWV3IHZhbHVlT2ZBdHRy
aWJ1dGU6QCJzdWJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CisKKyAg
ICAvLyBTaW5jZSBubyBjb250ZW50IHR5cGUgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIGNvbXB1
dGUgaXQgZnJvbSB0aGUgZmlsZSBleHRlbnNpb24uCisgICAgW3dlYlZpZXcgX2V4ZWN1dGVFZGl0
Q29tbWFuZDpAIkRlbGV0ZUJhY2t3YXJkIiBhcmd1bWVudDpuaWwgY29tcGxldGlvbjpuaWxdOwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRBdHRhY2htZW50V2l0aEZpbGVuYW1lOkAi
YmFyLnBuZyIgY29udGVudFR5cGU6bmlsIGRhdGE6dGVzdEltYWdlRGF0YSgpIG9wdGlvbnM6bmls
XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJiYXIucG5nIiwgW3dlYlZpZXcgdmFsdWVPZkF0dHJp
YnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJpbWFnZS9wbmciLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAidHlw
ZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVR
KEAiMzcgS0IiLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAic3VidGl0bGUiIGZvclF1ZXJ5
U2VsZWN0b3I6QCJhdHRhY2htZW50Il0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>