<?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>235092</bug_id>
          
          <creation_ts>2022-01-11 18:49:35 -0800</creation_ts>
          <short_desc>[libpas] thread_local_cache should not be allocated in the compact heap</short_desc>
          <delta_ts>2022-01-12 13:58:23 -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>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>InRadar</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829983</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-11 18:49:35 -0800</bug_when>
    <thetext>Thread local caches can get large, so they shouldn&apos;t take up precious VA space in the compact heap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829985</commentid>
    <comment_count>1</comment_count>
      <attachid>448899</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-11 19:04:47 -0800</bug_when>
    <thetext>Created attachment 448899
maybe the patch

Still testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829995</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-11 20:26:17 -0800</bug_when>
    <thetext>&lt;rdar://87256207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829996</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-11 20:27:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/87434487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829998</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-11 20:30:04 -0800</bug_when>
    <thetext>I&apos;m going to try linking up a bugzilla to the radar one more time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830302</commentid>
    <comment_count>5</comment_count>
      <attachid>448986</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-12 12:27:46 -0800</bug_when>
    <thetext>Created attachment 448986
the patch

Added a test</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448899</attachid>
            <date>2022-01-11 19:04:47 -0800</date>
            <delta_ts>2022-01-12 12:27:46 -0800</delta_ts>
            <desc>maybe the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>49219</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzkwNikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAxLTExICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gdGhyZWFkX2xvY2Fs
