<?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>173508</bug_id>
          
          <creation_ts>2017-06-16 20:58:09 -0700</creation_ts>
          <short_desc>[Cocoa] Some declarations have missing or incorrect availability attributes</short_desc>
          <delta_ts>2023-10-11 14:54:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=263006</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>aestes</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1320318</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-06-16 20:58:09 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320324</commentid>
    <comment_count>1</comment_count>
      <attachid>313181</attachid>
    <who name="">mitz</who>
    <bug_when>2017-06-16 21:10:47 -0700</bug_when>
    <thetext>Created attachment 313181
Fix availability attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320348</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-06-16 23:28:24 -0700</bug_when>
    <thetext>Fixed in &lt;https://trac.webkit.org/r218444&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313181</attachid>
            <date>2017-06-16 21:10:47 -0700</date>
            <delta_ts>2017-06-16 23:26:48 -0700</delta_ts>
            <desc>Fix availability attributes</desc>
            <filename>bug-173508-20170616211046.patch</filename>
            <type>text/plain</type>
            <size>56378</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA2LTE2ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBTb21lIGRlY2xhcmF0
aW9ucyBoYXZlIG1pc3Npbmcgb3IgaW5jb3JyZWN0IGF2YWlsYWJpbGl0eSBhdHRyaWJ1dGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM1MDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDogUmVtb3ZlZCBh
IHJlZHVuZGFudCBhdHRyaWJ1dGUuCisKKyAgICAgICAgSW4gYWxsIG9mIHRoZSBiZWxvdyBmaWxl
cywgYWRkZWQgbWlzc2luZyBhdmFpbGFiaWxpdHkgYXR0cmlidXRlcyBmb3IgZGVjbGFyYXRpb25z
IHRoYXQgaGF2ZQorICAgICAgICBub3QgYXBwZWFyZWQgeWV0IGluIGFueSBHTSBTREssIGFuZCBm
aXhlZCBhdmFpbGFiaWxpdHkgYXR0cmlidXRlcyBmb3IgZGVjbGFyYXRpb25zIHRoYXQKKyAgICAg
ICAgaGF2ZSBhbHJlYWR5IGFwcGVhcmVkIGluIHRoZSBtYWNPUyAxMC4xMi4zIGFuZCBpT1MgMTAu
MyBTREtzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlz
dEl0ZW1Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29r
aWVTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLmg6IEFsc28gZml4ZWQgY2FwaXRhbGl6YXRpb24gaW4gYSBjb21tZW50LgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6IEFsc28gcmVtb3ZlZCB1bm5l
Y2Vzc2FyeSBjb25kaXRpb25hbHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRp
b246XSk6IFByZXBlbmRlZCBhbiB1bmRlcnNjb3JlIHRvIHRoaXMgcHJpdmF0ZSBtZXRob2TigJlz
IG5hbWUuCisgICAgICAgICgtW1dLV2ViVmlldyBfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOiBBbHNvIHVwZGF0ZWQgZm9yIHJlbmFt
ZXMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50
SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Np
b25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2Vv
bG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVy
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGlj
aWVzLmg6CisgICAgICAgICogVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VI
YW5kbGUuaDoKKwogMjAxNy0wNi0xNiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhIFdlYktpdDIgc2V0dGluZyB0byBjb250cm9sIHdoZXRoZXIgbWVk
aWEgZG9jdW1lbnRzIHNob3VsZCBhdXRvbWF0aWNhbGx5IGVudGVyIGZ1bGxzY3JlZW4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0
dGVyLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tX
ZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBX
S19DTEFTU19BVkFJTEFCTEUoaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1dlYlZpZXdQcmludEZv
cm1hdHRlciA6IFVJVmlld1ByaW50Rm9ybWF0dGVyCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIF9XS0ZyYW1lSGFuZGxlICpmcmFtZVRvUHJpbnQ7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBzbmFwc2hvdEZpcnN0UGFnZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNu
YXBzaG90Rmlyc3RQYWdlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogQGVu
ZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zvcndh
cmRMaXN0SXRlbVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaAkocmV2aXNpb24gMjE4
NDQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdEl0ZW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKIEBpbnRl
cmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIChXS1ByaXZhdGUpCiAKIC8vIEZvciB0ZXN0aW5n
IG9ubHkuCi0tIChDR0ltYWdlUmVmKV9jb3B5U25hcHNob3RGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoQ0dJbWFnZVJl
ZilfY29weVNuYXBzaG90Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4z
KSwgaW9zKDEwLjMpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZS5oCShyZXZpc2lvbiAyMTg0
NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0
b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIAogQGNsYXNzIFdLSFRUUENvb2tpZVN0b3JlOwogCitXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQHByb3RvY29sIFdLSFRUUENvb2tp
ZVN0b3JlT2JzZXJ2ZXIgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAtICh2b2lkKWNvb2tpZXNEaWRD
aGFuZ2VJbkNvb2tpZVN0b3JlOihXS0hUVFBDb29raWVTdG9yZSAqKWNvb2tpZVN0b3JlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMTg0NDApCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMiArNjUsMTIgQEAgc3RhdGljIGNvbnN0IFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IAogLSAodm9pZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0
aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmlldyB3aXRoTmF2aWdhdGlvblRvQmFja0Zvcndh
cmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNuYXBzaG90QmFja0ZvcndhcmRMaXN0SXRlbToo
V0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVO
YXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0
aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vi
c2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1l
bnRJbk1haW5GcmFtZVdpdGhGaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZSB1dGk6KE5TU3Ry
aW5nICopdXRpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5p
c2hMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZTooTlNEYXRhICopZG9jdW1lbnRE
YXRhOwotLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3Vt
ZW50OihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld0RpZFJlcXVlc3RQYXNz
d29yZEZvclF1aWNrTG9va0RvY3VtZW50OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAkocmV2aXNp
b24gMjE4NDQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LgogLyohCiAgQHByb3BlcnR5IHRhYkZvY3VzZXNMaW5r
cwogIEBhYnN0cmFjdCBJZiB0YWJGb2N1c2VzTGlua3MgaXMgWUVTLCB0aGUgdGFiIGtleSB3aWxs
IGZvY3VzIGxpbmtzIGFuZCBmb3JtIGNvbnRyb2xzLgotIFRoZSBvcHRpb24ga2V5IHRlbXBvcmFy
aWx5IHJldmVyc2VzIHRoaXMgcHJlZmVyZW5jZS4KKyBUaGUgT3B0aW9uIGtleSB0ZW1wb3Jhcmls
eSByZXZlcnNlcyB0aGlzIHByZWZlcmVuY2UuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIHRhYkZvY3VzZXNMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0YWJGb2N1c2VzTGlua3MgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIuMykpOwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2
YXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsOSArNjMs
OSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2YVNjCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxl
ZDopIEJPT0wgX3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxl
ZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
VmlzdWFsVmlld3BvcnRFbmFibGVkOikgQk9PTCBfdmlzdWFsVmlld3BvcnRFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVk
OikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBf
YW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VmlzdWFsVmlld3BvcnRFbmFibGVkOikgQk9PTCBfdmlzdWFsVmlld3BvcnRFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVk
OikgQk9PTCBfbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOikgQk9PTCBfYW5pbWF0ZWRJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMp
LCBpb3MoMTAuMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9z
aXppbmdFbmFibGVkOikgQk9PTCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFN1YnBpeGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkOikgQk9PTCBfc3VicGl4
ZWxBbnRpYWxpYXNlZExheWVyVGV4dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOwogCkBAIC05Miw3ICs5Miw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tKYXZhU2MKIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5IHNob3VsZCBub3Qg
aGF2ZSB0aGUgdmVyYiAiaXMiIGluIGl0LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0T2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ6KSBCT09MIF9vZmZsaW5lQXBwbGlj
YXRpb25DYWNoZUlzRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1
bGxTY3JlZW5FbmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRp
b246KSBCT09MIF9zaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5h
dmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRTdXBwcmVzc0tl
eWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb246KSBCT09MIF9zaG91bGRTdXBw
cmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjazopIEJPT0wgX2Fs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBcHBsZVBheUNhcGFiaWxpdHlEaXNjbG9zdXJlQWxsb3dlZDopIEJPT0wgX2Fw
cGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHJldmlzaW9uIDIx
ODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsMTMgKzc1LDEzIEBACiAtICh2b2lkKV90
ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3M7CiAKIC8vIFRlc3Qgb25seS4KLS0gKHNpemVfdClfd2Vi
UHJvY2Vzc0NvdW50OwotLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llczsKKy0gKHNp
emVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
Ly8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2ViIGNvbnRlbnQgcHJv
Y2Vzc2VzIGFyZSBsYXVuY2hlZC4KLSsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdv
cms7CisrICh2b2lkKV9mb3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3JrIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0
ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9PTCBfY29va2llU3Rv
cmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nv
b2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQ
YXJ0aXRpb25pbmdFbmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKIEBlbmQK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw3ICs0MCw3IEBACiBAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBjbGFzcyBf
V0tGcmFtZUhhbmRsZTsKIAotI2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCisjaWYgVEFSR0VUX09TX0lQSE9ORQogQGNsYXNz
IFVJRHJhZ0l0ZW07CiBAY2xhc3MgVUlUYXJnZXRlZERyYWdQcmV2aWV3OwogQHByb3RvY29sIFVJ
RHJhZ1Nlc3Npb247CkBAIC02NSwxNCArNjUsMTQgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0g
KHZvaWQpX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdLV2ViVmlldyAqKXdl
YlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOwogLSAodm9p
ZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOwotLSAodm9pZClfd2ViVmlld1JlcXVl
c3RQb2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkTG9zZVBvaW50ZXJMb2NrOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0g
KHZvaWQpX3dlYlZpZXdSZXF1ZXN0UG9pbnRlckxvY2s6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOworLSAodm9pZClfd2ViVmlld0RpZExvc2VQ
b2ludGVyTG9jazooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMi4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOihCT09MKWhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0
dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURv
Y3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKIC0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4
dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTIpLCBpb3MoMTAuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZp
Y2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZy
YW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1h
aW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkp
ZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNV
UkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRp
ZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhv
cml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwg
aW9zKDEwLjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFD
YXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoV0tEcmFn
RGVzdGluYXRpb25BY3Rpb24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dpbmdJbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRp
b246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25B
Y3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVy
ZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKQEAgLTk0LDggKzk0
LDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWx0ZXJuYXRlQWN0aW9uRm9yVVJMOihOU1VSTCAqKXVy
bCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CiAtIChOU0FycmF5ICopX2F0dGFjaG1lbnRM
aXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygx
MC4wKSk7Ci0tIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBzb3VyY2VJc01hbmFnZWQ6KEJPT0wqKXNvdXJjZUlzTWFuYWdlZCBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0tIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKKy0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHNvdXJjZUlzTWFuYWdlZDooQk9PTCopc291cmNlSXNNYW5hZ2VkIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlF
ZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNl
dHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eToo
Q0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFy
Z2V0Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1l
bnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwogLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJv
bGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXpl
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0cnVjdCBV
SUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJ
bnRlcmFjdGlvbjooaWQpaW50ZXJhY3Rpb24gc2Vzc2lvbjooaWQpc2Vzc2lvbiBkaWRFbmRXaXRo
T3BlcmF0aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRhdGFJbnRl
cmFjdGlvbk9wZXJhdGlvbldhc0hhbmRsZWQ6KEJPT0wpaGFuZGxlZCBmb3JTZXNzaW9uOihpZClz
ZXNzaW9uIGl0ZW1Qcm92aWRlcnM6KE5TQXJyYXkgKilpdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvblRvT3BlcmF0aW9u
OihOU1VJbnRlZ2VyKW9wZXJhdGlvbiBmb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLSNpZiBUQVJHRVRfT1NfSVBIT05FICYmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMAorI2lmIFRBUkdFVF9PU19JUEhPTkUK
IC0gKFVJVGFyZ2V0ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByZXZpZXdGb3JMaWZ0aW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0gc2Vzc2lvbjooaWQgPFVJ
RHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwog
LSAoVUlUYXJnZXRlZERyYWdQcmV2aWV3ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cHJldmlld0ZvckNhbmNlbGxpbmdJdGVtOihVSURyYWdJdGVtICopaXRlbSB3aXRoRGVmYXVsdDoo
VUlUYXJnZXRlZERyYWdQcmV2aWV3ICopZGVmYXVsdFByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOwogLSAoTlNBcnJheTxVSURyYWdJdGVtICo+ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1Ecm9wV2l0aFNlc3Npb246KGlkIDxVSURyb3BT
ZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCShy
ZXZpc2lvbiAyMTg0NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTIzNywxMyArNTIzNywxMyBAQCAtIChOU0Rp
Y3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhCiB9CiAKICNpZiBQTEFURk9STShJT1Mp
Ci0tIChfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKWRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9u
OihDR1BvaW50KXBvc2l0aW9uCistIChfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKV9kcmFnZ2Fi
bGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbgogewogICAgIFtfY29udGVudFZp
ZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07
CiAgICAgcmV0dXJuIFtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOltfY29udGVudFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb25dXTsKIH0KIAotLSAodm9pZClyZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246
KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVF
bGVtZW50SW5mbyAqKSlibG9jaworLSAodm9pZClfcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8gKikpYmxvY2sKIHsKICAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQ
b3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGJs
b2NrKV0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRp
b24pIHsKICAgICAgICAgY2FwdHVyZWRCbG9jayhbX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5m
b1dpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0pOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkocmV2aXNpb24gMjE4NDQwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxNSArNDksMTUgQEAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weTopIEJP
T0wgX2NvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxv
d3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01ldGFSZWZyZXNoIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3Mo
MTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TmVlZHNTdG9yYWdlQWNj
ZXNzRnJvbUZpbGVVUkxzUXVpcms6KSBCT09MIF9uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVS
THNRdWlyayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE5lZWRzU3RvcmFnZUFjY2Vz
c0Zyb21GaWxlVVJMc1F1aXJrOikgQk9PTCBfbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxz
UXVpcmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJp
ZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZDopIEJPT0wg
X2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEyKSwgaW9zKDEwLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxs
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9h
dHRhY2htZW50RWxlbWVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBp
b3MoMTAuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0
YWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFdhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5k
b3c6KSBCT09MIF93YWl0c0ZvclBhaW50QWZ0ZXJWaWV3RGlkTW92ZVRvV2luZG93IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbjosIGdldHRlcj1f
aXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKSBCT09MIF9jb250cm9sbGVkQnlBdXRvbWF0aW9uIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2FpdHNGb3JQYWludEFmdGVyVmlld0RpZE1v
dmVUb1dpbmRvdzopIEJPT0wgX3dhaXRzRm9yUGFpbnRBZnRlclZpZXdEaWRNb3ZlVG9XaW5kb3cg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uOiwgZ2V0dGVyPV9p
c0NvbnRyb2xsZWRCeUF1dG9tYXRpb24pIEJPT0wgX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKICNpZiBUQVJHRVRf
T1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNSdW5zQXRG
b3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09MIF9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkg
V0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CkBAIC03NSw3ICs3NSw3IEBACiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNr
OikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjayBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBs
YXliYWNrIiwgbWFjb3N4KDEwLjEyLCAxMC4xMiksIGlvcygxMC4wLCAxMC4wKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXli
YWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZv
clBsYXliYWNrIiwgbWFjb3N4KDEwLjEyLCAxMC4xMiksIGlvcygxMC4wLCAxMC4wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9s
aWN5OikgTlNTdHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OikgTlNT
dHJpbmcgKl9vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OikgTlNTdHJpbmcg
Kl9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4
LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogCiAtICh2b2lk
KV9jbG9zZTsKIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9s
aWNpZXMgKil3ZWJzaXRlUG9saWNpZXM7CistICh2b2lkKV91cGRhdGVXZWJzaXRlUG9saWNpZXM6
KF9XS1dlYnNpdGVQb2xpY2llcyAqKXdlYnNpdGVQb2xpY2llcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TGF5b3V0TW9kZTopIF9XS0xheW91dE1vZGUgX2xheW91dE1vZGU7CiAv
LyBGb3IgdXNlIHdpdGggX2xheW91dE1vZGUgPSBfV0tMYXlvdXRNb2RlRml4ZWRTaXplOgpAQCAt
MTk3LDggKzE5Nyw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEK
IAogLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXpl
OihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6
KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKTsKIAotLSAodm9pZClfY2xlYXJPdmVycmlkZUxheW91dFBhcmFtZXRlcnM7Ci0tICh2
b2lkKV9jbGVhckludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGU7CistICh2b2lkKV9jbGVhck92
ZXJyaWRlTGF5b3V0UGFyYW1ldGVycyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CistICh2b2lkKV9jbGVhckludGVyZmFjZU9yaWVudGF0aW9uT3ZlcnJpZGUgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAtIChVSVZpZXcgKilfdmlld0ZvckZpbmRVSTsKIApA
QCAtMjE2LDggKzIxNiw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0
ZUEKIC0gKGlkKV9zbmFwc2hvdExheWVyQ29udGVudHNGb3JCYWNrRm9yd2FyZExpc3RJdGVtOihX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwog
LSAoTlNBcnJheSAqKV9kYXRhRGV0ZWN0aW9uUmVzdWx0czsKIAotLSAodm9pZClfYWNjZXNzaWJp
bGl0eVJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50OwotLSAodm9pZClfYWNjZXNzaWJpbGl0
eURpZEdldFNwZWFrU2VsZWN0aW9uQ29udGVudDooTlNTdHJpbmcgKiljb250ZW50OworLSAodm9p
ZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50IFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2FjY2Vzc2liaWxpdHlEaWRHZXRTcGVh
a1NlbGVjdGlvbkNvbnRlbnQ6KE5TU3RyaW5nICopY29udGVudCBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAKICNlbHNlCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU0NvbG9yICpf
cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOwpAQCAtMjQ3LDEyICsyNDcsMTIgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAoTlNQcmludE9wZXJhdGlvbiAq
KV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZv
ckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIAogLy8gRklYTUU6IFRoaXMgU1BJIHNob3VsZCBiZWNv
bWUgYSBwYXJ0IG9mIHRoZSBXS1VJRGVsZWdhdGUuIHJkYXI6Ly9wcm9ibGVtLzI2NTYxNTM3Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFdhbnRzTWVkaWFQbGF5
YmFja0NvbnRyb2xzVmlldzopIEJPT0wgX3dhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFdhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldzop
IEJPT0wgX3dhbnRzTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMi4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGlkIF9tZWRp
YVBsYXliYWNrQ29udHJvbHNWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKIC0gKHZvaWQpX2FkZE1lZGlhUGxheWJhY2tDb250cm9sc1ZpZXc6KGlkKW1lZGlhUGxheWJh
Y2tDb250cm9sc1ZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAo
dm9pZClfcmVtb3ZlTWVkaWFQbGF5YmFja0NvbnRyb2xzVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9yZW1vdmVNZWRpYVBsYXliYWNrQ29udHJvbHNW
aWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpKTsKIAotLSAodm9pZClfcHJlcGFy
ZUZvck1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKil0YXJnZXRXaW5kb3cgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2b2lkKV9wcmVwYXJlRm9y
TW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXRhcmdldFdpbmRvdyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSk7CiAKICNlbmRpZgogCkBAIC0zMDAsNyArMzAwLDcgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNwb25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEyKSwgaW9zKDEwLjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVl
bkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7
CiAKIC0gKHZvaWQpX211dGVNZWRpYUNhcHR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6KF9XS01l
ZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpAQCAtMzE2LDcgKzMxNiw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLVGVz
dGluZykKIAotLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbToo
TlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09m
VXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBI
T05FCiAKQEAgLTMyNiwyNSArMzI2LDI1IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0ltbWVkaWF0ZUEKIAogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3Vz
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKLS0gKHZvaWQpZGlzbWlzc0Zvcm1BY2Nlc3Nv
cnlWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpc2VsZWN0
Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW50KXJvd0luZGV4IFdLX0FQSV9BVkFJTEFCTEUoaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJv
dzooaW50KXJvd0luZGV4IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIAotLSAodm9pZClh
cHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmluZyAqKW5ld1N0cmluZyB0b1N0cmluZzooTlNTdHJp
bmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRp
b25IYW5kbGVyOworLSAodm9pZClhcHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmluZyAqKW5ld1N0
cmluZyB0b1N0cmluZzooTlNTdHJpbmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKSgpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKIAotLSAodm9pZClkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbElu
dGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpZGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsK
Ky0gKHZvaWQpZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlv
cygxMC4zKSk7CiAKLS0gKHZvaWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmlldyBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9kaWREaXNtaXNzRm9yY2VQcmVzc1By
ZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfZG9BZnRl
ck5leHRTdGFibGVQcmVzZW50YXRpb25VcGRhdGU6KGRpc3BhdGNoX2Jsb2NrX3QpdXBkYXRlQmxv
Y2sgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKKy0gKHZvaWQpX2Rp
ZERpc21pc3NGb3JjZVByZXNzUHJldmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7Cist
ICh2b2lkKV9kb0FmdGVyTmV4dFN0YWJsZVByZXNlbnRhdGlvblVwZGF0ZTooZGlzcGF0Y2hfYmxv
Y2tfdCl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxOU1ZhbHVlICo+ICpfdWlUZXh0U2VsZWN0
aW9uUmVjdHMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX3VpVGV4dENhcmV0UmVjdCBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENH
UmVjdCBfaW5wdXRWaWV3Qm91bmRzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxOU1ZhbHVlICo+ICpfdWlU
ZXh0U2VsZWN0aW9uUmVjdHMgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX3VpVGV4dENhcmV0UmVjdCBXS19BUElfQVZB
SUxBQkxFKGlvcygxMC4zKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVj
dCBfaW5wdXRWaWV3Qm91bmRzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqX3Njcm9sbGluZ1RyZWVBc1RleHQg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBOU1N0cmluZyAqX3Njcm9sbGluZ1RyZWVBc1RleHQgV0tfQVBJX0FWQUlMQUJM
RShpb3MoMTAuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVy
ICpfc3RhYmxlU3RhdGVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVtYmVyICpfc3RhYmxlU3RhdGVP
dmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAKIC0gKE5TRGljdGlvbmFyeSAq
KV9wcm9wZXJ0aWVzT2ZMYXllcldpdGhJRDoodW5zaWduZWQgbG9uZyBsb25nKWxheWVySUQgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCkBAIC0zNTcsMzggKzM1NywzOCBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAtIChOU0FycmF5ICopX3Np
bXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CiAtICh2b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25T
ZXNzaW9uOihpZClzZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3QpY29tcGxldGlv
biBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvICopZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb247
Ci0tICh2b2lkKXJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3Np
dGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICop
KWJsb2NrOworLSAoX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKilfZHJhZ2dhYmxlRWxlbWVudEF0
UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVu
dEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJsb2NrOih2b2lkICheKShf
V0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhP
TkUKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEyKSk7Ci0tICh2b2lkKV9yZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV9oYW5kbGVDb250
cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRp
ZGF0ZTooTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKiljYW5kaWRhdGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfZm9yY2VSZXF1
ZXN0Q2FuZGlkYXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2
b2lkKV9kaWRVcGRhdGVDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eTooQk9PTCl2aXNpYmxlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBfc2hvdWxkUmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxh
Y2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9yZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CistICh2b2lkKV9oYW5kbGVDb250cm9s
bGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMi4zKSk7CistICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZToo
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKiljYW5kaWRhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTIuMykpOworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTIuMykpOworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CistICh2b2lkKV9kaWRVcGRhdGVD
YW5kaWRhdGVMaXN0VmlzaWJpbGl0eTooQk9PTCl2aXNpYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hv
dWxkUmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwor
LSAodm9pZClfaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2Up
cmVwbGFjZW1lbnRSYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSk7CiAtIChO
U1JlY3QpX2NhbmRpZGF0ZVJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkp
OwogCi0tICh2b2lkKV9zZXRIZWFkZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClfc2V0Rm9vdGVyQmFubmVySGVp
Z2h0OihpbnQpaGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0g
KHZvaWQpX3NldEhlYWRlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSk7CistICh2b2lkKV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludClo
ZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMykpOwogI2VuZGlmCiAKLS0gKHZv
aWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9oYW5kbGVBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTooQk9PTCloYXNBY3RpdmVTZXNzaW9uIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0aW9uOihkb3VibGUpZHVyYXRpb24gZWxhcHNlZFRp
bWU6KGRvdWJsZSllbGFwc2VkVGltZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7Cist
ICh2b2lkKV9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTooQk9PTClo
YXNBY3RpdmVTZXNzaW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0aW9uOihkb3VibGUp
ZHVyYXRpb24gZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFwc2VkVGltZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAotLSAodm9pZClfc2V0UGFnZVNjYWxlOihD
R0Zsb2F0KXNjYWxlIHdpdGhPcmlnaW46KENHUG9pbnQpb3JpZ2luIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKLS0gKENHRmxvYXQpX3BhZ2VTY2FsZSBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQpc2NhbGUg
d2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwor
LSAoQ0dGbG9hdClfcGFnZVNjYWxlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIAogLSAo
dm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0
ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZv
aWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlV2l0aG91dFdhaXRpbmdGb3JQYWludGlu
Zzoodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZVdpdGhvdXRXYWl0aW5nRm9yUGFpbnRpbmc6KHZvaWQgKF4pKHZvaWQpKXVwZGF0
ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwogLSAo
dm9pZClfZG9BZnRlck5leHRWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi0tICh2b2lkKV9kaXNhYmxlQmFja0ZvcndhcmRTbmFwc2hvdFZvbGF0aWxp
dHlGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClfZGlzYWJsZUJhY2tGb3J3YXJkU25hcHNob3RWb2xhdGlsaXR5
Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsK
IAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAkocmV2aXNpb24gMjE4
NDQwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdAogCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURh
dGFTdG9yZSAoV0tQcml2YXRlKQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoQ29uZmlndXJh
dGlvbjooX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uOwor
LSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aENvbmZpZ3VyYXRpb246KF9XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfZmV0Y2hEYXRhUmVjb3Jk
c09mVHlwZXM6KE5TU2V0PE5TU3RyaW5nICo+ICopZGF0YVR5cGVzIHdpdGhPcHRpb25zOihfV0tX
ZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqKSljb21wbGV0aW9uSGFuZGxl
cjsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0
ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkocmV2aXNpb24gMjE4NDQwKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5m
by5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dS
ZWN0IGJvdW5kaW5nUmVjdDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJp
bmcgKklEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKICNpZiBU
QVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGljdGlv
bmFyeSAqdXNlckluZm87CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGljdGlv
bmFyeSAqdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdlICppbWFnZTsKICNlbHNlCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TSW1hZ2UgKmltYWdlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lv
bkRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25E
ZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMiArMzgsMTIgQEAKIAogLSAodm9pZClf
YXV0b21hdGlvblNlc3Npb25EaWREaXNjb25uZWN0RnJvbVJlbW90ZTooX1dLQXV0b21hdGlvblNl
c3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbjsKIAotLSAoV0tXZWJWaWV3ICopX2F1dG9tYXRpb25T
ZXNzaW9uRGlkUmVxdWVzdE5ld1dlYlZpZXc6KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21h
dGlvblNlc3Npb247Ci0tIChCT09MKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNl
c3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nRm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihf
V0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGRpc21pc3NDdXJyZW50SmF2
YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV9h
dXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lv
biBhY2NlcHRDdXJyZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXc7Ci0tIChOU1N0cmluZyAqKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNl
c3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBtZXNzYWdlT2ZDdXJyZW50SmF2YVNjcmlwdERpYWxv
Z0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV9hdXRvbWF0aW9uU2Vz
c2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBzZXRVc2VySW5w
dXQ6KE5TU3RyaW5nICopdmFsdWUgZm9yQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAoV0tXZWJWaWV3ICopX2F1dG9tYXRpb25TZXNzaW9u
RGlkUmVxdWVzdE5ld1dlYlZpZXc6KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNl
c3Npb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistIChCT09MKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilh
dXRvbWF0aW9uU2Vzc2lvbiBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9u
U2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGRpc21pc3NDdXJyZW50SmF2YVNjcmlwdERpYWxv
Z0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lv
bjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBhY2NlcHRDdXJyZW50
SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChOU1N0cmlu
ZyAqKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9u
U2Vzc2lvbiBtZXNzYWdlT2ZDdXJyZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CistICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNl
c3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBzZXRVc2VySW5wdXQ6KE5TU3RyaW5nICopdmFsdWUg
Zm9yQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAvLyBGSVhNRTogT2JqZWN0aXZlLUMgZGVsZWdhdGUgbWV0aG9kcyBzaG91bGRuJ3QgdXNlIEMg
QVBJIHR5cGVzIGxpa2UgV0tQYWdlUmVmLiBXZSBuZWVkIHRvCiAvLyBtaWdyYXRlIGNsaWVudHMg
dG8gdXNlIFdLV2ViVmlldywgb3IgZXhwb3NlIHRoZSBzYW1lIGJlaGF2aW9yIHZpYSBhIEMgU1BJ
IGZvciB0aG9zZSBjbGllbnRzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWMKIC0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6KE5T
U3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbjsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0OihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVz
Y3JpcHRpb24gcmVzdWx0OihfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpcmVzdWx0Owog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2Fn
ZVdpdGhWYWx1ZTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRl
c2NyaXB0aW9uIHZhbHVlOihOU1N0cmluZyAqKSB2YWx1ZTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5
OihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3JpcHRpb247
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aEVuaGFuY2VkUHJpdmFjeTooTlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihO
U1N0cmluZyAqKWRlc2NyaXB0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRp
b25Db3JlTG9jYXRpb25Qcm92aWRlci5oCShyZXZpc2lvbiAyMTg0NDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlk
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogCiBAY2xhc3MgX1dLR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAorV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBwcm90b2NvbCBfV0tHZW9s
b2NhdGlvbkNvcmVMb2NhdGlvbkxpc3RlbmVyIDxOU09iamVjdD4KIC0gKHZvaWQpZ2VvbG9jYXRp
b25BdXRob3JpemF0aW9uR3JhbnRlZDsKIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3JpemF0aW9u
RGVuaWVkOwpAQCAtNDEsNiArNDIsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLSAodm9p
ZClyZXNldEdlb2xvY2F0aW9uOwogQGVuZAogCitXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQHByb3RvY29sIF9XS0dlb2xvY2F0aW9uQ29yZUxv
Y2F0aW9uUHJvdmlkZXIgPE5TT2JqZWN0PgogLSAodm9pZClzZXRMaXN0ZW5lcjooaWQgPF9XS0dl
b2xvY2F0aW9uQ29yZUxvY2F0aW9uTGlzdGVuZXI+KWxpc3RlbmVyOwogLSAodm9pZClyZXF1ZXN0
R2VvbG9jYXRpb25BdXRob3JpemF0aW9uOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCShyZXZpc2lvbiAyMTg0NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NywxMyArNDcsMTMgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4Lgog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXkgKmNhY2hlUGFydGl0aW9uZWRVUkxT
Y2hlbWVzOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MiksIGlvcygxMC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVTcGVj
dWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwg
aW9zKDEwLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJp
bmcgKnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKnNv
dXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMi4zKSwgaW9zKDEwLjMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSkgTlNTdHJpbmcgKnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllciBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGFsbG93c0NlbGx1bGFyQWNjZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
c2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqQ1REYXRhQ29ubmVjdGlv
blNlcnZpY2VUeXBlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGFsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFi
bGUsIGNvcHkpIE5TU3RyaW5nICpDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTAuMykpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzUnVu
c0F0QmFja2dyb3VuZFByaW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24gV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgcGlkX3QgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVt
b3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaAkocmV2aXNpb24gMjE4NDQwKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw5IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1JlbW90ZVdlYkluc3Bl
Y3RvckRlYnVnZ2FibGVUeXBlKSB7CiAgICAgV0tSZW1vdGVXZWJJbnNwZWN0b3JEZWJ1Z2dhYmxl
VHlwZUphdmFTY3JpcHQsCiAgICAgV0tSZW1vdGVXZWJJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZVdl
YiwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCi1X
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEyLjMpLCBpb3MoMTAuMykpCiBAaW50ZXJmYWNl
IF9XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgaWQgPF9XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250
cm9sbGVyRGVsZWdhdGU+IGRlbGVnYXRlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZVByaXZhdGUuaAkocmV2aXNpb24gMjE4NDQwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAtICh2b2lkKV9yZW1vdmVBbGxD
b250ZW50RXh0ZW5zaW9uczsKIC0gKHZvaWQpX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVy
c2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcjsKIAotLSAoaWQpX2luaXRX
aXRoV0tDb250ZW50UnVsZUxpc3RTdG9yZTooV0tDb250ZW50UnVsZUxpc3RTdG9yZSopY29udGVu
dFJ1bGVMaXN0U3RvcmU7CistIChpZClfaW5pdFdpdGhXS0NvbnRlbnRSdWxlTGlzdFN0b3JlOihX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlKiljb250ZW50UnVsZUxpc3RTdG9yZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVy
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGludGVyZmFjZSBfV0tV
c2VyQ29udGVudEZpbHRlciAoV0tQcml2YXRlKQogCi0tIChpZClfaW5pdFdpdGhXS0NvbnRlbnRS
dWxlTGlzdDooV0tDb250ZW50UnVsZUxpc3QqKWNvbnRlbnRSdWxlTGlzdDsKKy0gKGlkKV9pbml0
V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxlTGlzdCopY29udGVudFJ1bGVMaXN0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgJ
KHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRXZWJTdG9yYWdlRGlyZWN0b3J5Oikg
TlNVUkwgKl93ZWJTdG9yYWdlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAqX2luZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5OwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0V2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnk6KSBOU1VSTCAqX3dlYlNRTERhdGFiYXNlRGlyZWN0
b3J5OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Q29va2llU3RvcmFn
ZUZpbGU6KSBOU1VSTCAqX2Nvb2tpZVN0b3JhZ2VGaWxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZUZpbGU6KSBOU1VSTCAqX2Nvb2tpZVN0b3JhZ2VG
aWxlOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZVBvbGljaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAkocmV2aXNpb24gMjE4NDQwKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzksMTIgKzM5LDEyIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJ
bnRlZ2VyLCBfV0tXZWJzaXQKICAgICBfV0tXZWJzaXRlQXV0b3BsYXlRdWlya0luaGVyaXRlZFVz
ZXJHZXN0dXJlcyA9IDEgPDwgMSwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTIu
MyksIGlvcygxMC4zKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZVBvbGljaWVzIDogTlNPYmplY3QK
IAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29udGVudEJsb2NrZXJzRW5hYmxlZDsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlQXV0b3BsYXlRdWlyayBhbGxvd2VkQXV0b3Bs
YXlRdWlya3M7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1dG9wbGF5UG9saWN5
IGF1dG9wbGF5UG9saWN5OworQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVBdXRvcGxh
eVF1aXJrIGFsbG93ZWRBdXRvcGxheVF1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJz
aXRlQXV0b3BsYXlQb2xpY3kgYXV0b3BsYXlQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRWRpdGluZ0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0Rl
bGVnYXRlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywyNCArNDMsMjQgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgV0tFZGl0b3JJbnNlcgogICAgIFdLRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQsCiAg
ICAgV0tFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQsCiAgICAgV0tFZGl0b3JJbnNlcnRBY3Rpb25E
cm9wcGVkLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7
CiAKLVdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
CitXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKQogQHByb3RvY29s
IFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZSA8TlNPYmplY3Q+CiAKIEBvcHRpb25h
bAogCiAtIChCT09MKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHNo
b3VsZEluc2VydFRleHQ6KE5TU3RyaW5nICopdGV4dCByZXBsYWNpbmdSYW5nZTooV0tXZWJQcm9j
ZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZSBnaXZlbkFjdGlvbjooV0tFZGl0b3JJbnNlcnRB
Y3Rpb24pYWN0aW9uOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKLS0gKEJPT0wpX3dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZToo
V0tET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b1JhbmdlOihXS0RPTVJhbmdlICopcHJvcG9zZWRS
YW5nZSBhZmZpbml0eTooVUlUZXh0U3RvcmFnZURpcmVjdGlvbilzZWxlY3Rpb25BZmZpbml0eSBz
dGlsbFNlbGVjdGluZzooQk9PTClzdGlsbFNlbGVjdGluZzsKKy0gKEJPT0wpX3dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZToo
V0tET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b1JhbmdlOihXS0RPTVJhbmdlICopcHJvcG9zZWRS
YW5nZSBhZmZpbml0eTooVUlUZXh0U3RvcmFnZURpcmVjdGlvbilzZWxlY3Rpb25BZmZpbml0eSBz
dGlsbFNlbGVjdGluZzooQk9PTClzdGlsbFNlbGVjdGluZyBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CiAjZWxzZQotLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICopY29udHJvbGxlciBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlOihXS0RPTVJhbmdlICopY3Vy
cmVudFJhbmdlIHRvUmFuZ2U6KFdLRE9NUmFuZ2UgKilwcm9wb3NlZFJhbmdlIGFmZmluaXR5OihO
U1NlbGVjdGlvbkFmZmluaXR5KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5nOihCT09M
KXN0aWxsU2VsZWN0aW5nOworLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICop
Y29udHJvbGxlciBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlOihXS0RPTVJhbmdlICopY3VycmVu
dFJhbmdlIHRvUmFuZ2U6KFdLRE9NUmFuZ2UgKilwcm9wb3NlZFJhbmdlIGFmZmluaXR5OihOU1Nl
bGVjdGlvbkFmZmluaXR5KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5nOihCT09MKXN0
aWxsU2VsZWN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKICNlbmRp
ZgogLSAodm9pZClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckRpZENo
YW5nZUJ5RWRpdGluZzooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICopY29udHJvbGxlcjsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNv
bnRyb2xsZXIgd2lsbFdyaXRlUmFuZ2VUb1Bhc3RlYm9hcmQ6KFdLV2ViUHJvY2Vzc1BsdWdJblJh
bmdlSGFuZGxlICopcmFuZ2U7CiAtIChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNEYXRhICo+
ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGFzdGVib2FyZERh
dGFGb3JSYW5nZTooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZTsKIC0gKHZv
aWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFz
dGVib2FyZDooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29u
dHJvbGxlcjsKLS0gKEJPT0wpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xs
ZXIgcGVyZm9ybVR3b1N0ZXBEcm9wOihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopZnJh
Z21lbnQgYXREZXN0aW5hdGlvbjooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilkZXN0
aW5hdGlvbiBpc01vdmU6KEJPT0wpaXNNb3ZlOworLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJy
b3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyICopY29udHJvbGxlciBwZXJmb3JtVHdvU3RlcERyb3A6KFdLV2ViUHJvY2Vzc1Bs
dWdJbk5vZGVIYW5kbGUgKilmcmFnbWVudCBhdERlc3RpbmF0aW9uOihXS1dlYlByb2Nlc3NQbHVn
SW5SYW5nZUhhbmRsZSAqKWRlc3RpbmF0aW9uIGlzTW92ZTooQk9PTClpc01vdmUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZS5oCShyZXZpc2lvbiAyMTg0NDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NCw3ICs1NCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4KIC0gKEpTQ29udGV4dCAqKWpzQ29udGV4dEZvcldvcmxkOihXS1dlYlByb2Nlc3NQbHVn
SW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3Vs
dCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQ7CiAtIChKU1ZhbHVlICopanNOb2RlRm9yTm9kZUhh
bmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVIYW5kbGUgaW5Xb3JsZDoo
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZDsKLS0gKEpTVmFsdWUgKilqc1Jh
bmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2VI
YW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKEpT
VmFsdWUgKilqc1JhbmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFu
ZGxlICopcmFuZ2VIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQg
Kil3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAog
QGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblJhbmdlSGFuZGxlLmgJKHJldmlzaW9uIDIxODQ0MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
blJhbmdlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogQGNsYXNz
IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lOwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEyLjMpLCBpb3MoMTAuMykpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFu
ZGxlIDogTlNPYmplY3QKIAogKyAoV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5n
ZUhhbmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVlICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQg
Kiljb250ZXh0OwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMjE4NDQxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDYtMTYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFNvbWUgZGVjbGFyYXRpb25zIGhhdmUgbWlzc2lu
ZyBvciBpbmNvcnJlY3QgYXZhaWxhYmlsaXR5IGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzUwOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
UG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6IFVwZGF0ZWQgZm9yIHJlbmFtZXMuCisKIDIwMTctMDYtMTYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBEbkRdIFVwc3RyZWFtIGlPUyBk
cmFnIGFuZCBkcm9wIGltcGxlbWVudGF0aW9uIGludG8gT3BlblNvdXJjZSBXZWJLaXQKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbklu
Zm9ybWF0aW9uVGVzdHMubW0JKHJldmlzaW9uIDIxODQ0MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQCBURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgRmluZERyYWdn
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOwogCi0gICAgX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0aW9uID0gW3dlYlZpZXcgZHJhZ2dhYmxlRWxl
bWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCldOworICAgIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvICppbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IF9kcmFnZ2FibGVFbGVtZW50QXRQb3Np
dGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKV07CiAgICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVM
aW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKIH0KIApAQCAt
NjEsNyArNjEsNyBAQCBURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgUmVxdWVzdERyCiAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5w
dXQiXTsKIAogICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKLSAgICBbd2ViVmlldyBy
ZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29t
cGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0aW9uKSB7Cisg
ICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFr
ZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5m
b3JtYXRpb24pIHsKICAgICAgICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFn
ZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKICAgICAgICAgaXNEb25lID0gdHJ1
ZTsKICAgICB9XTsKQEAgLTc1LDggKzc1LDggQEAgVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMsIEZpbmREcmFnZwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1l
ZDpAImxpbmstYW5kLWlucHV0Il07CiAKICAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0gZmFsc2U7
Ci0gICAgW3dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRN
YWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpp
bmZvcm1hdGlvbikgewotICAgICAgICBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqc3luY2hyb25v
dXNJbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9p
bnRNYWtlKDEwMCwgMzAwKV07CisgICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50
QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFn
Z2FibGVFbGVtZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKKyAgICAgICAgX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKnN5bmNocm9ub3VzSW5mb3JtYXRpb24gPSBbd2ViVmlldyBfZHJhZ2dhYmxlRWxl
bWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKICAgICAgICAgW3N5bmNocm9u
b3VzSW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50
TWFrZSgxMDAsIDMwMCldOwogICAgICAgICBbaW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6WUVT
IGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwogICAgICAgICBpc0RvbmUg
PSB0cnVlOwpAQCAtOTEsOCArOTEsOCBAQCBURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywg
RmluZERyYWdnCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAi
bGluay1hbmQtaW5wdXQiXTsKIAogICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKLSAg
ICBbd2ViVmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2Uo
MTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9y
bWF0aW9uKSB7Ci0gICAgICAgIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpzeW5jaHJvbm91c0lu
Zm9ybWF0aW9uID0gW3dlYlZpZXcgZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1h
a2UoMTAwLCA1MCldOworICAgIFt3ZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9z
aXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm8gKmluZm9ybWF0aW9uKSB7CisgICAgICAgIF9XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvICpzeW5jaHJvbm91c0luZm9ybWF0aW9uID0gW3dlYlZpZXcgX2RyYWdnYWJsZUVsZW1lbnRB
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKICAgICAgICAgW3N5bmNocm9ub3VzSW5m
b3JtYXRpb24gZXhwZWN0VG9CZUxpbms6WUVTIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2Uo
MTAwLCA1MCldOwogICAgICAgICBbaW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6WUVTIGltYWdl
Ok5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwogICAgICAgICBpc0RvbmUgPSB0cnVl
OwpAQCAtMTA5LDggKzEwOSw4IEBAIFRFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBSZXF1
ZXN0RHIKICAgICBfX2Jsb2NrIGJvb2wgaXNEb25lV2l0aElubmVyID0gZmFsc2U7CiAgICAgX19i
bG9jayBib29sIGlzRG9uZVdpdGhPdXRlciA9IGZhbHNlOwogCi0gICAgW3dlYlZpZXcgcmVxdWVz
dERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRp
b25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpvdXRlckluZm9ybWF0aW9uKSB7Ci0g
ICAgICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50
TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAq
aW5uZXJJbmZvcm1hdGlvbikgeworICAgIFt3ZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVu
dEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8gKm91dGVySW5mb3JtYXRpb24pIHsKKyAgICAgICAgW3dlYlZpZXcg
X3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBj
b21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5uZXJJbmZvcm1hdGlv
bikgewogICAgICAgICAgICAgW2lubmVySW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1h
Z2U6WUVTIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOwogICAgICAgICAgICAgaXNEb25l
V2l0aElubmVyID0gdHJ1ZTsKICAgICAgICAgfV07CkBAIC0xMzAsOCArMTMwLDggQEAgVEVTVChQ
b3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIFJlcXVlc3REcgogICAgIF9fYmxvY2sgYm9vbCBpc0Rv
bmVXaXRoSW5uZXIgPSBmYWxzZTsKICAgICBfX2Jsb2NrIGJvb2wgaXNEb25lV2l0aE91dGVyID0g
ZmFsc2U7CiAKLSAgICBbd2ViVmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246
Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVu
dEluZm8gKm91dGVySW5mb3JtYXRpb24pIHsKLSAgICAgICAgW3dlYlZpZXcgcmVxdWVzdERyYWdn
YWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMzAwKSBjb21wbGV0aW9uQmxv
Y2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5uZXJJbmZvcm1hdGlvbikgeworICAgIFt3
ZWJWaWV3IF9yZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAw
LCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKm91dGVySW5m
b3JtYXRpb24pIHsKKyAgICAgICAgW3dlYlZpZXcgX3JlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQ
b3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDMwMCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8gKmlubmVySW5mb3JtYXRpb24pIHsKICAgICAgICAgICAgIFtpbm5lcklu
Zm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5PIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2Uo
MTAwLCAzMDApXTsKICAgICAgICAgICAgIGlzRG9uZVdpdGhJbm5lciA9IHRydWU7CiAgICAgICAg
IH1dOwo=
</data>
<flag name="review"
          id="334088"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>