<?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>50878</bug_id>
          
          <creation_ts>2010-12-11 18:00:39 -0800</creation_ts>
          <short_desc>WebKit2 logging channels are on by default</short_desc>
          <delta_ts>2010-12-12 16:27:15 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>320725</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-12-11 18:00:39 -0800</bug_when>
    <thetext>WebKit2 logging channels are on by default:

WTFLogChannel LogSessionState = { 0x00000001, &quot;WebKit2LogLevel&quot;, WTFLogChannelOn };
WTFLogChannel LogContextMenu  = { 0x00000002, &quot;WebKit2LogLevel&quot;, WTFLogChannelOn };
WTFLogChannel LogTextInput    = { 0x00000003, &quot;WebKit2LogLevel&quot;, WTFLogChannelOn };

They should be off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320896</commentid>
    <comment_count>1</comment_count>
      <attachid>76338</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-12 16:23:41 -0800</bug_when>
    <thetext>Created attachment 76338
WIP (Do not review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320897</commentid>
    <comment_count>2</comment_count>
      <attachid>76338</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-12 16:24:11 -0800</bug_when>
    <thetext>Comment on attachment 76338
WIP (Do not review)

Oops, wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320899</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-12-12 16:27:15 -0800</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/73878. Add bug URL in http://trac.webkit.org/changeset/73881.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76338</attachid>
            <date>2010-12-12 16:23:41 -0800</date>
            <delta_ts>2010-12-12 16:24:11 -0800</delta_ts>
            <desc>WIP (Do not review)</desc>
            <filename>patchToTest.diff</filename>
            <type>text/plain</type>
            <size>65688</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQy
LnBybwkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0yODksNyArMjg5LDYgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdGlvbkRhdGEuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZU5hbWVzcGFjZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCkBAIC00ODksNyArNDg4LDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUdyb3Vw
LmNwcCBcCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
UHJvdGVjdGlvblNwYWNlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tTdHJpbmdR
dC5jcHAgXApJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHJldmlzaW9uIDczODgwKQorKysgV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDYg
QEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tJbnNwZWN0b3IqIAogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0YVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwotdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tQYWdlTmFtZXNwYWNlKiBXS1BhZ2VOYW1lc3BhY2VSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlv
blNwYWNlUmVmOwogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gNzM4
ODApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzksNiArNzksNyBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IFdlYkNvbnRleHQ6OmNyZWF0
CiAgICAgCiBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWws
IGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKQogICAgIDogbV9wcm9jZXNzTW9kZWwo
cHJvY2Vzc01vZGVsKQorICAgICwgbV9zaGFyZWROYW1lc3BhY2UoMCkKICAgICAsIG1fZGVmYXVs
dFBhZ2VHcm91cChXZWJQYWdlR3JvdXA6OmNyZWF0ZSgpKQogICAgICwgbV9pbmplY3RlZEJ1bmRs
ZVBhdGgoaW5qZWN0ZWRCdW5kbGVQYXRoKQogICAgICwgbV92aXNpdGVkTGlua1Byb3ZpZGVyKHRo
aXMpCkBAIC0yMjgsMTUgKzIyOSwyNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnJlbGF1bmNoUHJvY2Vz
c0lmTmVjZXNzCiAgICAgZW5zdXJlV2ViUHJvY2VzcygpOwogfQogCi1XZWJQYWdlTmFtZXNwYWNl
KiBXZWJDb250ZXh0OjpjcmVhdGVQYWdlTmFtZXNwYWNlKCkKK1dlYlBhZ2VOYW1lc3BhY2UqIFdl
YkNvbnRleHQ6OnNoYXJlZFBhZ2VOYW1lc3BhY2UoKQoreworICAgIGlmIChtX3NoYXJlZE5hbWVz
cGFjZSkKKyAgICAgICAgcmV0dXJuIG1fc2hhcmVkTmFtZXNwYWNlLmdldCgpOworCisgICAgbV9z
aGFyZWROYW1lc3BhY2UgPSBjcmVhdGVQYWdlTmFtZXNwYWNlKCk7CisgICAgcmV0dXJuIG1fc2hh
cmVkTmFtZXNwYWNlLmdldCgpOworfQorCitQYXNzUmVmUHRyPFdlYlBhZ2VOYW1lc3BhY2U+IFdl
YkNvbnRleHQ6OmNyZWF0ZVBhZ2VOYW1lc3BhY2UoKQogewogICAgIFJlZlB0cjxXZWJQYWdlTmFt
ZXNwYWNlPiBwYWdlTmFtZXNwYWNlID0gV2ViUGFnZU5hbWVzcGFjZTo6Y3JlYXRlKHRoaXMpOwog
ICAgIG1fcGFnZU5hbWVzcGFjZXMuYWRkKHBhZ2VOYW1lc3BhY2UuZ2V0KCkpOwotICAgIHJldHVy
biBwYWdlTmFtZXNwYWNlLnJlbGVhc2UoKS5yZWxlYXNlUmVmKCk7CisgICAgcmV0dXJuIHBhZ2VO
YW1lc3BhY2UucmVsZWFzZSgpOwogfQogCiB2b2lkIFdlYkNvbnRleHQ6OnBhZ2VOYW1lc3BhY2VX
YXNEZXN0cm95ZWQoV2ViUGFnZU5hbWVzcGFjZSogcGFnZU5hbWVzcGFjZSkKIHsKKyAgICBpZiAo
cGFnZU5hbWVzcGFjZSA9PSBtX3NoYXJlZE5hbWVzcGFjZSkKKyAgICAgICAgbV9zaGFyZWROYW1l
c3BhY2UgPSAwOworCiAgICAgQVNTRVJUKG1fcGFnZU5hbWVzcGFjZXMuY29udGFpbnMocGFnZU5h
bWVzcGFjZSkpOwogICAgIG1fcGFnZU5hbWVzcGFjZXMucmVtb3ZlKHBhZ2VOYW1lc3BhY2UpOwog
fQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDYgQEAK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLXN0cnVjdCBXS0NvbnRleHRTdGF0aXN0aWNzOwotCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKQEAgLTc3LDcgKzc1LDggQEAgcHVibGljOgog
CiAgICAgdm9pZCByZWxhdW5jaFByb2Nlc3NJZk5lY2Vzc2FyeSgpOwogCi0gICAgV2ViUGFnZU5h
bWVzcGFjZSogY3JlYXRlUGFnZU5hbWVzcGFjZSgpOworICAgIFdlYlBhZ2VOYW1lc3BhY2UqIHNo
YXJlZFBhZ2VOYW1lc3BhY2UoKTsKKyAgICBQYXNzUmVmUHRyPFdlYlBhZ2VOYW1lc3BhY2U+IGNy
ZWF0ZVBhZ2VOYW1lc3BhY2UoKTsKICAgICB2b2lkIHBhZ2VOYW1lc3BhY2VXYXNEZXN0cm95ZWQo
V2ViUGFnZU5hbWVzcGFjZSopOwogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBh
dGgoKSBjb25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMTY0LDYgKzE2
Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IEluIHRoZSBmdXR1cmUsIHRoaXMgc2hvdWxk
IGJlIG9uZSBvciBtb3JlIFdlYlByb2Nlc3NQcm94aWVzLgogICAgIFJlZlB0cjxXZWJQcm9jZXNz
UHJveHk+IG1fcHJvY2VzczsKIAorICAgIFJlZlB0cjxXZWJQYWdlTmFtZXNwYWNlPiBtX3NoYXJl
ZE5hbWVzcGFjZTsKICAgICBIYXNoU2V0PFdlYlBhZ2VOYW1lc3BhY2UqPiBtX3BhZ2VOYW1lc3Bh
Y2VzOwogCiAgICAgUmVmUHRyPFdlYlBhZ2VHcm91cD4gbV9kZWZhdWx0UGFnZUdyb3VwOwpJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VOYW1lc3BhY2UuaAkocmV2aXNpb24gNzM4ODApCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlTmFtZXNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAotc3RydWN0IFdLQ29udGV4dFN0YXRpc3RpY3M7Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJDb250ZXh0OwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsMTEgQEAgV2ViUHJvY2Vzc1Byb3h5KiBX
ZWJQYWdlUHJveHk6OnByb2Nlc3MoKQogICAgIHJldHVybiBtX3BhZ2VOYW1lc3BhY2UtPnByb2Nl
c3MoKTsKIH0KIAorV2ViQ29udGV4dCogV2ViUGFnZVByb3h5Ojpjb250ZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlTmFtZXNwYWNlLT5jb250ZXh0KCk7Cit9CisKIGJvb2wgV2ViUGFn
ZVByb3h5Ojppc1ZhbGlkKCkKIHsKICAgICAvLyBBIHBhZ2UgdGhhdCBoYXMgYmVlbiBleHBsaWNp
dGx5IGNsb3NlZCBpcyBuZXZlciB2YWxpZC4KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MSw4ICs3MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBz
dHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CiAKLXN0cnVjdCBXS0NvbnRleHRTdGF0aXN0aWNzOwot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKQEAgLTI1Miw2
ICsyNTAsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MoKSBjb25z
dDsKICAgICBXZWJQYWdlTmFtZXNwYWNlKiBwYWdlTmFtZXNwYWNlKCkgY29uc3QgeyByZXR1cm4g
bV9wYWdlTmFtZXNwYWNlLmdldCgpOyB9CisgICAgV2ViQ29udGV4dCogY29udGV4dCgpIGNvbnN0
OwogCiAgICAgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VH
cm91cC5nZXQoKTsgfQogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2
aXNpb24gNzM4ODApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNiBAQCBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3Mg
V2ViSW5zcGVjdG9yUHJveHk7CiBjbGFzcyBXZWJOYXZpZ2F0aW9uRGF0YTsKIGNsYXNzIFdlYlBh
Z2VHcm91cDsKLWNsYXNzIFdlYlBhZ2VOYW1lc3BhY2U7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBj
bGFzcyBXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKQEAgLTcwLDE2
ICs2OSwxNiBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tEb3dubG9hZFJlZiwgRG93bmxvCiBXS19B
RERfQVBJX01BUFBJTkcoV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmLCBXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkco
V0tGcmFtZVJlZiwgV2ViRnJhbWVQcm94eSkKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotV0tfQURE
X0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKLSNlbmRpZgog
V0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIFdlYk5hdmlnYXRpb25EYXRh
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZUdyb3VwUmVmLCBXZWJQYWdlR3JvdXApCi1XS19B
RERfQVBJX01BUFBJTkcoV0tQYWdlTmFtZXNwYWNlUmVmLCBXZWJQYWdlTmFtZXNwYWNlKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiAKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0
b3JQcm94eSkKKyNlbmRpZgorCiAvKiBFbnVtIGNvbnZlcnNpb25zICovCiAKIGlubGluZSBDYWNo
ZU1vZGVsIHRvQ2FjaGVNb2RlbChXS0NhY2hlTW9kZWwgd2tDYWNoZU1vZGVsKQpJbmRleDogV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDkgQEAg
V0tUeXBlSUQgV0tQYWdlR2V0VHlwZUlEKCkKICAgICByZXR1cm4gdG9BUEkoV2ViUGFnZVByb3h5
OjpBUElUeXBlKTsKIH0KIAotV0tQYWdlTmFtZXNwYWNlUmVmIFdLUGFnZUdldFBhZ2VOYW1lc3Bh
Y2UoV0tQYWdlUmVmIHBhZ2VSZWYpCitXS0NvbnRleHRSZWYgV0tQYWdlR2V0Q29udGV4dChXS1Bh
Z2VSZWYgcGFnZVJlZikKIHsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKHBhZ2VSZWYpLT5wYWdl
TmFtZXNwYWNlKCkpOworICAgIHJldHVybiB0b0FQSSh0b0ltcGwocGFnZVJlZiktPmNvbnRleHQo
KSk7CiB9CiAKIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFn
ZVJlZikKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCShyZXZpc2lvbiA3Mzg4MCkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTcs
NyArMjE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlQ29udGV4dE1lbnVDbGllbnQgVwogCiBX
S19FWFBPUlQgV0tUeXBlSUQgV0tQYWdlR2V0VHlwZUlEKCk7CiAKLVdLX0VYUE9SVCBXS1BhZ2VO
YW1lc3BhY2VSZWYgV0tQYWdlR2V0UGFnZU5hbWVzcGFjZShXS1BhZ2VSZWYgcGFnZSk7CitXS19F
WFBPUlQgV0tDb250ZXh0UmVmIFdLUGFnZUdldENvbnRleHQoV0tQYWdlUmVmIHBhZ2UpOwogV0tf
RVhQT1JUIFdLUGFnZUdyb3VwUmVmIFdLUGFnZUdldFBhZ2VHcm91cChXS1BhZ2VSZWYgcGFnZSk7
CiAKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZUxvYWRVUkwoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVm
IHVybCk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYW1lc3BhY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5j
cHAJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFt
ZXNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgIldLUGFnZU5hbWVzcGFjZS5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0j
aW5jbHVkZSAiV2ViUGFnZU5hbWVzcGFjZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1X
S1R5cGVJRCBXS1BhZ2VOYW1lc3BhY2VHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShX
ZWJQYWdlTmFtZXNwYWNlOjpBUElUeXBlKTsKLX0KLQotV0tQYWdlTmFtZXNwYWNlUmVmIFdLUGFn
ZU5hbWVzcGFjZUNyZWF0ZShXS0NvbnRleHRSZWYgb3duZXJDb250ZXh0UmVmKQotewotICAgIHJl
dHVybiB0b0FQSSh0b0ltcGwob3duZXJDb250ZXh0UmVmKS0+Y3JlYXRlUGFnZU5hbWVzcGFjZSgp
KTsKLX0KLQotV0tDb250ZXh0UmVmIFdLUGFnZU5hbWVzcGFjZUdldENvbnRleHQoV0tQYWdlTmFt
ZXNwYWNlUmVmIHBhZ2VOYW1lc3BhY2VSZWYpCi17Ci0gICAgcmV0dXJuIHRvQVBJKHRvSW1wbChw
YWdlTmFtZXNwYWNlUmVmKS0+Y29udGV4dCgpKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZU5hbWVzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLUGFnZU5hbWVzcGFjZV9oCi0jZGVmaW5lIFdL
UGFnZU5hbWVzcGFjZV9oCi0KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotCi0jaWZkZWYg
X19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBX
S1BhZ2VOYW1lc3BhY2VHZXRUeXBlSUQoKTsKLQotV0tfRVhQT1JUIFdLUGFnZU5hbWVzcGFjZVJl
ZiBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUoV0tDb250ZXh0UmVmIG93bmVyQ29udGV4dCk7Ci0KLVdL
X0VYUE9SVCBXS0NvbnRleHRSZWYgV0tQYWdlTmFtZXNwYWNlR2V0Q29udGV4dChXS1BhZ2VOYW1l
c3BhY2VSZWYgcGFnZU5hbWVzcGFjZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlm
Ci0KLSNlbmRpZiAvKiBXS1BhZ2VOYW1lc3BhY2VfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV2ViS2l0Mi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dlYktpdDIuaAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
ZWJLaXQyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlIDxXZWJL
aXQyL1dLTnVtYmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2UuaD4KICNpbmNsdWRlIDxX
ZWJLaXQyL1dLUGFnZUdyb3VwLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VOYW1lc3BhY2Uu
aD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTC5oPgpJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDkgKzM1
LDIxIEBAIFdLVHlwZUlEIFdLVmlld0dldFR5cGVJRCgpCiAgICAgcmV0dXJuIHRvQVBJKEFQSU9i
amVjdDo6VHlwZVZpZXcpOwogfQogCi1XS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFJFQ1QgcmVjdCwg
V0tQYWdlTmFtZXNwYWNlUmVmIHBhZ2VOYW1lc3BhY2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VH
cm91cFJlZiwgSFdORCBwYXJlbnRXaW5kb3cpCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFJFQ1Qg
cmVjdCwgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJl
ZiwgSFdORCBwYXJlbnRXaW5kb3cpCiB7Ci0gICAgUmVmUHRyPFdlYlZpZXc+IHZpZXcgPSBXZWJW
aWV3OjpjcmVhdGUocmVjdCwgdG9JbXBsKHBhZ2VOYW1lc3BhY2VSZWYpLCB0b0ltcGwocGFnZUdy
b3VwUmVmKSwgcGFyZW50V2luZG93KTsKKyAgICBSZWZQdHI8V2ViVmlldz4gdmlldyA9IFdlYlZp
ZXc6OmNyZWF0ZShyZWN0LCB0b0ltcGwoY29udGV4dFJlZiksIHRvSW1wbChwYWdlR3JvdXBSZWYp
LCBwYXJlbnRXaW5kb3cpOworICAgIHJldHVybiB0b0FQSSh2aWV3LnJlbGVhc2UoKS5yZWxlYXNl
UmVmKCkpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlVXNpbmdTaGFyZWRQcm9jZXNzKFJF
Q1QgcmVjdCwgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZiwgSFdORCBwYXJlbnRXaW5kb3cpCit7CisgICAgUmVmUHRyPFdlYlZpZXc+IHZpZXcgPSBX
ZWJWaWV3OjpjcmVhdGVVc2luZ1NoYXJlZFByb2Nlc3MocmVjdCwgdG9JbXBsKGNvbnRleHRSZWYp
LCB0b0ltcGwocGFnZUdyb3VwUmVmKSwgcGFyZW50V2luZG93KTsKKyAgICByZXR1cm4gdG9BUEko
dmlldy5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KKworV0tWaWV3UmVmIFdLVmlld0NyZWF0
ZUZvckFzc29jaWF0ZWRQYWdlKFJFQ1QgcmVjdCwgV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cFJlZiwgSFdORCBwYXJlbnRXaW5kb3cpCit7CisgICAgUmVmUHRyPFdl
YlZpZXc+IHZpZXcgPSBXZWJWaWV3OjpjcmVhdGVGb3JBc3NvY2lhdGVkUGFnZShyZWN0LCB0b0lt
cGwocGFnZVJlZiksIHRvSW1wbChwYWdlR3JvdXBSZWYpLCBwYXJlbnRXaW5kb3cpOwogICAgIHJl
dHVybiB0b0FQSSh2aWV3LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwogfQogCkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5oCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
OSBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIFdLVHlwZUlEIFdLVmlld0dldFR5cGVJRCgp
OwogCi1XS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShSRUNUIHJlY3QsIFdLUGFnZU5h
bWVzcGFjZVJlZiBwYWdlTmFtZXNwYWNlLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIEhXTkQg
cGFyZW50V2luZG93KTsKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFJFQ1QgcmVj
dCwgV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgSFdORCBw
YXJlbnRXaW5kb3cpOworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGVVc2luZ1NoYXJl
ZFByb2Nlc3MoUkVDVCByZWN0LCBXS0NvbnRleHRSZWYgY29udGV4dCwgV0tQYWdlR3JvdXBSZWYg
cGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdyk7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmll
d0NyZWF0ZUZvckFzc29jaWF0ZWRQYWdlKFJFQ1QgcmVjdCwgV0tQYWdlUmVmIHBhZ2UsIFdLUGFn
ZUdyb3VwUmVmIHBhZ2VHcm91cCwgSFdORCBwYXJlbnRXaW5kb3cpOwogCiBXS19FWFBPUlQgSFdO
RCBXS1ZpZXdHZXRXaW5kb3coV0tWaWV3UmVmIHZpZXcpOwogCkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3LmgJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTUgKzMzLDE4IEBAIEBpbnRlcmZh
Y2UgV0tWaWV3IDogTlNWaWV3IDxOU1RleHRJbnB1dD4KICAgICBXS1ZpZXdEYXRhICpfZGF0YTsK
IH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHBhZ2VOYW1lc3BhY2VSZWY6
KFdLUGFnZU5hbWVzcGFjZVJlZilwYWdlTmFtZXNwYWNlUmVmOwotLSAoaWQpaW5pdFdpdGhGcmFt
ZTooTlNSZWN0KWZyYW1lIHBhZ2VOYW1lc3BhY2VSZWY6KFdLUGFnZU5hbWVzcGFjZVJlZilwYWdl
TmFtZXNwYWNlUmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmOwor
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJl
Ziljb250ZXh0UmVmOworLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRS
ZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYp
cGFnZUdyb3VwUmVmOwogCi0tIChXS1BhZ2VSZWYpcGFnZVJlZjsKKy0gKGlkKWluaXRXaXRoRnJh
bWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiB1c2lu
Z1NoYXJlZFByb2Nlc3M6KEJPT0wpdXNpbmdTaGFyZWRQcm9jZXNzOworLSAoaWQpaW5pdFdpdGhG
cmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBh
Z2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHVzaW5nU2hhcmVkUHJvY2Vz
czooQk9PTCl1c2luZ1NoYXJlZFByb2Nlc3M7OwogCi0tICh2b2lkKXNldERyYXdzQmFja2dyb3Vu
ZDooQk9PTClmbGFnOwotLSAoQk9PTClkcmF3c0JhY2tncm91bmQ7CistIChpZClpbml0V2l0aEZy
YW1lOihOU1JlY3QpZnJhbWUgZm9yQXNzb2NpYXRlZFBhZ2VSZWY6KFdLUGFnZVJlZilwYWdlUmVm
OworLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGZvckFzc29jaWF0ZWRQYWdlUmVm
OihXS1BhZ2VSZWYpcGFnZVJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91
cFJlZjsKIAotLSAodm9pZClzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDooQk9PTClmbGFn
OwotLSAoQk9PTClkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDsKK0Bwcm9wZXJ0eShyZWFkb25s
eSkgV0tQYWdlUmVmIHBhZ2VSZWY7CisKK0Bwcm9wZXJ0eSBCT09MIGRyYXdzQmFja2dyb3VuZDsK
K0Bwcm9wZXJ0eSBCT09MIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOwogCiBAZW5kCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gNzM4ODApCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI3LDkg
KzEyNyw1NCBAQCAtIChCT09MKXdhbnRzVG9IYW5kbGVNb3VzZUV2ZW50czsKIC0gKEJPT0wpaGFu
ZGxlTW91c2VFdmVudDooTlNFdmVudCAqKWV2ZW50OwogQGVuZAogCitAaW50ZXJmYWNlIFdLVmll
dyAoKQorLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHBhZ2VOYW1lc3BhY2U6KFdl
YlBhZ2VOYW1lc3BhY2UqKXBhZ2VOYW1lc3BhY2UgcGFnZUdyb3VwOihXZWJQYWdlR3JvdXAqKXBh
Z2VHcm91cDsKK0BlbmQKKwogQGltcGxlbWVudGF0aW9uIFdLVmlldwogCi0tIChpZClpbml0V2l0
aEZyYW1lOihOU1JlY3QpZnJhbWUgcGFnZU5hbWVzcGFjZVJlZjooV0tQYWdlTmFtZXNwYWNlUmVm
KXBhZ2VOYW1lc3BhY2VSZWYgcGFnZUdyb3VwUmVmOihXS1BhZ2VHcm91cFJlZilwYWdlR3JvdXBS
ZWYKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQoreworICAgIHJldHVybiBbc2Vs
ZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbnRleHRSZWY6dG9BUEkoV2ViQ29udGV4dDo6c2hhcmVk
UHJvY2Vzc0NvbnRleHQoKSldOworfQorCistIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJh
bWUgY29udGV4dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYKK3sgICAKKyAgICByZXR1cm4g
W3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3Vw
UmVmOm5pbF07Cit9CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0
UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVm
KXBhZ2VHcm91cFJlZgoreworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNv
bnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmIHVzaW5nU2hhcmVk
UHJvY2VzczpOT107Cit9CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250
ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiB1c2luZ1NoYXJlZFByb2Nlc3M6KEJPT0wp
dXNpbmdTaGFyZWRQcm9jZXNzCit7CisgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJh
bWUgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpuaWwgdXNpbmdTaGFyZWRQcm9j
ZXNzOnVzaW5nU2hhcmVkUHJvY2Vzc107Cit9CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiB1c2luZ1NoYXJlZFByb2Nlc3M6KEJPT0wpdXNp
bmdTaGFyZWRQcm9jZXNzCit7CisgICAgUmVmUHRyPFdlYlBhZ2VOYW1lc3BhY2U+IHBhZ2VOYW1l
c3BhY2U7CisgICAgaWYgKHVzaW5nU2hhcmVkUHJvY2VzcykKKyAgICAgICAgcGFnZU5hbWVzcGFj
ZSA9IHRvSW1wbChjb250ZXh0UmVmKS0+c2hhcmVkUGFnZU5hbWVzcGFjZSgpOworICAgIGVsc2UK
KyAgICAgICAgcGFnZU5hbWVzcGFjZSA9IHRvSW1wbChjb250ZXh0UmVmKS0+Y3JlYXRlUGFnZU5h
bWVzcGFjZSgpOworCisgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgcGFnZU5h
bWVzcGFjZTpwYWdlTmFtZXNwYWNlLmdldCgpIHBhZ2VHcm91cDp0b0ltcGwocGFnZUdyb3VwUmVm
KV07Cit9CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBmb3JBc3NvY2lhdGVk
UGFnZVJlZjooV0tQYWdlUmVmKXBhZ2VSZWYKK3sKKyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhG
cmFtZTpmcmFtZSBmb3JBc3NvY2lhdGVkUGFnZVJlZjpwYWdlUmVmIHBhZ2VHcm91cFJlZjpuaWxd
OworfQorCistIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgZm9yQXNzb2NpYXRlZFBh
Z2VSZWY6KFdLUGFnZVJlZilwYWdlUmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFn
ZUdyb3VwUmVmCit7CisgICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgcGFnZU5h
bWVzcGFjZTp0b0ltcGwocGFnZVJlZiktPnBhZ2VOYW1lc3BhY2UoKSBwYWdlR3JvdXA6dG9JbXBs
KHBhZ2VHcm91cFJlZildOworfQorCistIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUg
cGFnZU5hbWVzcGFjZTooV2ViUGFnZU5hbWVzcGFjZSopcGFnZU5hbWVzcGFjZSBwYWdlR3JvdXA6
KFdlYlBhZ2VHcm91cCopcGFnZUdyb3VwCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZy
YW1lOmZyYW1lXTsKICAgICBpZiAoIXNlbGYpCkBAIC0xNDgsNyArMTkzLDcgQEAgLSAoaWQpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHBhZ2VOYQogICAgIF9kYXRhID0gW1tXS1ZpZXdEYXRh
IGFsbG9jXSBpbml0XTsKIAogICAgIF9kYXRhLT5fcGFnZUNsaWVudCA9IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGUoc2VsZik7Ci0gICAgX2RhdGEtPl9wYWdlID0gdG9JbXBsKHBhZ2VOYW1lc3BhY2VS
ZWYpLT5jcmVhdGVXZWJQYWdlKHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyAgICBfZGF0YS0+X3Bh
Z2UgPSBwYWdlTmFtZXNwYWNlLT5jcmVhdGVXZWJQYWdlKHBhZ2VHcm91cCk7CiAgICAgX2RhdGEt
Pl9wYWdlLT5zZXRQYWdlQ2xpZW50KF9kYXRhLT5fcGFnZUNsaWVudC5nZXQoKSk7CiAgICAgX2Rh
dGEtPl9wYWdlLT5zZXREcmF3aW5nQXJlYShDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eTo6
Y3JlYXRlKHNlbGYpKTsKICAgICBfZGF0YS0+X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKEludFNp
emUoZnJhbWUuc2l6ZSkpOwpAQCAtMTY4LDE3ICsyMTMsNiBAQCAtIChpZClpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgcGFnZU5hCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKGlkKWluaXRX
aXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwYWdlTmFtZXNwYWNlUmVmOihXS1BhZ2VOYW1lc3BhY2VS
ZWYpcGFnZU5hbWVzcGFjZVJlZgotewotICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZy
YW1lIHBhZ2VOYW1lc3BhY2VSZWY6cGFnZU5hbWVzcGFjZVJlZiBwYWdlR3JvdXBSZWY6bmlsXTsK
LX0KLQotLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCi17Ci0gICAgV2ViQ29udGV4
dCogY29udGV4dCA9IFdlYkNvbnRleHQ6OnNoYXJlZFByb2Nlc3NDb250ZXh0KCk7Ci0gICAgcmV0
dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgcGFnZU5hbWVzcGFjZVJlZjp0b0FQSShjb250
ZXh0LT5jcmVhdGVQYWdlTmFtZXNwYWNlKCkpXTsKLX0KLQogLSAodm9pZClkZWFsbG9jCiB7CiAg
ICAgX2RhdGEtPl9wYWdlLT5jbG9zZSgpOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a2NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2tjb250ZXh0LmNwcAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrY29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE1ICs1MCwyMyBAQCBRV0tD
b250ZXh0OjpRV0tDb250ZXh0KFFPYmplY3QqIHBhcmVudCkKICAgICAsIGQobmV3IFFXS0NvbnRl
eHRQcml2YXRlKHRoaXMpKQogewogICAgIGQtPmNvbnRleHQgPSBXZWJDb250ZXh0OjpjcmVhdGUo
U3RyaW5nKCkpOwotICAgIGQtPnBhZ2VOYW1lc3BhY2UgPSBkLT5jb250ZXh0LT5jcmVhdGVQYWdl
TmFtZXNwYWNlKCk7CisgICAgZC0+cGFnZU5hbWVzcGFjZSA9IGQtPmNvbnRleHQtPnNoYXJlZE5h
bWVzcGFjZSgpOwogfQogCi1RV0tDb250ZXh0OjpRV0tDb250ZXh0KFdLUGFnZU5hbWVzcGFjZVJl
ZiBwYWdlTmFtZXNwYWNlUmVmLCBRT2JqZWN0KiBwYXJlbnQpCitRV0tDb250ZXh0OjpRV0tDb250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBRT2JqZWN0KiBwYXJlbnQpCiAgICAgOiBRT2Jq
ZWN0KHBhcmVudCkKICAgICAsIGQobmV3IFFXS0NvbnRleHRQcml2YXRlKHRoaXMpKQogewotICAg
IGQtPnBhZ2VOYW1lc3BhY2UgPSB0b0ltcGwocGFnZU5hbWVzcGFjZVJlZik7Ci0gICAgZC0+Y29u
dGV4dCA9IGQtPnBhZ2VOYW1lc3BhY2UtPmNvbnRleHQoKTsKKyAgICBkLT5jb250ZXh0ID0gdG9J
bXBsKGNvbnRleHRSZWYpOworICAgIGQtPnBhZ2VOYW1lc3BhY2UgPSBkLT5jb250ZXh0LT5zaGFy
ZWROYW1lc3BhY2UoKTsKK30KKworUVdLQ29udGV4dDo6UVdLQ29udGV4dChXS1BhZ2VSZWYgcGFn
ZVJlZiwgUU9iamVjdCogcGFyZW50KQorICAgIDogUU9iamVjdChwYXJlbnQpCisgICAgLCBkKG5l
dyBRV0tDb250ZXh0UHJpdmF0ZSh0aGlzKSkKK3sKKyAgICBkLT5jb250ZXh0ID0gdG9JbXBsKHBh
Z2VSZWYpLT5jb250ZXh0KCk7CisgICAgZC0+cGFnZU5hbWVzcGFjZSA9IGQtPmNvbnRleHQtPnNo
YXJlZE5hbWVzcGFjZSgpOwogfQogCiBRV0tDb250ZXh0Ojp+UVdLQ29udGV4dCgpCkluZGV4OiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmgJKHJldmlzaW9uIDczODgwKQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjIs
NyArMjIsOCBAQAogCiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogI2luY2x1ZGUgPFFPYmpl
Y3Q+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VOYW1lc3BhY2UuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlLmg+CiAKIGNsYXNzIFFX
S0NvbnRleHRQcml2YXRlOwogCkBAIC0zMyw3ICszNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5RV0tDb250ZXh0KCk7CiAKICAgICAvLyBCcmlkZ2UgZnJvbSB0aGUgQyBBUEkKLSAgICBRV0tD
b250ZXh0KFdLUGFnZU5hbWVzcGFjZVJlZiBwYWdlTmFtZXNwYWNlUmVmLCBRT2JqZWN0KiBwYXJl
bnQgPSAwKTsKKyAgICBRV0tDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBRT2JqZWN0
KiBwYXJlbnQgPSAwKTsKKyAgICBRV0tDb250ZXh0KFdLUGFnZVJlZiBwYWdlUmVmLCBRT2JqZWN0
KiBwYXJlbnQgPSAwKTsKIAogcHJpdmF0ZToKICAgICBRV0tDb250ZXh0UHJpdmF0ZSogZDsKSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0JKHJl
dmlzaW9uIDczODgwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5
TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OCwxMCArNzgsMTAgQEAgV2ViUGFnZVByb3h5KiBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcgogICAgIEFTU0VSVChtX3BhZ2UpOwogICAgIEFTU0VS
VCghbV9pbnNwZWN0b3JWaWV3KTsKIAotICAgIG1faW5zcGVjdG9yVmlldy5hZG9wdE5TKFtbV0tW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgcGFnZU5hbWVzcGFjZVJlZjp0b0FQ
SShtX3BhZ2UtPnBhZ2VOYW1lc3BhY2UoKSkgcGFnZUdyb3VwUmVmOnRvQVBJKGluc3BlY3RvclBh
Z2VHcm91cCgpKV0pOworICAgIG1faW5zcGVjdG9yVmlldy5hZG9wdE5TKFtbV0tWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgZm9yQXNzb2NpYXRlZFBhZ2VSZWY6dG9BUEkocGFn
ZSgpKSBwYWdlR3JvdXBSZWY6dG9BUEkoaW5zcGVjdG9yUGFnZUdyb3VwKCkpXSk7CiAgICAgQVNT
RVJUKG1faW5zcGVjdG9yVmlldyk7CiAKLSAgICByZXR1cm4gdG9JbXBsKFttX2luc3BlY3RvclZp
ZXcuZ2V0KCkgcGFnZVJlZl0pOworICAgIHJldHVybiB0b0ltcGwobV9pbnNwZWN0b3JWaWV3Lmdl
dCgpLnBhZ2VSZWYpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4o
KQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4u
Y3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0
b3JQcm94eVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw4ICsxNDEsOCBAQCBXZWJQYWdl
UHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9yCiAgICAgQVNTRVJUKCFtX2luc3BlY3Rv
cldpbmRvdyk7CiAKICAgICBSRUNUIGVtcHR5UmVjdCA9IHswfTsKLSAgICBtX2luc3BlY3RvclZp
ZXcgPSBXZWJWaWV3OjpjcmVhdGUoZW1wdHlSZWN0LCBtX3BhZ2UtPnBhZ2VOYW1lc3BhY2UoKSwg
aW5zcGVjdG9yUGFnZUdyb3VwKCksIDApLmxlYWtSZWYoKTsKLSAgICAKKyAgICBtX2luc3BlY3Rv
clZpZXcgPSBXZWJWaWV3OjpjcmVhdGVGb3JBc3NvY2lhdGVkUGFnZShlbXB0eVJlY3QsIG1fcGFn
ZSwgaW5zcGVjdG9yUGFnZUdyb3VwKCksIDApLmxlYWtSZWYoKTsKKwogICAgIHJldHVybiBtX2lu
c3BlY3RvclZpZXctPnBhZ2UoKTsKIH0KIApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dl
YlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE4Miw3ICsxODIsNyBAQCBib29sIFdlYlZpZXc6OnJlZ2lzdGVy
V2ViVmlld1dpbmRvd0NsYXNzCiAgICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzRXgoJndjZXgp
OwogfQogCi1XZWJWaWV3OjpXZWJWaWV3KFJFQ1QgcmVjdCwgV2ViUGFnZU5hbWVzcGFjZSogcGFn
ZU5hbWVzcGFjZSwgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAsIEhXTkQgcGFyZW50V2luZG93KQor
V2ViVmlldzo6V2ViVmlldyhSRUNUIHJlY3QsIFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VH
cm91cCogcGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdywgYm9vbCB1c2luZ1NoYXJlZFByb2Nl
c3MpCiAgICAgOiBtX3JlY3QocmVjdCkKICAgICAsIG1fdG9wTGV2ZWxQYXJlbnRXaW5kb3coMCkK
ICAgICAsIG1fdG9vbFRpcFdpbmRvdygwKQpAQCAtMTkyLDYgKzE5MiwzMCBAQCBXZWJWaWV3OjpX
ZWJWaWV3KFJFQ1QgcmVjdCwgV2ViUGFnZU5hbWVzCiAgICAgLCBtX3RyYWNraW5nTW91c2VMZWF2
ZShmYWxzZSkKICAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKIHsKKyAgICBSZWZQdHI8
V2ViUGFnZU5hbWVzcGFjZT4gcGFnZU5hbWVzcGFjZTsKKyAgICBpZiAodXNpbmdTaGFyZWRQcm9j
ZXNzKQorICAgICAgICBwYWdlTmFtZXNwYWNlID0gY29udGV4dC0+c2hhcmVkUGFnZU5hbWVzcGFj
ZSgpOworICAgIGVsc2UKKyAgICAgICAgcGFnZU5hbWVzcGFjZSA9IGNvbnRleHQtPmNyZWF0ZVBh
Z2VOYW1lc3BhY2UoKTsKKworICAgIGluaXRpYWxpemUocGFnZU5hbWVzcGFjZS5nZXQoKSwgcGFn
ZUdyb3VwLCBwYXJlbnRXaW5kb3cpOworfQorCitXZWJWaWV3OjpXZWJWaWV3KFJFQ1QgcmVjdCwg
V2ViUGFnZVByb3h5KiBwYWdlLCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgSFdORCBwYXJlbnRX
aW5kb3cpCisgICAgOiBtX3JlY3QocmVjdCkKKyAgICAsIG1fdG9wTGV2ZWxQYXJlbnRXaW5kb3co
MCkKKyAgICAsIG1fdG9vbFRpcFdpbmRvdygwKQorICAgICwgbV9sYXN0Q3Vyc29yU2V0KDApCisg
ICAgLCBtX3dlYkNvcmVDdXJzb3IoMCkKKyAgICAsIG1fb3ZlcnJpZGVDdXJzb3IoMCkKKyAgICAs
IG1fdHJhY2tpbmdNb3VzZUxlYXZlKGZhbHNlKQorICAgICwgbV9pc0JlaW5nRGVzdHJveWVkKGZh
bHNlKQoreworICAgIGluaXRpYWxpemUocGFnZS0+cGFnZU5hbWVzcGFjZSgpLCBwYWdlR3JvdXAs
IHBhcmVudFdpbmRvdyk7Cit9CisKK3ZvaWQgV2ViVmlldzo6aW5pdGlhbGl6ZShXZWJQYWdlTmFt
ZXNwYWNlKiBwYWdlTmFtZXNwYWNlLCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgSFdORCBwYXJl
bnRXaW5kb3cpCit7CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKIAogICAgIG1f
cGFnZSA9IHBhZ2VOYW1lc3BhY2UtPmNyZWF0ZVdlYlBhZ2UocGFnZUdyb3VwKTsKQEAgLTE5OSwx
MCArMjIzLDEwIEBAIFdlYlZpZXc6OldlYlZpZXcoUkVDVCByZWN0LCBXZWJQYWdlTmFtZXMKICAg
ICBtX3BhZ2UtPnNldERyYXdpbmdBcmVhKENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5Ojpj
cmVhdGUodGhpcykpOwogCiAgICAgbV93aW5kb3cgPSA6OkNyZWF0ZVdpbmRvd0V4KDAsIGtXZWJL
aXQyV2ViVmlld1dpbmRvd0NsYXNzTmFtZSwgMCwgV1NfQ0hJTEQgfCBXU19DTElQU0lCTElOR1Mg
fCBXU19DTElQQ0hJTERSRU4sCi0gICAgICAgIHJlY3QudG9wLCByZWN0LmxlZnQsIHJlY3Qucmln
aHQgLSByZWN0LmxlZnQsIHJlY3QuYm90dG9tIC0gcmVjdC50b3AsIHBhcmVudFdpbmRvdyA/IHBh
cmVudFdpbmRvdyA6IEhXTkRfTUVTU0FHRSwgMCwgaW5zdGFuY2VIYW5kbGUoKSwgdGhpcyk7Cisg
ICAgICAgIG1fcmVjdC50b3AsIG1fcmVjdC5sZWZ0LCBtX3JlY3QucmlnaHQgLSBtX3JlY3QubGVm
dCwgbV9yZWN0LmJvdHRvbSAtIG1fcmVjdC50b3AsIHBhcmVudFdpbmRvdyA/IHBhcmVudFdpbmRv
dyA6IEhXTkRfTUVTU0FHRSwgMCwgaW5zdGFuY2VIYW5kbGUoKSwgdGhpcyk7CiAgICAgQVNTRVJU
KDo6SXNXaW5kb3cobV93aW5kb3cpKTsKIAotICAgIG1fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2Uo
SW50UmVjdChyZWN0KS5zaXplKCkpOworICAgIG1fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoSW50
UmVjdChtX3JlY3QpLnNpemUoKSk7CiAKICAgICA6OlNob3dXaW5kb3cobV93aW5kb3csIFNXX1NI
T1cpOwogCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgJKHJldmlzaW9uIDczODgwKQorKysg
V2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSAr
NDEsMTcgQEAgY2xhc3MgV2ViUGFnZU5hbWVzcGFjZTsKIAogY2xhc3MgV2ViVmlldyA6IHB1Ymxp
YyBBUElPYmplY3QsIHB1YmxpYyBQYWdlQ2xpZW50LCBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlTGlz
dGVuZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZXc+IGNyZWF0ZShS
RUNUIHJlY3QsIFdlYlBhZ2VOYW1lc3BhY2UqIHBhZ2VOYW1lc3BhY2UsIFdlYlBhZ2VHcm91cCog
cGFnZUdyb3VwLCBIV05EIHBhcmVudFdpbmRvdykKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJW
aWV3PiBjcmVhdGUoUkVDVCByZWN0LCBXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAq
IHBhZ2VHcm91cCwgSFdORCBwYXJlbnRXaW5kb3cpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYlZpZXcocmVjdCwgcGFnZU5hbWVzcGFjZSwgcGFnZUdyb3VwLCBwYXJlbnRX
aW5kb3cpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJWaWV3KHJlY3QsIGNvbnRl
eHQsIHBhZ2VHcm91cCwgcGFyZW50V2luZG93LCBmYWxzZSkpOworICAgIH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJWaWV3PiBjcmVhdGVVc2luZ1NoYXJlZFByb2Nlc3MoUkVDVCByZWN0LCBX
ZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlR3JvdXAqIHBhZ2VHcm91cCwgSFdORCBwYXJlbnRX
aW5kb3cpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZXcocmVjdCwg
Y29udGV4dCwgcGFnZUdyb3VwLCBwYXJlbnRXaW5kb3csIHRydWUpKTsKKyAgICB9CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViVmlldz4gY3JlYXRlRm9yQXNzb2NpYXRlZFBhZ2UoUkVDVCByZWN0
LCBXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBIV05EIHBhcmVu
dFdpbmRvdykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVmlldyhyZWN0
LCBwYWdlLCBwYWdlR3JvdXAsIHBhcmVudFdpbmRvdykpOwogICAgIH0KICAgICB+V2ViVmlldygp
OwogCkBAIC01OCw3ICs2NiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgV2ViVmlldyhS
RUNULCBXZWJQYWdlTmFtZXNwYWNlKiwgV2ViUGFnZUdyb3VwKiwgSFdORCBwYXJlbnRXaW5kb3cp
OworICAgIFdlYlZpZXcoUkVDVCwgV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCosIEhXTkQgcGFy
ZW50V2luZG93LCBib29sIHVzaW5nU2hhcmVkUHJvY2Vzcyk7CisgICAgV2ViVmlldyhSRUNULCBX
ZWJQYWdlUHJveHkqLCBXZWJQYWdlR3JvdXAqLCBIV05EIHBhcmVudFdpbmRvdyk7CisKKyAgICB2
b2lkIGluaXRpYWxpemUoV2ViUGFnZU5hbWVzcGFjZSosIFdlYlBhZ2VHcm91cCosIEhXTkQgcGFy
ZW50V2luZG93KTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gVHlw
ZVZpZXc7IH0KIApJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU0MSw4ICs1NDEsNiBAQAogCQlCQ0VFOTY2RDEx
MkZBRjU3MDA2QkNDMjQgLyogQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTk2NkIxMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1l
bnQuaCAqLzsgfTsKIAkJQkNFRTk4QzYxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3Bh
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNF
RTk4QzQxMTMzMTRENzAwNkJDQzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuY3BwICovOyB9OwogCQlC
Q0VFOThDNzExMzMxNEQ3MDA2QkNDMjQgLyogV2ViUGFnZU5hbWVzcGFjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRTk4QzUxMTMzMTRENzAwNkJD
QzI0IC8qIFdlYlBhZ2VOYW1lc3BhY2UuaCAqLzsgfTsKLQkJQkNFRTk4Q0MxMTMzMTc0QzAwNkJD
QzI0IC8qIFdLUGFnZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0VFOThDQTExMzMxNzRDMDA2QkNDMjQgLyogV0tQYWdlTmFtZXNw
YWNlLmNwcCAqLzsgfTsKLQkJQkNFRTk4Q0QxMTMzMTc0QzAwNkJDQzI0IC8qIFdLUGFnZU5hbWVz
cGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNF
RTk4Q0IxMTMzMTc0QzAwNkJDQzI0IC8qIFdLUGFnZU5hbWVzcGFjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkNGMDQ5RTYxMUZFMjBGNjAwRjg2
QTU4IC8qIFdLQnVuZGxlRnJhbWVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YwNDlFNDExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVG
cmFtZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0YwNDlFNzExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YwNDlFNTExRkUy
MEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGNTAxMjExMjNFRDNCMzAwNTk1NUFFIC8qIFRo
cmVhZExhdW5jaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0Y1MDExRjEyM0VEM0IzMDA1OTU1QUUgLyogVGhyZWFkTGF1bmNoZXIuaCAqLzsgfTsK
QEAgLTExOTYsOCArMTE5NCw2IEBACiAJCUJDRUU5NjZCMTEyRkFGNTcwMDZCQ0MyNCAvKiBBdHRh
Y2htZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF0dGFjaG1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRTk4QzQxMTMzMTRENzAwNkJDQzI0IC8q
IFdlYlBhZ2VOYW1lc3BhY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViUGFnZU5hbWVzcGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
RUU5OEM1MTEzMzE0RDcwMDZCQ0MyNCAvKiBXZWJQYWdlTmFtZXNwYWNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VOYW1lc3BhY2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQkNFRTk4Q0ExMTMzMTc0QzAwNkJDQzI0IC8qIFdLUGFnZU5hbWVzcGFj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1BhZ2VOYW1lc3Bh
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0VFOThDQjExMzMxNzRDMDA2
QkNDMjQgLyogV0tQYWdlTmFtZXNwYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUGFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Yw
NDlFNDExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVGcmFtZVByaXZhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxl
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGMDRDOEMxMUZGOUI3RDAwRjg2
QTU4IC8qIEFQSU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElP
YmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzAsOCArMTk2Niw2IEBA
CiAJCQkJQkNENTk3RDUxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5oICovLAogCQkJCUJDN0I2
MzM2MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgKi8sCiAJCQkJQkM3QjYzMzUx
MkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmggKi8sCi0JCQkJQkNFRTk4Q0ExMTMzMTc0
QzAwNkJDQzI0IC8qIFdLUGFnZU5hbWVzcGFjZS5jcHAgKi8sCi0JCQkJQkNFRTk4Q0IxMTMzMTc0
QzAwNkJDQzI0IC8qIFdLUGFnZU5hbWVzcGFjZS5oICovLAogCQkJCUJDMTc3NDY0MTE4QjlGRjQw
MDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggKi8sCiAJCQkJQkNENTk3Q0YxMTJCNTZBQzAwRUM4
QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwICovLAogCQkJCUJDRDU5N0NFMTEyQjU2QUMwMEVDOEMy
MyAvKiBXS1ByZWZlcmVuY2VzLmggKi8sCkBAIC0yNTEwLDcgKzI1MDQsNiBAQAogCQkJCUJDQjlG
NkE1MTEyM0REMEQwMEExMzdFMCAvKiBXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRjY5RkE5MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q1OTdENzExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQ0VFOThDRDExMzMxNzRDMDA2QkNDMjQgLyogV0tQYWdlTmFt
ZXNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzQ2NTExOEI5RkY0MDA3RDlFOUEgLyog
V0tQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNENTk3RDAxMTJCNTZBQzAwRUM4
QzIzIC8qIFdLUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MkI3NDhEMTIwQkM3
NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
OTM1LDcgKzI5MjgsNiBAQAogCQkJCUJDQjlGNkE2MTEyM0REMEQwMEExMzdFMCAvKiBXS0ZyYW1l
UG9saWN5TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNGNjlGQUExMTc2RDFDQjAw
NDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNENTk3
RDYxMTJCNTZEQzAwRUM4QzIzIC8qIFdLUGFnZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0VF
OThDQzExMzMxNzRDMDA2QkNDMjQgLyogV0tQYWdlTmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRDU5N0QxMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDODY5OUI2MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQzJFNkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHJldmlzaW9uIDczODgwKQorKysg
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyMjUsMTQgKzIy
MjUsNiBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCi0JCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1BhZ2VOYW1lc3BhY2UuY3BwIgotCQkJCQkJPgot
CQkJCQk8L0ZpbGU+Ci0JCQkJCTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xBUElcQ1xXS1BhZ2VOYW1lc3BhY2UuaCIKLQkJCQkJCT4KLQkJCQkJPC9GaWxlPgotCQkJCQk8
RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tQYWdlUHJpdmF0
ZS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkluZGV4OiBXZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5t
YWtlCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFr
ZQkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNiBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS05hdmlnYXRpb25EYXRhLmgiICIkKFdFQktJVE9VVFBVVERJ
UilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENc
V0tQYWdlLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tQYWdlR3JvdXAuaCIgIiQoV0VCS0lUT1VUUFVU
RElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElc
Q1xXS1BhZ2VOYW1lc3BhY2UuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1ByZWZlcmVuY2VzLmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCIgIiQoV0VCS0lUT1VUUFVURElS
KVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xX
S1Byb3RlY3Rpb25TcGFjZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIK
SW5kZXg6IFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5oCShyZXZpc2lv
biA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL01pbmlCcm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTIgQEAgZW51bSBQcm9jZXNzTW9kZWwgewogdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIFByb2Nlc3NNb2RlbDsKIAogQGludGVyZmFjZSBCcm93c2VyQXBw
RGVsZWdhdGUgOiBOU09iamVjdCA8TlNBcHBsaWNhdGlvbkRlbGVnYXRlPiB7Ci0gICAgUHJvY2Vz
c01vZGVsIGN1cnJlbnRQcm9jZXNzTW9kZWw7Ci0gICAgV0tQYWdlTmFtZXNwYWNlUmVmIHRocmVh
ZFBhZ2VOYW1lc3BhY2U7Ci0gICAgV0tQYWdlTmFtZXNwYWNlUmVmIHByb2Nlc3NQYWdlTmFtZXNw
YWNlOworICAgIFByb2Nlc3NNb2RlbCBfY3VycmVudFByb2Nlc3NNb2RlbDsKKyAgICBXS0NvbnRl
eHRSZWYgX3RocmVhZENvbnRleHQ7CisgICAgV0tDb250ZXh0UmVmIF9wcm9jZXNzQ29udGV4dDsK
IH0KIAotLSAoV0tQYWdlTmFtZXNwYWNlUmVmKWdldEN1cnJlbnRQYWdlTmFtZXNwYWNlOworLSAo
V0tDb250ZXh0UmVmKWdldEN1cnJlbnRDb250ZXh0OwogCiAtIChJQkFjdGlvbilzZXRTaGFyZWRQ
cm9jZXNzUHJvY2Vzc01vZGVsOihpZClzZW5kZXI7CiAtIChJQkFjdGlvbilzZXRTaGFyZWRUaHJl
YWRQcm9jZXNzTW9kZWw6KGlkKXNlbmRlcjsKSW5kZXg6IFdlYktpdFRvb2xzL01pbmlCcm93c2Vy
L21hYy9BcHBEZWxlZ2F0ZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL01pbmlCcm93c2Vy
L21hYy9BcHBEZWxlZ2F0ZS5tCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL01pbmlC
cm93c2VyL21hYy9BcHBEZWxlZ2F0ZS5tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsOSArMTE0LDkg
QEAgLSAoaWQpaW5pdAogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKHNlbGYpIHsK
ICAgICAgICAgaWYgKFtOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNTaGlmdEtleU1hc2spCi0g
ICAgICAgICAgICBjdXJyZW50UHJvY2Vzc01vZGVsID0ga1Byb2Nlc3NNb2RlbFNoYXJlZFNlY29u
ZGFyeVRocmVhZDsKKyAgICAgICAgICAgIF9jdXJyZW50UHJvY2Vzc01vZGVsID0ga1Byb2Nlc3NN
b2RlbFNoYXJlZFNlY29uZGFyeVRocmVhZDsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgY3Vy
cmVudFByb2Nlc3NNb2RlbCA9IGtQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOwor
ICAgICAgICAgICAgX2N1cnJlbnRQcm9jZXNzTW9kZWwgPSBrUHJvY2Vzc01vZGVsU2hhcmVkU2Vj
b25kYXJ5UHJvY2VzczsKIAogICAgICAgICBXS0NvbnRleHRIaXN0b3J5Q2xpZW50IGhpc3RvcnlD
bGllbnQgPSB7CiAgICAgICAgICAgICAwLApAQCAtMTI4LDE3ICsxMjgsMTQgQEAgLSAoaWQpaW5p
dAogICAgICAgICAgICAgcG9wdWxhdGVWaXNpdGVkTGlua3MKICAgICAgICAgfTsKIAotICAgICAg
ICBXS0NvbnRleHRSZWYgdGhyZWFkQ29udGV4dCA9IFdLQ29udGV4dEdldFNoYXJlZFRocmVhZENv
bnRleHQoKTsKLSAgICAgICAgV0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudCh0aHJlYWRDb250ZXh0
LCAmaGlzdG9yeUNsaWVudCk7Ci0gICAgICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwodGhyZWFk
Q29udGV4dCwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKLQotICAgICAgICB0aHJl
YWRQYWdlTmFtZXNwYWNlID0gV0tQYWdlTmFtZXNwYWNlQ3JlYXRlKHRocmVhZENvbnRleHQpOwot
ICAgICAgICBXS1JlbGVhc2UodGhyZWFkQ29udGV4dCk7CisgICAgICAgIF90aHJlYWRDb250ZXh0
ID0gV0tDb250ZXh0R2V0U2hhcmVkVGhyZWFkQ29udGV4dCgpOworICAgICAgICBXS0NvbnRleHRT
ZXRIaXN0b3J5Q2xpZW50KF90aHJlYWRDb250ZXh0LCAmaGlzdG9yeUNsaWVudCk7CisgICAgICAg
IFdLQ29udGV4dFNldENhY2hlTW9kZWwoX3RocmVhZENvbnRleHQsIGtXS0NhY2hlTW9kZWxQcmlt
YXJ5V2ViQnJvd3Nlcik7CiAKICAgICAgICAgQ0ZTdHJpbmdSZWYgYnVuZGxlUGF0aENGID0gKENG
U3RyaW5nUmVmKVtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcGF0aEZvckF1eGlsaWFyeUV4ZWN1dGFi
bGU6QCJXZWJCdW5kbGUuYnVuZGxlIl07CiAgICAgICAgIFdLU3RyaW5nUmVmIGJ1bmRsZVBhdGgg
PSBXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhidW5kbGVQYXRoQ0YpOwogCi0gICAgICAgIFdL
Q29udGV4dFJlZiBwcm9jZXNzQ29udGV4dCA9IFdLQ29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1
bmRsZVBhdGgoYnVuZGxlUGF0aCk7CisgICAgICAgIF9wcm9jZXNzQ29udGV4dCA9IFdLQ29udGV4
dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRsZVBhdGgoYnVuZGxlUGF0aCk7CiAgICAgICAgIAogICAg
ICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCBidW5kbGVDbGllbnQgPSB7CiAgICAg
ICAgICAgICAwLCAgICAgIC8qIHZlcnNpb24gKi8KQEAgLTE0NiwxMiArMTQzLDkgQEAgLSAoaWQp
aW5pdAogICAgICAgICAgICAgZGlkUmVjaWV2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUsCiAg
ICAgICAgICAgICAwCiAgICAgICAgIH07Ci0gICAgICAgIFdLQ29udGV4dFNldEluamVjdGVkQnVu
ZGxlQ2xpZW50KHByb2Nlc3NDb250ZXh0LCAmYnVuZGxlQ2xpZW50KTsKLSAgICAgICAgV0tDb250
ZXh0U2V0SGlzdG9yeUNsaWVudChwcm9jZXNzQ29udGV4dCwgJmhpc3RvcnlDbGllbnQpOwotICAg
ICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKHByb2Nlc3NDb250ZXh0LCBrV0tDYWNoZU1vZGVs
UHJpbWFyeVdlYkJyb3dzZXIpOwotCi0gICAgICAgIHByb2Nlc3NQYWdlTmFtZXNwYWNlID0gV0tQ
YWdlTmFtZXNwYWNlQ3JlYXRlKHByb2Nlc3NDb250ZXh0KTsKLSAgICAgICAgV0tSZWxlYXNlKHBy
b2Nlc3NDb250ZXh0KTsKKyAgICAgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQo
X3Byb2Nlc3NDb250ZXh0LCAmYnVuZGxlQ2xpZW50KTsKKyAgICAgICAgV0tDb250ZXh0U2V0SGlz
dG9yeUNsaWVudChfcHJvY2Vzc0NvbnRleHQsICZoaXN0b3J5Q2xpZW50KTsKKyAgICAgICAgV0tD
b250ZXh0U2V0Q2FjaGVNb2RlbChfcHJvY2Vzc0NvbnRleHQsIGtXS0NhY2hlTW9kZWxQcmltYXJ5
V2ViQnJvd3Nlcik7CiAKICAgICAgICAgV0tSZWxlYXNlKGJ1bmRsZVBhdGgpOwogICAgIH0KQEAg
LTE2MSwzMiArMTU1LDMyIEBAIC0gKGlkKWluaXQKIAogLSAoSUJBY3Rpb24pbmV3V2luZG93Oihp
ZClzZW5kZXIKIHsKLSAgICBCcm93c2VyV2luZG93Q29udHJvbGxlciAqY29udHJvbGxlciA9IFtb
QnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFnZU5hbWVzcGFjZTpbc2Vs
ZiBnZXRDdXJyZW50UGFnZU5hbWVzcGFjZV1dOworICAgIEJyb3dzZXJXaW5kb3dDb250cm9sbGVy
ICpjb250cm9sbGVyID0gW1tCcm93c2VyV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhD
b250ZXh0OltzZWxmIGdldEN1cnJlbnRDb250ZXh0XV07CiAgICAgW1tjb250cm9sbGVyIHdpbmRv
d10gbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VuZGVyXTsKICAgICAKICAgICBbY29udHJvbGxlciBs
b2FkVVJMU3RyaW5nOmRlZmF1bHRVUkxdOwogfQogCi0tIChXS1BhZ2VOYW1lc3BhY2VSZWYpZ2V0
Q3VycmVudFBhZ2VOYW1lc3BhY2UKKy0gKFdLQ29udGV4dFJlZilnZXRDdXJyZW50Q29udGV4dAog
ewotICAgIHJldHVybiAoY3VycmVudFByb2Nlc3NNb2RlbCA9PSBrUHJvY2Vzc01vZGVsU2hhcmVk
U2Vjb25kYXJ5VGhyZWFkKSA/IHRocmVhZFBhZ2VOYW1lc3BhY2UgOiBwcm9jZXNzUGFnZU5hbWVz
cGFjZTsKKyAgICByZXR1cm4gKF9jdXJyZW50UHJvY2Vzc01vZGVsID09IGtQcm9jZXNzTW9kZWxT
aGFyZWRTZWNvbmRhcnlUaHJlYWQpID8gX3RocmVhZENvbnRleHQgOiBfcHJvY2Vzc0NvbnRleHQ7
CiB9CiAKIC0gKEJPT0wpdmFsaWRhdGVNZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtCiB7
CiAgICAgaWYgKFttZW51SXRlbSBhY3Rpb25dID09IEBzZWxlY3RvcihzZXRTaGFyZWRQcm9jZXNz
UHJvY2Vzc01vZGVsOikpCi0gICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpjdXJyZW50UHJvY2Vz
c01vZGVsID09IGtQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzID8gTlNPblN0YXRl
IDogTlNPZmZTdGF0ZV07CisgICAgICAgIFttZW51SXRlbSBzZXRTdGF0ZTpfY3VycmVudFByb2Nl
c3NNb2RlbCA9PSBrUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcyA/IE5TT25TdGF0
ZSA6IE5TT2ZmU3RhdGVdOwogICAgIGVsc2UgaWYgKFttZW51SXRlbSBhY3Rpb25dID09IEBzZWxl
Y3RvcihzZXRTaGFyZWRUaHJlYWRQcm9jZXNzTW9kZWw6KSkKLSAgICAgICAgW21lbnVJdGVtIHNl
dFN0YXRlOmN1cnJlbnRQcm9jZXNzTW9kZWwgPT0ga1Byb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFy
eVRocmVhZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOworICAgICAgICBbbWVudUl0ZW0gc2V0
U3RhdGU6X2N1cnJlbnRQcm9jZXNzTW9kZWwgPT0ga1Byb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFy
eVRocmVhZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwogICAgIHJldHVybiBZRVM7CiB9ICAg
ICAgICAKIAogLSAodm9pZClfc2V0UHJvY2Vzc01vZGVsOihQcm9jZXNzTW9kZWwpcHJvY2Vzc01v
ZGVsCiB7Ci0gICAgaWYgKHByb2Nlc3NNb2RlbCA9PSBjdXJyZW50UHJvY2Vzc01vZGVsKQorICAg
IGlmIChwcm9jZXNzTW9kZWwgPT0gX2N1cnJlbnRQcm9jZXNzTW9kZWwpCiAgICAgICAgIHJldHVy
bjsKICAKLSAgICBjdXJyZW50UHJvY2Vzc01vZGVsID0gcHJvY2Vzc01vZGVsOworICAgIF9jdXJy
ZW50UHJvY2Vzc01vZGVsID0gcHJvY2Vzc01vZGVsOwogfQogCiAtIChJQkFjdGlvbilzZXRTaGFy
ZWRQcm9jZXNzUHJvY2Vzc01vZGVsOihpZClzZW5kZXIKQEAgLTIwMyw4ICsxOTcsOCBAQCAtIChJ
QkFjdGlvbilzaG93U3RhdGlzdGljc1dpbmRvdzooaWQpc2VuCiB7CiAgICAgc3RhdGljIEJyb3dz
ZXJTdGF0aXN0aWNzV2luZG93Q29udHJvbGxlciogd2luZG93Q29udHJvbGxlcjsKICAgICBpZiAo
IXdpbmRvd0NvbnRyb2xsZXIpCi0gICAgICAgIHdpbmRvd0NvbnRyb2xsZXIgPSBbW0Jyb3dzZXJT
dGF0aXN0aWNzV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhUaHJlYWRlZFdLQ29udGV4
dFJlZjpXS1BhZ2VOYW1lc3BhY2VHZXRDb250ZXh0KHRocmVhZFBhZ2VOYW1lc3BhY2UpIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb2Nlc3NXS0NvbnRleHRSZWY6V0tQYWdlTmFtZXNwYWNlR2V0
Q29udGV4dChwcm9jZXNzUGFnZU5hbWVzcGFjZSldOworICAgICAgICB3aW5kb3dDb250cm9sbGVy
ID0gW1tCcm93c2VyU3RhdGlzdGljc1dpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoVGhy
ZWFkZWRXS0NvbnRleHRSZWY6X3RocmVhZENvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzV0tDb250ZXh0UmVmOl9wcm9jZXNzQ29udGV4dF07CiAKICAgICBbW3dpbmRvd0NvbnRy
b2xsZXIgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKIH0KQEAgLTIyNCwxMiAr
MjE4LDkgQEAgLSAodm9pZClhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGU6KE5TTm90aQogICAgICAg
ICAgICAgW2NvbnRyb2xsZXIgYXBwbGljYXRpb25UZXJtaW5hdGluZ107CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgCi0gICAgV0tSZWxlYXNlKHRocmVhZFBhZ2VOYW1lc3BhY2UpOwotICAgIHRocmVh
ZFBhZ2VOYW1lc3BhY2UgPSAwOwogCi0gICAgV0tSZWxlYXNlKHByb2Nlc3NQYWdlTmFtZXNwYWNl
KTsKLSAgICBwcm9jZXNzUGFnZU5hbWVzcGFjZSA9IDA7CisgICAgV0tSZWxlYXNlKF9wcm9jZXNz
Q29udGV4dCk7CisgICAgX3Byb2Nlc3NDb250ZXh0ID0gMDsKIH0KIAogLSAoQnJvd3NlcldpbmRv
d0NvbnRyb2xsZXIgKilmcm9udG1vc3RCcm93c2VyV2luZG93Q29udHJvbGxlcgpAQCAtMjY1LDcg
KzI1Niw3IEBAIC0gKHZvaWQpb3BlblBhbmVsRGlkRW5kOihOU09wZW5QYW5lbCAqKXMKIAogICAg
IEJyb3dzZXJXaW5kb3dDb250cm9sbGVyICpjb250cm9sbGVyID0gW3NlbGYgZnJvbnRtb3N0QnJv
d3NlcldpbmRvd0NvbnRyb2xsZXJdOwogICAgIGlmICghY29udHJvbGxlcikgewotICAgICAgICBj
b250cm9sbGVyID0gW1tCcm93c2VyV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdl
TmFtZXNwYWNlOltzZWxmIGdldEN1cnJlbnRQYWdlTmFtZXNwYWNlXV07CisgICAgICAgIGNvbnRy
b2xsZXIgPSBbW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRleHQ6
W3NlbGYgZ2V0Q3VycmVudENvbnRleHRdXTsKICAgICAgICAgW1tjb250cm9sbGVyIHdpbmRvd10g
bWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CiAgICAgfQogICAgIApJbmRleDogV2ViS2l0VG9v
bHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJX
aW5kb3dDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgQGludGVy
ZmFjZSBCcm93c2VyV2luZG93Q29udHJvbGxlciA6IE5TVwogICAgIAogICAgIElCT3V0bGV0IE5T
V2luZG93ICpmaW5kUGFuZWxXaW5kb3c7CiAgICAgCi0gICAgV0tQYWdlTmFtZXNwYWNlUmVmIF9w
YWdlTmFtZXNwYWNlOworICAgIFdLQ29udGV4dFJlZiBfY29udGV4dDsKICAgICBXS1ZpZXcgKl93
ZWJWaWV3OwogICAgIEJPT0wgX3pvb21UZXh0T25seTsKIH0KQEAgLTQ3LDcgKzQ3LDcgQEAgQGlu
dGVyZmFjZSBCcm93c2VyV2luZG93Q29udHJvbGxlciA6IE5TVwogLSAoSUJBY3Rpb24pc2hvd0hp
ZGVXZWJWaWV3OihpZClzZW5kZXI7CiAtIChJQkFjdGlvbilyZW1vdmVSZWluc2VydFdlYlZpZXc6
KGlkKXNlbmRlcjsKIAotLSAoaWQpaW5pdFdpdGhQYWdlTmFtZXNwYWNlOihXS1BhZ2VOYW1lc3Bh
Y2VSZWYpcGFnZU5hbWVzcGFjZTsKKy0gKGlkKWluaXRXaXRoQ29udGV4dDooV0tDb250ZXh0UmVm
KWNvbnRleHQ7CiAtICh2b2lkKWxvYWRVUkxTdHJpbmc6KE5TU3RyaW5nICopdXJsU3RyaW5nOwog
LSAodm9pZClhcHBsaWNhdGlvblRlcm1pbmF0aW5nOwogCkluZGV4OiBXZWJLaXRUb29scy9NaW5p
QnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQkocmV2aXNp
b24gNzM4ODApCisrKyBXZWJLaXRUb29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubQkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDEwIEBAIC0gKHZvaWQpZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW0KIAogQGltcGxlbWVudGF0aW9uIEJyb3dzZXJX
aW5kb3dDb250cm9sbGVyCiAKLS0gKGlkKWluaXRXaXRoUGFnZU5hbWVzcGFjZTooV0tQYWdlTmFt
ZXNwYWNlUmVmKXBhZ2VOYW1lc3BhY2UKKy0gKGlkKWluaXRXaXRoQ29udGV4dDooV0tDb250ZXh0
UmVmKWNvbnRleHQKIHsKICAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3dOaWJO
YW1lOkAiQnJvd3NlcldpbmRvdyJdKSkgewotICAgICAgICBfcGFnZU5hbWVzcGFjZSA9IFdLUmV0
YWluKHBhZ2VOYW1lc3BhY2UpOworICAgICAgICBfY29udGV4dCA9IFdLUmV0YWluKGNvbnRleHQp
OwogICAgICAgICBfem9vbVRleHRPbmx5ID0gTk87CiAgICAgfQogICAgIApAQCAtNTUsNyArNTUs
NyBAQCAtIChpZClpbml0V2l0aFBhZ2VOYW1lc3BhY2U6KFdLUGFnZU5hbWVzCiAKIC0gKHZvaWQp
ZGVhbGxvYwogewotICAgIGFzc2VydCghX3BhZ2VOYW1lc3BhY2UpOworICAgIGFzc2VydCghX2Nv
bnRleHQpOwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMTU3LDggKzE1Nyw4IEBAIC0g
KEJPT0wpd2luZG93U2hvdWxkQ2xvc2U6KGlkKXNlbmRlcgogCiAtICh2b2lkKXdpbmRvd1dpbGxD
bG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBXS1JlbGVhc2UoX3Bh
Z2VOYW1lc3BhY2UpOwotICAgIF9wYWdlTmFtZXNwYWNlID0gMDsKKyAgICBXS1JlbGVhc2UoX2Nv
bnRleHQpOworICAgIF9jb250ZXh0ID0gMDsKIH0KIAogLSAodm9pZClhcHBsaWNhdGlvblRlcm1p
bmF0aW5nCkBAIC0zODAsNyArMzgwLDcgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUoV0tQYQogc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdl
LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gYnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAg
IExPRyhAImNyZWF0ZU5ld1BhZ2UiKTsKLSAgICBCcm93c2VyV2luZG93Q29udHJvbGxlciAqY29u
dHJvbGxlciA9IFtbQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFnZU5h
bWVzcGFjZTpXS1BhZ2VHZXRQYWdlTmFtZXNwYWNlKHBhZ2UpXTsKKyAgICBCcm93c2VyV2luZG93
Q29udHJvbGxlciAqY29udHJvbGxlciA9IFtbQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoQ29udGV4dDpXS1BhZ2VHZXRDb250ZXh0KHBhZ2UpXTsKICAgICBbY29udHJvbGxl
ciBsb2FkV2luZG93XTsKIAogICAgIHJldHVybiBjb250cm9sbGVyLT5fd2ViVmlldy5wYWdlUmVm
OwpAQCAtNTM3LDcgKzUzNyw3IEBAIHN0YXRpYyBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgKIAogLSAodm9pZClhd2FrZUZyb21OaWIKIHsKLSAgICBfd2ViVmlldyA9IFtbV0tWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOltjb250YWluZXJWaWV3IGZyYW1lXSBwYWdlTmFtZXNwYWNl
UmVmOl9wYWdlTmFtZXNwYWNlXTsKKyAgICBfd2ViVmlldyA9IFtbV0tWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOltjb250YWluZXJWaWV3IGZyYW1lXSBjb250ZXh0UmVmOl9jb250ZXh0XTsKIAog
ICAgIFtjb250YWluZXJWaWV3IGFkZFN1YnZpZXc6X3dlYlZpZXddOwogICAgIFtfd2ViVmlldyBz
ZXRGcmFtZTpbY29udGFpbmVyVmlldyBmcmFtZV1dOwpJbmRleDogV2ViS2l0VG9vbHMvTWluaUJy
b3dzZXIvd2luL0Jyb3dzZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9NaW5p
QnJvd3Nlci93aW4vQnJvd3NlclZpZXcuY3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdFRv
b2xzL01pbmlCcm93c2VyL3dpbi9Ccm93c2VyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDkgKzkwLDcgQEAgdm9pZCBCcm93c2VyVmlldzo6Y3JlYXRlKFJFQ1Qgd2ViVmlld1JlYwogICAg
IGVsc2UKICAgICAgICAgY29udGV4dCA9IFdLQ29udGV4dEdldFNoYXJlZFByb2Nlc3NDb250ZXh0
KCk7CiAKLSAgICBXS1BhZ2VOYW1lc3BhY2VSZWYgcGFnZU5hbWVzcGFjZSA9IFdLUGFnZU5hbWVz
cGFjZUNyZWF0ZShjb250ZXh0KTsKLQotICAgIG1fd2ViVmlldyA9IFdLVmlld0NyZWF0ZSh3ZWJW
aWV3UmVjdCwgcGFnZU5hbWVzcGFjZSwgMCwgcGFyZW50V2luZG93LT53aW5kb3coKSk7CisgICAg
bV93ZWJWaWV3ID0gV0tWaWV3Q3JlYXRlKHdlYlZpZXdSZWN0LCBjb250ZXh0LCAwLCBwYXJlbnRX
aW5kb3ctPndpbmRvdygpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50ID0gewogICAg
ICAgICAwLCAgICAgICAgICAgICAgLyogdmVyc2lvbiAqLwpJbmRleDogV2ViS2l0VG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9U
ZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktp
dFRvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDcgKzUxLDggQEAgY2xhc3MgV2luZG93TWVzc2FnZU9ic2VydmVyOwogCiBjbGFzcyBQbGF0
Zm9ybVdlYlZpZXcgewogcHVibGljOgotICAgIFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VOYW1lc3Bh
Y2VSZWYsIFdLUGFnZUdyb3VwUmVmID0gMCk7CisgICAgUGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4
dFJlZiwgV0tQYWdlR3JvdXBSZWYgPSAwKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVm
LCBXS1BhZ2VHcm91cFJlZiA9IDApOwogICAgIH5QbGF0Zm9ybVdlYlZpZXcoKTsKIAogICAgIFdL
UGFnZVJlZiBwYWdlKCk7CkluZGV4OiBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXRUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsNyBAQCBURVNUKFdlYktpdDIsIERv
Y3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlCiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+
IHBhZ2VHcm91cChBZG9wdFdLLCBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2hUZXN0UGFnZUdyb3VwIikpKTsgCiAKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNv
bnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgi
RG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkp
OwotICAgIFdLUmV0YWluUHRyPFdLUGFnZU5hbWVzcGFjZVJlZj4gcGFnZU5hbWVzcGFjZShBZG9w
dFdLLCBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUoY29udGV4dC5nZXQoKSkpOwotICAgIFBsYXRmb3Jt
V2ViVmlldyB3ZWJWaWV3KHBhZ2VOYW1lc3BhY2UuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgp
KTsKIAogICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlDbGllbnQs
IDAsIHNpemVvZih1aUNsaWVudCkpOwpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHAJ
KHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0V2YWx1YXRlSmF2YVNjcmlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5LDcg
QEAgc3RhdGljIHZvaWQgZGlkUnVuSmF2YVNjcmlwdChXS1N0cmluZ1JlZgogVEVTVChXZWJLaXQy
LCBFdmFsdWF0ZUphdmFTY3JpcHRUaGF0VGhyb3dzQW5FeGNlcHRpb24pCiB7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsK
LSAgICBXS1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VOYW1lc3BhY2UoQWRvcHRX
SywgV0tQYWdlTmFtZXNwYWNlQ3JlYXRlKGNvbnRleHQuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBq
YXZhU2NyaXB0U3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ0
aHJvdyAnSGVsbG8nIikpOwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJW
aWV3LnBhZ2UoKSwgamF2YVNjcmlwdFN0cmluZy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oMHgxMjM0NTc4KSwgZGlkUnVuSmF2YVNjcmlwdCk7CkluZGV4OiBXZWJLaXRUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRmFpbGVkTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0ZhaWxlZExvYWQuY3BwCShyZXZp
c2lvbiA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9G
YWlsZWRMb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksNyBAQCBzdGF0aWMgdm9p
ZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVyCiBURVNUKFdlYktpdDIsIEZhaWxlZExvYWQp
CiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29u
dGV4dENyZWF0ZSgpKTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VO
YW1lc3BhY2UoQWRvcHRXSywgV0tQYWdlTmFtZXNwYWNlQ3JlYXRlKGNvbnRleHQuZ2V0KCkpKTsK
LSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZUxvYWRl
ckNsaWVudCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVv
Zihsb2FkZXJDbGllbnQpKTsKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9GaW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvRmluZC5jcHAJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0ZpbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MSw5ICs1MSw3IEBAIHN0YXRpYyB2b2lkIGRpZENvdW50U3RyaW5nTWF0Y2hlcyhXS1BhZ2UKIFRF
U1QoV2ViS2l0MiwgRmluZCkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRlKCkpOwotICAgIFdLUmV0YWluUHRyPFdLUGFnZU5h
bWVzcGFjZVJlZj4gcGFnZU5hbWVzcGFjZShBZG9wdFdLLCBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUo
Y29udGV4dC5nZXQoKSkpOwotICAgIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VO
YW1lc3BhY2UuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCkpOwogICAgIAogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGllbnQ7CiAgICAgbWVt
c2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKSW5kZXg6IFdlYktp
dFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GcmFtZU1JTUVUeXBlSFRNTC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Zy
YW1lTUlNRVR5cGVIVE1MLmNwcAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXRUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRnJhbWVNSU1FVHlwZUhUTUwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Nyw4ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShX
S1BhZ2UKIFRFU1QoV2ViS2l0MiwgRnJhbWVNSU1FVHlwZUhUTUwpCiB7CiAgICAgV0tSZXRhaW5Q
dHI8V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKLSAg
ICBXS1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VOYW1lc3BhY2UoQWRvcHRXSywg
V0tQYWdlTmFtZXNwYWNlQ3JlYXRlKGNvbnRleHQuZ2V0KCkpKTsKLSAgICBQbGF0Zm9ybVdlYlZp
ZXcgd2ViVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2Vi
Vmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGll
bnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsK
SW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9GcmFtZU1JTUVU
eXBlUE5HLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvRnJhbWVNSU1FVHlwZVBORy5jcHAJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0ZyYW1lTUlNRVR5cGVQTkcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRG
b3JGcmFtZShXS1BhZ2UKIFRFU1QoV2ViS2l0MiwgRnJhbWVNSU1FVHlwZVBORykKIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0Q3JlYXRl
KCkpOwotICAgIFdLUmV0YWluUHRyPFdLUGFnZU5hbWVzcGFjZVJlZj4gcGFnZU5hbWVzcGFjZShB
ZG9wdFdLLCBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUoY29udGV4dC5nZXQoKSkpOwotICAgIFBsYXRm
b3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VOYW1lc3BhY2UuZ2V0KCkpOworICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxv
YWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNs
aWVudCkpOwpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0lu
amVjdGVkQnVuZGxlQmFzaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcAkocmV2aXNpb24gNzM4
ODApCisrKyBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRC
dW5kbGVCYXNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDYgQEAgc3RhdGljIHZv
aWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZQogVEVTVChXZWJLaXQyLCBJbmplY3RlZEJ1
bmRsZUJhc2ljKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9w
dFdLLCBVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1
bmRsZUJhc2ljVGVzdCIpKTsKLSAgICBXS1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBh
Z2VOYW1lc3BhY2UoQWRvcHRXSywgV0tQYWdlTmFtZXNwYWNlQ3JlYXRlKGNvbnRleHQuZ2V0KCkp
KTsKIAogICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IGluamVjdGVkQnVuZGxlQ2xp
ZW50OwogICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNpemVvZihpbmplY3Rl
ZEJ1bmRsZUNsaWVudCkpOwpAQCAtNjIsNyArNjEsNyBAQCBURVNUKFdlYktpdDIsIEluamVjdGVk
QnVuZGxlQmFzaWMpCiAgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsK
ICAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5q
ZWN0ZWRCdW5kbGVDbGllbnQpOwogIAotICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VO
YW1lc3BhY2UuZ2V0KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0
KCkpOwogCiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQo
JmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwpJbmRleDogV2ViS2l0VG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhZ2VMb2FkQmFzaWMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYWdlTG9hZEJh
c2ljLmNwcAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvUGFnZUxvYWRCYXNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMyw5ICsx
MTMsNyBAQCBURVNUKFdlYktpdDIsIFBhZ2VMb2FkQmFzaWMpCiAgICAgU3RhdGUgc3RhdGU7CiAK
ICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgV0tDb250ZXh0
Q3JlYXRlKCkpOwotICAgIFdLUmV0YWluUHRyPFdLUGFnZU5hbWVzcGFjZVJlZj4gcGFnZU5hbWVz
cGFjZShBZG9wdFdLLCBXS1BhZ2VOYW1lc3BhY2VDcmVhdGUoY29udGV4dC5nZXQoKSkpOwotIAot
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KHBhZ2VOYW1lc3BhY2UuZ2V0KCkpOworICAgIFBs
YXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCiAgICAgV0tQYWdlTG9hZGVy
Q2xpZW50IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOwpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYWdl
TG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcAkocmV2aXNpb24gNzM4
ODApCisrKyBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFnZUxvYWRE
aWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDkgKzYwLDcgQEAgc3RhdGljIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvcgog
VEVTVChXZWJLaXQyLCBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1l
KQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0Nv
bnRleHRDcmVhdGUoKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdl
TmFtZXNwYWNlKEFkb3B0V0ssIFdLUGFnZU5hbWVzcGFjZUNyZWF0ZShjb250ZXh0LmdldCgpKSk7
Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZUxv
YWRlckNsaWVudCBsb2FkZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNp
emVvZihsb2FkZXJDbGllbnQpKTsKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQu
Y3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4
ICs0OCw3IEBAIHN0YXRpYyB2b2lkIGRpZFJ1bkphdmFTY3JpcHQoV0tTdHJpbmdSZWYKIFRFU1Qo
V2ViS2l0MiwgUHJldmVudEVtcHR5VXNlckFnZW50KQogewogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0gICAgV0tSZXRh
aW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ssIFdLUGFnZU5h
bWVzcGFjZUNyZWF0ZShjb250ZXh0LmdldCgpKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcocGFnZU5hbWVzcGFjZS5nZXQoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29u
dGV4dC5nZXQoKSk7CiAKICAgICBXS1BhZ2VTZXRDdXN0b21Vc2VyQWdlbnQod2ViVmlldy5wYWdl
KCksIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKSk7CiAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IGphdmFTY3JpcHRTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIm5hdmlnYXRvci51c2VyQWdlbnQiKSk7CkluZGV4OiBXZWJLaXRUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9TcGFjZWJhclNj
cm9sbGluZy5jcHAJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzksOSArNzksNyBAQCBzdGF0aWMgYm9vbCBydW5KU1Rlc3QoV0tQYWdlUmVmIHBhZ2UsIGNvCiBU
RVNUKFdlYktpdDIsIFNwYWNlYmFyU2Nyb2xsaW5nKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0gICAgV0tSZXRh
aW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ssIFdLUGFnZU5h
bWVzcGFjZUNyZWF0ZShjb250ZXh0LmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2Vi
VmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhj
b250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkZXJDbGllbnQ7CiAg
ICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKSW5kZXg6
IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vQWx0S2V5R2VuZXJh
dGVzV01TeXNDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvd2luL0FsdEtleUdlbmVyYXRlc1dNU3lzQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L3dpbi9BbHRLZXlHZW5lcmF0ZXNXTVN5c0NvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MSw5ICs2MSw3IEBAIHN0YXRpYyB2b2lkIGRpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sKIFRF
U1QoV2ViS2l0MiwgQWx0S2V5R2VuZXJhdGVzV01TeXNDb21tYW5kKQogewogICAgIFdLUmV0YWlu
UHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0g
ICAgV0tSZXRhaW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ss
IFdLUGFnZU5hbWVzcGFjZUNyZWF0ZShjb250ZXh0LmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50Owog
ICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpJbmRleDogV2ViS2l0
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL3dpbi9XTUNsb3NlQ2FsbHNVSUNsaWVu
dENsb3NlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvd2luL1dNQ2xvc2VDYWxsc1VJQ2xpZW50Q2xvc2UuY3BwCShyZXZpc2lvbiA3Mzg4
MCkKKysrIFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi93aW4vV01DbG9z
ZUNhbGxzVUlDbGllbnRDbG9zZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDcgQEAg
c3RhdGljIHZvaWQgY2xvc2UoV0tQYWdlUmVmLCBjb25zdCB2b2lkKgogVEVTVChXZWJLaXQyLCBX
TUNsb3NlQ2FsbHNVSUNsaWVudENsb3NlKQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7Ci0gICAgV0tSZXRhaW5QdHI8
V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ssIFdLUGFnZU5hbWVzcGFj
ZUNyZWF0ZShjb250ZXh0LmdldCgpKSk7Ci0KLSAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhw
YWdlTmFtZXNwYWNlLmdldCgpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50OwogICAgIG1lbXNldCgmdWlD
bGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwpJbmRleDogV2ViS2l0VG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQkocmV2aXNpb24gNzM4ODAp
CisrKyBXZWJLaXRUb29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwyNCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZU5hbWVzcGFj
ZVJlZiBwYWdlTmFtZXNwYWNlUmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQ
YWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogewogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCk7Ci0gICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6cmVjdCBwYWdlTmFtZXNwYWNlUmVmOnBhZ2VOYW1lc3BhY2VSZWYgcGFnZUdyb3VwUmVm
OnBhZ2VHcm91cFJlZl07CisgICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZl07
CisKKyAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFtb
W05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0g
cmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKKyAgICBtX3dpbmRvdyA9IFtbTlNXaW5kb3cgYWxs
b2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNz
V2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAg
ICBbbV93aW5kb3cgc2V0Q29sb3JTcGFjZTpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3Bh
Y2VdXTsKKyAgICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmlld107Cisg
ICAgW21fd2luZG93IG9yZGVyQmFjazpuaWxdOworICAgIFttX3dpbmRvdyBzZXRBdXRvZGlzcGxh
eTpOT107CisgICAgW21fd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107Cit9CisKK1Bs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXBSZWYpCit7CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKTsKKyAgICBtX3ZpZXcgPSBbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpyZWN0IGZvckFzc29jaWF0ZWRQYWdlUmVmOnBhZ2VSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91
cFJlZl07CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAw
MDAsIFtbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVp
Z2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKICAgICBtX3dpbmRvdyA9IFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6TlNCb3Jk
ZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVT
XTsKSW5kZXg6IFdlYktpdFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZv
cm1XZWJWaWV3V2luLmNwcAkocmV2aXNpb24gNzM4ODApCisrKyBXZWJLaXRUb29scy9UZXN0V2Vi
S2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niwx
NCArNTYsMjUgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlZ2lzdGVyV2luZG93Q2xhcwogICAg
IDo6UmVnaXN0ZXJDbGFzc0V4Vygmd25kQ2xhc3MpOwogfQogCi1QbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyhXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmLCBXS1BhZ2VHcm91
cFJlZiBwYWdlR3JvdXBSZWYpCisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCisgICAg
OiBtX3BhcmVudFdpbmRvd01lc3NhZ2VPYnNlcnZlcigwKQoreworICAgIHJlZ2lzdGVyV2luZG93
Q2xhc3MoKTsKKworICAgIFJFQ1Qgdmlld1JlY3QgPSB7MCwgMCwgODAwLCA2MDB9OworICAgIG1f
d2luZG93ID0gQ3JlYXRlV2luZG93RXhXKDAsIGhvc3RXaW5kb3dDbGFzc05hbWUsIEwiVGVzdFdl
YktpdEFQSSIsIFdTX09WRVJMQVBQRURXSU5ET1csIHZpZXdSZWN0LmxlZnQsIHZpZXdSZWN0LnRv
cCwgdmlld1JlY3QucmlnaHQsIHZpZXdSZWN0LmJvdHRvbSwgMCwgMCwgMCwgdGhpcyk7CisgICAg
bV92aWV3ID0gV0tWaWV3Q3JlYXRlKHZpZXdSZWN0LCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYs
IG1fd2luZG93KTsKK30KKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdl
UmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAgICA6IG1fcGFyZW50
V2luZG93TWVzc2FnZU9ic2VydmVyKDApCiB7CiAgICAgcmVnaXN0ZXJXaW5kb3dDbGFzcygpOwog
CiAgICAgUkVDVCB2aWV3UmVjdCA9IHswLCAwLCA4MDAsIDYwMH07CiAgICAgbV93aW5kb3cgPSBD
cmVhdGVXaW5kb3dFeFcoMCwgaG9zdFdpbmRvd0NsYXNzTmFtZSwgTCJUZXN0V2ViS2l0QVBJIiwg
V1NfT1ZFUkxBUFBFRFdJTkRPVywgdmlld1JlY3QubGVmdCwgdmlld1JlY3QudG9wLCB2aWV3UmVj
dC5yaWdodCwgdmlld1JlY3QuYm90dG9tLCAwLCAwLCAwLCB0aGlzKTsKLSAgICBtX3ZpZXcgPSBX
S1ZpZXdDcmVhdGUodmlld1JlY3QsIG5hbWVzcGFjZVJlZiwgcGFnZUdyb3VwUmVmLCBtX3dpbmRv
dyk7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlRm9yQXNzb2NpYXRlZFBhZ2Uodmlld1JlY3Qs
IHBhZ2VSZWYsIHBhZ2VHcm91cFJlZiwgbV93aW5kb3cpOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcoKQpJbmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcg
KzUyLDggQEAgbmFtZXNwYWNlIFdUUiB7CiAKIGNsYXNzIFBsYXRmb3JtV2ViVmlldyB7CiBwdWJs
aWM6Ci0gICAgUGxhdGZvcm1XZWJWaWV3KFdLUGFnZU5hbWVzcGFjZVJlZiwgV0tQYWdlR3JvdXBS
ZWYpOworICAgIFBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsK
KyAgICBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmLCBXS1BhZ2VHcm91cFJlZik7CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKSW5kZXg6IFdlYktpdFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3
Mzg4MCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIHZvaWQgY2xvc2VPdGhl
clBhZ2UoV0tQYWdlUmVmIHBhZwogCiBzdGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShX
S1BhZ2VSZWYgb2xkUGFnZSwgV0tEaWN0aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2
ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKQogewotICAgIFBsYXRmb3JtV2ViVmlldyogdmll
dyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlR2V0UGFnZU5hbWVzcGFjZShvbGRQYWdlKSwg
V0tQYWdlR2V0UGFnZUdyb3VwKG9sZFBhZ2UpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcg
PSBuZXcgUGxhdGZvcm1XZWJWaWV3KG9sZFBhZ2UsIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdl
KSk7CiAgICAgV0tQYWdlUmVmIG5ld1BhZ2UgPSB2aWV3LT5wYWdlKCk7CiAKICAgICB2aWV3LT5y
ZXNpemVUbyg4MDAsIDYwMCk7CkBAIC0yMTEsOCArMjExLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZShpbnQgYXJnYwogCiAgICAgX1dLQ29udGV4dFNldEFkZGl0aW9uYWxQbHVn
aW5zRGlyZWN0b3J5KG1fY29udGV4dC5nZXQoKSwgdGVzdFBsdWdpbkRpcmVjdG9yeSgpKTsKIAot
ICAgIG1fcGFnZU5hbWVzcGFjZS5hZG9wdChXS1BhZ2VOYW1lc3BhY2VDcmVhdGUobV9jb250ZXh0
LmdldCgpKSk7Ci0gICAgbV9tYWluV2ViVmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZp
ZXcobV9wYWdlTmFtZXNwYWNlLmdldCgpLCBtX3BhZ2VHcm91cC5nZXQoKSkpOworICAgIG1fbWFp
bldlYlZpZXcgPSBhZG9wdFB0cihuZXcgUGxhdGZvcm1XZWJWaWV3KG1fY29udGV4dC5nZXQoKSwg
bV9wYWdlR3JvdXAuZ2V0KCkpKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50IHBhZ2VVSUNsaWVudCA9
IHsKICAgICAgICAgMCwKSW5kZXg6IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw2IEBA
IHB1YmxpYzoKICAgICBXS1N0cmluZ1JlZiB0ZXN0UGx1Z2luRGlyZWN0b3J5KCkgeyByZXR1cm4g
bV90ZXN0UGx1Z2luRGlyZWN0b3J5LmdldCgpOyB9CiAKICAgICBQbGF0Zm9ybVdlYlZpZXcqIG1h
aW5XZWJWaWV3KCkgeyByZXR1cm4gbV9tYWluV2ViVmlldy5nZXQoKTsgfQotICAgIFdLUGFnZU5h
bWVzcGFjZVJlZiBwYWdlTmFtZXNwYWNlKCkgeyByZXR1cm4gbV9wYWdlTmFtZXNwYWNlLmdldCgp
OyB9CiAgICAgV0tDb250ZXh0UmVmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH0KIAogICAgIC8vIFJ1bnMgdGhlIHJ1biBsb29wIHVudGlsIGBkb25lYCBpcyB0cnVlIG9yIHRo
ZSB0aW1lb3V0IGVsYXBzZXMuCkBAIC05Niw5ICs5NSw4IEBAIHByaXZhdGU6CiAKICAgICBPd25Q
dHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gbV9jb250ZXh0OwotICAgIFdLUmV0YWluUHRyPFdLUGFnZU5hbWVzcGFjZVJlZj4g
bV9wYWdlTmFtZXNwYWNlOwogICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VH
cm91cDsKLSAgICAKKwogICAgIGVudW0gU3RhdGUgewogICAgICAgICBJbml0aWFsLAogICAgICAg
ICBSZXNldHRpbmcsCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktp
dFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDI0IEBACiAKIG5hbWVzcGFjZSBXVFIgewogCi1QbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVm
LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3Jt
V2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
UmVmKQogewogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCk7Ci0g
ICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBwYWdlTmFtZXNw
YWNlUmVmOm5hbWVzcGFjZVJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmXTsKKyAgICBtX3Zp
ZXcgPSBbW1dLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbnRleHRSZWY6Y29udGV4
dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmXTsKKworICAgIE5TUmVjdCB3aW5kb3dSZWN0
ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0
QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDAp
OworICAgIG1fd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3
aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOworICAgIFttX3dpbmRvdyBzZXRDb2xvclNwYWNl
OltbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1dOworICAgIFtbbV93aW5kb3cgY29u
dGVudFZpZXddIGFkZFN1YnZpZXc6bV92aWV3XTsKKyAgICBbbV93aW5kb3cgb3JkZXJCYWNrOm5p
bF07CisgICAgW21fd2luZG93IHNldEF1dG9kaXNwbGF5Ok5PXTsKKyAgICBbbV93aW5kb3cgc2V0
UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKK30KKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdl
YlZpZXcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3sK
KyAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApOworICAgIG1fdmll
dyA9IFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnJlY3QgZm9yQXNzb2NpYXRlZFBhZ2VS
ZWY6cGFnZVJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmXTsKIAogICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgW1tbTlNTY3JlZW4gc2NyZWVuc10g
b2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNpemUuaGVpZ2h0ICsg
MTAwMDApOwogICAgIG1fd2luZG93ID0gW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwpJbmRleDogV2ViS2l0VG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAJKHJldmlz
aW9uIDczODgwKQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdl
YlZpZXdRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDE2ICs0MywzNiBAQCBwcml2YXRlOgog
ICAgIFFHcmFwaGljc1dLVmlldyogbV9pdGVtOwogfTsKIAotV2ViVmlldzo6V2ViVmlldyhXS1Bh
Z2VOYW1lc3BhY2VSZWYgbmFtZXNwYWNlUmVmKQorV2ViVmlldzo6V2ViVmlldyhXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKICAgICA6IFFHcmFwaGljc1ZpZXcoKQotICAgICwgbV9pdGVtKG5ldyBR
R3JhcGhpY3NXS1ZpZXcobmV3IFFXS0NvbnRleHQobmFtZXNwYWNlUmVmLCB0aGlzKSkpCisgICAg
LCBtX2l0ZW0obmV3IFFHcmFwaGljc1dLVmlldyhuZXcgUVdLQ29udGV4dChjb250ZXh0UmVmLCB0
aGlzKSkpCiB7CiAgICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5lKHRoaXMpKTsKICAgICBz
Y2VuZSgpLT5hZGRJdGVtKG1faXRlbSk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1X
ZWJWaWV3KFdLUGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYsIFdLUGFnZUdyb3VwUmVmKQot
ICAgIDogbV92aWV3KG5ldyBXZWJWaWV3KG5hbWVzcGFjZVJlZikpCitXZWJWaWV3OjpXZWJWaWV3
KFdLUGFnZVJlZiBwYWdlUmVmKQorICAgIDogUUdyYXBoaWNzVmlldygpCisgICAgLCBtX2l0ZW0o
bmV3IFFHcmFwaGljc1dLVmlldyhuZXcgUVdLQ29udGV4dChwYWdlUmVmLCB0aGlzKSkpCit7Cisg
ICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5lKHRoaXMpKTsKKyAgICBzY2VuZSgpLT5hZGRJ
dGVtKG1faXRlbSk7Cit9CisKK1BsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYsIFdLUGFnZUdy
b3VwUmVmKTsKK1BsYXRmb3JtV2ViVmlldyhXS1BhZ2VSZWYsIFdLUGFnZUdyb3VwUmVmKTsKKwor
UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmKQorICAgIDogbV92aWV3KG5ldyBXZWJWaWV3KGNvbnRleHRSZWYpKQor
ICAgICwgbV93aW5kb3cobmV3IFFNYWluV2luZG93KCkpCit7CisgICAgbV92aWV3LT5zZXRQYXJl
bnQobV93aW5kb3cpOworICAgIG1fd2luZG93LT5zZXRDZW50cmFsV2lkZ2V0KG1fdmlldyk7Cisg
ICAgbV93aW5kb3ctPnNldEdlb21ldHJ5KDAsIDAsIDgwMCwgNjAwKTsKK30KKworUGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLUGFnZUdyb3VwUmVm
KQorICAgIDogbV92aWV3KG5ldyBXZWJWaWV3KHBhZ2VSZWYpKQogICAgICwgbV93aW5kb3cobmV3
IFFNYWluV2luZG93KCkpCiB7CiAgICAgbV92aWV3LT5zZXRQYXJlbnQobV93aW5kb3cpOwpJbmRl
eDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9y
bVdlYlZpZXdXaW4uY3BwCShyZXZpc2lvbiA3Mzg4MCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3
LDEzICs0NywyMiBAQCBzdGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCkKICAgICBSZWdp
c3RlckNsYXNzRXhXKCZ3bmRDbGFzcyk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1X
ZWJWaWV3KFdLUGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZikKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7CiAgICAgcmVnaXN0
ZXJXaW5kb3dDbGFzcygpOwogCiAgICAgUkVDVCB2aWV3UmVjdCA9IHswLCAwLCA4MDAsIDYwMH07
CiAgICAgbV93aW5kb3cgPSBDcmVhdGVXaW5kb3dFeFcoMCwgaG9zdFdpbmRvd0NsYXNzTmFtZSwg
TCJXZWJLaXRUZXN0UnVubmVyIiwgV1NfT1ZFUkxBUFBFRFdJTkRPVywgMCAvKlhPRkZTRVQqLywg
MCAvKllPRkZTRVQqLywgdmlld1JlY3QucmlnaHQsIHZpZXdSZWN0LmJvdHRvbSwgMCwgMCwgR2V0
TW9kdWxlSGFuZGxlKDApLCAwKTsKLSAgICBtX3ZpZXcgPSBXS1ZpZXdDcmVhdGUodmlld1JlY3Qs
IG5hbWVzcGFjZVJlZiwgcGFnZUdyb3VwUmVmLCBtX3dpbmRvdyk7CisgICAgbV92aWV3ID0gV0tW
aWV3Q3JlYXRlKHZpZXdSZWN0LCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYsIG1fd2luZG93KTsK
K30KKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlUmVmIHBhZ2VSZWYs
IFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3sKKyAgICByZWdpc3RlcldpbmRvd0NsYXNz
KCk7CisKKyAgICBSRUNUIHZpZXdSZWN0ID0gezAsIDAsIDgwMCwgNjAwfTsKKyAgICBtX3dpbmRv
dyA9IENyZWF0ZVdpbmRvd0V4VygwLCBob3N0V2luZG93Q2xhc3NOYW1lLCBMIldlYktpdFRlc3RS
dW5uZXIiLCBXU19PVkVSTEFQUEVEV0lORE9XLCAwIC8qWE9GRlNFVCovLCAwIC8qWU9GRlNFVCov
LCB2aWV3UmVjdC5yaWdodCwgdmlld1JlY3QuYm90dG9tLCAwLCAwLCBHZXRNb2R1bGVIYW5kbGUo
MCksIDApOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZUZvckFzc29jaWF0ZWRQYWdlKHZpZXdS
ZWN0LCBwYWdlUmVmLCBwYWdlR3JvdXBSZWYsIG1fd2luZG93KTsKIH0KIAogUGxhdGZvcm1XZWJW
aWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>