X2NhY2hlIHNob3VsZCBub3QgYmUgYWxsb2NhdGVkIGluIHRoZSBjb21wYWN0IGhlYXAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTA5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRocmVhZCBsb2NhbCBj
YWNoZXMgY2FuIGdldCBxdWl0ZSBsYXJnZSBiZWNhdXNlIG9mIGhvdyBsaWJwYXMgdXNlcyB0aGVt
LCB3ZSBjYW4gYWxsb2NhdGUgb25lIHBlcgorICAgICAgICB0aHJlYWQsIGFuZCB3ZSByZWFsbG9j
YXRlIHRoZW0gd2l0aCBleHBvbmVudGlhbCByZXNpemluZywgc28gdGhlcmUncyBhIGxvdCBvZiB3
YXN0ZWQgc3BhY2UgYW5kIGEKKyAgICAgICAgZGVjZW50IGFtb3VudCBvZiBmcmFnbWVudGF0aW9u
LiBUaGlzIHNob3dzIHVwIGFzIG9jY2FzaW9uYWwgY3Jhc2hlcyB0cnlpbmcgdG8gYWxsb2NhdGUg
YSB0aHJlYWQgbG9jYWwKKyAgICAgICAgY2FjaGUgb3V0IG9mIHRoZSBjb21wYWN0IGhlYXAuCisK
KyAgICAgICAgVGhpcyBtb3ZlcyB0aHJlYWQgbG9jYWwgY2FjaGVzIG91dCBvZiB0aGUgY29tcGFj
dCBoZWFwLiBUaGV5IHdlcmUgb25seSBldmVyIHRoZXJlIGJlY2F1c2UgcGFydGlhbCB2aWV3cwor
ICAgICAgICBzb21ldGltZXMgbmVlZCB0byBwb2ludCB0byB0aGUgbG9jYWxfYWxsb2NhdG9yJ3Mg
Yml0dmVjdG9yLCBidXQgdGhhdCdzIHBhcnQgb2YgdGhlIHRocmVhZCBsb2NhbCBjYWNoZS4KKyAg
ICAgICAgU28sIHRoYXQgbWVhbnMgdGhhdCBlaXRoZXIgdGhlIHBhcnRpYWwgdmlld3MnIGJpdHMg
cG9pbnRlciBjYW5ub3QgYmUgYSBjb21wYWN0IHBvaW50ZXIsIG9yIHRoZQorICAgICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUgbmVlZHMgdG8gYmUgaW4gdGhlIGNvbXBhY3QgaGVhcC4gU28sIHRoZSB0
aHJlYWRfbG9jYWxfY2FjaGUgZW5kZWQgdXAgaW4gdGhlIGNvbXBhY3QKKyAgICAgICAgaGVhcCB0
byBrZWVwIHRoYXQgcG9pbnRlciBzbWFsbC4KKworICAgICAgICBUaGlzIGNoYW5nZSB3b3JrcyBh
cm91bmQgdGhlIHByb2JsZW06IGl0J3MgcmFyZSB0aGF0IHRoZSBwYXJ0aWFsIHZpZXdzJyBiaXRz
IHBvaW50ZXIgcG9pbnRzIGF0CisgICAgICAgIHRoZSBsb2NhbF9hbGxvY2F0b3IncyBiaXRzLCBh
bmQgbm9uZSBvZiB0aGUgZmFzdCBwYXRoIGNhc2VzIHdoZXJlIHdlIGFjY2VzcyB0aGF0IHBvaW50
ZXIgd2lsbCBldmVyIHNlZQorICAgICAgICBpdCBpbiB0aGF0IHN0YXRlLiBTbywgdGhpcyBtYWtl
cyB0aGUgcG9pbnRlciBlaXRoZXIgcG9pbnQgdG8gYSB1dGlsaXR5LWhlYXAtYWxsb2NhdGVkIGJv
eCB0aGF0IGNvbnRhaW5zCisgICAgICAgIHRoZSBmdWxsIHBvaW50ZXIsIG9yIGl0IHBvaW50cyBh
dCB0aGUgYWN0dWFsIGFycmF5IGFsbG9jYXRlZCBpbiB0aGUgY29tcGFjdCBoZWFwLiBUaGUgdXRp
bGl0eSBoZWFwIGlzCisgICAgICAgIGluIHRoZSBjb21wYWN0IGhlYXAsIHNvIHRoZSBjb21wYWN0
IHBvaW50ZXIgY2FuIHBvaW50IGF0IGVpdGhlciBvbmUuIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0
aGlzIGlzCisgICAgICAgIGVuY2Fwc3VsYXRlZCBhcyBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci4g
SXQncyBhIGJpdCBncm9zczsgc3RvcmluZyB0byBpdCBvbmx5IHdvcmtzIHdoZW4geW91J3JlIGhv
bGRpbmcKKyAgICAgICAgdGhlIGhlYXAgbG9jaywgZm9yIGV4YW1wbGUuCisKKyAgICAgICAgU3Rp
bGwgdGVzdGluZyB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLCBidXQgaXQgYWxyZWFkeSBwYXNz
ZXMgYWxsIGxpYnBhcyB0ZXN0cy4KKworICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdh
dGVkX2hlYXBzLmM6CisgICAgICAgIChlbnVtZXJhdGVfcGFydGlhbF92aWV3KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaDoKKyAgICAg
ICAgKHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9wYXJ0aWFsX2J1dF9ub3RfcHJpbW9y
ZGlhbCk6CisgICAgICAgIChwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaDog
QWRkZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF9w
dHJfaW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmM6CisgICAgICAgIChw
YXNfbG9jYWxfYWxsb2NhdG9yX21vdmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRv
cl9zZXRfdXBfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRf
YWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldyk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3X2JlZm9yZV9zdG9wcGlu
Zyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKToKKyAg
ICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYzoKKyAgICAgICAgKGRlYWxsb2NhdGUp
OgorICAgICAgICAoYWxsb2NhdGVfY2FjaGUpOgorCiAyMDIyLTAxLTEwICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RhcnQgdXNpbmcgQysr
MjAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjE2LDYgKzYxNiwxMCBA
QAogCQkyQzQ4MTM0NDI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzRTI3
NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkM0ODEzNDUyNzQwNkEzRTAwNkNB
QjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzM0YyNzQwNkEzRTAwNkNBQjU1IC8qIHBh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJDOTFFNTUyMjcxQ0U0N0EwMEQ2N0ZGOSAvKiBwYXNfc2l6
ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkM5NzFE
MDQyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxRDAwMjc4
RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi87IH07
CisJCTJDOTcxRDA1Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFEMDEy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkM5NzFEMDYyNzhFNzk4NzAw
QzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUQwMjI3OEU3OTg3MDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyQzk3MUQwNzI3OEU3OTg3MDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxRDAzMjc4RTc5ODcwMEM5RTEyOSAv
KiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovOyB9OwogCQkyQ0UyQUUyRDI3
NTk2REVCMDBEMDJCQkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUyNjI3NTk2REVBMDBEMDJC
QkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkNFMkFFMkUyNzU5NkRFQjAwRDAyQkJDIC8qIHBh
c19wYWdlX2Jhc2VfYW5kX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDRTJBRTI3Mjc1OTZERUEwMEQwMkJCQyAvKiBwYXNfcGFnZV9iYXNlX2Fu
ZF9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMkNFMkFFMkYyNzU5NkRFQjAwRDAyQkJDIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUyODI3NTk2
REVBMDBEMDJCQkMgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuYyAqLzsgfTsKQEAgLTEyNzUsNiAr
MTI3OSwxMCBAQAogCQkyQzQ4MTMzRTI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVf
bWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19leHBlbmRhYmxl
X21lbW9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVfbWVtb3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzNGMjc0MDZBM0UwMDZDQUI1
NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5Lmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1
cF9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zaXplX2xvb2t1
cF9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2l6ZV9sb29rdXBfbW9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzk3MUQwMDI3OEU3OTg3MDBDOUUxMjkg
LyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxRDAxMjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNf
bGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xl
bmllbnRfY29tcGFjdF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM5NzFE
MDIyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sZW5pZW50X2NvbXBhY3RfdW5z
aWduZWRfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzk3MUQwMzI3
OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25l
ZF9wdHIuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfdW5z
aWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDRTJBRTI2Mjc1OTZE
RUEwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkNFMkFFMjcyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19wYWdlX2Jhc2Vf
YW5kX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2VfYmFz
ZV9hbmRfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9hbmRf
a2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0UyQUUyODI3NTk2REVBMDBE
MDJCQkMgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gcGFzX3BhZ2VfYmFzZV9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzAxLDYgKzE3MDksMTAgQEAKIAkJCQkwRkM0MEExRDI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5oICovLAogCQkJCTBGQzQwQUEzMjQ1MTQ5OEUwMDg3NkRBMCAvKiBw
YXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRkM0MEFGMTI0NTE0OTkzMDA4
NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCisJCQkJMkM5NzFEMDAy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAqLywK
KwkJCQkyQzk3MUQwMTI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIu
aCAqLywKKwkJCQkyQzk3MUQwMzI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuYyAqLywKKwkJCQkyQzk3MUQwMjI3OEU3OTg3MDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRjhBODEyNDI1RjgzRTI0
MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCAqLywKIAkJCQkwRkM0MEE3RDI0NTE0
OThCMDA4NzZEQTAgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEZDNDBBNEMyNDUx
NDk4ODAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCAqLywKQEAg
LTIxNzksNiArMjE5MSw3IEBACiAJCQkJMEY3RUI4MkQxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RM
U0VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjgzNTFGOTU0MUIwMDBGMUFCQ0IgLyog
SXNvVExTRW50cnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0NjFGOTU0MUIw
MDBGMUFCQ0IgLyogSXNvVExTSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM5NzFEMDQy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGN0VCODQwMUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNMYXlvdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTE5M0VGMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRfaGVh
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1MTkzRUUyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9o
ZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg2LDYgKzIxOTksNyBAQAogCQkJCTE0
NEMwN0Y1MUM3QjcwMjYwMDUxQkI2QSAvKiBMYXJnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTRDODk5MkQxQ0M1NzgzMzAwMjdBMDU3IC8qIExhcmdlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0MEZBMDA1MTlDRTRCNjgwMEZGRDNDOCAvKiBMaW5lTWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJDOTcxRDA2Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxRDlCMDAxQzhFNTFDMDAwMEFC
QkEwIC8qIExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MjZFMjgxMUM4MzhFRTAwMDhFQjA0
MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEM4OTkyQjFDQzQ4NUU3MDAyN0Ew
NTcgLyogTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTIsNiArMjMyNiw3IEBACiAJCQkJMEZD
NDA5RUEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNl
cnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUU5MjQ1MTQ5NjQwMDg3NkRB
MCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY4NzAwMkMyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9j
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzk3MUQwNTI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xl
bmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDJFMjVBRjg5Qzkw
MDBFMUFCRiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjg3RkZFQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDBBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51
bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjgyLDYgKzI2OTcsNyBAQAogCQkJCTE0RjI3MUM4MThFQTM5OTAwMDhDMTUyRiAvKiBPYmplY3RU
eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzhBOURGMjQ2QjY4NzIwMDI5QzJCQiAvKiBP
YmplY3RUeXBlVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEY4NDcyNUMzNDY3NzAw
NzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDOTcxRDA3
Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxOEY4NDkyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRr
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDk1RDI0NTE0OTQ0MDA4NzZE
QTAgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5NjQyNDUxNDk0
NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NzEsNiArNTcxLDEw
IEBACiAJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEz
MkMyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi87IH07CiAJ
CTJDODVEQzQxMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM4NURDNDAy
NzEyOEYwRjAwMzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggKi87IH07CiAJ
CTJDOTFFNTUwMjcxOERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5MUU1NEYyNzE4REE5
QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi87IH07CisJCTJDOTcxQ0ZBMjc4
RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjgyNzhFMTFDMzAwQzlFMTI5
IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IH07CisJCTJDOTcxQ0ZCMjc4RTExQzMw
MEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjkyNzhFMTFDMzAwQzlF
MTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi87IH07CisJCTJDOTcx
Q0ZFMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRkMy
NzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi87
IH07CisJCTJDOTcxQ0ZGMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQzk3MUNGRDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5s
aW5lcy5oICovOyB9OwogCQkyQ0UyQUUzNTI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFF
MzQyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCAqLzsgfTsKIC8qIEVuZCBQQlhC
dWlsZEZpbGUgc2VjdGlvbiAqLwogCkBAIC0xMjU5LDYgKzEyNjMsMTAgQEAKIAkJMkM0ODEzMkMy
NzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyogcGFz
X3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaXplX2xvb2t1cF9tb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxQ0Y4Mjc4RTExQzMwMEM5RTEyOSAv
KiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNp
Z25lZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM5
NzFDRkMyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRy
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3Rf
dW5zaWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxQ0ZEMjc4
RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkNFMkFFMzQyNzVBOTUzRTAwRDAy
QkJDIC8qIEJpdGZpdFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJpdGZpdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIApAQCAtMTM2OCw3ICsxMzc2LDYgQEAKIAkJCQkw
RkQ0OEI2NjIzQjU4OTkxMDAyNkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3Rz
LmNwcCAqLywKIAkJCQkwRjVCNjA5MzIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVk
TWVtb3J5VGVzdHMuY3BwICovLAogCQkJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRI
ZWFwVGVzdHMuY3BwICovLAotCQkJCTJCOEJDQUM2MjczOUE0NzkwMEIxQTQ2RiAvKiBQR01UZXN0
cy5jcHAgKi8sCiAJCQkJMEZDNjQxOTAyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBU
ZXN0cy5jcHAgKi8sCiAJCQkJMEZFQjY2NjYyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmlu
Z1Bvb2xEdW1wLmNwcCAqLywKIAkJCQkwRkVCNjY2NzIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VT
aGFyaW5nUG9vbER1bXAuaCAqLywKQEAgLTE0MTAsOCArMTQxNyw2IEBACiAJCQkJMEY1RkU3QTMy
NUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVFNjI0
NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGNTI5RERFMjQ1
NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCAqLywKLQkJCQkyQjJBNTg5ODI3NDJEODAy
MDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICov
LAotCQkJCTJCMkE1ODk3Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFy
ZF9tYWxsb2NfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZFN0VFNzQyMjlGMDEwRjAwNEY0MTY2IC8q
IGlzb19oZWFwLmMgKi8sCiAJCQkJMEZFN0VFNzUyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFw
LmggKi8sCiAJCQkJMEY1RTVDRTgyM0JFRjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29u
ZmlnLmMgKi8sCkBAIC0xNjg1LDYgKzE2OTAsMTAgQEAKIAkJCQkwRkNGQTQ5ODIzODM1MkVCMDBD
Q0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oICovLAogCQkJCTBGNkQ1NDc1MjNDNTcz
RTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRjZE
NTQ3MjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8s
CisJCQkJMkM5NzFDRkQyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRy
X2lubGluZXMuaCAqLywKKwkJCQkyQzk3MUNGODI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmll
bnRfY29tcGFjdF9wdHIuaCAqLywKKwkJCQkyQzk3MUNGQzI3OEUxMzYzMDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLywKKwkJCQkyQzk3MUNGOTI3OEUxMUMz
MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkw
RjhBODAyNzI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCAqLywKIAkJ
CQkwRjMxQTY0MzIzRTM1MDlFMDAyQzBDQTMgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggKi8sCiAJ
CQkJMEZENDhCMDIyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmln
X2tpbmQuaCAqLywKQEAgLTE3NDIsMTMgKzE3NTEsMTMgQEAKIAkJCQkwRkQyMkNGRDIyQ0MwMUQz
MDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggKi8sCiAJCQkJMEY0RjYxQzkyNUE0
Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovLAog
CQkJCTBGNEY2MUM4MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9w
YWdlX2xpc3QuaCAqLywKLQkJCQkyQjhCQ0FDMzI3MzlBNDU5MDBCMUE0NkYgLyogcGFzX3Byb2Jh
YmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovLAotCQkJCTJCOEJDQUMyMjczOUE0
NTkwMEIxQTQ2RiAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmgg
Ki8sCiAJCQkJMEY2RDU0NzMyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlLmggKi8sCiAJCQkJMEZGMjQ4RjcyMkZDOUVEQTAwNzcyMDJF
IC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyAqLywKIAkJCQkwRjc4MDg4NjIy
RkEyRTQ5MDBGMzc0NTEgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5oICovLAog
CQkJCTBGREVBNTc4MjI4RTIzNDUwMDg1RTM0MCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMg
Ki8sCiAJCQkJMEZERUE1NzcyMjhFMjM0NDAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYuaCAqLywKKwkJCQkyQjJBNTg5ODI3NDJEODAyMDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jICovLAorCQkJCTJCMkE1ODk3Mjc0MkQ4MDIwMDVF
RTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmggKi8sCiAJ
CQkJMEY5QTFDQUQyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFw
LmggKi8sCiAJCQkJMEY0RjYxNUEyNTlCRjZFQzAwOEI0QTgyIC8qIHBhc19wdHJfaGFzaF9tYXAu
aCAqLywKIAkJCQkwRjRGNjE0NjI1OUJCMTA5MDA4QjRBODIgLyogcGFzX3B0cl9oYXNoX3NldC5o
ICovLApAQCAtMjA1MCw2ICsyMDU5LDcgQEAKIAkJCQkwRjlBMUQ0MTI1NUFGMjc5MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTA0
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYml0dmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkU3RUUwNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTJDOTcxQ0ZCMjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9j
b21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QjYwODQyMzVFNTcy
MDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU3RUUwODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NhcmVzX2Fib3V0X3Np
emVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMUE2NjYyM0U4QTk0MjAwMkMwQ0EzIC8q
IHBhc19jYXJ0ZXNpYW5fdHJlZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTQ2LDYgKzIxNTYsNyBA
QAogCQkJCTBGRDQ4QjU4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEIzQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxf
YWxsb2NfYml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwOEYzQTIyQTVCNDAz
MDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywK
KwkJCQkyQzk3MUNGQTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTYwMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZ2V0
X2FsbG9jYXRpb25fc2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFNjQyMjlFMTRGQTAw
NEY0MTY2IC8qIHBhc19nZXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFENEQyNTVG
MkNENzAwQzhEMTFCIC8qIHBhc19nZXRfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjI1Myw2ICsyMjY0LDcgQEAKIAkJCQkwRjRGNjBGQjI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jv
b3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTkzMjZDMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNf
c2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY4MTI3MjIyQkQ0QkY0MDAzNkEwMkIg
LyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDOTcxQ0ZGMjc4
RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjE0ODcxMDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRf
ZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjU2MjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0
X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgxLDYgKzI2OTMsNyBAQAogCQkJCTBG
NEY2MTFCMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMTkzMjU2MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDQ4QjM0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMkM5NzFDRkUy
NzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4g
U291cmNlcyAqLywKIAkJCQkyQzQ4MTMyODI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFi
bGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURCQTIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2V4dGVuZGVkX2djZC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMDhGNDMyMkE2MjdD
MTAwMzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3Jl
Z2F0ZWRfaGVhcHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYwkocmV2aXNpb24gMjg3NDg0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdh
dGVkX2hlYXBzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChjKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MTUsNyArNTE1LDExIEBAIHN0YXRpYyBi
b29sIGVudW1lcmF0ZV9wYXJ0aWFsX3ZpZXcocGFzX2UKICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgcGFzX2xvZygiRm91bmQgYWxsb2NhdG9yID0gJXBcbiIsIGFsbG9jYXRvcik7CiAKLSAgICBm
dWxsX2FsbG9jX2JpdHMuYml0cyA9IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9h
ZF9yZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPmFsbG9jX2JpdHMpOworICAgIC8qIFRoaXMgaXMg
c28gd2VpcmQ6IHRoZSBzaXplIHdlIHBhc3MgaXMgb25seSB2YWxpZCB3aGVuIHZpZXctPmFsbG9j
X2JpdHMgaXMgcG9pbnRpbmcgYXQgdGhlCisgICAgICAgbG9jYWxfYWxsb2NhdG9yJ3MgYml0cy4g
QnV0IHRoYXQncyB0aGUgb25seSB0aW1lIHRoYXQgbG9hZF9yZW1vdGUgd2lsbCBnbyBkb3duIHRo
ZSBwYXRoIHdoZXJlIGl0IG5lZWRzCisgICAgICAgdG8ga25vdyB0aGUgc2l6ZS4gU28sIGl0J3Mg
ZmluZSwgSSBndWVzcy4gKi8KKyAgICBmdWxsX2FsbG9jX2JpdHMuYml0cyA9IHBhc19sZW5pZW50
X2NvbXBhY3RfdW5zaWduZWRfcHRyX2xvYWRfcmVtb3RlKAorICAgICAgICBlbnVtZXJhdG9yLCAm
dmlldy0+YWxsb2NfYml0cywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5
dGVzKCpwYWdlX2NvbmZpZykpOwogICAgIGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2lu
ID0gdmlldy0+YWxsb2NfYml0c19vZmZzZXQ7CiAgICAgZnVsbF9hbGxvY19iaXRzLndvcmRfaW5k
ZXhfZW5kID0gdmlldy0+YWxsb2NfYml0c19vZmZzZXQgKyB2aWV3LT5hbGxvY19iaXRzX3NpemU7
CiAgICAgcmVjb3JkX3BhZ2Vfb2JqZWN0cygKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5l
cy5oCShyZXZpc2lvbiAyODc0ODQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ5LDYg
KzQ5LDE5IEBAIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUKIH0KIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9jX2JpdHMKK3Bhc19mdWxsX2Fs
bG9jX2JpdHNfY3JlYXRlX2Zvcl9wYXJ0aWFsX2J1dF9ub3RfcHJpbW9yZGlhbChwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0
aWFsX3ZpZXc7CisgICAgCisgICAgcGFydGlhbF92aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcGFydGlhbCh2aWV3KTsKKworICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0
ZSgKKyAgICAgICAgcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHJfbG9hZF9jb21wYWN0
X25vbl9udWxsKCZwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMpLAorICAgICAgICBwYXJ0aWFsX3Zp
ZXctPmFsbG9jX2JpdHNfb2Zmc2V0LAorICAgICAgICBwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHNf
b2Zmc2V0ICsgcGFydGlhbF92aWV3LT5hbGxvY19iaXRzX3NpemUpOworfQorCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2Z1bGxfYWxsb2NfYml0cwogcGFzX2Z1bGxfYWxsb2NfYml0c19j
cmVhdGVfZm9yX3BhcnRpYWwocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwpAQCAtNTYsNyArNjksNyBAQCBw
YXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbChwCiAgICAgcGFydGlhbF92aWV3
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KTsKIAogICAgIHJldHVybiBw
YXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZSgKLSAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vu
c2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMpLAorICAg
ICAgICBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXct
PmFsbG9jX2JpdHMpLAogICAgICAgICBwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0LAog
ICAgICAgICBwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0ICsgcGFydGlhbF92aWV3LT5h
bGxvY19iaXRzX3NpemUpOwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBh
Y3RfcHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MRU5JRU5UX0NPTVBB
Q1RfUFRSX0gKKyNkZWZpbmUgUEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfSAorCisjaW5jbHVkZSAi
cGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOwor
CisvKiBZb3UgY2FuIHVzZSB0aGlzIHBvaW50ZXIgdG8gcG9pbnQgYXQgc29tZXRoaW5nIHRoYXQg
aXMgbGlrZWx5IHRvIGJlIGluIHRoZSBjb21wYWN0IGhlYXAgYnV0IHRoYXQKKyAgIHNvbWV0aW1l
cyB3b24ndCBiZS4gVG8gbWFrZSB0aGlzIHdvcmssIGl0J3MgbmVjZXNzYXJ5IHRvIGJlIGFibGUg
dG8gZGVzdHJ1Y3QgdGhlIHBvaW50ZXIsIGFuZCBpdCdzCisgICBub3QgbGVnYWwgdG8gcGFzcyB0
aGUgcG9pbnRlciBhcm91bmQgYnkgdmFsdWUuIEFsc28sIHRoZSB0aGluZyBiZWluZyBwb2ludGVk
IHRvIG11c3QgaGF2ZSB0aGUgbG93ZXN0CisgICBiaXQgYXZhaWxhYmxlIChpLmUuIHRoYXQgYml0
IG11c3QgYWx3YXlzIGJlIHplcm8pLiAqLworCisjZGVmaW5lIFBBU19MRU5JRU5UX0NPTVBBQ1Rf
UFRSX0lOSVRJQUxJWkVSIHsgLnB0ciA9IFBBU19DT01QQUNUX1RBR0dFRF9BVE9NSUNfUFRSX0lO
SVRJQUxJWkVSIH0KKworI2RlZmluZSBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9C
SVQgKCh1aW50cHRyX3QpMSkKKworI2RlZmluZSBQQVNfREVDTEFSRV9MRU5JRU5UX0NPTVBBQ1Rf
UFRSKHR5cGUsIG5hbWUpIFwKKyAgICBcCisgICAgUEFTX0RFRklORV9DT01QQUNUX1RBR0dFRF9B
VE9NSUNfUFRSKHR5cGUqLCBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyKTsgXAor
ICAgIFwKKyAgICBzdHJ1Y3QgbmFtZTsgXAorICAgIHR5cGVkZWYgc3RydWN0IG5hbWUgbmFtZTsg
XAorICAgIFwKKyAgICBzdHJ1Y3QgbmFtZSB7IFwKKyAgICAgICAgbmFtZSAjIyBfY29tcGFjdF90
YWdnZWRfYXRvbWljX3B0ciBwdHI7IFwKKyAgICB9OyBcCisgICAgXAorICAgIFBBU19BUEkgdm9p
ZCBuYW1lICMjIF9kZXN0cnVjdChuYW1lKiBwdHIpOyBcCisgICAgUEFTX0FQSSB2b2lkIG5hbWUg
IyMgX3N0b3JlKG5hbWUqIHB0ciwgdHlwZSogdmFsdWUpOyBcCisgICAgUEFTX0FQSSB0eXBlKiBu
YW1lICMjIF9sb2FkKG5hbWUqIHB0cik7IFwKKyAgICBcCisgICAgc3RhdGljIGlubGluZSB0eXBl
KiBuYW1lICMjIF9sb2FkX2NvbXBhY3QobmFtZSogcHRyKSBcCisgICAgeyBcCisgICAgICAgIHR5
cGUqIHJlc3VsdDsgXAorICAgICAgICByZXN1bHQgPSBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9h
dG9taWNfcHRyX2xvYWQoJnB0ci0+cHRyKTsgXAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQo
ISgodWludHB0cl90KXJlc3VsdCAmIFBBU19MRU5JRU5UX0NPTVBBQ1RfUFRSX0ZVTExfUFRSX0JJ
VCkpOyBcCisgICAgICAgIHJldHVybiByZXN1bHQ7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3Rh
dGljIGlubGluZSB0eXBlKiBuYW1lICMjIF9sb2FkX2NvbXBhY3Rfbm9uX251bGwobmFtZSogcHRy
KSBcCisgICAgeyBcCisgICAgICAgIHR5cGUqIHJlc3VsdDsgXAorICAgICAgICByZXN1bHQgPSBu
YW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyX2xvYWRfbm9uX251bGwoJnB0ci0+cHRy
KTsgXAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoISgodWludHB0cl90KXJlc3VsdCAmIFBB
U19MRU5JRU5UX0NPTVBBQ1RfUFRSX0ZVTExfUFRSX0JJVCkpOyBcCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7IFwKKyAgICB9IFwKKyAgICBcCisgICAgUEFTX0FQSSB0eXBlKiBuYW1lICMjIF9sb2Fk
X3JlbW90ZShwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwgbmFtZSogcHRyLCBzaXplX3Qgc2l6
ZSk7IFwKKyAgICBcCisgICAgc3RydWN0IHBhc19kdW1teQorCitQQVNfRU5EX0VYVEVSTl9DOwor
CisjZW5kaWYgLyogUEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfSCAqLworCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xl
bmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfSU5M
SU5FU19ICisjZGVmaW5lIFBBU19MRU5JRU5UX0NPTVBBQ1RfUFRSX0lOTElORVNfSAorCisjaW5j
bHVkZSAicGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCIKKyNpbmNsdWRlICJwYXNfdXRpbGl0eV9o
ZWFwLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworI2RlZmluZSBQQVNfREVGSU5FX0xFTklF
TlRfQ09NUEFDVF9QVFIodHlwZSwgbmFtZSkgXAorICAgIHZvaWQgbmFtZSAjIyBfZGVzdHJ1Y3Qo
bmFtZSogcHRyKSBcCisgICAgeyBcCisgICAgICAgIHR5cGUqIG9sZF92YWx1ZTsgXAorICAgICAg
ICBvbGRfdmFsdWUgPSBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyX2xvYWQoJnB0
ci0+cHRyKTsgXAorICAgICAgICBpZiAoKHVpbnRwdHJfdClvbGRfdmFsdWUgJiBQQVNfTEVOSUVO
VF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpIHsgXAorICAgICAgICAgICAgcGFzX3V0aWxpdHlf
aGVhcF9kZWFsbG9jYXRlKCBcCisgICAgICAgICAgICAgICAgKHZvaWQqKSgodWludHB0cl90KW9s
ZF92YWx1ZSAmIH5QQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpKTsgXAorICAg
ICAgICB9IFwKKyAgICB9IFwKKyAgICBcCisgICAgdm9pZCBuYW1lICMjIF9zdG9yZShuYW1lKiBw
dHIsIHR5cGUqIHZhbHVlKSBcCisgICAgeyBcCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgh
KCh1aW50cHRyX3QpdmFsdWUgJiBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQp
KTsgXAorICAgICAgICBuYW1lICMjIF9kZXN0cnVjdChwdHIpOyBcCisgICAgICAgIGlmICgodWlu
dHB0cl90KXZhbHVlID49IFBBU19JTlRFUk5BTF9NSU5fQUxJR04gXAorICAgICAgICAgICAgJiYg
KHVpbnRwdHJfdCl2YWx1ZSAtIHBhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb25fYmFzZSA+PSBw
YXNfY29tcGFjdF9oZWFwX3Jlc2VydmF0aW9uX3NpemUpIHsgXAorICAgICAgICAgICAgdHlwZSoq
IGJveDsgXAorICAgICAgICAgICAgYm94ID0gcGFzX3V0aWxpdHlfaGVhcF9hbGxvY2F0ZShzaXpl
b2YodHlwZSopLCAjbmFtZSAiL2JveCIpOyBcCisgICAgICAgICAgICAqYm94ID0gdmFsdWU7IFwK
KyAgICAgICAgICAgIHZhbHVlID0gKHR5cGUqKSgodWludHB0cl90KWJveCB8IFBBU19MRU5JRU5U
X0NPTVBBQ1RfUFRSX0ZVTExfUFRSX0JJVCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIG5hbWUg
IyMgX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHJfc3RvcmUoJnB0ci0+cHRyLCB2YWx1ZSk7IFwK
KyAgICB9IFwKKyAgICBcCisgICAgdHlwZSogbmFtZSAjIyBfbG9hZChuYW1lKiBwdHIpIFwKKyAg
ICB7IFwKKyAgICAgICAgdHlwZSogcmVzdWx0OyBcCisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMg
X2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHJfbG9hZCgmcHRyLT5wdHIpOyBcCisgICAgICAgIGlm
ICgodWludHB0cl90KXJlc3VsdCAmIFBBU19MRU5JRU5UX0NPTVBBQ1RfUFRSX0ZVTExfUFRSX0JJ
VCkgXAorICAgICAgICAgICAgcmV0dXJuICoodHlwZSoqKSgodWludHB0cl90KXJlc3VsdCAmIH5Q
QVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpOyBcCisgICAgICAgIHJldHVybiBy
ZXN1bHQ7IFwKKyAgICB9IFwKKyAgICBcCisgICAgdHlwZSogbmFtZSAjIyBfbG9hZF9yZW1vdGUo
cGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsIG5hbWUqIHB0ciwgc2l6ZV90IHNpemUpIFwKKyAg
ICB7IFwKKyAgICAgICAgdHlwZSogcmVzdWx0OyBcCisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMg
X2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnB0ci0+
cHRyKTsgXAorICAgICAgICBpZiAoKHVpbnRwdHJfdClyZXN1bHQgJiBQQVNfTEVOSUVOVF9DT01Q
QUNUX1BUUl9GVUxMX1BUUl9CSVQpIHsgXAorICAgICAgICAgICAgcmV0dXJuICh0eXBlKilwYXNf
ZW51bWVyYXRvcl9yZWFkKCBcCisgICAgICAgICAgICAgICAgZW51bWVyYXRvciwgXAorICAgICAg
ICAgICAgICAgICoodHlwZSoqKSgodWludHB0cl90KXJlc3VsdCAmIH5QQVNfTEVOSUVOVF9DT01Q
QUNUX1BUUl9GVUxMX1BUUl9CSVQpLCBcCisgICAgICAgICAgICAgICAgc2l6ZSk7IFwKKyAgICAg
ICAgfSBcCisgICAgICAgIHJldHVybiByZXN1bHQ7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3Ry
dWN0IHBhc19kdW1teQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xFTklF
TlRfQ09NUEFDVF9QVFJfSU5MSU5FU19IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVE
CisKKyNpbmNsdWRlICJwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIgorCisjaW5j
bHVkZSAicGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oIgorCitQQVNfREVGSU5FX0xF
TklFTlRfQ09NUEFDVF9QVFIodW5zaWduZWQsIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRf
cHRyKTsKKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKKwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MRU5JRU5UX0NPTVBBQ1RfVU5TSUdO
RURfUFRSX0gKKyNkZWZpbmUgUEFTX0xFTklFTlRfQ09NUEFDVF9VTlNJR05FRF9QVFJfSAorCisj
aW5jbHVkZSAicGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9D
OworCitQQVNfREVDTEFSRV9MRU5JRU5UX0NPTVBBQ1RfUFRSKHVuc2lnbmVkLCBwYXNfbGVuaWVu
dF9jb21wYWN0X3Vuc2lnbmVkX3B0cik7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAv
KiBQQVNfTEVOSUVOVF9DT01QQUNUX1VOU0lHTkVEX1BUUl9IICovCisKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
LmMJKHJldmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExOCw2ICsxMTgsOCBA
QCB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZShwYXNfbG9jYWxfCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXcqIHNoYXJlZF92aWV3OwogCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgp
OyAvKiBOZWVkZWQgdG8gbW9kaWZ5IGEgbGVuaWVudF9jb21wYWN0X3B0ci4gKi8KKwogICAgIGRp
cmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHNyYy0+dmll
dyk7CiAgICAgCiAgICAgc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSk7CkBAIC0xMzUsOCArMTM3LDggQEAgdm9pZCBwYXNf
bG9jYWxfYWxsb2NhdG9yX21vdmUocGFzX2xvY2FsXwogICAgICAgIGlzIHRoZSBvbmx5IGNsaWVu
dCBvZiBwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMgYmVpbmcgcmlnaHQgZHVyaW5nIHByaW1vcmRp
YWwgbW9kZSwgYW5kIGl0CiAgICAgICAgaGFwcGVucyB0byBob2xkIHRoZSBvd25lcnNoaXAgbG9j
ay4gKi8KICAgICBwYXNfbG9ja19sb2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOwot
ICAgIGlmIChwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWQoJnBhcnRpYWxfdmll
dy0+YWxsb2NfYml0cykgPT0gKHVuc2lnbmVkKilzcmMtPmJpdHMpCi0gICAgICAgIHBhc19jb21w
YWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJnBhcnRpYWxfdmlldy0+YWxsb2NfYml0cywg
KHVuc2lnbmVkKilkc3QtPmJpdHMpOworICAgIGlmIChwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2ln
bmVkX3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMpID09ICh1bnNpZ25lZCopc3Jj
LT5iaXRzKQorICAgICAgICBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0cl9zdG9yZSgm
cGFydGlhbF92aWV3LT5hbGxvY19iaXRzLCAodW5zaWduZWQqKWRzdC0+Yml0cyk7CiAgICAgcGFz
X2xvY2tfdW5sb2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOwogfQogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNTIsNyArMzUyLDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRf
dXBfZnJlZV9iaXRzKHBhcwogCiAgICAgcGFydGlhbF92aWV3X2FzX3ZpZXcgPSBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlldygocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Kil2
aWV3KTsKICAgICAKLSAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfZnVsbF9hbGxvY19iaXRzX2Ny
ZWF0ZV9mb3JfcGFydGlhbChwYXJ0aWFsX3ZpZXdfYXNfdmlldyk7CisgICAgZnVsbF9hbGxvY19i
aXRzID0gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3BhcnRpYWxfYnV0X25vdF9wcmlt
b3JkaWFsKHBhcnRpYWxfdmlld19hc192aWV3KTsKICAgICAKICAgICBhbGxvY2F0b3ItPnZpZXcg
PSBwYXJ0aWFsX3ZpZXdfYXNfdmlldzsKIApAQCAtNTk5LDIxICs1OTksMTYgQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luXwogICAgICAgICBzaGFyZWRfcGFnZV9kaXJl
Y3RvcnkgPSBwYWdlX2NvbmZpZy5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IoaGVhcCwg
c2l6ZV9kaXJlY3RvcnkpOwogICAgICAgICAKICAgICAgICAgc2hhcmVkX3ZpZXcgPSBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfZmluZF9maXJzdF9lbGlnaWJsZSgKLSAgICAg
ICAgICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeSwgc2l6ZSwgYWxpZ25tZW50LAotICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2Nv
bmZpZykpOworICAgICAgICAgICAgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBzaXplLCBhbGlnbm1l
bnQsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIAogICAgICAgICBQQVNfQVNTRVJUKHNoYXJlZF92
aWV3KTsKICAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgKLSAg
ICAgICAgICAgICZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssCi0gICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7Cisg
ICAgICAgIHBhc19sb2NrX2xvY2soJnNoYXJlZF92aWV3LT5jb21taXRfbG9jayk7CiAKICAgICAg
ICAgaGFuZGxlID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tbWl0X3BhZ2VfaWZfbmVj
ZXNzYXJ5KAogICAgICAgICAgICAgc2hhcmVkX3ZpZXcsIGhlYXAsIHNoYXJlZF9wYWdlX2RpcmVj
dG9yeSwgdmlldywgcGFnZV9jb25maWcpOwogICAgICAgICBpZiAoIWhhbmRsZSkgewotICAgICAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAgICAgICAgJnNo
YXJlZF92aWV3LT5jb21taXRfbG9jaywKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7CisgICAgICAgICAg
ICBwYXNfbG9ja191bmxvY2soJnNoYXJlZF92aWV3LT5jb21taXRfbG9jayk7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApAQCAtNjYzLDEzICs2NTgsNiBAQCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fCiAKICAgICAgICAgcGFzX3plcm9fbWVt
b3J5KGFsbG9jYXRvci0+Yml0cywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9j
X2J5dGVzKHBhZ2VfY29uZmlnKSk7CiAKLSAgICAgICAgLyogRG9pbmcgdGhpcyBoZWxwcyBoZWFw
IGludHJvc3BlY3Rpb24gYnV0IGlzbid0IG90aGVyd2lzZSBuZWNlc3NhcnkuICovCi0gICAgICAg
IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJnZpZXctPmFsbG9jX2JpdHMs
ICh1bnNpZ25lZCopYWxsb2NhdG9yLT5iaXRzKTsKLSAgICAgICAgUEFTX0FTU0VSVCghdmlldy0+
YWxsb2NfYml0c19vZmZzZXQpOwotICAgICAgICBQQVNfQVNTRVJUKCh1aW50OF90KXBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZykKLSAgICAgICAg
ICAgICAgICAgICA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMo
cGFnZV9jb25maWcpKTsKLSAgICAgICAgdmlldy0+YWxsb2NfYml0c19zaXplID0gKHVpbnQ4X3Qp
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKTsK
LQogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9wcmltb3JkaWFsX2J1bXAoCiAg
ICAgICAgICAgICBhbGxvY2F0b3IsIHZpZXcsIGhhbmRsZSwgcGFnZSwgJmhlbGRfbG9jaywgYnVt
cF9yZXN1bHQsCiAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByaW1vcmRpYWxfYnVt
cF9zdGFzaF93aG9sZV9hbGxvY2F0aW9uLApAQCAtNjc5LDExICs2NjcsMzcgQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luXwogCiAgICAgICAgIHZpZXctPmlzX2F0dGFj
aGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVlOwogCi0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgm
aGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHko
Ci0gICAgICAgICAgICAmc2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLAotICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykp
OworICAgICAgICBwYXNfbG9ja191bmxvY2soJnNoYXJlZF92aWV3LT5jb21taXRfbG9jayk7CisK
KyAgICAgICAgLyogVGhpcyBjb2RlIHRvIHNldCB0aGUgdmlldydzIGFsbG9jX2JpdHMgaXMgcHJp
bWFyaWx5IGZvciBoZWFwIGVudW1lcmF0aW9uLgorICAgICAgICAgICAKKyAgICAgICAgICAgSWYg
dGhlIGVudW1lcmF0b3IgcmFuIHJpZ2h0IG5vdyB0aGVuIChiZWZvcmUgd2UgZG8gdGhpcyBzdHVm
ZiksIHRoZW4gaXQgd291bGQgc2VlOgogICAgICAgICAKKyAgICAgICAgICAgLSBBIGJ1bmNoIG9m
IHBhZ2UgYWxsb2MgYml0cyBzZXQgZm9yIHRoZSBvYmplY3RzIHdlIGFyZSBhYm91dCB0byBhbGxv
Y2F0ZS4KKyAgICAgICAgICAgLSBObyBwYXJ0aWFsIHZpZXdzIHNheSB0aGF0IHRoZXkgb3duIHRo
b3NlIG9iamVjdHMuCisgICAgICAgICAgIC0gTG9jYWwgYWxsb2NhdG9yIGNsYWltcyB0byBvd24g
dGhvc2Ugb2JqZWN0cy4KKyAgICAgICAgCisgICAgICAgICAgIFNvLCB3ZSB3b3VsZCByZXBvcnQg
dGhhdCB0aG9zZSBvYmplY3RzIGFyZSBub3QgbGl2ZSByaWdodCBub3cuIEkgYmVsaWV2ZSB0aGV5
IHdvdWxkIHNob3cgdXAKKyAgICAgICAgICAgYXMgIm1ldGEiIGFsbG9jYXRpb25zLCBub3QgZXZl
biBhcyBvYmplY3RzLgorICAgICAgICAKKyAgICAgICAgICAgSW1tZWRpYXRlbHkgYWZ0ZXIgc2V0
dGluZ3MgdGhlIHZpZXcncyBhbGxvY19iaXRzIGFuZCBhbGxvY19iaXRzX3NpemUsIHdlIHdpbGwg
a25vdyB0aGF0IHRoZQorICAgICAgICAgICBvYmplY3RzIGV4aXN0ICh2aWV3IGFsbG9jIGJpdHMg
YXJlIHNldCksIGJ1dCB0aGV5IGFyZSBkZWFkIChkZXNwaXRlIHBhZ2UgYWxsb2MgYml0cyBhbHNv
IGJlaW5nCisgICAgICAgICAgIHNldCwgdGhlIG9iamVjdHMgYXJlIHBhcnQgb2YgdGhlIGJ1bXAg
cmFuZ2UpLiAqLworICAgICAgICBpZiAoIXBhc19oZWFwX2xvY2tfdHJ5X2xvY2soKSkgeworICAg
ICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICAgICAg
cGFzX2hlYXBfbG9ja19sb2NrKCk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3
aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyX3N0b3JlKCZ2aWV3LT5hbGxv
Y19iaXRzLCAodW5zaWduZWQqKWFsbG9jYXRvci0+Yml0cyk7CisgICAgICAgIFBBU19BU1NFUlQo
IXZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0KTsKKyAgICAgICAgUEFTX0FTU0VSVCgodWludDhfdClw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpCisg
ICAgICAgICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9j
X3dvcmRzKHBhZ2VfY29uZmlnKSk7CisgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAg
ICAgICB2aWV3LT5hbGxvY19iaXRzX3NpemUgPSAodWludDhfdClwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOworICAgICAgICBwYXNfbG9ja19z
d2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7
CisKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogfQpAQCAtNzc1LDMwICs3ODksMjggQEAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9ibGVzc19wcmltb3JkaWFsX3BhcgogICAgIAogICAgIFBBU19B
U1NFUlQoKHVpbnQ4X3QpYWxsb2NfYml0c19vZmZzZXQgPT0gYWxsb2NfYml0c19vZmZzZXQpOwog
ICAgIHZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0ID0gKHVpbnQ4X3QpYWxsb2NfYml0c19vZmZzZXQ7
CisgICAgCisgICAgLyogV2UgaG9sZCB0aGUgcGFnZSBsb2NrLiBMb2NrIG9yZGVyaW5nIHNheXMg
dGhhdCB3ZSBjYW5ub3QgYWNxdWlyZSB0aGUgaGVhcCBsb2NrIHdoZW4KKyAgICAgICB3ZSBhcmUg
aG9sZGluZyB0aGUgcGFnZSBsb2NrLgorICAgICAgIAorICAgICAgIEx1Y2tpbHksIHRoaXMgaXMg
YSBmaW5lIHBsYWNlIHRvIGRyb3AgdGhlIHBhZ2UgbG9jay4KKyAgICAgICAKKyAgICAgICBUaGVy
ZWZvcmUsIHdlIHRyeS1sb2NrIHRoZSBoZWFwIGxvY2suIEl0J3MgYWx3YXlzIHNhZmUgdG8gZG8g
dGhhdC4gVXN1YWxseSBpdCB3aWxsIGp1c3QKKyAgICAgICBzdWNjZWVkLiBCdXQgaWYgaXQgZmFp
bHMsIHdlIHdpbGwgZHJvcCB0aGUgcGFnZSBsb2NrIGFuZCB0aGVuIGFjcXVpcmUgYm90aCBvZiB0
aGVtLiAqLworICAgIGlmICghcGFzX2hlYXBfbG9ja190cnlfbG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpKSB7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfdW5sb2Nr
KHBhZ2UsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7CisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9jayhwYWdlLCBwYWdlX2NvbmZpZyk7CisgICAgfQog
CiAgICAgaWYgKGFsbG9jX2JpdHNfc2l6ZSA9PSAxKQogICAgICAgICBhbGxvY19iaXRzID0gJnZp
ZXctPmlubGluZV9hbGxvY19iaXRzIC0gYWxsb2NfYml0c19vZmZzZXQ7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIC8qIFdlIGhvbGQgdGhlIHBhZ2UgbG9jay4gTG9jayBvcmRlcmluZyBzYXlzIHRoYXQg
d2UgY2Fubm90IGFjcXVpcmUgdGhlIGhlYXAgbG9jayB3aGVuCi0gICAgICAgICAgIHdlIGFyZSBo
b2xkaW5nIHRoZSBwYWdlIGxvY2suCi0gICAgICAgICAgIAotICAgICAgICAgICBMdWNraWx5LCB0
aGlzIGlzIGEgZmluZSBwbGFjZSB0byBkcm9wIHRoZSBwYWdlIGxvY2suCi0gICAgICAgICAgIAot
ICAgICAgICAgICBUaGVyZWZvcmUsIHdlIHRyeS1sb2NrIHRoZSBoZWFwIGxvY2suIEl0J3MgYWx3
YXlzIHNhZmUgdG8gZG8gdGhhdC4gVXN1YWxseSBpdCB3aWxsIGp1c3QKLSAgICAgICAgICAgc3Vj
Y2VlZC4gQnV0IGlmIGl0IGZhaWxzLCB3ZSB3aWxsIGRyb3AgdGhlIHBhZ2UgbG9jayBhbmQgdGhl
biBhY3F1aXJlIGJvdGggb2YgdGhlbS4gKi8KLSAgICAgICAgaWYgKCFwYXNfaGVhcF9sb2NrX3Ry
eV9sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsKLSAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfdW5sb2NrKHBhZ2UsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAg
ICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9sb2NrKHBhZ2UsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgfQotCiAgICAgICAgIGFsbG9jX2Jp
dHMgPSAodW5zaWduZWQqKXBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFudWFsX2Fs
aWdubWVudCgKICAgICAgICAgICAgIGFsbG9jX2JpdHNfc2l6ZSAqIHNpemVvZih1bnNpZ25lZCks
CiAgICAgICAgICAgICBzaXplb2YodW5zaWduZWQpLAogICAgICAgICAgICAgInBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy9hbGxvY19iaXRzIiwKICAgICAgICAgICAgIHBhc19vYmplY3RfYWxs
b2NhdGlvbikgLSBhbGxvY19iaXRzX29mZnNldDsKLQotICAgICAgICBwYXNfaGVhcF9sb2NrX3Vu
bG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIH0KICAgICAKICAg
ICBtZW1jcHkoYWxsb2NfYml0cyArIGFsbG9jX2JpdHNfb2Zmc2V0LApAQCAtODA3LDcgKzgxOSw5
IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfYmxlc3NfcHJpbW9yZGlhbF9wYXIKIAogICAgIHBhc19z
dG9yZV9zdG9yZV9mZW5jZSgpOwogCi0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0
cl9zdG9yZSgmdmlldy0+YWxsb2NfYml0cywgYWxsb2NfYml0cyk7CisgICAgcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHJfc3RvcmUoJnZpZXctPmFsbG9jX2JpdHMsIGFsbG9jX2JpdHMp
OworICAgIAorICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCShyZXZpc2lvbiAyODc0
ODQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY0LDcgKzY0LDcgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSgKIAogICAgIHJlc3VsdC0+YWxsb2NfYml0c19vZmZz
ZXQgPSAwOwogICAgIHJlc3VsdC0+YWxsb2NfYml0c19zaXplID0gMDsKLSAgICBwYXNfY29tcGFj
dF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZyZXN1bHQtPmFsbG9jX2JpdHMsIE5VTEwpOwor
ICAgIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyX3N0b3JlKCZyZXN1bHQtPmFsbG9j
X2JpdHMsIE5VTEwpOwogCiAgICAgcmVzdWx0LT5pbmxpbmVfYWxsb2NfYml0cyA9IDA7IC8qIFRo
ZXJlIGlzbid0IGEgcmVhbCBiaWcgbmVlZCB0byBkbyB0aGlzLCBidXQgaXQgaGVscHMga2VlcAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGluZ3Mgc2FuZS4gKi8KQEAg
LTE4Niw3ICsxODYsNyBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnko
CiAKICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPnNoYXJlZF92aWV3KTsKIAotICAgIGZ1bGxfYWxsb2Nf
Yml0cyA9IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgmdmll
dy0+YWxsb2NfYml0cyk7CisgICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHJfbG9hZCgmdmlldy0+YWxsb2NfYml0cyk7CiAKICAgICBpZiAoc2hhcmVk
X3ZpZXctPmlzX293bmVkKSB7CiAgICAgICAgIHBhZ2VfYm91bmRhcnkgPSAodWludHB0cl90KXBh
c19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfZ2V0X3BhZ2VfYm91bmRhcnkoCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfdGFn
Z2VkX3Vuc2lnbmVkX3B0ci5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
LmgiCisjaW5jbHVkZSAicGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCIKICNpbmNs
dWRlICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogI2lu
Y2x1ZGUgInBhc191dGlscy5oIgogCkBAIC00OCw3ICs0OCw3IEBAIHN0cnVjdCBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcgewogICAgIAogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXdfcHRyIHNoYXJlZF92aWV3OwogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWdu
ZWRfcHRyIGFsbG9jX2JpdHM7CisgICAgcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIg
YWxsb2NfYml0czsKIAogICAgIC8qIFRoZSBpbmRleCBjYW4gYmUgc21hbGwgc2luY2Ugd2Ugd291
bGQgbmV2ZXIgY3JlYXRlIGEgaGlnaC1pbmRleGVkIHBhcnRpYWwgdmlldy4gVGhhdCB3b3VsZCBu
b3QKICAgICAgICBoYXZlIGEgbWVhbmluZ2Z1bCBlZmZlY3Qgb24gdGhlIGZvb3RwcmludCBvZiB0
aGUgZGlyZWN0b3J5LgpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9y
X2lubGluZXMuaAkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2Miw3ICsyNjIsNyBAQCBwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxs
b2NhdGluCiAgICAgICAgICAgICB1bnNpZ25lZCBlbmRfd29yZF9pbmRleDsKICAgICAgICAgICAg
IHVuc2lnbmVkIHdvcmRfaW5kZXg7CiAgICAgICAgIAotICAgICAgICAgICAgZnVsbF9hbGxvY19i
aXRzID0gcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0
aWFsLT5hbGxvY19iaXRzKTsKKyAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19sZW5p
ZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyX2xvYWRfY29tcGFjdF9ub25fbnVsbCgmcGFydGlhbC0+
YWxsb2NfYml0cyk7CiAgICAgICAgIAogICAgICAgICAgICAgYmVnaW5fd29yZF9pbmRleCA9IHBh
cnRpYWwtPmFsbG9jX2JpdHNfb2Zmc2V0OwogICAgICAgICAgICAgZW5kX3dvcmRfaW5kZXggPSBi
ZWdpbl93b3JkX2luZGV4ICsgcGFydGlhbC0+YWxsb2NfYml0c19zaXplOwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGUuYwkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5
ICszMCw5IEBACiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiAjaW5jbHVk
ZSAicGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9sYXJnZV91
dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19kZWJ1Z19oZWFwLmgiCiAjaW5jbHVk
ZSAicGFzX2hlYXBfbG9jay5oIgorI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVh
cC5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUu
aCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCkBAIC02MywxMiArNjMsMTIgQEAgc3RhdGlj
IHZvaWQgZGVhbGxvY2F0ZShwYXNfdGhyZWFkX2xvY2FsXwogewogICAgIGNoYXIqIGJlZ2luOwog
Ci0gICAgcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKKyAg
ICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKICAgICAgICAgdGhyZWFk
X2xvY2FsX2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCiAgICAgICAgIFBBU19CSVRWRUNU
T1JfTlVNX0JZVEVTKHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5
KSk7CiAgICAgCiAgICAgYmVnaW4gPSAoY2hhciopdGhyZWFkX2xvY2FsX2NhY2hlOwotICAgIHBh
c19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCisgICAgcGFzX2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCiAgICAgICAgIGJlZ2luLAogICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2FsbG9jYXRvcl9pbmRleF9jYXBhY2l0
eSgKICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X2NhcGFj
aXR5KSk7CkBAIC0xMjksMTEgKzEyOSwxMSBAQCBzdGF0aWMgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogYWxsb2NhdGVfCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHByaW50ZigiQ2FjaGUgc2l6
ZTogJXp1XG4iLCBzaXplKTsKICAgICAKLSAgICByZXN1bHQgPSAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZSopcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGUoc2l6ZSwg
InBhc190aHJlYWRfbG9jYWxfY2FjaGUiKTsKKyAgICByZXN1bHQgPSAocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSopcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRlKHNpemUsICJwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlIik7CiAKICAgICBwYXNfemVyb19tZW1vcnkocmVzdWx0LCBzaXpl
KTsKIAotICAgIHJlc3VsdC0+c2hvdWxkX3N0b3BfYml0dmVjdG9yID0gKHVuc2lnbmVkIGludCop
cGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGUoCisgICAgcmVzdWx0
LT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IgPSAodW5zaWduZWQgaW50KilwYXNfbGFyZ2VfdXRpbGl0
eV9mcmVlX2hlYXBfYWxsb2NhdGUoCiAgICAgICAgIFBBU19CSVRWRUNUT1JfTlVNX0JZVEVTKGFs
bG9jYXRvcl9pbmRleF9jYXBhY2l0eSksCiAgICAgICAgICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
L3Nob3VsZF9zdG9wX2JpdHZlY3RvciIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448986</attachid>
            <date>2022-01-12 12:27:46 -0800</date>
            <delta_ts>2022-01-12 13:58:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>55316</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzkwNikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDIyLTAxLTExICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2xpYnBhc10gdGhyZWFkX2xvY2Fs
