<?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>11717</bug_id>
          
          <creation_ts>2006-11-29 11:00:10 -0800</creation_ts>
          <short_desc>Update Win32 build to work with recent *Client changes</short_desc>
          <delta_ts>2006-12-03 08:32:09 -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>Platform</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>11732</dup_id>
          
          <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 name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>43832</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-11-29 11:00:10 -0800</bug_when>
    <thetext>It&apos;s b0rked again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43830</commentid>
    <comment_count>1</comment_count>
      <attachid>11669</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-11-29 11:05:40 -0800</bug_when>
    <thetext>Created attachment 11669
patch that almost fixes the build

Patch is not complete, in that it does not actually fix the build, but it gets it a lot of the way there.  I moved the FrameLoaderClientWin class out of loader/win/ and into bridge/win/ to be consistant.  Eventually, we should move all the files in bridge/win/ into either the COM/ directory in WebKit/ or a new base directory like WebKitWin/, as is done with the Qt port.  This patch also adds implementation files for the headers in bridge/win/ with the methods stubs moved from TemporaryLinkStubs.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43470</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-03 08:32:09 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 11732 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11669</attachid>
            <date>2006-11-29 11:05:40 -0800</date>
            <delta_ts>2006-11-29 11:05:40 -0800</delta_ts>
            <desc>patch that almost fixes the build</desc>
            <filename>win32again.diff</filename>
            <type>text/plain</type>
            <size>54800</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDE3OTI0KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjM0LDIzICsxMjM0LDExIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KLQkJCTxGaWx0ZXIKLQkJCQlOYW1lPSJ3aW4iCi0J
CQkJPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cbG9hZGVyXHdpblxGcmFt
ZUxvYWRlckNsaWVudFdpbi5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJPC9GaWx0ZXI+CiAJ
CTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJwbGF0Zm9ybSIKIAkJCT4KIAkJCTxGaWxl
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxBYnN0cmFjdFNoYXJlZC5oIgotCQkJ
CT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9y
bVxBcmVuYS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTI5MSw2ICsxMjc5LDEwIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRm
b3JtXENvbnRleHRNZW51SXRlbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxDb29raWVKYXIuaCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CkBAIC00MjE4LDE4ICs0MjEwLDM4IEBACiAJCQkJTmFtZT0id2luIgogCQkJCT4KIAkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cQ2hyb21lQ2xpZW50V2lu
LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXGJyaWRnZVx3aW5cQ2hyb21lQ2xpZW50V2luLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxicmlkZ2Vcd2luXENvbnRleHRN
ZW51Q2xpZW50V2luLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cQ29udGV4dE1lbnVDbGllbnRXaW4uaCIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJy
aWRnZVx3aW5cRWRpdG9yQ2xpZW50V2luLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cRWRpdG9yQ2xpZW50V2lu
LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxicmlkZ2Vcd2luXEZyYW1lTG9hZGVyQ2xpZW50V2luLmNwcCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cRnJh
bWVMb2FkZXJDbGllbnRXaW4uaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cRnJhbWVXaW4uY3BwIgogCQkJCQk+CiAJ
CQkJPC9GaWxlPgpJbmRleDogV2ViQ29yZS9icmlkZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2UvRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDE3OTI0KQorKysg
V2ViQ29yZS9icmlkZ2UvRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDEzICs2
MiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhSYW5n
ZSopID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhSYW5nZSopID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiwgUmFuZ2UqLCBFZGl0b3JJ
bnNlcnRBY3Rpb24pID0gMDsKLS8vICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShOb2Rl
KiwgUmFuZ2UqIHJlcGxhY2luZ1JhbmdlLCBXZWJWaWV3SW5zZXJ0QWN0aW9uKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoU3RyaW5nLCBSYW5nZSosIEVkaXRvckluc2Vy
dEFjdGlvbikgPSAwOwogLy8gIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdl
KFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCBOU1NlbGVjdGlvbkFmZmluaXR5LCBi
b29sIHN0aWxsU2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5
bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKikgPSAwOwogLy8gIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VUeXBpbmdTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBmcm9tU3R5bGUsIENT
U1N0eWxlRGVjbGFyYXRpb24qIHRvU3R5bGUpID0gMDsKIC8vICB2aXJ0dWFsIGJvb2wgZG9Db21t
YW5kQnlTZWxlY3RvcihTRUwgc2VsZWN0b3IpID0gMDsKLS8vCisKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmVnaW5FZGl0aW5nKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2Vk
Q29udGVudHMoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmcoKSA9IDA7Cklu
ZGV4OiBXZWJDb3JlL2JyaWRnZS93aW4vQ2hyb21lQ2xpZW50V2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JyaWRnZS93aW4vQ2hyb21lQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYnJpZGdlL3dpbi9DaHJvbWVDbGllbnRXaW4uY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxz
YW0ud2VpbmlnQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKw0KKyNpbmNsdWRlICJjb25maWcuaCINCisjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50V2luLmgiDQorDQorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIg0KKw0K
KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHdpbmRvd3MuaD4NCisjZGVmaW5lIG5vdElt
cGxlbWVudGVkKCkgZG8geyBcCisgICAgY2hhciBidWZbMjU2XSA9IHswfTsgXAorICAgIF9zbnBy
aW50ZihidWYsIHNpemVvZihidWYpLCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzOiVkKCVzKVxu
IiwgX19GSUxFX18sIF9fTElORV9fLCBfX0ZVTkNUSU9OX18pOyBcCisgICAgT3V0cHV0RGVidWdT
dHJpbmdBKGJ1Zik7IFwKK30gd2hpbGUgKDApDQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0KKw0K
K3ZvaWQgQ2hyb21lQ2xpZW50V2luOjpjaHJvbWVEZXN0cm95ZWQoKSANCit7DQorICAgIGRlbGV0
ZSB0aGlzOw0KK30NCisNCit2b2lkIENocm9tZUNsaWVudFdpbjo6c2V0V2luZG93UmVjdChjb25z
dCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0Zsb2F0UmVjdCBD
aHJvbWVDbGllbnRXaW46OndpbmRvd1JlY3QoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7DQor
ICAgIHJldHVybiBGbG9hdFJlY3QoKTsKK30KKworRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbjo6
cGFnZVJlY3QoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7DQorICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKK30KKworZmxvYXQgQ2hyb21lQ2xpZW50V2luOjpzY2FsZUZhY3RvcigpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDAuMDsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXaW46
OmZvY3VzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVu
dFdpbjo6dW5mb2N1cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUGFnZSogQ2hy
b21lQ2xpZW50V2luOjpjcmVhdGVXaW5kb3coY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsNCisgICAgcmV0dXJuIDA7Cit9CisKK1BhZ2UqIENocm9tZUNs
aWVudFdpbjo6Y3JlYXRlTW9kYWxEaWFsb2coY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsNCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgQ2hyb21lQ2xp
ZW50V2luOjpzaG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIENocm9t
ZUNsaWVudFdpbjo6Y2FuUnVuTW9kYWwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7DQorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXaW46OnJ1bk1vZGFsKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudFdpbjo6c2V0VG9v
bGJhcnNWaXNpYmxlKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBD
aHJvbWVDbGllbnRXaW46OnRvb2xiYXJzVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsNCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENocm9tZUNsaWVudFdpbjo6c2V0U3Rh
dHVzYmFyVmlzaWJsZShib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wg
Q2hyb21lQ2xpZW50V2luOjpzdGF0dXNiYXJWaXNpYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOw0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50V2luOjpzZXRT
Y3JvbGxiYXJzVmlzaWJsZShib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jv
b2wgQ2hyb21lQ2xpZW50V2luOjpzY3JvbGxiYXJzVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsNCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENocm9tZUNsaWVudFdpbjo6
c2V0TWVudWJhclZpc2libGUoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiti
b29sIENocm9tZUNsaWVudFdpbjo6bWVudWJhclZpc2libGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7DQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXaW46OnNl
dFJlc2l6YWJsZShib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisNCit2b2lkIENo
cm9tZUNsaWVudFdpbjo6YWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikNCit7DQorICAgIG5vdEltcGxlbWVudGVkKCk7DQorfQ0KKw0KK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUNCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2JyaWRn
ZS93aW4vQ2hyb21lQ2xpZW50V2luLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxl
CiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9DaHJvbWVDbGllbnRXaW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS93aW4vQ2hyb21lQ2xpZW50V2luLmgJKHJldmlzaW9u
IDE3OTI0KQorKysgV2ViQ29yZS9icmlkZ2Uvd2luL0Nocm9tZUNsaWVudFdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSwxOSArMjUsMTggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBDaHJvbWVDbGllbnRXaW5fSAotI2RlZmluZSBDaHJvbWVDbGllbnRXaW5fSAorI2lmbmRlZiBD
aHJvbWVDbGllbnRXaW5faAorI2RlZmluZSBDaHJvbWVDbGllbnRXaW5faAogCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENocm9t
ZUNsaWVudFdpbiA6IHB1YmxpYyBDaHJvbWVDbGllbnQsIHB1YmxpYyBTaGFyZWQ8Q2hyb21lQ2xp
ZW50V2luPiB7CisgICAgY2xhc3MgQ2hyb21lQ2xpZW50V2luIDogcHVibGljIENocm9tZUNsaWVu
dCB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnRXaW4oKSB7IH0K
IAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyBTaGFyZWQ8Q2hyb21lQ2xpZW50V2luPjo6
cmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBTaGFyZWQ8Q2hyb21lQ2xp
ZW50V2luPjo6ZGVyZWYoKTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVk
KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0
Jik7CiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKQEAgLTY5LDggKzY4
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIG1lbnViYXJW
aXNpYmxlKCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKTsKKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpOwogICAg
IH07CiAKIH0KIAotI2VuZGlmIC8vIENocm9tZUNsaWVudFdpbl9ICisjZW5kaWYgLy8gQ2hyb21l
Q2xpZW50V2luX2gKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNsaWVudFdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvd2luL0NvbnRleHRNZW51Q2xpZW50
V2luLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNs
aWVudFdpbi5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisN
CisjaW5jbHVkZSAiY29uZmlnLmgiDQorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50V2luLmgi
DQorDQorI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCINCisjaW5jbHVkZSAiS1VSTC5oIg0KKw0K
KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHdpbmRvd3MuaD4NCisjZGVmaW5lIG5vdElt
cGxlbWVudGVkKCkgZG8geyBcCisgICAgY2hhciBidWZbMjU2XSA9IHswfTsgXAorICAgIF9zbnBy
aW50ZihidWYsIHNpemVvZihidWYpLCAiRklYTUU6IFVOSU1QTEVNRU5URUQ6ICVzOiVkKCVzKVxu
IiwgX19GSUxFX18sIF9fTElORV9fLCBfX0ZVTkNUSU9OX18pOyBcCisgICAgT3V0cHV0RGVidWdT
dHJpbmdBKGJ1Zik7IFwKK30gd2hpbGUgKDApDQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0KKw0K
K3ZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmNvbnRleHRNZW51RGVzdHJveWVkKCkNCit7DQor
ICAgIGRlbGV0ZSB0aGlzOw0KK30NCisNCit2b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjphZGRD
dXN0b21Db250ZXh0TWVudUl0ZW1zKENvbnRleHRNZW51KikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOw0KK30KKw0KK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51SXRlbSopDQorew0KKyAgICBub3RJbXBsZW1lbnRlZCgpOw0KK30N
CisNCit2b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjpjb3B5TGlua1RvQ2xpcGJvYXJkKEhpdFRl
c3RSZXN1bHQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsNCit9CisNCit2b2lkIENvbnRleHRN
ZW51Q2xpZW50V2luOjpkb3dubG9hZFVSTChLVVJMKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
DQorfQorDQordm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6Y29weUltYWdlVG9DbGlwYm9hcmQo
SGl0VGVzdFJlc3VsdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOw0KK30KKw0KK3ZvaWQgQ29u
dGV4dE1lbnVDbGllbnRXaW46Omxvb2tVcEluRGljdGlvbmFyeShGcmFtZSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsNCit9DQorDQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KClByb3BlcnR5
IGNoYW5nZXMgb246IFdlYkNvcmUvYnJpZGdlL3dpbi9Db250ZXh0TWVudUNsaWVudFdpbi5jcHAK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL2Jy
aWRnZS93aW4vQ29udGV4dE1lbnVDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jy
aWRnZS93aW4vQ29udGV4dE1lbnVDbGllbnRXaW4uaAkocmV2aXNpb24gMTc5MjQpCisrKyBXZWJD
b3JlL2JyaWRnZS93aW4vQ29udGV4dE1lbnVDbGllbnRXaW4uaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsMTQgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIENvbnRl
eHRNZW51Q2xpZW50V2luIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50LCBwdWJsaWMgU2hhcmVk
PENvbnRleHRNZW51Q2xpZW50V2luPiB7CisgICAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnRXaW4g
OiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+Q29udGV4dE1lbnVDbGllbnRXaW4oKSB7IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVm
KCkgeyBTaGFyZWQ8Q29udGV4dE1lbnVDbGllbnRXaW4+OjpyZWYoKTsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGVyZWYoKSB7IFNoYXJlZDxDb250ZXh0TWVudUNsaWVudFdpbj46OmRlcmVmKCk7
IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJveWVkKCk7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGFkZEN1c3RvbUNvbnRleHRNZW51SXRlbXMoQ29udGV4dE1lbnUqKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51
SXRlbSopOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb3B5TGlua1RvQ2xpcGJvYXJkKEhpdFRl
c3RSZXN1bHQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoS1VSTCk7CkluZGV4
OiBXZWJDb3JlL2JyaWRnZS93aW4vRWRpdG9yQ2xpZW50V2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JyaWRnZS93aW4vRWRpdG9yQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYnJpZGdlL3dpbi9FZGl0b3JDbGllbnRXaW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0u
d2VpbmlnQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKw0KKyNpbmNsdWRlICJjb25maWcuaCINCisjaW5jbHVk
ZSAiRWRpdG9yQ2xpZW50V2luLmgiDQorDQorI2luY2x1ZGUgIkVkaXRDb21tYW5kLmgiDQorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiDQorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+DQor
DQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPg0KKyNkZWZpbmUgbm90
SW1wbGVtZW50ZWQoKSBkbyB7IFwKKyAgICBjaGFyIGJ1ZlsyNTZdID0gezB9OyBcCisgICAgX3Nu
cHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJGSVhNRTogVU5JTVBMRU1FTlRFRDogJXM6JWQoJXMp
XG4iLCBfX0ZJTEVfXywgX19MSU5FX18sIF9fRlVOQ1RJT05fXyk7IFwKKyAgICBPdXRwdXREZWJ1
Z1N0cmluZ0EoYnVmKTsgXAorfSB3aGlsZSAoMCkNCisNCituYW1lc3BhY2UgV2ViQ29yZSB7DQor
DQordm9pZCBFZGl0b3JDbGllbnRXaW46OnBhZ2VEZXN0cm95ZWQoKQ0KK3sNCisgICAgZGVsZXRl
IHRoaXM7DQorfQ0KKw0KK2Jvb2wgRWRpdG9yQ2xpZW50V2luOjpzaG91bGREZWxldGVSYW5nZShS
YW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgRWRpdG9yQ2xpZW50V2luOjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKEhUTUxFbGVt
ZW50KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFZGl0b3JDbGllbnRXaW46OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRWRpdG9yQ2xp
ZW50V2luOjppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRWRpdG9yQ2xpZW50V2lu
Ojppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgRWRpdG9yQ2xpZW50V2luOjpzcGVsbENoZWNrZXJE
b2N1bWVudFRhZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworYm9vbCBFZGl0b3JDbGllbnRXaW46OnNlbGVjdFdvcmRCZWZvcmVNZW51RXZlbnQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEVkaXRv
ckNsaWVudFdpbjo6aXNFZGl0YWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRWRpdG9yQ2xpZW50V2luOjpzaG91bGRCZWdpbkVkaXRp
bmcoUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEVkaXRvckNsaWVudFdpbjo6c2hvdWxkRW5kRWRpdGluZyhSYW5nZSopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRWRpdG9y
Q2xpZW50V2luOjpzaG91bGRJbnNlcnROb2RlKE5vZGUqLCBSYW5nZSosIEVkaXRvckluc2VydEFj
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFZGl0b3JDbGllbnRXaW46OnNob3VsZEluc2VydFRleHQoU3RyaW5nLCBSYW5nZSosIEVk
aXRvckluc2VydEFjdGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBFZGl0b3JDbGllbnRXaW46OnNob3VsZEFwcGx5U3R5bGUoQ1NTU3R5
bGVEZWNsYXJhdGlvbiosIFJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBFZGl0b3JDbGllbnRXaW46OmRpZEJlZ2luRWRpdGluZygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBFZGl0b3JDbGllbnRXaW46OnJl
c3BvbmRUb0NoYW5nZWRDb250ZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBFZGl0b3JDbGllbnRXaW46OmRpZEVuZEVkaXRpbmcoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yQ2xpZW50V2luOjpyZWdpc3RlckNvbW1hbmRGb3JVbmRv
KFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgRWRpdG9yQ2xpZW50V2luOjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8
RWRpdENvbW1hbmQ+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9y
Q2xpZW50V2luOjpjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworYm9vbCBFZGl0b3JDbGllbnRXaW46OmNhblVuZG8oKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEVkaXRvckNs
aWVudFdpbjo6Y2FuUmVkbygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRWRpdG9yQ2xpZW50V2luOjp1bmRvKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEVkaXRvckNsaWVudFdpbjo6cmVkbygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKw0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2JyaWRnZS93aW4vRWRpdG9yQ2xpZW50V2luLmNwcApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvYnJp
ZGdlL3dpbi9FZGl0b3JDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS93
aW4vRWRpdG9yQ2xpZW50V2luLmgJKHJldmlzaW9uIDE3OTI0KQorKysgV2ViQ29yZS9icmlkZ2Uv
d2luL0VkaXRvckNsaWVudFdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxNiArMzIsMTQgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRWRpdG9yQ2xpZW50V2luIDogcHVi
bGljIEVkaXRvckNsaWVudCwgcHVibGljIFNoYXJlZDxFZGl0b3JDbGllbnRXaW4+IHsKKyAgICBj
bGFzcyBFZGl0b3JDbGllbnRXaW4gOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgfkVkaXRvckNsaWVudFdpbigpIHsgfQotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZWYoKSB7IFNoYXJlZDxFZGl0b3JDbGllbnRXaW4+OjpyZWYoKTsgfQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7IFNoYXJlZDxFZGl0b3JDbGllbnRXaW4+OjpkZXJlZigp
OyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCk7CiAKICAgICAgICAgdmly
dHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKEhUTUxFbGVtZW50Kik7Ci0KKyAgICAgICAgdmly
dHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGludCBzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpOwpAQCAtNTEsNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhSYW5nZSopOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhSYW5nZSopOworICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRB
Y3Rpb24pOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChTdHJpbmcsIFJh
bmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEFw
cGx5U3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJhbmdlKik7CiAKSW5kZXg6IFdlYkNvcmUv
YnJpZGdlL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9icmlkZ2Uvd2luL0ZyYW1lTG9hZGVyQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYnJpZGdlL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcg
PHNhbS53ZWluaWdAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworDQorI2luY2x1ZGUgImNvbmZpZy5oIg0KKyNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFdpbi5oIg0KKw0KKyNpbmNsdWRlICJGb3JtU3RhdGUu
aCINCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCINCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4NCisNCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3aW5kb3dzLmg+DQorI2Rl
ZmluZSBub3RJbXBsZW1lbnRlZCgpIGRvIHsgXAorICAgIGNoYXIgYnVmWzI1Nl0gPSB7MH07IFwK
KyAgICBfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIkZJWE1FOiBVTklNUExFTUVOVEVEOiAl
czolZCglcylcbiIsIF9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgXAorICAgIE91
dHB1dERlYnVnU3RyaW5nQShidWYpOyBcCit9IHdoaWxlICgwKQ0KKw0KK25hbWVzcGFjZSBXZWJD
b3JlIHsNCisNCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpmcmFtZUxvYWRlckRlc3Ryb3ll
ZCgpDQorew0KKyAgICBkZWxldGUgdGhpczsNCit9DQorDQorYm9vbCBGcmFtZUxvYWRlckNsaWVu
dFdpbjo6aGFzV2ViVmlldygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46Omhhc0ZyYW1lVmll
dygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46Omhhc0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW46OnJlc2V0QmFja0ZvcndhcmRMaXN0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpwcm92aXNpb25h
bEl0ZW1Jc1RhcmdldCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OmxvYWRQcm92aXNpb25h
bEl0ZW1Gcm9tUGFnZUNhY2hlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6aW52YWxpZGF0ZUN1cnJl
bnRJdGVtUGFnZUNhY2hlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEZy
YW1lTG9hZGVyQ2xpZW50V2luOjpwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBGcmFtZUxv
YWRlckNsaWVudFdpbjo6bWFrZURvY3VtZW50VmlldygpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6bWFrZVJlcHJlc2VudGF0aW9uKERv
Y3VtZW50TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luOjpmb3JjZUxheW91dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6Zm9yY2VMYXlvdXRGb3JOb25IVE1MKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Ojp1cGRhdGVIaXN0b3J5Rm9yQ29tbWl0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjp1cGRhdGVIaXN0b3J5Rm9yQmFja0ZvcndhcmRO
YXZpZ2F0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50V2luOjp1cGRhdGVIaXN0b3J5Rm9yUmVsb2FkKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjp1cGRhdGVIaXN0b3J5Rm9y
U3RhbmRhcmRMb2FkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luOjp1cGRhdGVIaXN0b3J5Rm9ySW50ZXJuYWxMb2FkKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjp1cGRhdGVI
aXN0b3J5QWZ0ZXJDbGllbnRSZWRpcmVjdCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6c2V0Q29waWVzT25TY3JvbGwoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0xvYWRFcnJvclJlc2V0VG9rZW4qIEZyYW1lTG9hZGVy
Q2xpZW50V2luOjp0b2tlbkZvckxvYWRFcnJvclJlc2V0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpyZXNl
dEFmdGVyTG9hZEVycm9yKExvYWRFcnJvclJlc2V0VG9rZW4qKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmRvTm90UmVzZXRBZnRlckxv
YWRFcnJvcihMb2FkRXJyb3JSZXNldFRva2VuKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjp3aWxsQ2xvc2VEb2N1bWVudCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGV0
YWNoZWRGcm9tUGFyZW50MSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBG
cmFtZUxvYWRlckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9tUGFyZW50MigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9t
UGFyZW50MygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRl
ckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9tUGFyZW50NCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6bG9hZGVkRnJvbVBhZ2VDYWNoZSgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdp
bjo6ZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmRpc3BhdGNoRGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaERpZENhbmNlbENsaWVu
dFJlZGlyZWN0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50V2luOjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgS1VS
TCYsIGRvdWJsZSwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW46OmRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V2luOjpkaXNwYXRjaFdpbGxDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlz
cGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUo
Y29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmRpc3BhdGNoRGlkRmlu
aXNoTG9hZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRl
ckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRGaXJzdExheW91dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hTaG93KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpj
YW5jZWxQb2xpY3lDaGVjaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBG
cmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShGcmFtZVBvbGljeUZ1
bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291
cmNlKERvY3VtZW50TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50V2luOjpjbGVhckxvYWRpbmdGcm9tUGFnZUNhY2hlKERvY3VtZW50
TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEZyYW1lTG9hZGVy
Q2xpZW50V2luOjppc0xvYWRpbmdGcm9tUGFnZUNhY2hlKERvY3VtZW50TG9hZGVyKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBGcmFtZUxv
YWRlckNsaWVudFdpbjo6cmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKERvY3VtZW50TG9hZGVyKikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
OjpjbGVhclVuYXJjaGl2aW5nU3RhdGUoRG9jdW1lbnRMb2FkZXIqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnByb2dyZXNzU3RhcnRl
ZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVu
dFdpbjo6cHJvZ3Jlc3NDb21wbGV0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V2luOjp3aWxsQ2hhbmdlVGl0bGUoRG9jdW1lbnRMb2FkZXIqKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmRpZENoYW5nZVRpdGxlKERv
Y3VtZW50TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luOjpmaW5pc2hlZExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmZpbmFs
U2V0dXBGb3JSZXBsYWNlKERvY3VtZW50TG9hZGVyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBGcmFtZUxvYWRlckNsaWVudFdp
bjo6aXNBcmNoaXZlTG9hZFBlbmRpbmcoUmVzb3VyY2VMb2FkZXIqKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50V2luOjpjYW5jZWxQZW5kaW5nQXJjaGl2ZUxvYWQoUmVzb3VyY2VMb2FkZXIqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmNs
ZWFyQXJjaGl2ZWRSZXNvdXJjZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jv
b2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBGcmFtZUxvYWRlckNsaWVudFdpbjo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0
IFN0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OnJlcHJlc2VudGF0aW9uRXhpc3Rz
Rm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBGcmFtZUxvYWRlckNsaWVudFdpbjo6
Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwordm9pZCBGcmFt
ZUxvYWRlckNsaWVudFdpbjo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpyZXN0b3JlU2Nyb2xsUG9z
aXRpb25BbmRWaWV3U3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW46OnByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OnNob3VsZFRy
ZWF0VVJMQXNTYW1lQXNDdXJyZW50KGNvbnN0IEtVUkwmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V2luOjphZGRIaXN0b3J5SXRlbUZvckZyYWdtZW50U2Nyb2xsKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpkaWRGaW5pc2hMb2FkKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
OjpwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpzZXRUaXRsZShjb25zdCBTdHJp
bmcmLCBjb25zdCBLVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcg
RnJhbWVMb2FkZXJDbGllbnRXaW46OnVzZXJBZ2VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisNCisNCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
DQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lTG9hZGVyQ2xp
ZW50V2luLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6
IFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5oCShyZXZpc2lvbiAxNzg2
MSkKKysrIFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZUxvYWRlckNsaWVudFdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNSwxOSArMjUsMTcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBGcmFtZUxvYWRlckNsaWVudFdpbl9ICi0jZGVmaW5lIEZyYW1lTG9hZGVyQ2xpZW50V2luX0gK
KyNpZm5kZWYgRnJhbWVMb2FkZXJDbGllbnRXaW5faAorI2RlZmluZSBGcmFtZUxvYWRlckNsaWVu
dFdpbl9oCiAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICBjbGFzcyBGcmFtZUxvYWRlckNsaWVudFdpbiA6IHB1YmxpYyBGcmFtZUxv
YWRlckNsaWVudCwgcHVibGljIFNoYXJlZDxGcmFtZUxvYWRlckNsaWVudFdpbj4geworICAgIGNs
YXNzIEZyYW1lTG9hZGVyQ2xpZW50V2luIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkZyYW1lTG9hZGVyQ2xpZW50V2luKCkgeyB9Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlZigpIHsgU2hhcmVkPEZyYW1lTG9hZGVyQ2xpZW50V2lu
Pjo6cmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBTaGFyZWQ8RnJhbWVM
b2FkZXJDbGllbnRXaW4+OjpkZXJlZigpOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxv
YWRlckRlc3Ryb3llZCgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNGcmFtZVZpZXcoKSBjb25zdDsKQEAgLTEyMiw2
ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxQZW5kaW5nQXJjaGl2ZUxvYWQoUmVzb3VyY2VMb2FkZXIqKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGNsZWFyQXJjaGl2ZWRSZXNvdXJjZXMoKTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgY2Fu
SGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICAgICAg
dmlydHVhbCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVS
TFNjaGVtZShjb25zdCBTdHJpbmcmKSBjb25zdDsKQEAgLTEzOCw2ICsxMzcsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpOwogICAgIH07
CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEZyYW1lTG9hZGVyQ2xp
ZW50V2luX0gKKyNlbmRpZiAvLyBGcmFtZUxvYWRlckNsaWVudFdpbl9oCkluZGV4OiBXZWJDb3Jl
L2JyaWRnZS93aW4vRnJhbWVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3dp
bi9GcmFtZVdpbi5jcHAJKHJldmlzaW9uIDE3OTI0KQorKysgV2ViQ29yZS9icmlkZ2Uvd2luL0Zy
YW1lV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsOCArNDQsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUZyYW1lV2luOjpGcmFtZVdpbihQYWdlKiBwYWdlLCBFbGVtZW50KiBvd25l
ckVsZW1lbnQsICBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4gZWRpdG9yQ2xpZW50LCBGcmFtZVdp
bkNsaWVudCogY2xpZW50KQotICAgIDogRnJhbWUocGFnZSwgb3duZXJFbGVtZW50LCBlZGl0b3JD
bGllbnQpCitGcmFtZVdpbjo6RnJhbWVXaW4oUGFnZSogcGFnZSwgRWxlbWVudCogb3duZXJFbGVt
ZW50LCBGcmFtZUxvYWRlckNsaWVudCogZnJhbWVMb2FkZXJDbGllbnQsIEZyYW1lV2luQ2xpZW50
KiBjbGllbnQpCisgICAgOiBGcmFtZShwYWdlLCBvd25lckVsZW1lbnQsIGZyYW1lTG9hZGVyQ2xp
ZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9
IG5ldyBTZXR0aW5ncygpOwpAQCAtNTgsOSArNTgsNiBAQCBGcmFtZVdpbjo6RnJhbWVXaW4oUGFn
ZSogcGFnZSwgRWxlbWVudCogCiAgICAgc2V0dGluZ3MtPnNldFN0ZEZvbnROYW1lKCJUaW1lcyBO
ZXcgUm9tYW4iKTsKICAgICBzZXR0aW5ncy0+c2V0SXNKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsK
ICAgICBzZXRTZXR0aW5ncyhzZXR0aW5ncyk7Ci0KLSAgICAvLyBGSVhNRTogcmV3b3JrIG9uY2Ug
RnJhbWVMb2FkZXJDbGllbnRXaW4gaXMgZXZlbiBjbG9zZSB0byB3b3JraW5nCi0gICAgbG9hZGVy
KCktPnNldENsaWVudChuZXcgRnJhbWVMb2FkZXJDbGllbnRXaW4oKSk7CiB9CiAKIEZyYW1lV2lu
Ojp+RnJhbWVXaW4oKQpJbmRleDogV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmgJKHJldmlzaW9uIDE3OTI0KQor
KysgV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRnJhbWVXaW4gOiBwdWJs
aWMgRnJhbWUgewogICAgIHB1YmxpYzoKLSAgICAgICAgRnJhbWVXaW4oUGFnZSosIEVsZW1lbnQq
LCBQYXNzUmVmUHRyPEVkaXRvckNsaWVudD4sIEZyYW1lV2luQ2xpZW50Kik7CisgICAgICAgIEZy
YW1lV2luKFBhZ2UqLCBFbGVtZW50KiwgRnJhbWVMb2FkZXJDbGllbnQqLCBGcmFtZVdpbkNsaWVu
dCopOwogICAgICAgICB2aXJ0dWFsIH5GcmFtZVdpbigpOwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVOZXdXaW5kb3coY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiwgRnJhbWUqJiBwYXJ0KTsKQEAgLTc2LDYgKzc2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVTcGVsbGluZygpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgbGVhcm5TcGVsbGluZygpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3Rpb25NaXNzcGVsbGVkKCk7CisgICAgICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZ3Vlc3Nl
c0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24oKTsKICAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtNaXNz
cGVsbGluZ3NJbkFkamFjZW50V29yZHMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBtYXJrTWlzc3BlbGxpbmdzKGNvbnN0IFNlbGVjdGlvbiYpOwogCkluZGV4
OiBXZWJDb3JlL2xvYWRlci9Gb3JtU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRl
ci9Gb3JtU3RhdGUuaAkocmV2aXNpb24gMTc5MjQpCisrKyBXZWJDb3JlL2xvYWRlci9Gb3JtU3Rh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTUgKzI5LDE1IEBACiAjaWZuZGVmIEZvcm1TdGF0
ZV9oCiAjZGVmaW5lIEZvcm1TdGF0ZV9oCiAKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJTaGFyZWQuaCIKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgi
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBFbGVtZW50OwotICAgIGNsYXNzIEZyYW1l
OwotCiAgICAgY2xhc3MgRm9ybVN0YXRlIDogcHVibGljIFNoYXJlZDxGb3JtU3RhdGU+IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gY3JlYXRlKFBh
c3NSZWZQdHI8RWxlbWVudD4gZm9ybSwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIHZh
bHVlcywgUGFzc1JlZlB0cjxGcmFtZT4gc291cmNlRnJhbWUpOwpAQCAtNTQsNiArNTQsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9zb3VyY2VGcmFtZTsK
ICAgICB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBGb3JtU3Rh
dGVfaApJbmRleDogV2ViQ29yZS9sb2FkZXIvd2luL0ZyYW1lTG9hZGVyQ2xpZW50V2luLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvd2luL0ZyYW1lTG9hZGVyQ2xpZW50V2luLmgJKHJl
dmlzaW9uIDE3OTI0KQorKysgV2ViQ29yZS9sb2FkZXIvd2luL0ZyYW1lTG9hZGVyQ2xpZW50V2lu
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYgRG9uIEdpYnNvbiA8ZGdpYnNvbjc3QGdtYWlsLmNvbT4KLSAqCi0gKiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRnJhbWVMb2FkZXJDbGllbnRXaW5fSAotI2RlZmlu
ZSBGcmFtZUxvYWRlckNsaWVudFdpbl9ICi0KLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBGcmFtZUxvYWRlckNsaWVudFdp
biA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFNoYXJlZDxGcmFtZUxvYWRlckNs
aWVudFdpbj4gewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RnJhbWVMb2FkZXJDbGll
bnRXaW4oKSB7IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyBTaGFyZWQ8RnJhbWVM
b2FkZXJDbGllbnRXaW4+OjpyZWYoKTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7
IFNoYXJlZDxGcmFtZUxvYWRlckNsaWVudFdpbj46OmRlcmVmKCk7IH0KLQotICAgICAgICB2aXJ0
dWFsIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzRnJh
bWVWaWV3KCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCBib29sIGhhc0JhY2tGb3J3YXJkTGlz
dCgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRCYWNrRm9yd2FyZExpc3QoKTsK
LQotICAgICAgICB2aXJ0dWFsIGJvb2wgcHJvdmlzaW9uYWxJdGVtSXNUYXJnZXQoKSBjb25zdDsK
LSAgICAgICAgdmlydHVhbCBib29sIGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tUGFnZUNhY2hlKCk7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ3VycmVudEl0ZW1QYWdlQ2FjaGUoKTsK
LQotICAgICAgICB2aXJ0dWFsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0Owot
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBtYWtlRG9jdW1lbnRWaWV3KCk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGZvcmNlTGF5b3V0KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91
dEZvck5vbkhUTUwoKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSGlzdG9yeUZvckNv
bW1pdCgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9yQmFja0Zvcndh
cmROYXZpZ2F0aW9uKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9yUmVs
b2FkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9yU3RhbmRhcmRMb2Fk
KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9ySW50ZXJuYWxMb2FkKCk7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpc3RvcnlBZnRlckNsaWVudFJlZGlyZWN0
KCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xsKCk7Ci0KLSAgICAg
ICAgdmlydHVhbCBMb2FkRXJyb3JSZXNldFRva2VuKiB0b2tlbkZvckxvYWRFcnJvclJlc2V0KCk7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXNldEFmdGVyTG9hZEVycm9yKExvYWRFcnJvclJlc2V0
VG9rZW4qKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRvTm90UmVzZXRBZnRlckxvYWRFcnJvcihM
b2FkRXJyb3JSZXNldFRva2VuKik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxDbG9zZURv
Y3VtZW50KCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDEoKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRl
dGFjaGVkRnJvbVBhcmVudDQoKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgbG9hZGVkRnJvbVBh
Z2VDYWNoZSgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9h
ZEV2ZW50cygpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBLVVJMJiwgZG91YmxlLCBkb3VibGUp
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBh
Z2UoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbENsb3NlKCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVJY29uKCk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZpcnN0TGF5b3V0KCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpOwot
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpOwotCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24sIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
TG9hZE1haW5SZXNvdXJjZShEb2N1bWVudExvYWRlciopOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJMb2FkaW5nRnJvbVBhZ2VDYWNoZShEb2N1bWVudExvYWRlciopOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNMb2FkaW5nRnJvbVBhZ2VDYWNoZShEb2N1bWVudExvYWRlciopOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKERvY3VtZW50TG9hZGVyKik7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuYXJjaGl2aW5nU3RhdGUoRG9jdW1lbnRMb2Fk
ZXIqKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NTdGFydGVkKCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBwcm9ncmVzc0NvbXBsZXRlZCgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KGJvb2wpOwotCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlVGl0bGUoRG9jdW1lbnRMb2FkZXIqKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lk
IGZpbmlzaGVkTG9hZGluZyhEb2N1bWVudExvYWRlciopOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxTZXR1cEZvclJlcGxhY2UoRG9jdW1lbnRMb2FkZXIqKTsKLQotICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNB
cmNoaXZlTG9hZFBlbmRpbmcoUmVzb3VyY2VMb2FkZXIqKSBjb25zdDsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNhbmNlbFBlbmRpbmdBcmNoaXZlTG9hZChSZXNvdXJjZUxvYWRlciopOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJBcmNoaXZlZFJlc291cmNlcygpOwotCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcm
KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxT
Y2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1l
TG9hZENvbXBsZXRlZCgpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0
aW9uQW5kVmlld1N0YXRlKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRT
dGFydGVkKCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUcmVhdFVSTEFzU2FtZUFzQ3Vy
cmVudChjb25zdCBLVVJMJikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRIaXN0b3J5
SXRlbUZvckZyYWdtZW50U2Nyb2xsKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2Vt
ZW50KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBLVVJMJik7Ci0KLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCk7Ci0g
ICAgfTsKLQotfQotCi0jZW5kaWYgLy8gRnJhbWVMb2FkZXJDbGllbnRXaW5fSApJbmRleDogV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAkocmV2aXNpb24gMTc5MjQpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDIxICsyNiwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgRmxvYXRSZWN0OwogICAgIGNsYXNzIFBhZ2U7CiAgICAgY2xhc3MgU3RyaW5n
OwotICAgIAogICAgIHN0cnVjdCBGcmFtZUxvYWRSZXF1ZXN0OwotICAgIAorCiAgICAgY2xhc3Mg
Q2hyb21lQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVu
dCgpIHsgIH0KICAgICAgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpID0gMDsKLSAg
ICAgICAgCisKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRS
ZWN0JikgPSAwOwogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgPSAwOwot
ICAgICAgICAKKwogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBwYWdlUmVjdCgpID0gMDsKLSAg
ICAgICAgCisKICAgICAgICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpID0gMDsKLSAgICAK
KwogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB1bmZvY3VzKCkgPSAwOwogCkBAIC01MywyMCArNTIsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgPSAwOwotICAgICAgICAKKwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVmlzaWJsZShib29sKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgPSAwOwotICAgICAgICAKKwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSA9IDA7Ci0gICAgICAgIAorCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0UmVzaXphYmxlKGJvb2wpID0gMDsKLSAgICAgICAgCi0gICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsKLX07CisKKyAgICAgICAgdmly
dHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CisgICAgfTsKIAog
fQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgJKHJldmlzaW9uIDE3OTI0KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAt
NTUsOCArNTUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBUaGlzIGVudW0gbmVl
ZHMgdG8gYmUgaW4gc3luYyB3aXRoIFdlYk1lbnVJdGVtVGFnLCB3aGljaCBpcyBkZWZpbmVkIGlu
IFdlYlVJRGVsZWdhdGUuaAogICAgIGVudW0gQ29udGV4dE1lbnVBY3Rpb24gewotICAgICAgICBD
b250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbj0wLCAvLyBUaGlzIGl0ZW0gaXMgbm90IGFjdHVhbGx5
IGluIFdlYlVJRGVsZWdhdGUuaAotICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0lu
TmV3V2luZG93PTEsCisgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uID0gMCwgLy8g
VGhpcyBpdGVtIGlzIG5vdCBhY3R1YWxseSBpbiBXZWJVSURlbGVnYXRlLmgKKyAgICAgICAgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdyA9IDEsCiAgICAgICAgIENvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaywKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFn
Q29weUxpbmtUb0NsaXBib2FyZCwKICAgICAgICAgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdl
SW5OZXdXaW5kb3csCkBAIC0xMzgsNiArMTM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBTdHJpbmcgbV90aXRsZTsKICAgICB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBDb250ZXh0TWVudUl0ZW1faApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGxhdGZvcm1TY3JvbGxCYXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dp
bi9QbGF0Zm9ybVNjcm9sbEJhci5oCShyZXZpc2lvbiAxNzkyNCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vd2luL1BsYXRmb3JtU2Nyb2xsQmFyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDggKzQ0LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0
KTsKIAotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSB7fTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VPdXRFdmVudChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSB7fTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91
c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VPdXRFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RhdGljIGludCBob3Jpem9udGFsU2Ny
b2xsYmFySGVpZ2h0KCkgeyByZXR1cm4gMTc7IH0KICAgICBzdGF0aWMgaW50IHZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKSB7IHJldHVybiAxNzsgfQpAQCAtNTUsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6
ICAgIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaHVtYlByb3BvcnRpb24oKTsKIH07CiAKLX0K
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBsYXRmb3JtU2Nyb2xsYmFyX2gK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCShy
ZXZpc2lvbiAxNzkyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1RlbXBvcmFyeUxpbmtTdHVi
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDIwICszMywxNiBAQAogI2luY2x1ZGUgPHdpbmRv
d3MuaD4KICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2UuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGllbnRXaW4uaCIKICNpbmNsdWRlICJDb250ZXh0TWVu
dS5oIgotI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50V2luLmgiCiAjaW5jbHVkZSAiQ29va2ll
SmFyLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKLSNpbmNsdWRl
ICJFZGl0b3JDbGllbnRXaW4uaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJGaWxlQ2hvb3Nlci5oIgogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50V2luLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lV2lu
LmgiCkBAIC03OCw3ICs3NCw3IEBACiAKICNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IFwK
ICAgICBjaGFyIGJ1ZlsyNTZdID0gezB9OyBcCi0gICAgX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1
ZiksICJGSVhNRTogVU5JTVBMRU1FTlRFRDogJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7
IFwKKyAgICBfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIkZJWE1FOiBVTklNUExFTUVOVEVE
OiAlczolZCglcylcbiIsIF9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgXAogICAg
IE91dHB1dERlYnVnU3RyaW5nQShidWYpOyBcCiB9IHdoaWxlICgwKQogCkBAIC0xMjUsMzYgKzEy
MSwxMSBAQCBib29sIEFYT2JqZWN0Q2FjaGU6OmdBY2Nlc3NpYmlsaXR5RW5hYmxlCiB2b2lkIENh
Y2hlZFJlc291cmNlOjpzZXRQbGF0Zm9ybVJlc3BvbnNlKFBsYXRmb3JtUmVzcG9uc2UpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0QWxsRGF0YShQbGF0Zm9y
bURhdGEpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCi12b2lkIENocm9tZUNsaWVudFdpbjo6c2V0
V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnRXaW46OndpbmRvd1JlY3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBGbG9hdFJlY3QoKTsgfQotRmxvYXRSZWN0IENocm9tZUNsaWVudFdpbjo6cGFnZVJlY3Qo
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBGbG9hdFJlY3QoKTsgfQotZmxvYXQgQ2hyb21l
Q2xpZW50V2luOjpzY2FsZUZhY3RvcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDAuMDsg
fQotdm9pZCBDaHJvbWVDbGllbnRXaW46OmZvY3VzKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12
b2lkIENocm9tZUNsaWVudFdpbjo6dW5mb2N1cygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotUGFn
ZSogQ2hyb21lQ2xpZW50V2luOjpjcmVhdGVXaW5kb3coY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYp
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLVBhZ2UqIENocm9tZUNsaWVudFdpbjo6
Y3JlYXRlTW9kYWxEaWFsb2coY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYpIHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIDA7IH0KLXZvaWQgQ2hyb21lQ2xpZW50V2luOjpzaG93KCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9Ci1ib29sIENocm9tZUNsaWVudFdpbjo6Y2FuUnVuTW9kYWwoKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBDaHJvbWVDbGllbnRXaW46OnJ1bk1v
ZGFsKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIENocm9tZUNsaWVudFdpbjo6c2V0VG9v
bGJhcnNWaXNpYmxlKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBDaHJvbWVDbGll
bnRXaW46OnRvb2xiYXJzVmlzaWJsZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNl
OyB9Ci12b2lkIENocm9tZUNsaWVudFdpbjo6c2V0U3RhdHVzYmFyVmlzaWJsZShib29sKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLWJvb2wgQ2hyb21lQ2xpZW50V2luOjpzdGF0dXNiYXJWaXNpYmxl
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLXZvaWQgQ2hyb21lQ2xpZW50
V2luOjpzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJv
b2wgQ2hyb21lQ2xpZW50V2luOjpzY3JvbGxiYXJzVmlzaWJsZSgpIHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIENocm9tZUNsaWVudFdpbjo6c2V0TWVudWJhclZpc2li
bGUoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIENocm9tZUNsaWVudFdpbjo6bWVu
dWJhclZpc2libGUoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBD
aHJvbWVDbGllbnRXaW46OnNldFJlc2l6YWJsZShib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
LQotdm9pZCBDb250ZXh0TWVudTo6YXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0gaXRlbSkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CitDb250ZXh0TWVudTo6Q29udGV4dE1lbnUoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0KSA6IG1faGl0VGVzdFJlc3VsdChyZXN1bHQpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQorQ29udGV4dE1lbnU6On5Db250ZXh0TWVudSgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQordm9pZCBDb250ZXh0TWVudTo6YXBwZW5kSXRlbShjb25zdCBDb250ZXh0TWVudUl0ZW0mKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgQ29udGV4dE1lbnU6OnNob3coKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KIAotdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6YWRkQ3VzdG9tQ29udGV4
dE1lbnVJdGVtcyhDb250ZXh0TWVudSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBDb250
ZXh0TWVudUNsaWVudFdpbjo6Y29weUxpbmtUb0NsaXBib2FyZChIaXRUZXN0UmVzdWx0KSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLXZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmRvd25sb2FkVVJM
KEtVUkwpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6
Y29weUltYWdlVG9DbGlwYm9hcmQoSGl0VGVzdFJlc3VsdCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9
Ci12b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjpsb29rVXBJbkRpY3Rpb25hcnkoRnJhbWUqKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLQogdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0RnJhbWUoRnJh
bWUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIEZyYW1lTG9hZGVyKiBEb2N1bWVudExvYWRlcjo6
ZnJhbWVMb2FkZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBtX2ZyYW1lLT5s
b2FkZXIoKTsgfQogS1VSTCBEb2N1bWVudExvYWRlcjo6VVJMKCkgY29uc3QgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9CkBAIC0xNjYsMjggKzEzNyw2IEBAIHZvaWQgRG9jdW1l
bnRMb2FkZXI6OnNldHVwRm9yUmVwbGFjZUJ5TUkKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9h
ZGluZ0luQVBJU2Vuc2UoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsg
fQogdm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcFJlY29yZGluZ1Jlc3BvbnNlcygpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQogCi1ib29sIEVkaXRvckNsaWVudFdpbjo6c2hvdWxkRGVsZXRlUmFuZ2Uo
UmFuZ2UqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9vbCBFZGl0b3JD
bGllbnRXaW46OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQqKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9vbCBFZGl0b3JDbGllbnRXaW46OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
ZmFsc2U7IH0KLWJvb2wgRWRpdG9yQ2xpZW50V2luOjppc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotaW50IEVkaXRvckNsaWVudFdp
bjo6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAw
OyB9Ci1ib29sIEVkaXRvckNsaWVudFdpbjo6c2VsZWN0V29yZEJlZm9yZU1lbnVFdmVudCgpIHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci1ib29sIEVkaXRvckNsaWVudFdpbjo6
aXNFZGl0YWJsZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci1ib29sIEVk
aXRvckNsaWVudFdpbjo6c2hvdWxkQmVnaW5FZGl0aW5nKFJhbmdlKikgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gZmFsc2U7IH0KLWJvb2wgRWRpdG9yQ2xpZW50V2luOjpzaG91bGRFbmRFZGl0
aW5nKFJhbmdlKikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLWJvb2wgRWRp
dG9yQ2xpZW50V2luOjpzaG91bGRJbnNlcnRUZXh0KFN0cmluZywgUmFuZ2UqLCBFZGl0b3JJbnNl
cnRBY3Rpb24pIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci1ib29sIEVkaXRv
ckNsaWVudFdpbjo6c2hvdWxkQXBwbHlTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgUmFuZ2Uq
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBFZGl0b3JDbGllbnRX
aW46OmRpZEJlZ2luRWRpdGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBFZGl0b3JD
bGllbnRXaW46OnJlc3BvbmRUb0NoYW5nZWRDb250ZW50cygpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotdm9pZCBFZGl0b3JDbGllbnRXaW46OmRpZEVuZEVkaXRpbmcoKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KLXZvaWQgRWRpdG9yQ2xpZW50V2luOjpyZWdpc3RlckNvbW1hbmRGb3JVbmRvKFBhc3NS
ZWZQdHI8RWRpdENvbW1hbmQ+KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRWRpdG9yQ2xp
ZW50V2luOjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRWRpdG9yQ2xpZW50V2luOjpjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBFZGl0b3JDbGllbnRXaW46
OmNhblVuZG8oKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotYm9v
bCBFZGl0b3JDbGllbnRXaW46OmNhblJlZG8oKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBmYWxzZTsgfQotdm9pZCBFZGl0b3JDbGllbnRXaW46OnVuZG8oKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KLXZvaWQgRWRpdG9yQ2xpZW50V2luOjpyZWRvKCkgeyBub3RJbXBsZW1lbnRlZCgp
OyB9Ci0KIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9
CiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KQEAgLTIz
NSw3OCArMTg0LDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpIHsgbgog
dm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUoKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KIHZvaWQgRnJhbWVMb2FkZXI6OnJlbG9hZCgpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpoYXNXZWJWaWV3KCkgY29uc3Qg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLWJvb2wgRnJhbWVMb2FkZXJDbGll
bnRXaW46Omhhc0ZyYW1lVmlldygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZh
bHNlOyB9Ci1ib29sIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpoYXNCYWNrRm9yd2FyZExpc3QoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFdpbjo6cmVzZXRCYWNrRm9yd2FyZExpc3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
LWJvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OnByb3Zpc2lvbmFsSXRlbUlzVGFyZ2V0KCkgY29u
c3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLWJvb2wgRnJhbWVMb2FkZXJD
bGllbnRXaW46OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tUGFnZUNhY2hlKCkgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmludmFs
aWRhdGVDdXJyZW50SXRlbVBhZ2VDYWNoZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBG
cmFtZUxvYWRlckNsaWVudFdpbjo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0IHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
OjptYWtlRG9jdW1lbnRWaWV3KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50V2luOjptYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmZvcmNlTGF5b3V0KCkg
eyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpmb3JjZUxh
eW91dEZvck5vbkhUTUwoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJD
bGllbnRXaW46OnVwZGF0ZUhpc3RvcnlGb3JDb21taXQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnVwZGF0ZUhpc3RvcnlGb3JCYWNrRm9yd2FyZE5h
dmlnYXRpb24oKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRX
aW46OnVwZGF0ZUhpc3RvcnlGb3JSZWxvYWQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnRXaW46OnVwZGF0ZUhpc3RvcnlGb3JTdGFuZGFyZExvYWQoKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnVwZGF0ZUhpc3Rv
cnlGb3JJbnRlcm5hbExvYWQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRXaW46OnVwZGF0ZUhpc3RvcnlBZnRlckNsaWVudFJlZGlyZWN0KCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpzZXRDb3BpZXNPblNjcm9s
bCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotTG9hZEVycm9yUmVzZXRUb2tlbiogRnJhbWVMb2Fk
ZXJDbGllbnRXaW46OnRva2VuRm9yTG9hZEVycm9yUmVzZXQoKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiAwOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpyZXNldEFmdGVyTG9hZEVy
cm9yKExvYWRFcnJvclJlc2V0VG9rZW4qKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJh
bWVMb2FkZXJDbGllbnRXaW46OmRvTm90UmVzZXRBZnRlckxvYWRFcnJvcihMb2FkRXJyb3JSZXNl
dFRva2VuKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Ojp3aWxsQ2xvc2VEb2N1bWVudCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxv
YWRlckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9tUGFyZW50MSgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9tUGFyZW50MigpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGV0YWNoZWRGcm9t
UGFyZW50MygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdp
bjo6ZGV0YWNoZWRGcm9tUGFyZW50NCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudFdpbjo6bG9hZGVkRnJvbVBhZ2VDYWNoZSgpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRF
dmVudHMoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46
OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaERp
ZENhbmNlbENsaWVudFJlZGlyZWN0KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3Qg
S1VSTCYsIGRvdWJsZSwgZG91YmxlKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnRXaW46OmRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaFdp
bGxDbG9zZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdp
bjo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBG
cmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hE
aWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nJikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lk
IEZyYW1lTG9hZGVyQ2xpZW50V2luOjpkaXNwYXRjaERpZENvbW1pdExvYWQoKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmRpc3BhdGNoRGlkRmluaXNo
TG9hZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6
ZGlzcGF0Y2hEaWRGaXJzdExheW91dCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hTaG93KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpjYW5jZWxQb2xpY3lDaGVjaygpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hXaWxsU3VibWl0
Rm9ybShGcmFtZVBvbGljeUZ1bmN0aW9uLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZGlzcGF0Y2hEaWRMb2Fk
TWFpblJlc291cmNlKERvY3VtZW50TG9hZGVyKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lk
IEZyYW1lTG9hZGVyQ2xpZW50V2luOjpjbGVhckxvYWRpbmdGcm9tUGFnZUNhY2hlKERvY3VtZW50
TG9hZGVyKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Ojppc0xvYWRpbmdGcm9tUGFnZUNhY2hlKERvY3VtZW50TG9hZGVyKikgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gZmFsc2U7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnJldmVydFRv
UHJvdmlzaW9uYWxTdGF0ZShEb2N1bWVudExvYWRlciopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQot
dm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6Y2xlYXJVbmFyY2hpdmluZ1N0YXRlKERvY3VtZW50
TG9hZGVyKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Ojpwcm9ncmVzc1N0YXJ0ZWQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRXaW46OnByb2dyZXNzQ29tcGxldGVkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KGJvb2wp
IHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6d2lsbENo
YW5nZVRpdGxlKERvY3VtZW50TG9hZGVyKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZy
YW1lTG9hZGVyQ2xpZW50V2luOjpkaWRDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciopIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZmluaXNoZWRMb2Fk
aW5nKERvY3VtZW50TG9hZGVyKikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50V2luOjpmaW5hbFNldHVwRm9yUmVwbGFjZShEb2N1bWVudExvYWRlciopIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6c2V0RGVmZXJzTG9h
ZGluZyhib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRX
aW46OmlzQXJjaGl2ZUxvYWRQZW5kaW5nKFJlc291cmNlTG9hZGVyKikgY29uc3QgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OmNh
bmNlbFBlbmRpbmdBcmNoaXZlTG9hZChSZXNvdXJjZUxvYWRlciopIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6Y2xlYXJBcmNoaXZlZFJlc291cmNlcygp
IHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBGcmFtZUxvYWRlckNsaWVudFdpbjo6Y2FuU2hv
d01JTUVUeXBlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IGZhbHNlOyB9Ci1ib29sIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpyZXByZXNlbnRhdGlvbkV4aXN0
c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBmYWxzZTsgfQotU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50V2luOjpnZW5lcmF0ZWRNSU1F
VHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBTdHJpbmcoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6ZnJhbWVMb2Fk
Q29tcGxldGVkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V2luOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW46OnByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQo
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRXaW46OnNob3Vs
ZFRyZWF0VVJMQXNTYW1lQXNDdXJyZW50KGNvbnN0IEtVUkwmKSBjb25zdCB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBmYWxzZTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6YWRkSGlz
dG9yeUl0ZW1Gb3JGcmFnbWVudFNjcm9sbCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBG
cmFtZUxvYWRlckNsaWVudFdpbjo6ZGlkRmluaXNoTG9hZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNl
bWVudCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbjo6
c2V0VGl0bGUoY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQotU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50V2luOjp1c2VyQWdlbnQoKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQotCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQm9yZGVy
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKIHZvaWQgRnJhbWVXaW46OmZvY3VzV2luZG93KCkg
eyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0zNTIsNiArMjI5LDggQEAgdm9pZCBGcmFtZVdpbjo6
bWFya01pc3NwZWxsaW5nc0luQWRqYWNlbgogdm9pZCBGcmFtZVdpbjo6cmVzcG9uZFRvQ2hhbmdl
ZENvbnRlbnRzKGNvbnN0IFNlbGVjdGlvbiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBG
cmFtZVdpbjo6aWdub3JlU3BlbGxpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgRnJh
bWVXaW46OmxlYXJuU3BlbGxpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK2Jvb2wgRnJhbWVX
aW46OmlzU2VsZWN0aW9uTWlzc3BlbGxlZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZh
bHNlOyB9CitWZWN0b3I8U3RyaW5nPiBGcmFtZVdpbjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxl
Y3Rpb24oKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOyB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRSb3VuZGVkUmVjdENsaXAoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNv
bnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0KSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjphZGRJbm5lclJvdW5kZWRS
ZWN0Q2xpcChjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgdGhpY2tuZXNzKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KSW5kZXg6IFdlYktpdC9DT00vV2ViRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9DT00vV2ViRnJhbWUuY3BwCShyZXZpc2lvbiAxNzkyNCkKKysrIFdlYktpdC9DT00vV2Vi
RnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRXaW4uaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50V2luLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVXaW4uaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKQEAgLTEzOSw4ICsxNDAsOCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZy
YW1lOjppbml0CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKIAotICAg
IFBhZ2UqIHBhZ2UgPSBuZXcgUGFnZShuZXcgQ2hyb21lQ2xpZW50V2luKCksIG5ldyBDb250ZXh0
TWVudUNsaWVudFdpbigpKTsKLSAgICBGcmFtZSogZnJhbWUgPSBuZXcgRnJhbWVXaW4ocGFnZSwg
MCwgbmV3IEVkaXRvckNsaWVudFdpbigpLCB0aGlzKTsKKyAgICBQYWdlKiBwYWdlID0gbmV3IFBh
Z2UobmV3IENocm9tZUNsaWVudFdpbigpLCBuZXcgQ29udGV4dE1lbnVDbGllbnRXaW4oKSwgbmV3
IEVkaXRvckNsaWVudFdpbigpKTsKKyAgICBGcmFtZSogZnJhbWUgPSBuZXcgRnJhbWVXaW4ocGFn
ZSwgMCwgbmV3IEZyYW1lTG9hZGVyQ2xpZW50V2luKCksIHRoaXMpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgaXMgb25lLXRpbWUgaW5pdGlhbGl6YXRpb24sIGJ1dCBpdCBnZXRzIHRoZSB2YWx1ZSBv
ZiB0aGUgc2V0dGluZyBmcm9tIHRoZQogICAgIC8vIGN1cnJlbnQgV2ViVmlldy4gVGhhdCdzIGEg
bWlzbWF0Y2ggYW5kIG5vdCBnb29kIQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>