X2NhY2hlIHNob3VsZCBub3QgYmUgYWxsb2NhdGVkIGluIHRoZSBjb21wYWN0IGhlYXAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTA5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRocmVhZCBsb2NhbCBj
YWNoZXMgY2FuIGdldCBxdWl0ZSBsYXJnZSBiZWNhdXNlIG9mIGhvdyBsaWJwYXMgdXNlcyB0aGVt
LCB3ZSBjYW4gYWxsb2NhdGUgb25lIHBlcgorICAgICAgICB0aHJlYWQsIGFuZCB3ZSByZWFsbG9j
YXRlIHRoZW0gd2l0aCBleHBvbmVudGlhbCByZXNpemluZywgc28gdGhlcmUncyBhIGxvdCBvZiB3
YXN0ZWQgc3BhY2UgYW5kIGEKKyAgICAgICAgZGVjZW50IGFtb3VudCBvZiBmcmFnbWVudGF0aW9u
LiBUaGlzIHNob3dzIHVwIGFzIG9jY2FzaW9uYWwgY3Jhc2hlcyB0cnlpbmcgdG8gYWxsb2NhdGUg
YSB0aHJlYWQgbG9jYWwKKyAgICAgICAgY2FjaGUgb3V0IG9mIHRoZSBjb21wYWN0IGhlYXAuCisK
KyAgICAgICAgVGhpcyBtb3ZlcyB0aHJlYWQgbG9jYWwgY2FjaGVzIG91dCBvZiB0aGUgY29tcGFj
dCBoZWFwLiBUaGV5IHdlcmUgb25seSBldmVyIHRoZXJlIGJlY2F1c2UgcGFydGlhbCB2aWV3cwor
ICAgICAgICBzb21ldGltZXMgbmVlZCB0byBwb2ludCB0byB0aGUgbG9jYWxfYWxsb2NhdG9yJ3Mg
Yml0dmVjdG9yLCBidXQgdGhhdCdzIHBhcnQgb2YgdGhlIHRocmVhZCBsb2NhbCBjYWNoZS4KKyAg
ICAgICAgU28sIHRoYXQgbWVhbnMgdGhhdCBlaXRoZXIgdGhlIHBhcnRpYWwgdmlld3MnIGJpdHMg
cG9pbnRlciBjYW5ub3QgYmUgYSBjb21wYWN0IHBvaW50ZXIsIG9yIHRoZQorICAgICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUgbmVlZHMgdG8gYmUgaW4gdGhlIGNvbXBhY3QgaGVhcC4gU28sIHRoZSB0
aHJlYWRfbG9jYWxfY2FjaGUgZW5kZWQgdXAgaW4gdGhlIGNvbXBhY3QKKyAgICAgICAgaGVhcCB0
byBrZWVwIHRoYXQgcG9pbnRlciBzbWFsbC4KKworICAgICAgICBUaGlzIGNoYW5nZSB3b3JrcyBh
cm91bmQgdGhlIHByb2JsZW06IGl0J3MgcmFyZSB0aGF0IHRoZSBwYXJ0aWFsIHZpZXdzJyBiaXRz
IHBvaW50ZXIgcG9pbnRzIGF0CisgICAgICAgIHRoZSBsb2NhbF9hbGxvY2F0b3IncyBiaXRzLCBh
bmQgbm9uZSBvZiB0aGUgZmFzdCBwYXRoIGNhc2VzIHdoZXJlIHdlIGFjY2VzcyB0aGF0IHBvaW50
ZXIgd2lsbCBldmVyIHNlZQorICAgICAgICBpdCBpbiB0aGF0IHN0YXRlLiBTbywgdGhpcyBtYWtl
cyB0aGUgcG9pbnRlciBlaXRoZXIgcG9pbnQgdG8gYSB1dGlsaXR5LWhlYXAtYWxsb2NhdGVkIGJv
eCB0aGF0IGNvbnRhaW5zCisgICAgICAgIHRoZSBmdWxsIHBvaW50ZXIsIG9yIGl0IHBvaW50cyBh
dCB0aGUgYWN0dWFsIGFycmF5IGFsbG9jYXRlZCBpbiB0aGUgY29tcGFjdCBoZWFwLiBUaGUgdXRp
bGl0eSBoZWFwIGlzCisgICAgICAgIGluIHRoZSBjb21wYWN0IGhlYXAsIHNvIHRoZSBjb21wYWN0
IHBvaW50ZXIgY2FuIHBvaW50IGF0IGVpdGhlciBvbmUuIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0
aGlzIGlzCisgICAgICAgIGVuY2Fwc3VsYXRlZCBhcyBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci4g
SXQncyBhIGJpdCBncm9zczsgc3RvcmluZyB0byBpdCBvbmx5IHdvcmtzIHdoZW4geW91J3JlIGhv
bGRpbmcKKyAgICAgICAgdGhlIGhlYXAgbG9jaywgZm9yIGV4YW1wbGUuCisKKyAgICAgICAgU3Rp
bGwgdGVzdGluZyB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLCBidXQgaXQgYWxyZWFkeSBwYXNz
ZXMgYWxsIGxpYnBhcyB0ZXN0cy4KKworICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdh
dGVkX2hlYXBzLmM6CisgICAgICAgIChlbnVtZXJhdGVfcGFydGlhbF92aWV3KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaDoKKyAgICAg
ICAgKHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9wYXJ0aWFsX2J1dF9ub3RfcHJpbW9y
ZGlhbCk6CisgICAgICAgIChwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaDog
QWRkZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF9w
dHJfaW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmM6CisgICAgICAgIChw
YXNfbG9jYWxfYWxsb2NhdG9yX21vdmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRv
cl9zZXRfdXBfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRf
YWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldyk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3X2JlZm9yZV9zdG9wcGlu
Zyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKToKKyAg
ICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYzoKKyAgICAgICAgKGRlYWxsb2NhdGUp
OgorICAgICAgICAoYWxsb2NhdGVfY2FjaGUpOgorCiAyMDIyLTAxLTEwICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RhcnQgdXNpbmcgQysr
MjAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjE2LDYgKzYxNiwxMCBA
QAogCQkyQzQ4MTM0NDI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzRTI3
NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkM0ODEzNDUyNzQwNkEzRTAwNkNB
QjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzM0YyNzQwNkEzRTAwNkNBQjU1IC8qIHBh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJDOTFFNTUyMjcxQ0U0N0EwMEQ2N0ZGOSAvKiBwYXNfc2l6
ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkM5NzFE
MDQyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxRDAwMjc4
RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi87IH07
CisJCTJDOTcxRDA1Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFEMDEy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkM5NzFEMDYyNzhFNzk4NzAw
QzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUQwMjI3OEU3OTg3MDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyQzk3MUQwNzI3OEU3OTg3MDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxRDAzMjc4RTc5ODcwMEM5RTEyOSAv
KiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovOyB9OwogCQkyQ0UyQUUyRDI3
NTk2REVCMDBEMDJCQkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUyNjI3NTk2REVBMDBEMDJC
QkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkNFMkFFMkUyNzU5NkRFQjAwRDAyQkJDIC8qIHBh
c19wYWdlX2Jhc2VfYW5kX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDRTJBRTI3Mjc1OTZERUEwMEQwMkJCQyAvKiBwYXNfcGFnZV9iYXNlX2Fu
ZF9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMkNFMkFFMkYyNzU5NkRFQjAwRDAyQkJDIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0UyQUUyODI3NTk2
REVBMDBEMDJCQkMgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuYyAqLzsgfTsKQEAgLTEyNzUsNiAr
MTI3OSwxMCBAQAogCQkyQzQ4MTMzRTI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVf
bWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19leHBlbmRhYmxl
X21lbW9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVfbWVtb3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzNGMjc0MDZBM0UwMDZDQUI1
NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5Lmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkM5MUU1NTEyNzFDRTQ3QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1
cF9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zaXplX2xvb2t1
cF9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2l6ZV9sb29rdXBfbW9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzk3MUQwMDI3OEU3OTg3MDBDOUUxMjkg
LyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxRDAxMjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNf
bGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xl
bmllbnRfY29tcGFjdF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM5NzFE
MDIyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sZW5pZW50X2NvbXBhY3RfdW5z
aWduZWRfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzk3MUQwMzI3
OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25l
ZF9wdHIuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfdW5z
aWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDRTJBRTI2Mjc1OTZE
RUEwMEQwMkJCQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkNFMkFFMjcyNzU5NkRFQTAwRDAyQkJDIC8qIHBhc19wYWdlX2Jhc2Vf
YW5kX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2VfYmFz
ZV9hbmRfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9hbmRf
a2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0UyQUUyODI3NTk2REVBMDBE
MDJCQkMgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gcGFzX3BhZ2VfYmFzZV9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX2Jhc2VfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzAxLDYgKzE3MDksMTAgQEAKIAkJCQkwRkM0MEExRDI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5oICovLAogCQkJCTBGQzQwQUEzMjQ1MTQ5OEUwMDg3NkRBMCAvKiBw
YXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRkM0MEFGMTI0NTE0OTkzMDA4
NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCisJCQkJMkM5NzFEMDAy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAqLywK
KwkJCQkyQzk3MUQwMTI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIu
aCAqLywKKwkJCQkyQzk3MUQwMzI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuYyAqLywKKwkJCQkyQzk3MUQwMjI3OEU3OTg3MDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRjhBODEyNDI1RjgzRTI0
MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCAqLywKIAkJCQkwRkM0MEE3RDI0NTE0
OThCMDA4NzZEQTAgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEZDNDBBNEMyNDUx
NDk4ODAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCAqLywKQEAg
LTIxNzksNiArMjE5MSw3IEBACiAJCQkJMEY3RUI4MkQxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RM
U0VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjgzNTFGOTU0MUIwMDBGMUFCQ0IgLyog
SXNvVExTRW50cnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0NjFGOTU0MUIw
MDBGMUFCQ0IgLyogSXNvVExTSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM5NzFEMDQy
NzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGN0VCODQwMUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNMYXlvdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTE5M0VGMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRfaGVh
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1MTkzRUUyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9o
ZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg2LDYgKzIxOTksNyBAQAogCQkJCTE0
NEMwN0Y1MUM3QjcwMjYwMDUxQkI2QSAvKiBMYXJnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MTRDODk5MkQxQ0M1NzgzMzAwMjdBMDU3IC8qIExhcmdlUmFuZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0MEZBMDA1MTlDRTRCNjgwMEZGRDNDOCAvKiBMaW5lTWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJDOTcxRDA2Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxRDlCMDAxQzhFNTFDMDAwMEFC
QkEwIC8qIExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MjZFMjgxMUM4MzhFRTAwMDhFQjA0
MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEM4OTkyQjFDQzQ4NUU3MDAyN0Ew
NTcgLyogTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTIsNiArMjMyNiw3IEBACiAJCQkJMEZD
NDA5RUEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNl
cnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUU5MjQ1MTQ5NjQwMDg3NkRB
MCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY4NzAwMkMyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9j
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzk3MUQwNTI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xl
bmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDJFMjVBRjg5Qzkw
MDBFMUFCRiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjg3RkZFQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDBBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51
bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjgyLDYgKzI2OTcsNyBAQAogCQkJCTE0RjI3MUM4MThFQTM5OTAwMDhDMTUyRiAvKiBPYmplY3RU
eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzhBOURGMjQ2QjY4NzIwMDI5QzJCQiAvKiBP
YmplY3RUeXBlVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEY4NDcyNUMzNDY3NzAw
NzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDOTcxRDA3
Mjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxOEY4NDkyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRr
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDk1RDI0NTE0OTQ0MDA4NzZE
QTAgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5NjQyNDUxNDk0
NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NzEsNiArNTcxLDEx
IEBACiAJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEz
MkMyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi87IH07CiAJ
CTJDODVEQzQxMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM4NURDNDAy
NzEyOEYwRjAwMzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggKi87IH07CiAJ
CTJDOTFFNTUwMjcxOERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5MUU1NEYyNzE4REE5
QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi87IH07CisJCTJDOTcxQ0ZBMjc4
RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjgyNzhFMTFDMzAwQzlFMTI5
IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IH07CisJCTJDOTcxQ0ZCMjc4RTExQzMw
MEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjkyNzhFMTFDMzAwQzlF
MTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi87IH07CisJCTJDOTcx
Q0ZFMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRkMy
NzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi87
IH07CisJCTJDOTcxQ0ZGMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQzk3MUNGRDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5s
aW5lcy5oICovOyB9OworCQkyQ0I5QjE1MzI3OEY2Qzg1MDAzQThDMUIgLyogTG90c09mSGVhcHNB
bmRUaHJlYWRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDQjlCMTUyMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3Bw
ICovOyB9OwogCQkyQ0UyQUUzNTI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNFMkFFMzQyNzVB
OTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZp
bGUgc2VjdGlvbiAqLwogCkBAIC0xMjU5LDYgKzEyNjQsMTEgQEAKIAkJMkM0ODEzMkMyNzNGNDE1
OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyogcGFzX3RyeV9h
bGxvY2F0ZV9pbnRyaW5zaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaXplX2xvb2t1cF9tb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxQ0Y4Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNf
bGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Qzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9w
dHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM5NzFDRkMy
NzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWdu
ZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDOTcxQ0ZEMjc4RTEzNjMw
MEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCOUIxNTIyNzhGNkM4NTAwM0E4QzFCIC8q
IExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0Zml0VGVzdHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwog
CkBAIC0xMzU0LDcgKzEzNjQsNiBAQAogCQkJCTBGREVBNDVEMjI4QjY1MUIwMDg1RTM0MCAvKiBC
aXRmaWVsZFZlY3RvclRlc3RzLmNwcCAqLywKIAkJCQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMg
LyogQml0Zml0VGVzdHMuY3BwICovLAogCQkJCTBGNTMxODEwMjJDOTU0RUQwMDNGN0I2QSAvKiBC
aXR2ZWN0b3JUZXN0cy5jcHAgKi8sCi0JCQkJMkIyQTU4OUIyNzQyRDgxNTAwNUVFMDdDIC8qIFBH
TVRlc3RzLmNwcCAqLywKIAkJCQkwRjMxQTY2NzIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFu
VHJlZVRlc3RzLmNwcCAqLywKIAkJCQkwRkM2ODIzNjIxMjlENEVCMDAzQzZBMTMgLyogQ29hbGln
blRlc3RzLmNwcCAqLywKIAkJCQkyQzQ4MTMyQzI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJs
ZU1lbW9yeVRlc3RzLmNwcCAqLywKQEAgLTEzNjgsMTMgKzEzNzcsMTQgQEAKIAkJCQkwRkQ0OEI2
NjIzQjU4OTkxMDAyNkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCAq
LywKIAkJCQkwRjVCNjA5MzIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5
VGVzdHMuY3BwICovLAogCQkJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVz
dHMuY3BwICovLAotCQkJCTJCOEJDQUM2MjczOUE0NzkwMEIxQTQ2RiAvKiBQR01UZXN0cy5jcHAg
Ki8sCiAJCQkJMEZDNjQxOTAyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0cy5j
cHAgKi8sCiAJCQkJMEZFQjY2NjYyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xE
dW1wLmNwcCAqLywKIAkJCQkwRkVCNjY2NzIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5n
UG9vbER1bXAuaCAqLywKIAkJCQkwRkVCNjY2OTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VTaGFy
aW5nUG9vbFRlc3RzLmNwcCAqLywKIAkJCQkwRkVBNDVCRTIzNkNEQUVEMDBCNUEzNzUgLyogTG9j
a0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMuY3BwICovLAorCQkJCTJDQjlCMTUyMjc4RjZD
ODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwICovLAogCQkJCTBGRDIyRDA3
MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5IZWFwVGVzdHMuY3BwICovLAorCQkJCTJCMkE1ODlCMjc0
MkQ4MTUwMDVFRTA3QyAvKiBQR01UZXN0cy5jcHAgKi8sCiAJCQkJMEY1RTQ4MzkyM0Q2OUY2MTAw
NDZEQTVDIC8qIFJhY2VUZXN0cy5jcHAgKi8sCiAJCQkJMEZGMDhGMzUyMkE1OURCMzAwMzg2NTc1
IC8qIFJlZEJsYWNrVHJlZVRlc3RzLmNwcCAqLywKIAkJCQkwRkRFNTI1NTIzNDJCN0M0MDBBMDgw
OEYgLyogU3VzcGVuZFNjYXZlbmdlci5oICovLApAQCAtMTQxMCw4ICsxNDIwLDYgQEAKIAkJCQkw
RjVGRTdBMzI1QjYxNEYyMDAxODU5RkMgLyogaXNvX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBG
NTE2RUU2MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY1
MjlEREUyNDU1NDYwQzAwMzg1QThDIC8qIGlzb19oZWFwX3JlZi5oICovLAotCQkJCTJCMkE1ODk4
Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2Nh
dG9yLmMgKi8sCi0JCQkJMkIyQTU4OTcyNzQyRDgwMjAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkU3RUU3NDIyOUYwMTBGMDA0
RjQxNjYgLyogaXNvX2hlYXAuYyAqLywKIAkJCQkwRkU3RUU3NTIyOUYwMTBGMDA0RjQxNjYgLyog
aXNvX2hlYXAuaCAqLywKIAkJCQkwRjVFNUNFODIzQkVGMzVGMDBBQTBCNkYgLyogaXNvX3Rlc3Rf
aGVhcF9jb25maWcuYyAqLywKQEAgLTE2ODUsNiArMTY5MywxMCBAQAogCQkJCTBGQ0ZBNDk4MjM4
MzUyRUIwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCiAJCQkJMEY2RDU0
NzUyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jICovLAog
CQkJCTBGNkQ1NDcyMjNDNTczRTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hl
YXAuaCAqLywKKwkJCQkyQzk3MUNGRDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29t
cGFjdF9wdHJfaW5saW5lcy5oICovLAorCQkJCTJDOTcxQ0Y4Mjc4RTExQzMwMEM5RTEyOSAvKiBw
YXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovLAorCQkJCTJDOTcxQ0ZDMjc4RTEzNjMwMEM5RTEy
OSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovLAorCQkJCTJDOTcxQ0Y5
Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICov
LAogCQkJCTBGOEE4MDI3MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5o
ICovLAogCQkJCTBGMzFBNjQzMjNFMzUwOUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24u
aCAqLywKIAkJCQkwRkQ0OEIwMjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9jb25maWdfa2luZC5oICovLApAQCAtMTc0MiwxMyArMTc1NCwxMyBAQAogCQkJCTBGRDIyQ0ZE
MjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAqLywKIAkJCQkwRjRG
NjFDOTI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0
LmMgKi8sCiAJCQkJMEY0RjYxQzgyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2Vy
dmF0aW9uX3BhZ2VfbGlzdC5oICovLAotCQkJCTJCOEJDQUMzMjczOUE0NTkwMEIxQTQ2RiAvKiBw
YXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgKi8sCi0JCQkJMkI4QkNB
QzIyNzM5QTQ1OTAwQjFBNDZGIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxv
Y2F0b3IuaCAqLywKIAkJCQkwRjZENTQ3MzIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3BoeXNpY2Fs
X21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCAqLywKIAkJCQkwRkYyNDhGNzIyRkM5RURB
MDA3NzIwMkUgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jICovLAogCQkJCTBG
NzgwODg2MjJGQTJFNDkwMEYzNzQ1MSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
LmggKi8sCiAJCQkJMEZERUE1NzgyMjhFMjM0NTAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVh
cF9yZWYuYyAqLywKIAkJCQkwRkRFQTU3NzIyOEUyMzQ0MDA4NUUzNDAgLyogcGFzX3ByaW1pdGl2
ZV9oZWFwX3JlZi5oICovLAorCQkJCTJCMkE1ODk4Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJv
YmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgKi8sCisJCQkJMkIyQTU4OTcyNzQy
RDgwMjAwNUVFMDdDIC8qIHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3Iu
aCAqLywKIAkJCQkwRjlBMUNBRDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmlu
c2ljX2hlYXAuaCAqLywKIAkJCQkwRjRGNjE1QTI1OUJGNkVDMDA4QjRBODIgLyogcGFzX3B0cl9o
YXNoX21hcC5oICovLAogCQkJCTBGNEY2MTQ2MjU5QkIxMDkwMDhCNEE4MiAvKiBwYXNfcHRyX2hh
c2hfc2V0LmggKi8sCkBAIC0yMDUwLDYgKzIwNjIsNyBAQAogCQkJCTBGOUExRDQxMjU1QUYyNzkw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFN0VFMDQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRTdFRTA1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVh
cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM5NzFDRkIyNzhFMTFDMzAwQzlFMTI5IC8qIHBhc19s
ZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCNjA4
NDIzNUU1NzIwMDBDQUU2MjkgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRTdFRTA4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY2FyZXNf
YWJvdXRfc2l6ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMxQTY2NjIzRThBOTQyMDAy
QzBDQTMgLyogcGFzX2NhcnRlc2lhbl90cmVlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNDYsNiAr
MjE1OSw3IEBACiAJCQkJMEZENDhCNTgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9j
X2JpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjNBMjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA4RjNB
MjJBNUI0MDMwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJDOTcxQ0ZBMjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21w
YWN0X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFNjAyMjlFMTRGQTAwNEY0MTY2IC8q
IHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU2NDIy
OUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlB
MUQ0RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMjUzLDYgKzIyNjcsNyBAQAogCQkJCTBGNEY2MEZCMjU5NzlCQzgwMDhCNEE4MiAv
KiBwYXNfcm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOTMyNkMyMkY3M0U4NTAwRkJBNzEz
IC8qIHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjgxMjcyMjJCRDRCRjQw
MDM2QTAyQiAvKiBwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM5
NzFDRkYyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzEwMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfc2Vn
cmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCNTYy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZENDhCNDcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1OTksNiArMjYxNCw3IEBA
CiAJCQkJMEZBMTg1NDYyMzZCM0M4MjAwMzYwOUFEIC8qIElzb0hlYXBDaGFvc1Rlc3RzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRjI0OEZEMjMwQ0M0Q0IwMDc3MjAyRSAvKiBJc29IZWFwUGFn
ZVNoYXJpbmdUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI2NzIzQjU4OTkxMDAy
NkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTJDQjlCMTUzMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1QjYwOTQyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hl
YXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDRTJBRTM1Mjc1
QTk1M0UwMEQwMkJCQyAvKiBCaXRmaXRUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjUx
OTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjY4MSw2ICsyNjk3LDcgQEAKIAkJCQkwRjRGNjExQjI1OTgzOEIxMDA4QjRBODIgLyogcGFz
X2VudW1lcmF0b3JfcmVnaW9uLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjE5MzI1NjIyRUQwNEE2
MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEIzNDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyBp
biBTb3VyY2VzICovLAorCQkJCTJDOTcxQ0ZFMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVu
dF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMkM0ODEzMjgyNzNG
MzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFN0VEQkEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9nY2QuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9m
cmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVk
X2hlYXBzLmMJKHJldmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTE1LDcgKzUxNSwxMSBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfcGFydGlhbF92aWV3KHBh
c19lCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkZvdW5kIGFsbG9jYXRvciA9
ICVwXG4iLCBhbGxvY2F0b3IpOwogCi0gICAgZnVsbF9hbGxvY19iaXRzLmJpdHMgPSBwYXNfY29t
cGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5h
bGxvY19iaXRzKTsKKyAgICAvKiBUaGlzIGlzIHNvIHdlaXJkOiB0aGUgc2l6ZSB3ZSBwYXNzIGlz
IG9ubHkgdmFsaWQgd2hlbiB2aWV3LT5hbGxvY19iaXRzIGlzIHBvaW50aW5nIGF0IHRoZQorICAg
ICAgIGxvY2FsX2FsbG9jYXRvcidzIGJpdHMuIEJ1dCB0aGF0J3MgdGhlIG9ubHkgdGltZSB0aGF0
IGxvYWRfcmVtb3RlIHdpbGwgZ28gZG93biB0aGUgcGF0aCB3aGVyZSBpdCBuZWVkcworICAgICAg
IHRvIGtub3cgdGhlIHNpemUuIFNvLCBpdCdzIGZpbmUsIEkgZ3Vlc3MuICovCisgICAgZnVsbF9h
bGxvY19iaXRzLmJpdHMgPSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0cl9sb2FkX3Jl
bW90ZSgKKyAgICAgICAgZW51bWVyYXRvciwgJnZpZXctPmFsbG9jX2JpdHMsIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcygqcGFnZV9jb25maWcpKTsKICAgICBmdWxs
X2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbiA9IHZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0Owog
ICAgIGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2VuZCA9IHZpZXctPmFsbG9jX2JpdHNfb2Zm
c2V0ICsgdmlldy0+YWxsb2NfYml0c19zaXplOwogICAgIHJlY29yZF9wYWdlX29iamVjdHMoCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRz
X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAkocmV2aXNpb24gMjg3NDg0KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChj
KSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw2ICs0OSwxOSBAQCBwYXNfZnVsbF9hbGxvY19iaXRz
X2NyZWF0ZV9mb3JfZXhjbHVzaXZlCiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
ZnVsbF9hbGxvY19iaXRzCitwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbF9i
dXRfbm90X3ByaW1vcmRpYWwocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQoreworICAgIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OworICAgIAorICAgIHBhcnRpYWxf
dmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyk7CisKKyAgICByZXR1
cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGUoCisgICAgICAgIHBhc19sZW5pZW50X2NvbXBh
Y3RfdW5zaWduZWRfcHRyX2xvYWRfY29tcGFjdF9ub25fbnVsbCgmcGFydGlhbF92aWV3LT5hbGxv
Y19iaXRzKSwKKyAgICAgICAgcGFydGlhbF92aWV3LT5hbGxvY19iaXRzX29mZnNldCwKKyAgICAg
ICAgcGFydGlhbF92aWV3LT5hbGxvY19iaXRzX29mZnNldCArIHBhcnRpYWxfdmlldy0+YWxsb2Nf
Yml0c19zaXplKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9j
X2JpdHMKIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9wYXJ0aWFsKHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldykKIHsKICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRp
YWxfdmlldzsKQEAgLTU2LDcgKzY5LDcgQEAgcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9y
X3BhcnRpYWwocAogICAgIHBhcnRpYWxfdmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3Bh
cnRpYWwodmlldyk7CiAKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGUoCi0g
ICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgmcGFy
dGlhbF92aWV3LT5hbGxvY19iaXRzKSwKKyAgICAgICAgcGFzX2xlbmllbnRfY29tcGFjdF91bnNp
Z25lZF9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5hbGxvY19iaXRzKSwKICAgICAgICAgcGFydGlh
bF92aWV3LT5hbGxvY19iaXRzX29mZnNldCwKICAgICAgICAgcGFydGlhbF92aWV3LT5hbGxvY19i
aXRzX29mZnNldCArIHBhcnRpYWxfdmlldy0+YWxsb2NfYml0c19zaXplKTsKIH0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfcHRyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmll
bnRfY29tcGFjdF9wdHIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9ICisjZGVmaW5lIFBBU19MRU5JRU5U
X0NPTVBBQ1RfUFRSX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRy
LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworLyogWW91IGNhbiB1c2UgdGhpcyBwb2ludGVy
IHRvIHBvaW50IGF0IHNvbWV0aGluZyB0aGF0IGlzIGxpa2VseSB0byBiZSBpbiB0aGUgY29tcGFj
dCBoZWFwIGJ1dCB0aGF0CisgICBzb21ldGltZXMgd29uJ3QgYmUuIFRvIG1ha2UgdGhpcyB3b3Jr
LCBpdCdzIG5lY2Vzc2FyeSB0byBiZSBhYmxlIHRvIGRlc3RydWN0IHRoZSBwb2ludGVyLCBhbmQg
aXQncworICAgbm90IGxlZ2FsIHRvIHBhc3MgdGhlIHBvaW50ZXIgYXJvdW5kIGJ5IHZhbHVlLiBB
bHNvLCB0aGUgdGhpbmcgYmVpbmcgcG9pbnRlZCB0byBtdXN0IGhhdmUgdGhlIGxvd2VzdAorICAg
Yml0IGF2YWlsYWJsZSAoaS5lLiB0aGF0IGJpdCBtdXN0IGFsd2F5cyBiZSB6ZXJvKS4gKi8KKwor
I2RlZmluZSBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9JTklUSUFMSVpFUiB7IC5wdHIgPSBQQVNf
Q09NUEFDVF9UQUdHRURfQVRPTUlDX1BUUl9JTklUSUFMSVpFUiB9CisKKyNkZWZpbmUgUEFTX0xF
TklFTlRfQ09NUEFDVF9QVFJfRlVMTF9QVFJfQklUICgodWludHB0cl90KTEpCisKKyNkZWZpbmUg
UEFTX0RFQ0xBUkVfTEVOSUVOVF9DT01QQUNUX1BUUih0eXBlLCBuYW1lKSBcCisgICAgXAorICAg
IFBBU19ERUZJTkVfQ09NUEFDVF9UQUdHRURfQVRPTUlDX1BUUih0eXBlKiwgbmFtZSAjIyBfY29t
cGFjdF90YWdnZWRfYXRvbWljX3B0cik7IFwKKyAgICBcCisgICAgc3RydWN0IG5hbWU7IFwKKyAg
ICB0eXBlZGVmIHN0cnVjdCBuYW1lIG5hbWU7IFwKKyAgICBcCisgICAgc3RydWN0IG5hbWUgeyBc
CisgICAgICAgIG5hbWUgIyMgX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIgcHRyOyBcCisgICAg
fTsgXAorICAgIFwKKyAgICBQQVNfQVBJIHZvaWQgbmFtZSAjIyBfZGVzdHJ1Y3QobmFtZSogcHRy
KTsgXAorICAgIFBBU19BUEkgdm9pZCBuYW1lICMjIF9zdG9yZShuYW1lKiBwdHIsIHR5cGUqIHZh
bHVlKTsgXAorICAgIFBBU19BUEkgdHlwZSogbmFtZSAjIyBfbG9hZChuYW1lKiBwdHIpOyBcCisg
ICAgXAorICAgIHN0YXRpYyBpbmxpbmUgdHlwZSogbmFtZSAjIyBfbG9hZF9jb21wYWN0KG5hbWUq
IHB0cikgXAorICAgIHsgXAorICAgICAgICB0eXBlKiByZXN1bHQ7IFwKKyAgICAgICAgcmVzdWx0
ID0gbmFtZSAjIyBfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0cl9sb2FkKCZwdHItPnB0cik7IFwK
KyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCEoKHVpbnRwdHJfdClyZXN1bHQgJiBQQVNfTEVO
SUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpKTsgXAorICAgICAgICByZXR1cm4gcmVzdWx0
OyBcCisgICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBpbmxpbmUgdHlwZSogbmFtZSAjIyBfbG9h
ZF9jb21wYWN0X25vbl9udWxsKG5hbWUqIHB0cikgXAorICAgIHsgXAorICAgICAgICB0eXBlKiBy
ZXN1bHQ7IFwKKyAgICAgICAgcmVzdWx0ID0gbmFtZSAjIyBfY29tcGFjdF90YWdnZWRfYXRvbWlj
X3B0cl9sb2FkX25vbl9udWxsKCZwdHItPnB0cik7IFwKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKCEoKHVpbnRwdHJfdClyZXN1bHQgJiBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BU
Ul9CSVQpKTsgXAorICAgICAgICByZXR1cm4gcmVzdWx0OyBcCisgICAgfSBcCisgICAgXAorICAg
IFBBU19BUEkgdHlwZSogbmFtZSAjIyBfbG9hZF9yZW1vdGUocGFzX2VudW1lcmF0b3IqIGVudW1l
cmF0b3IsIG5hbWUqIHB0ciwgc2l6ZV90IHNpemUpOyBcCisgICAgXAorICAgIHN0cnVjdCBwYXNf
ZHVtbXkKKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19MRU5JRU5UX0NPTVBB
Q1RfUFRSX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVu
aWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFBBU19MRU5JRU5UX0NPTVBBQ1RfUFRSX0lOTElORVNfSAorI2RlZmluZSBQQVNfTEVOSUVOVF9D
T01QQUNUX1BUUl9JTkxJTkVTX0gKKworI2luY2x1ZGUgInBhc19sZW5pZW50X2NvbXBhY3RfcHRy
LmgiCisjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7
CisKKyNkZWZpbmUgUEFTX0RFRklORV9MRU5JRU5UX0NPTVBBQ1RfUFRSKHR5cGUsIG5hbWUpIFwK
KyAgICB2b2lkIG5hbWUgIyMgX2Rlc3RydWN0KG5hbWUqIHB0cikgXAorICAgIHsgXAorICAgICAg
ICB0eXBlKiBvbGRfdmFsdWU7IFwKKyAgICAgICAgb2xkX3ZhbHVlID0gbmFtZSAjIyBfY29tcGFj
dF90YWdnZWRfYXRvbWljX3B0cl9sb2FkKCZwdHItPnB0cik7IFwKKyAgICAgICAgaWYgKCh1aW50
cHRyX3Qpb2xkX3ZhbHVlICYgUEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfRlVMTF9QVFJfQklUKSB7
IFwKKyAgICAgICAgICAgIHBhc191dGlsaXR5X2hlYXBfZGVhbGxvY2F0ZSggXAorICAgICAgICAg
ICAgICAgICh2b2lkKikoKHVpbnRwdHJfdClvbGRfdmFsdWUgJiB+UEFTX0xFTklFTlRfQ09NUEFD
VF9QVFJfRlVMTF9QVFJfQklUKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBcCisgICAgXAorICAg
IHZvaWQgbmFtZSAjIyBfc3RvcmUobmFtZSogcHRyLCB0eXBlKiB2YWx1ZSkgXAorICAgIHsgXAor
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoISgodWludHB0cl90KXZhbHVlICYgUEFTX0xFTklF
TlRfQ09NUEFDVF9QVFJfRlVMTF9QVFJfQklUKSk7IFwKKyAgICAgICAgbmFtZSAjIyBfZGVzdHJ1
Y3QocHRyKTsgXAorICAgICAgICBpZiAoKHVpbnRwdHJfdCl2YWx1ZSA+PSBQQVNfSU5URVJOQUxf
TUlOX0FMSUdOIFwKKyAgICAgICAgICAgICYmICh1aW50cHRyX3QpdmFsdWUgLSBwYXNfY29tcGFj
dF9oZWFwX3Jlc2VydmF0aW9uX2Jhc2UgPj0gcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbl9z
aXplKSB7IFwKKyAgICAgICAgICAgIHR5cGUqKiBib3g7IFwKKyAgICAgICAgICAgIGJveCA9IHBh
c191dGlsaXR5X2hlYXBfYWxsb2NhdGUoc2l6ZW9mKHR5cGUqKSwgI25hbWUgIi9ib3giKTsgXAor
ICAgICAgICAgICAgKmJveCA9IHZhbHVlOyBcCisgICAgICAgICAgICB2YWx1ZSA9ICh0eXBlKiko
KHVpbnRwdHJfdClib3ggfCBQQVNfTEVOSUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpOyBc
CisgICAgICAgIH0gXAorICAgICAgICBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRy
X3N0b3JlKCZwdHItPnB0ciwgdmFsdWUpOyBcCisgICAgfSBcCisgICAgXAorICAgIHR5cGUqIG5h
bWUgIyMgX2xvYWQobmFtZSogcHRyKSBcCisgICAgeyBcCisgICAgICAgIHR5cGUqIHJlc3VsdDsg
XAorICAgICAgICByZXN1bHQgPSBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyX2xv
YWQoJnB0ci0+cHRyKTsgXAorICAgICAgICBpZiAoKHVpbnRwdHJfdClyZXN1bHQgJiBQQVNfTEVO
SUVOVF9DT01QQUNUX1BUUl9GVUxMX1BUUl9CSVQpIFwKKyAgICAgICAgICAgIHJldHVybiAqKHR5
cGUqKikoKHVpbnRwdHJfdClyZXN1bHQgJiB+UEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfRlVMTF9Q
VFJfQklUKTsgXAorICAgICAgICByZXR1cm4gcmVzdWx0OyBcCisgICAgfSBcCisgICAgXAorICAg
IHR5cGUqIG5hbWUgIyMgX2xvYWRfcmVtb3RlKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLCBu
YW1lKiBwdHIsIHNpemVfdCBzaXplKSBcCisgICAgeyBcCisgICAgICAgIHR5cGUqIHJlc3VsdDsg
XAorICAgICAgICByZXN1bHQgPSBuYW1lICMjIF9jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyX2xv
YWRfcmVtb3RlKGVudW1lcmF0b3IsICZwdHItPnB0cik7IFwKKyAgICAgICAgaWYgKCh1aW50cHRy
X3QpcmVzdWx0ICYgUEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfRlVMTF9QVFJfQklUKSB7IFwKKyAg
ICAgICAgICAgIHJldHVybiAodHlwZSopcGFzX2VudW1lcmF0b3JfcmVhZCggXAorICAgICAgICAg
ICAgICAgIGVudW1lcmF0b3IsIFwKKyAgICAgICAgICAgICAgICAqKHR5cGUqKikoKHVpbnRwdHJf
dClyZXN1bHQgJiB+UEFTX0xFTklFTlRfQ09NUEFDVF9QVFJfRlVMTF9QVFJfQklUKSwgXAorICAg
ICAgICAgICAgICAgIHNpemUpOyBcCisgICAgICAgIH0gXAorICAgICAgICByZXR1cm4gcmVzdWx0
OyBcCisgICAgfSBcCisgICAgXAorICAgIHN0cnVjdCBwYXNfZHVtbXkKKworUEFTX0VORF9FWFRF
Uk5fQzsKKworI2VuZGlmIC8qIFBBU19MRU5JRU5UX0NPTVBBQ1RfUFRSX0lOTElORVNfSCAqLwor
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVuaWVudF9jb21w
YWN0X3Vuc2lnbmVkX3B0ci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJwYXNfY29u
ZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5jbHVkZSAicGFzX2xlbmllbnRfY29t
cGFjdF91bnNpZ25lZF9wdHIuaCIKKworI2luY2x1ZGUgInBhc19sZW5pZW50X2NvbXBhY3RfcHRy
X2lubGluZXMuaCIKKworUEFTX0RFRklORV9MRU5JRU5UX0NPTVBBQ1RfUFRSKHVuc2lnbmVkLCBw
YXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0cik7CisKKyNlbmRpZiAvKiBMSUJQQVNfRU5B
QkxFRCAqLworCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
ZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBQQVNfTEVOSUVOVF9DT01QQUNUX1VOU0lHTkVEX1BUUl9ICisjZGVmaW5lIFBBU19MRU5JRU5U
X0NPTVBBQ1RfVU5TSUdORURfUFRSX0gKKworI2luY2x1ZGUgInBhc19sZW5pZW50X2NvbXBhY3Rf
cHRyLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworUEFTX0RFQ0xBUkVfTEVOSUVOVF9DT01Q
QUNUX1BUUih1bnNpZ25lZCwgcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIpOworCitQ
QVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xFTklFTlRfQ09NUEFDVF9VTlNJR05F
RF9QVFJfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODc0ODQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMTgsNiArMTE4LDggQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX21v
dmUocGFzX2xvY2FsXwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92
aWV3OwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmlldzsKIAorICAg
IHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsgLyogTmVlZGVkIHRvIG1vZGlmeSBhIGxlbmll
bnRfY29tcGFjdF9wdHIuICovCisKICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeShzcmMtPnZpZXcpOwogICAgIAogICAgIHNpemUgPSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpOwpA
QCAtMTM1LDggKzEzNyw4IEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9tb3ZlKHBhc19sb2Nh
bF8KICAgICAgICBpcyB0aGUgb25seSBjbGllbnQgb2YgcGFydGlhbF92aWV3LT5hbGxvY19iaXRz
IGJlaW5nIHJpZ2h0IGR1cmluZyBwcmltb3JkaWFsIG1vZGUsIGFuZCBpdAogICAgICAgIGhhcHBl
bnMgdG8gaG9sZCB0aGUgb3duZXJzaGlwIGxvY2suICovCiAgICAgcGFzX2xvY2tfbG9jaygmc2hh
cmVkX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICBpZiAocGFzX2NvbXBhY3RfdGFnZ2VkX3Vu
c2lnbmVkX3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMpID09ICh1bnNpZ25lZCop
c3JjLT5iaXRzKQotICAgICAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3Jl
KCZwYXJ0aWFsX3ZpZXctPmFsbG9jX2JpdHMsICh1bnNpZ25lZCopZHN0LT5iaXRzKTsKKyAgICBp
ZiAocGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5h
bGxvY19iaXRzKSA9PSAodW5zaWduZWQqKXNyYy0+Yml0cykKKyAgICAgICAgcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHJfc3RvcmUoJnBhcnRpYWxfdmlldy0+YWxsb2NfYml0cywgKHVu
c2lnbmVkKilkc3QtPmJpdHMpOwogICAgIHBhc19sb2NrX3VubG9jaygmc2hhcmVkX3ZpZXctPm93
bmVyc2hpcF9sb2NrKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJl
dmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUyLDcgKzM1Miw3
IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyhwYXMKIAogICAgIHBhcnRp
YWxfdmlld19hc192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXcoKHBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyopdmlldyk7CiAgICAgCi0gICAgZnVsbF9hbGxvY19i
aXRzID0gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3BhcnRpYWwocGFydGlhbF92aWV3
X2FzX3ZpZXcpOworICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19mdWxsX2FsbG9jX2JpdHNfY3Jl
YXRlX2Zvcl9wYXJ0aWFsX2J1dF9ub3RfcHJpbW9yZGlhbChwYXJ0aWFsX3ZpZXdfYXNfdmlldyk7
CiAgICAgCiAgICAgYWxsb2NhdG9yLT52aWV3ID0gcGFydGlhbF92aWV3X2FzX3ZpZXc7CiAKQEAg
LTU5OSwyMSArNTk5LDE2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19p
bl8KICAgICAgICAgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5ID0gcGFnZV9jb25maWcuc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5X3NlbGVjdG9yKGhlYXAsIHNpemVfZGlyZWN0b3J5KTsKICAgICAgICAgCiAg
ICAgICAgIHNoYXJlZF92aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X2ZpbmRfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICBzaGFyZWRfcGFnZV9kaXJlY3Rvcnks
IHNpemUsIGFsaWdubWVudCwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKKyAgICAgICAgICAgIHNoYXJlZF9w
YWdlX2RpcmVjdG9yeSwgc2l6ZSwgYWxpZ25tZW50LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAK
ICAgICAgICAgUEFTX0FTU0VSVChzaGFyZWRfdmlldyk7CiAgICAgICAgIAotICAgICAgICBwYXNf
bG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAgICAmc2hhcmVkX3ZpZXctPmNvbW1p
dF9sb2NrLAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2Nr
X2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOworICAgICAgICBwYXNfbG9ja19sb2NrKCZzaGFyZWRf
dmlldy0+Y29tbWl0X2xvY2spOwogCiAgICAgICAgIGhhbmRsZSA9IHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2NvbW1pdF9wYWdlX2lmX25lY2Vzc2FyeSgKICAgICAgICAgICAgIHNoYXJlZF92
aWV3LCBoZWFwLCBzaGFyZWRfcGFnZV9kaXJlY3RvcnksIHZpZXcsIHBhZ2VfY29uZmlnKTsKICAg
ICAgICAgaWYgKCFoYW5kbGUpIHsKLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRp
b25hbGx5KAotICAgICAgICAgICAgICAgICZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssCi0gICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9k
ZShwYWdlX2NvbmZpZykpOworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzaGFyZWRfdmll
dy0+Y29tbWl0X2xvY2spOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAK
QEAgLTY2MywxMyArNjU4LDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5n
X2luXwogCiAgICAgICAgIHBhc196ZXJvX21lbW9yeShhbGxvY2F0b3ItPmJpdHMsIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhwYWdlX2NvbmZpZykpOwogCi0gICAg
ICAgIC8qIERvaW5nIHRoaXMgaGVscHMgaGVhcCBpbnRyb3NwZWN0aW9uIGJ1dCBpc24ndCBvdGhl
cndpc2UgbmVjZXNzYXJ5LiAqLwotICAgICAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRf
cHRyX3N0b3JlKCZ2aWV3LT5hbGxvY19iaXRzLCAodW5zaWduZWQqKWFsbG9jYXRvci0+Yml0cyk7
Ci0gICAgICAgIFBBU19BU1NFUlQoIXZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0KTsKLSAgICAgICAg
UEFTX0FTU0VSVCgodWludDhfdClwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nf
d29yZHMocGFnZV9jb25maWcpCi0gICAgICAgICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKSk7Ci0gICAgICAgIHZpZXct
PmFsbG9jX2JpdHNfc2l6ZSA9ICh1aW50OF90KXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251
bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZyk7Ci0KICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zZXRfdXBfcHJpbW9yZGlhbF9idW1wKAogICAgICAgICAgICAgYWxsb2NhdG9yLCB2aWV3LCBo
YW5kbGUsIHBhZ2UsICZoZWxkX2xvY2ssIGJ1bXBfcmVzdWx0LAogICAgICAgICAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9wcmltb3JkaWFsX2J1bXBfc3Rhc2hfd2hvbGVfYWxsb2NhdGlvbiwKQEAg
LTY3OSwxMSArNjY3LDM3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19p
bl8KIAogICAgICAgICB2aWV3LT5pc19hdHRhY2hlZF90b19zaGFyZWRfaGFuZGxlID0gdHJ1ZTsK
IAotICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Ci0gICAgICAgIHBh
c19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KAotICAgICAgICAgICAgJnNoYXJlZF92aWV3LT5j
b21taXRfbG9jaywKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBf
bG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZz
aGFyZWRfdmlldy0+Y29tbWl0X2xvY2spOworCisgICAgICAgIC8qIFRoaXMgY29kZSB0byBzZXQg
dGhlIHZpZXcncyBhbGxvY19iaXRzIGlzIHByaW1hcmlseSBmb3IgaGVhcCBlbnVtZXJhdGlvbi4K
KyAgICAgICAgICAgCisgICAgICAgICAgIElmIHRoZSBlbnVtZXJhdG9yIHJhbiByaWdodCBub3cg
dGhlbiAoYmVmb3JlIHdlIGRvIHRoaXMgc3R1ZmYpLCB0aGVuIGl0IHdvdWxkIHNlZToKICAgICAg
ICAgCisgICAgICAgICAgIC0gQSBidW5jaCBvZiBwYWdlIGFsbG9jIGJpdHMgc2V0IGZvciB0aGUg
b2JqZWN0cyB3ZSBhcmUgYWJvdXQgdG8gYWxsb2NhdGUuCisgICAgICAgICAgIC0gTm8gcGFydGlh
bCB2aWV3cyBzYXkgdGhhdCB0aGV5IG93biB0aG9zZSBvYmplY3RzLgorICAgICAgICAgICAtIExv
Y2FsIGFsbG9jYXRvciBjbGFpbXMgdG8gb3duIHRob3NlIG9iamVjdHMuCisgICAgICAgIAorICAg
ICAgICAgICBTbywgd2Ugd291bGQgcmVwb3J0IHRoYXQgdGhvc2Ugb2JqZWN0cyBhcmUgbm90IGxp
dmUgcmlnaHQgbm93LiBJIGJlbGlldmUgdGhleSB3b3VsZCBzaG93IHVwCisgICAgICAgICAgIGFz
ICJtZXRhIiBhbGxvY2F0aW9ucywgbm90IGV2ZW4gYXMgb2JqZWN0cy4KKyAgICAgICAgCisgICAg
ICAgICAgIEltbWVkaWF0ZWx5IGFmdGVyIHNldHRpbmdzIHRoZSB2aWV3J3MgYWxsb2NfYml0cyBh
bmQgYWxsb2NfYml0c19zaXplLCB3ZSB3aWxsIGtub3cgdGhhdCB0aGUKKyAgICAgICAgICAgb2Jq
ZWN0cyBleGlzdCAodmlldyBhbGxvYyBiaXRzIGFyZSBzZXQpLCBidXQgdGhleSBhcmUgZGVhZCAo
ZGVzcGl0ZSBwYWdlIGFsbG9jIGJpdHMgYWxzbyBiZWluZworICAgICAgICAgICBzZXQsIHRoZSBv
YmplY3RzIGFyZSBwYXJ0IG9mIHRoZSBidW1wIHJhbmdlKS4gKi8KKyAgICAgICAgaWYgKCFwYXNf
aGVhcF9sb2NrX3RyeV9sb2NrKCkpIHsKKyAgICAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVs
ZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBw
YWdlX2NvbmZpZyk7CisgICAgICAgIH0KKworICAgICAgICBwYXNfbGVuaWVudF9jb21wYWN0X3Vu
c2lnbmVkX3B0cl9zdG9yZSgmdmlldy0+YWxsb2NfYml0cywgKHVuc2lnbmVkKilhbGxvY2F0b3It
PmJpdHMpOworICAgICAgICBQQVNfQVNTRVJUKCF2aWV3LT5hbGxvY19iaXRzX29mZnNldCk7Cisg
ICAgICAgIFBBU19BU1NFUlQoKHVpbnQ4X3QpcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVt
X2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKQorICAgICAgICAgICAgICAgICAgID09IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZykpOworICAgICAg
ICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgdmlldy0+YWxsb2NfYml0c19zaXplID0g
KHVpbnQ4X3QpcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2Vf
Y29uZmlnKTsKKyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAg
ICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIH0KQEAgLTc3NSwzMCArNzg5LDI4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfYmxlc3NfcHJp
bW9yZGlhbF9wYXIKICAgICAKICAgICBQQVNfQVNTRVJUKCh1aW50OF90KWFsbG9jX2JpdHNfb2Zm
c2V0ID09IGFsbG9jX2JpdHNfb2Zmc2V0KTsKICAgICB2aWV3LT5hbGxvY19iaXRzX29mZnNldCA9
ICh1aW50OF90KWFsbG9jX2JpdHNfb2Zmc2V0OworICAgIAorICAgIC8qIFdlIGhvbGQgdGhlIHBh
Z2UgbG9jay4gTG9jayBvcmRlcmluZyBzYXlzIHRoYXQgd2UgY2Fubm90IGFjcXVpcmUgdGhlIGhl
YXAgbG9jayB3aGVuCisgICAgICAgd2UgYXJlIGhvbGRpbmcgdGhlIHBhZ2UgbG9jay4KKyAgICAg
ICAKKyAgICAgICBMdWNraWx5LCB0aGlzIGlzIGEgZmluZSBwbGFjZSB0byBkcm9wIHRoZSBwYWdl
IGxvY2suCisgICAgICAgCisgICAgICAgVGhlcmVmb3JlLCB3ZSB0cnktbG9jayB0aGUgaGVhcCBs
b2NrLiBJdCdzIGFsd2F5cyBzYWZlIHRvIGRvIHRoYXQuIFVzdWFsbHkgaXQgd2lsbCBqdXN0Cisg
ICAgICAgc3VjY2VlZC4gQnV0IGlmIGl0IGZhaWxzLCB3ZSB3aWxsIGRyb3AgdGhlIHBhZ2UgbG9j
ayBhbmQgdGhlbiBhY3F1aXJlIGJvdGggb2YgdGhlbS4gKi8KKyAgICBpZiAoIXBhc19oZWFwX2xv
Y2tfdHJ5X2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKSkgeworICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX3VubG9jayhwYWdlLCBwYWdlX2NvbmZpZyk7CisgICAgICAg
IHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2xvY2so
cGFnZSwgcGFnZV9jb25maWcpOworICAgIH0KIAogICAgIGlmIChhbGxvY19iaXRzX3NpemUgPT0g
MSkKICAgICAgICAgYWxsb2NfYml0cyA9ICZ2aWV3LT5pbmxpbmVfYWxsb2NfYml0cyAtIGFsbG9j
X2JpdHNfb2Zmc2V0OwogICAgIGVsc2UgewotICAgICAgICAvKiBXZSBob2xkIHRoZSBwYWdlIGxv
Y2suIExvY2sgb3JkZXJpbmcgc2F5cyB0aGF0IHdlIGNhbm5vdCBhY3F1aXJlIHRoZSBoZWFwIGxv
Y2sgd2hlbgotICAgICAgICAgICB3ZSBhcmUgaG9sZGluZyB0aGUgcGFnZSBsb2NrLgotICAgICAg
ICAgICAKLSAgICAgICAgICAgTHVja2lseSwgdGhpcyBpcyBhIGZpbmUgcGxhY2UgdG8gZHJvcCB0
aGUgcGFnZSBsb2NrLgotICAgICAgICAgICAKLSAgICAgICAgICAgVGhlcmVmb3JlLCB3ZSB0cnkt
bG9jayB0aGUgaGVhcCBsb2NrLiBJdCdzIGFsd2F5cyBzYWZlIHRvIGRvIHRoYXQuIFVzdWFsbHkg
aXQgd2lsbCBqdXN0Ci0gICAgICAgICAgIHN1Y2NlZWQuIEJ1dCBpZiBpdCBmYWlscywgd2Ugd2ls
bCBkcm9wIHRoZSBwYWdlIGxvY2sgYW5kIHRoZW4gYWNxdWlyZSBib3RoIG9mIHRoZW0uICovCi0g
ICAgICAgIGlmICghcGFzX2hlYXBfbG9ja190cnlfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpKSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3VubG9jayhw
YWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLSAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9jayhwYWdlLCBwYWdlX2NvbmZpZyk7Ci0g
ICAgICAgIH0KLQogICAgICAgICBhbGxvY19iaXRzID0gKHVuc2lnbmVkKilwYXNfaW1tb3J0YWxf
aGVhcF9hbGxvY2F0ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCiAgICAgICAgICAgICBhbGxvY19i
aXRzX3NpemUgKiBzaXplb2YodW5zaWduZWQpLAogICAgICAgICAgICAgc2l6ZW9mKHVuc2lnbmVk
KSwKICAgICAgICAgICAgICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcvYWxsb2NfYml0cyIs
CiAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pIC0gYWxsb2NfYml0c19vZmZzZXQ7
Ci0KLSAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKICAgICB9CiAgICAgCiAgICAgbWVtY3B5KGFsbG9jX2JpdHMgKyBhbGxvY19i
aXRzX29mZnNldCwKQEAgLTgwNyw3ICs4MTksOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNz
X3ByaW1vcmRpYWxfcGFyCiAKICAgICBwYXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKIAotICAgIHBh
c19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJnZpZXctPmFsbG9jX2JpdHMsIGFs
bG9jX2JpdHMpOworICAgIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyX3N0b3JlKCZ2
aWV3LT5hbGxvY19iaXRzLCBhbGxvY19iaXRzKTsKKyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX3Vu
bG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogfQogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcuYwkocmV2aXNpb24gMjg3NDg0KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC02NCw3ICs2NCw3IEBAIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCiAK
ICAgICByZXN1bHQtPmFsbG9jX2JpdHNfb2Zmc2V0ID0gMDsKICAgICByZXN1bHQtPmFsbG9jX2Jp
dHNfc2l6ZSA9IDA7Ci0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgm
cmVzdWx0LT5hbGxvY19iaXRzLCBOVUxMKTsKKyAgICBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2ln
bmVkX3B0cl9zdG9yZSgmcmVzdWx0LT5hbGxvY19iaXRzLCBOVUxMKTsKIAogICAgIHJlc3VsdC0+
aW5saW5lX2FsbG9jX2JpdHMgPSAwOyAvKiBUaGVyZSBpc24ndCBhIHJlYWwgYmlnIG5lZWQgdG8g
ZG8gdGhpcywgYnV0IGl0IGhlbHBzIGtlZXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpbmdzIHNhbmUuICovCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIHBhc19o
ZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KAogCiAgICAgc2hhcmVkX3ZpZXcgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5zaGFy
ZWRfdmlldyk7CiAKLSAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfY29tcGFjdF90YWdnZWRfdW5z
aWduZWRfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmFsbG9jX2JpdHMpOworICAgIGZ1bGxfYWxs
b2NfYml0cyA9IHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyX2xvYWQoJnZpZXctPmFs
bG9jX2JpdHMpOwogCiAgICAgaWYgKHNoYXJlZF92aWV3LT5pc19vd25lZCkgewogICAgICAgICBw
YWdlX2JvdW5kYXJ5ID0gKHVpbnRwdHJfdClwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5k
YXJ5X2dldF9wYWdlX2JvdW5kYXJ5KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJ
KHJldmlzaW9uIDI4NzQ4NCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsOSArMjgs
OSBAQAogCiAjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIu
aCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
IgotI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCIKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19sZW5pZW50X2Nv
bXBhY3RfdW5zaWduZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291
bnQuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtNDgs
NyArNDgsNyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3IHsKICAgICAKICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ciBzaGFyZWRfdmlldzsKICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7Ci0g
ICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ciBhbGxvY19iaXRzOworICAgIHBhc19s
ZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyIGFsbG9jX2JpdHM7CiAKICAgICAvKiBUaGUgaW5k
ZXggY2FuIGJlIHNtYWxsIHNpbmNlIHdlIHdvdWxkIG5ldmVyIGNyZWF0ZSBhIGhpZ2gtaW5kZXhl
ZCBwYXJ0aWFsIHZpZXcuIFRoYXQgd291bGQgbm90CiAgICAgICAgaGF2ZSBhIG1lYW5pbmdmdWwg
ZWZmZWN0IG9uIHRoZSBmb290cHJpbnQgb2YgdGhlIGRpcmVjdG9yeS4KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4NzQ4NCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdf
YWxsb2NhdG9yX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNjIsNyArMjYyLDcgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgICAgICAgICAgdW5zaWduZWQg
ZW5kX3dvcmRfaW5kZXg7CiAgICAgICAgICAgICB1bnNpZ25lZCB3b3JkX2luZGV4OwogICAgICAg
ICAKLSAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19jb21wYWN0X3RhZ2dlZF91bnNp
Z25lZF9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbC0+YWxsb2NfYml0cyk7CisgICAgICAgICAg
ICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0cl9sb2Fk
X2NvbXBhY3Rfbm9uX251bGwoJnBhcnRpYWwtPmFsbG9jX2JpdHMpOwogICAgICAgICAKICAgICAg
ICAgICAgIGJlZ2luX3dvcmRfaW5kZXggPSBwYXJ0aWFsLT5hbGxvY19iaXRzX29mZnNldDsKICAg
ICAgICAgICAgIGVuZF93b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleCArIHBhcnRpYWwtPmFs
bG9jX2JpdHNfc2l6ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMJKHJldmlzaW9uIDI4NzQ4NCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYwkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgInBhc190aHJl
YWRfbG9jYWxfY2FjaGUuaCIKIAogI2luY2x1ZGUgInBhc19hbGxfaGVhcF9jb25maWdzLmgiCi0j
aW5jbHVkZSAicGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKICNpbmNsdWRl
ICJwYXNfZGVidWdfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKKyNpbmNsdWRl
ICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAj
aW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5o
IgpAQCAtNjMsMTIgKzYzLDEyIEBAIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUocGFzX3RocmVhZF9s
b2NhbF8KIHsKICAgICBjaGFyKiBiZWdpbjsKIAotICAgIHBhc19jb21wYWN0X2xhcmdlX3V0aWxp
dHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCisgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
X2RlYWxsb2NhdGUoCiAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+c2hvdWxkX3N0b3BfYml0
dmVjdG9yLAogICAgICAgICBQQVNfQklUVkVDVE9SX05VTV9CWVRFUyh0aHJlYWRfbG9jYWxfY2Fj
aGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOwogICAgIAogICAgIGJlZ2luID0gKGNoYXIq
KXRocmVhZF9sb2NhbF9jYWNoZTsKLSAgICBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVf
aGVhcF9kZWFsbG9jYXRlKAorICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9j
YXRlKAogICAgICAgICBiZWdpbiwKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXpl
X2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoCiAgICAgICAgICAgICB0aHJlYWRfbG9jYWxf
Y2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOwpAQCAtMTI5LDExICsxMjksMTEgQEAg
c3RhdGljIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGFsbG9jYXRlXwogICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICBwcmludGYoIkNhY2hlIHNpemU6ICV6dVxuIiwgc2l6ZSk7CiAgICAgCi0gICAg
cmVzdWx0ID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKXBhc19jb21wYWN0X2xhcmdlX3V0aWxp
dHlfZnJlZV9oZWFwX2FsbG9jYXRlKHNpemUsICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIik7Cisg
ICAgcmVzdWx0ID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKXBhc19sYXJnZV91dGlsaXR5X2Zy
ZWVfaGVhcF9hbGxvY2F0ZShzaXplLCAicGFzX3RocmVhZF9sb2NhbF9jYWNoZSIpOwogCiAgICAg
cGFzX3plcm9fbWVtb3J5KHJlc3VsdCwgc2l6ZSk7CiAKLSAgICByZXN1bHQtPnNob3VsZF9zdG9w
X2JpdHZlY3RvciA9ICh1bnNpZ25lZCBpbnQqKXBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJl
ZV9oZWFwX2FsbG9jYXRlKAorICAgIHJlc3VsdC0+c2hvdWxkX3N0b3BfYml0dmVjdG9yID0gKHVu
c2lnbmVkIGludCopcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRlKAogICAgICAg
ICBQQVNfQklUVkVDVE9SX05VTV9CWVRFUyhhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpLAogICAg
ICAgICAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS9zaG91bGRfc3RvcF9iaXR2ZWN0b3IiKTsKIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0xvdHNPZkhlYXBzQW5kVGhyZWFk
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0xvdHNP
ZkhlYXBzQW5kVGhyZWFkcy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0xvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKKworI2lmIFBBU19FTkFCTEVfQk1BTExPQwor
CisjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwX2NvbmZp
Zy5oIgorI2luY2x1ZGUgInBhc19nZXRfaGVhcC5oIgorI2luY2x1ZGUgPHRocmVhZD4KKwordXNp
bmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIHsKKwordm9pZCB0ZXN0TG90c09mSGVhcHNB
bmRUaHJlYWRzKHVuc2lnbmVkIG51bUhlYXBzLCB1bnNpZ25lZCBudW1UaHJlYWRzLCB1bnNpZ25l
ZCBjb3VudCkKK3sKKyAgICB0aHJlYWQqIHRocmVhZHMgPSBuZXcgdGhyZWFkW251bVRocmVhZHNd
OworICAgIHBhc19oZWFwX3JlZiogaGVhcHMgPSBuZXcgcGFzX2hlYXBfcmVmW251bUhlYXBzXTsK
KworICAgIGZvciAodW5zaWduZWQgaSA9IG51bUhlYXBzOyBpLS07KQorICAgICAgICBoZWFwc1tp
XSA9IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIobmV3IGJtYWxsb2NfdHlwZShCTUFMTE9D
X1RZUEVfSU5JVElBTElaRVIoMTYsIDE2LCAidGVzdCIpKSk7CisKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBudW1UaHJlYWRzOyBpLS07KSB7CisgICAgICAgIHRocmVhZHNbaV0gPSB0aHJlYWQoWyZd
ICgpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IGNvdW50OyBqLS07KSB7CisgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gbnVtSGVhcHM7IGstLTspIHsKKyAgICAgICAg
ICAgICAgICAgICAgdm9pZCogcHRyID0gYm1hbGxvY19pc29fYWxsb2NhdGUoaGVhcHMgKyBrKTsK
KyAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExP
Q19IRUFQX0NPTkZJRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJtYWxsb2Nf
aGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMgKyBrKSk7CisgICAgICAgICAgICAgICAgICAgIGJtYWxs
b2NfZGVhbGxvY2F0ZShwdHIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtVGhyZWFkczsgaS0t
OykKKyAgICAgICAgdGhyZWFkc1tpXS5qb2luKCk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVz
cGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCisKK3ZvaWQgYWRkTG90c09mSGVh
cHNBbmRUaHJlYWRzVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1BTExPQworICAgIEZvcmNl
VExBcyBmb3JjZVRMQXM7CisgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBhcnRpYWxzOworICAgIAor
ICAgIEFERF9URVNUKHRlc3RMb3RzT2ZIZWFwc0FuZFRocmVhZHMoMTAwMDAsIDEwMCwgMTApKTsK
KyAgICBBRERfVEVTVCh0ZXN0TG90c09mSGVhcHNBbmRUaHJlYWRzKDI1MDAwLCAxMDAsIDEwKSk7
CisgICAgQUREX1RFU1QodGVzdExvdHNPZkhlYXBzQW5kVGhyZWFkcygzMDAwMCwgMTAwLCAxMCkp
OyAvLyBUaGlzIGlzIGFib3V0IGFzIGhpZ2ggYXMgd2UgY2FuIHJlbGlhYmx5IGdvIHJpZ2h0IG5v
dyEKKyNlbmRpZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKK30KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkocmV2aXNpb24gMjg3NDg0KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM1Myw2ICszNTMsNyBAQCB2b2lkIGFkZEpJVEhlYXBUZXN0cygpOwogdm9p
ZCBhZGRMYXJnZUZyZWVIZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VTaGFyaW5nUG9vbFRlc3Rz
KCk7CiB2b2lkIGFkZExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzKCk7Cit2b2lkIGFk
ZExvdHNPZkhlYXBzQW5kVGhyZWFkc1Rlc3RzKCk7CiB2b2lkIGFkZE1pbkhlYXBUZXN0cygpOwog
dm9pZCBhZGRQR01UZXN0cygpOwogdm9pZCBhZGRSYWNlVGVzdHMoKTsKQEAgLTcxNyw2ICs3MTgs
NyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgQUREX1NVSVRFKExhcmdl
RnJlZUhlYXApOwogICAgIEFERF9TVUlURShMYXJnZVNoYXJpbmdQb29sKTsKICAgICBBRERfU1VJ
VEUoTG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlKTsKKyAgICBBRERfU1VJVEUoTG90c09mSGVh
cHNBbmRUaHJlYWRzKTsKICAgICBBRERfU1VJVEUoTWluSGVhcCk7CiAgICAgQUREX1NVSVRFKFBH
TSk7CiAgICAgQUREX1NVSVRFKFJhY2UpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>