<?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>215061</bug_id>
          
          <creation_ts>2020-08-01 10:42:54 -0700</creation_ts>
          <short_desc>Special HID mapping for the Google Stadia controller</short_desc>
          <delta_ts>2020-08-01 15:56:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677130</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-01 10:42:54 -0700</bug_when>
    <thetext>Special HID mapping for the Google Stadia controller</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677160</commentid>
    <comment_count>1</comment_count>
      <attachid>405796</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-01 14:53:07 -0700</bug_when>
    <thetext>Created attachment 405796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677173</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-01 15:55:52 -0700</bug_when>
    <thetext>Committed r265180: &lt;https://trac.webkit.org/changeset/265180&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405796.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677174</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-01 15:56:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/66431891&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405796</attachid>
            <date>2020-08-01 14:53:07 -0700</date>
            <delta_ts>2020-08-01 15:55:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215061-20200801145307.patch</filename>
            <type>text/plain</type>
            <size>45331</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk1ZWE5MDk0MTJjOGQz
YTFkNDRiYzdhZjBmMDlmZmRjZjQzNzQyYS4uNDdhNmRmNjFkMjM1NWY3MjRjOGZhZjkzNDc4NjAw
ZDFlODFhODVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA4LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjaWFsIEhJRCBtYXBw
aW5nIGZvciB0aGUgR29vZ2xlIFN0YWRpYSBjb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUwNjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFu
dHMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0tub3duR2FtZXBhZHMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9HYW1lcGFkQ29uc3RhbnRzTWFjLmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhJREdhbWVwYWQ6OmNyZWF0ZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21h
Yy9ISURHYW1lcGFkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFkRWxl
bWVudDo6SElER2FtZXBhZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZEhh
dHN3aXRjaDo6Z2FtZXBhZFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1l
cGFkSGF0c3dpdGNoOjpub3JtYWxpemVkVmFsdWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpISURHYW1lcGFk
RWxlbWVudDo6aXNBeGlzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRIYXRz
d2l0Y2g6OkhJREdhbWVwYWRIYXRzd2l0Y2gpOgorCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBh
ZC9tYWMvU3RhZGlhSElER2FtZXBhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3Rh
ZGlhSElER2FtZXBhZDo6U3RhZGlhSElER2FtZXBhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ2Ft
ZXBhZC9tYWMvU3RhZGlhSElER2FtZXBhZC5oOiAKKwogMjAyMC0wNy0zMSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9nIGEgd2FybmluZyB0byB0aGUgZGV2
IGNvbnNvbGUgd2hlbiBnYW1lcGFkcyBhcmUgYWNjZXNzZWQgZnJvbSBhbiBpbnNlY3VyZSBjb250
ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZGU4ZWY2MjliNDM0YTA5ZTc4OTU1NGEy
ODJiNjUyMjUzZThmMzdmZi4uNWM5ZjgwNDVhMmViYjQ1M2FmNjUyMTA1MjEyNzFiOTEzMGY3NGJi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNjMsNiArMjYzLDcgQEAgcGxhdGZvcm0v
Z2FtZXBhZC9tYWMvSElER2FtZXBhZC5jcHAKIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVw
YWRFbGVtZW50LmNwcAogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLm1t
CiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9NdWx0aUdhbWVwYWRQcm92aWRlci5tbQorcGxhdGZvcm0v
Z2FtZXBhZC9tYWMvU3RhZGlhSElER2FtZXBhZC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBAbm8tdW5pZnkKIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBAbm8tdW5pZnkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBhNDFiNTM0ZGM3NGNjMmUxOGRiMGMxOWQzYjIwYzNjMjhiZGU5ZjJjLi5lZjA3MmJhZGJmNDJk
ZWE3MmQxN2E3ZjA0MzkzMGZkMjY3MDI0YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA1LDYgKzE0MDUsNyBAQAogCQk1
MTBBOTFGNjI0RDMyRERDMDBCRkQ4OUMgLyogRHVhbHNob2NrM0hJREdhbWVwYWQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MUY0MjREMzI0RkYw
MEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBhZC5oICovOyB9OwogCQk1MTBBOTFGRDI0RDND
MTYyMDBCRkQ4OUMgLyogR2FtZXBhZENvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3MTVGRTkyNENEMDVERDAwMkM5N0U2IC8qIEdhbWVw
YWRDb25zdGFudHMuaCAqLzsgfTsKIAkJNTEwQTkxRkUyNEQzQzE2NzAwQkZEODlDIC8qIEdhbWVw
YWRDb25zdGFudHNNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMEE5MUZCMjREM0MwRkQwMEJGRDg5QyAvKiBHYW1lcGFkQ29uc3RhbnRzTWFjLmgg
Ki87IH07CisJCTUxMEE5MjEyMjRENUU2MEUwMEJGRDg5QyAvKiBTdGFkaWFISURHYW1lcGFkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBOTIxMTI0
RDVFMjE3MDBCRkQ4OUMgLyogU3RhZGlhSElER2FtZXBhZC5oICovOyB9OwogCQk1MTBENEEzNDEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBT
b2NrZXRTdHJlYW1FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBENEEzODEwMzE2NUVFMDA0
OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTgyMzUsNiArODIzNiw4IEBACiAJCTUxMEE5MUY0MjREMzI0RkYw
MEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEdWFsc2hvY2szSElER2FtZXBhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBBOTFGNTI0RDMyNTAwMDBCRkQ4OUMgLyogRHVhbHNob2NrM0hJREdhbWVwYWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHVhbHNob2NrM0hJREdh
bWVwYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBBOTFGQjI0RDNDMEZE
MDBCRkQ4OUMgLyogR2FtZXBhZENvbnN0YW50c01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHYW1lcGFkQ29uc3RhbnRzTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMEE5MjBGMjRENUUyMTcwMEJGRDg5QyAvKiBTdGFkaWFISURHYW1lcGFkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWRpYUhJREdhbWVwYWQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBBOTIxMTI0RDVFMjE3MDBCRkQ4OUMg
LyogU3RhZGlhSElER2FtZXBhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dGFkaWFISURHYW1lcGFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTJF
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhh
bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMxMTAzMTY1RUUw
MDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xOTY5OCw2ICsxOTcwMSw4IEBACiAJCQkJNTE1QkUxOTkxRDU0RjZCRDAwREQ3QzY4IC8q
IEhJREdhbWVwYWRQcm92aWRlci5tbSAqLywKIAkJCQk1MTdFMDNGNDI0QjZCOTYzMDA1NDg5NUEg
LyogTXVsdGlHYW1lcGFkUHJvdmlkZXIuaCAqLywKIAkJCQk1MTdFMDNGNTI0QjZCOTY0MDA1NDg5
NUEgLyogTXVsdGlHYW1lcGFkUHJvdmlkZXIubW0gKi8sCisJCQkJNTEwQTkyMEYyNEQ1RTIxNzAw
QkZEODlDIC8qIFN0YWRpYUhJREdhbWVwYWQuY3BwICovLAorCQkJCTUxMEE5MjExMjRENUUyMTcw
MEJGRDg5QyAvKiBTdGFkaWFISURHYW1lcGFkLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMzQ0Niw2ICszMzQ1MSw3IEBACiAJCQkJ
MUEyRTZFNUEwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTk2MzA4MjQ1RTU5MDAxRTlBQkMgLyogU1NMS2V5R2VuZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyNkI5OTk5MTE4MDNCM0M5MDBEMDExMjEgLyogU3RhY2tBbGxvY2F0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTUxMEE5MjEyMjRENUU2MEUwMEJGRDg5QyAvKiBTdGFkaWFISURH
YW1lcGFkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyog
U3RhdGljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0MzNFOTAzMURCQkRCQTIwMEVG
MEQxNCAvKiBTdGF0aWNQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDRFQkJEOTFE
QjVEMjE0MDAyNzczMzQgLyogU3RhdGljUmFuZ2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkQ29uc3RhbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFudHMuaAppbmRleCBm
MjkwZTc4ZDE0OGNlOTA4MjViNTA1NWU1ZWY2YjkxNGZkZWUwNzM3Li43ZTE2OWY0ZGE4Yjk4ZmU2
ZWZhYTFlMjMwZTJhNGU5MjRhMjM2NzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFudHMuaApAQCAtNTMsNiArNTMsOCBAQCBlbnVtIGNs
YXNzIEdhbWVwYWRCdXR0b25Sb2xlIDogdWludDhfdCB7CiAgICAgTGVmdENsdXN0ZXJMZWZ0ID0g
MTQsCiAgICAgTGVmdENsdXN0ZXJSaWdodCA9IDE1LAogICAgIENlbnRlckNsdXN0ZXJDZW50ZXIg
PSAxNiwKKyAgICBOb25zdGFuZGFyZDEgPSAxNywKKyAgICBOb25zdGFuZGFyZDIgPSAxOCwKIH07
CiAKIGV4dGVybiBjb25zdCBzaXplX3QgbnVtYmVyT2ZTdGFuZGFyZEdhbWVwYWRCdXR0b25zV2l0
aG91dEhvbWVCdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1l
cGFkL0tub3duR2FtZXBhZHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25v
d25HYW1lcGFkcy5oCmluZGV4IDZhNDFkNmM3OTBlOGFlZTg0NDg1OTVkMjg0MmQ3YjM5NTYxNDUz
YWMuLmEwYmQ1MGYxMmJhM2Y2ZThmN2NjNDQxMGRmY2NlOWJlNTE0ZDZhZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25vd25HYW1lcGFkcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25vd25HYW1lcGFkcy5oCkBAIC0zMCwyMCAr
MzAsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBLbm93bkdhbWVwYWQgeworICAg
IER1YWxzaG9jazMgPSAweDA1NGMwMjY4LAorICAgIER1YWxzaG9jazRfMSA9IDB4MDU0YzA1YzQs
CisgICAgRHVhbHNob2NrNF8yID0gMHgwNTRjMDljYywKKyAgICBHYW1lc2lyTTIgPSAweDBlYzIw
NDc1LAorICAgIEhvcmlwYWRVbHRpbWF0ZSA9IDB4MGYwZDAwOTAsCiAgICAgTmltYnVzMSA9IDB4
MDExMTE0MjAsCiAgICAgTmltYnVzMiA9IDB4MTAzODE0MjAsCisgICAgU3RhZGlhQSA9IDB4MThk
MTk0MDAsCiAgICAgU3RyYXR1c1hMMSA9IDB4MDExMTE0MTgsCiAgICAgU3RyYXR1c1hMMiA9IDB4
MTAzODE0MTgsCiAgICAgU3RyYXR1c1hMMyA9IDB4MDExMTE0MTksCiAgICAgU3RyYXR1c1hMNCA9
IDB4MTAzODE0MTksCi0gICAgSG9yaXBhZFVsdGltYXRlID0gMHgwZjBkMDA5MCwKLSAgICBHYW1l
c2lyTTIgPSAweDBlYzIwNDc1LAogICAgIFhib3hPbmUxID0gMHgwNDVlMDJlMCwKICAgICBYYm94
T25lMiA9IDB4MDQ1ZTAyZWEsCiAgICAgWGJveE9uZTMgPSAweDA0NWUwMmZkLAotICAgIER1YWxz
aG9jazMgPSAweDA1NGMwMjY4LAotICAgIER1YWxzaG9jazRfMSA9IDB4MDU0YzA1YzQsCi0gICAg
RHVhbHNob2NrNF8yID0gMHgwNTRjMDljYywKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0dhbWVwYWRD
b25zdGFudHNNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0dhbWVw
YWRDb25zdGFudHNNYWMuaAppbmRleCA5NjNlNzljYmUxN2ZmYzU5MTQ5ZDhjZGY3ZWIwZmM3Y2Mw
ZWZjMzg3Li5iMTMxNGJjYzUwZjk0MTBhNzBhYjEzMjY2YzEzMGY5MmZhZWM2YzcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9HYW1lcGFkQ29uc3RhbnRz
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvR2FtZXBhZENv
bnN0YW50c01hYy5oCkBAIC0zMSwxNiArMzEsMzIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Citjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkSGF0c3dpdGNoRnVsbFVzYWdlID0gKCh1aW50
NjRfdClrSElEUGFnZV9HZW5lcmljRGVza3RvcCkgPDwgMzIgfCBrSElEVXNhZ2VfR0RfSGF0c3dp
dGNoOwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZFBvaW50ZXJGdWxsVXNhZ2UgPSAoKHVp
bnQ2NF90KWtISURQYWdlX0dlbmVyaWNEZXNrdG9wKSA8PCAzMiB8IGtISURVc2FnZV9HRF9Qb2lu
dGVyOwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZFhBeGlzRnVsbFVzYWdlID0gKCh1aW50
NjRfdClrSElEUGFnZV9HZW5lcmljRGVza3RvcCkgPDwgMzIgfCBrSElEVXNhZ2VfR0RfWDsKIGNv
bnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRZQXhpc0Z1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJ
RFBhZ2VfR2VuZXJpY0Rlc2t0b3ApIDw8IDMyIHwga0hJRFVzYWdlX0dEX1k7CiBjb25zdGV4cHIg
Y29uc3QgdWludDY0X3QgaGlkWkF4aXNGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0dl
bmVyaWNEZXNrdG9wKSA8PCAzMiB8IGtISURVc2FnZV9HRF9aOwogY29uc3RleHByIGNvbnN0IHVp
bnQ2NF90IGhpZFJ6QXhpc0Z1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfR2VuZXJpY0Rl
c2t0b3ApIDw8IDMyIHwga0hJRFVzYWdlX0dEX1J6OworCitjb25zdGV4cHIgY29uc3QgdWludDY0
X3QgaGlkQWNjZWxlcmF0b3JGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX1NpbXVsYXRp
b24pIDw8IDMyIHwga0hJRFVzYWdlX1NpbV9BY2NlbGVyYXRvcjsKK2NvbnN0ZXhwciBjb25zdCB1
aW50NjRfdCBoaWRCcmFrZUZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfU2ltdWxhdGlv
bikgPDwgMzIgfCBrSElEVXNhZ2VfU2ltX0JyYWtlOworCiBjb25zdGV4cHIgY29uc3QgdWludDY0
X3QgaGlkQnV0dG9uMUZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAz
MiB8IGtISURVc2FnZV9CdXR0b25fMTsKIGNvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0
b24yRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURV
c2FnZV9CdXR0b25fMSArIDEpOwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjNG
dWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdl
X0J1dHRvbl8xICsgMik7CiBjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uNEZ1bGxV
c2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0
dG9uXzEgKyAzKTsKK2NvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b241RnVsbFVzYWdl
ID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25f
MSArIDQpOworY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjdGdWxsVXNhZ2UgPSAo
KHVpbnQ2NF90KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsg
Nik7Citjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uOEZ1bGxVc2FnZSA9ICgodWlu
dDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyA3KTsK
K2NvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b24xMUZ1bGxVc2FnZSA9ICgodWludDY0
X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyAxMCk7Citj
b25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uMTJGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90
KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgMTEpOworY29u
c3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjEzRnVsbFVzYWdlID0gKCh1aW50NjRfdClr
SElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDEyKTsKK2NvbnN0
ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b24xNEZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJ
RFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyAxMyk7Citjb25zdGV4
cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uMTVGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQ
YWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgMTQpOwogY29uc3RleHBy
IGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjE3RnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFn
ZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDE2KTsKK2NvbnN0ZXhwciBj
b25zdCB1aW50NjRfdCBoaWRCdXR0b24xOEZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2Vf
QnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyAxNyk7Citjb25zdGV4cHIgY29u
c3QgdWludDY0X3QgaGlkQnV0dG9uMTlGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0J1
dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgMTgpOworY29uc3RleHByIGNvbnN0
IHVpbnQ2NF90IGhpZEJ1dHRvbjIwRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0
b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDE5KTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21h
Yy9ISURHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJ
REdhbWVwYWQuY3BwCmluZGV4IDUxZGM0NGFmM2Q4OWUxMGI4ZWM4Y2IyMjVkZGM3NDJiNmNkMjNm
MDAuLmIwNWU5MjdiMjVhNDRhODI2MmViNzU3ZGFmOGYwZjdiYzA2YzZhMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiR2VuZXJpY0hJREdhbWVwYWQuaCIKICNpbmNsdWRlICJL
bm93bkdhbWVwYWRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlN0YWRpYUhJ
REdhbWVwYWQuaCIKICNpbmNsdWRlIDxJT0tpdC9oaWQvSU9ISURFbGVtZW50Lmg+CiAjaW5jbHVk
ZSA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KICNpbmNsdWRlIDxJT0tpdC9oaWQvSU9I
SURWYWx1ZS5oPgpAQCAtNTAsNiArNTEsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4g
SElER2FtZXBhZDo6Y3JlYXRlKElPSElERGV2aWNlUmVmIHJhd0RldmljZSwgdW5zaWduZQogICAg
IGNhc2UgRHVhbHNob2NrMzoKICAgICAgICAgbmV3R2FtZXBhZCA9IG1ha2VVbmlxdWU8RHVhbHNo
b2NrM0hJREdhbWVwYWQ+KFdURk1vdmUoZGV2aWNlKSwgaW5kZXgpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIFN0YWRpYUE6CisgICAgICAgIG5ld0dhbWVwYWQgPSBtYWtlVW5pcXVlPFN0YWRp
YUhJREdhbWVwYWQ+KFdURk1vdmUoZGV2aWNlKSwgaW5kZXgpOworICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgogICAgICAgICBuZXdHYW1lcGFkID0gbWFrZVVuaXF1ZTxHZW5lcmljSElER2Ft
ZXBhZD4oV1RGTW92ZShkZXZpY2UpLCBpbmRleCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuY3BwCmlu
ZGV4IDg4ZDM2ZTlmMGIzN2JkNWFjMjVlNjhiM2Q2MzI3NzNjNDFmZWY3MTQuLjYwYzhkNDBhNTg2
M2VhNjU0ZjFjNDE2N2ZhYWUxZGM0MjhiZTQ3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5jcHAKQEAgLTMy
LDkgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjcHJhZ21hIG1hcmsgSElER2FtZXBh
ZEVsZW1lbnQKIAotSElER2FtZXBhZEVsZW1lbnQ6OkhJREdhbWVwYWRFbGVtZW50KGNvbnN0IEhJ
REVsZW1lbnQmIGVsZW1lbnQsIFNoYXJlZEdhbWVwYWRWYWx1ZSYgdmFsdWUpCitISURHYW1lcGFk
RWxlbWVudDo6SElER2FtZXBhZEVsZW1lbnQoY29uc3QgSElERWxlbWVudCYgZWxlbWVudCkKICAg
ICA6IEhJREVsZW1lbnQoZWxlbWVudCkKLSAgICAsIG1fdmFsdWUodmFsdWUpCiB7CiB9CiAKQEAg
LTc1LDYgKzc0LDU3IEBAIGRvdWJsZSBISURHYW1lcGFkQXhpczo6bm9ybWFsaXplZFZhbHVlKCkK
ICAgICByZXR1cm4gKEhJREdhbWVwYWRFbGVtZW50Ojpub3JtYWxpemVkVmFsdWUoKSAqIDIuMCkg
LSAxLjA7CiB9CiAKKyNwcmFnbWEgbWFyayBISURHYW1lcGFkSGF0c3dpdGNoCisKK0hJRElucHV0
VHlwZSBISURHYW1lcGFkSGF0c3dpdGNoOjpnYW1lcGFkVmFsdWVDaGFuZ2VkKElPSElEVmFsdWVS
ZWYgdmFsdWUpCit7CisgICAgdmFsdWVDaGFuZ2VkKHZhbHVlKTsKKworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgNDsgKytpKQorICAgICAgICBtX2J1dHRvblZhbHVlc1tpXS5zZXRWYWx1ZSgw
LjApOworCisgICAgc3dpdGNoIChwaHlzaWNhbFZhbHVlKCkpIHsKKyAgICBjYXNlIDA6CisgICAg
ICAgIG1fYnV0dG9uVmFsdWVzWzBdLnNldFZhbHVlKDEuMCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgNDU6CisgICAgICAgIG1fYnV0dG9uVmFsdWVzWzBdLnNldFZhbHVlKDEuMCk7CisgICAg
ICAgIG1fYnV0dG9uVmFsdWVzWzFdLnNldFZhbHVlKDEuMCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgOTA6CisgICAgICAgIG1fYnV0dG9uVmFsdWVzWzFdLnNldFZhbHVlKDEuMCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgMTM1OgorICAgICAgICBtX2J1dHRvblZhbHVlc1sxXS5zZXRW
YWx1ZSgxLjApOworICAgICAgICBtX2J1dHRvblZhbHVlc1syXS5zZXRWYWx1ZSgxLjApOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIDE4MDoKKyAgICAgICAgbV9idXR0b25WYWx1ZXNbMl0uc2V0
VmFsdWUoMS4wKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyMjU6CisgICAgICAgIG1fYnV0
dG9uVmFsdWVzWzJdLnNldFZhbHVlKDEuMCk7CisgICAgICAgIG1fYnV0dG9uVmFsdWVzWzNdLnNl
dFZhbHVlKDEuMCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjcwOgorICAgICAgICBtX2J1
dHRvblZhbHVlc1szXS5zZXRWYWx1ZSgxLjApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDMx
NToKKyAgICAgICAgbV9idXR0b25WYWx1ZXNbM10uc2V0VmFsdWUoMS4wKTsKKyAgICAgICAgbV9i
dXR0b25WYWx1ZXNbMF0uc2V0VmFsdWUoMS4wKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBISURJbnB1dFR5cGU6OkJ1
dHRvblByZXNzOworfQorCitkb3VibGUgSElER2FtZXBhZEhhdHN3aXRjaDo6bm9ybWFsaXplZFZh
bHVlKCkKK3sKKyAgICAvLyBIYXRzd2l0Y2ggbm9ybWFsaXplZFZhbHVlIHNob3VsZCBuZXZlciBi
ZSBhY2Nlc3NlZC4KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRFbGVtZW50LmgKaW5kZXggNzQyM2ZjODFkM2Y2MjEyOTUxOGQ1NGU4OWYwNmIy
MTExN2FjZDk3Yi4uZDc2NzNhNWM0ZjkxNzJmMjEzYjUzZDRjNmIyODcxZDFkNzMwNzE5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1l
cGFkRWxlbWVudC5oCkBAIC00NSwyNCArNDUsMjMgQEAgY2xhc3MgSElER2FtZXBhZEVsZW1lbnQg
OiBwdWJsaWMgSElERWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SElER2FtZXBhZEVs
ZW1lbnQoKSB7IH0KIAotICAgIHZpcnR1YWwgZG91YmxlIG5vcm1hbGl6ZWRWYWx1ZSgpOwogICAg
IHZpcnR1YWwgSElESW5wdXRUeXBlIGdhbWVwYWRWYWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZikg
PSAwOwogCiAgICAgdm9pZCByZWZyZXNoQ3VycmVudFZhbHVlKCk7CiAKIHByb3RlY3RlZDoKLSAg
ICBISURHYW1lcGFkRWxlbWVudChjb25zdCBISURFbGVtZW50JiwgU2hhcmVkR2FtZXBhZFZhbHVl
Jik7CisgICAgSElER2FtZXBhZEVsZW1lbnQoY29uc3QgSElERWxlbWVudCYpOwogCisgICAgdmly
dHVhbCBkb3VibGUgbm9ybWFsaXplZFZhbHVlKCk7CiAgICAgdmlydHVhbCBib29sIGlzQnV0dG9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBeGlzKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIFNoYXJlZEdhbWVwYWRWYWx1ZSBtX3ZhbHVlOwog
fTsKIAogY2xhc3MgSElER2FtZXBhZEJ1dHRvbiBmaW5hbCA6IHB1YmxpYyBISURHYW1lcGFkRWxl
bWVudCB7CiBwdWJsaWM6CiAgICAgSElER2FtZXBhZEJ1dHRvbihjb25zdCBISURFbGVtZW50JiBl
bGVtZW50LCBTaGFyZWRHYW1lcGFkVmFsdWUmIHZhbHVlKQotICAgICAgICA6IEhJREdhbWVwYWRF
bGVtZW50KGVsZW1lbnQsIHZhbHVlKQorICAgICAgICA6IEhJREdhbWVwYWRFbGVtZW50KGVsZW1l
bnQpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQogCkBAIC03MCwyMCAr
NjksNDMgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhJRElucHV0VHlwZSBnYW1lcGFkVmFs
dWVDaGFuZ2VkKElPSElEVmFsdWVSZWYpIG92ZXJyaWRlOworCisgICAgU2hhcmVkR2FtZXBhZFZh
bHVlIG1fdmFsdWU7CiB9OwogCiBjbGFzcyBISURHYW1lcGFkQXhpcyBmaW5hbCA6IHB1YmxpYyBI
SURHYW1lcGFkRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSElER2FtZXBhZEF4aXMoY29uc3QgSElE
RWxlbWVudCYgZWxlbWVudCwgU2hhcmVkR2FtZXBhZFZhbHVlJiB2YWx1ZSkKLSAgICAgICAgOiBI
SURHYW1lcGFkRWxlbWVudChlbGVtZW50LCB2YWx1ZSkKKyAgICAgICAgOiBISURHYW1lcGFkRWxl
bWVudChlbGVtZW50KQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KIAog
ICAgIGJvb2wgaXNBeGlzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGRvdWJs
ZSBub3JtYWxpemVkVmFsdWUoKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBISURJbnB1dFR5cGUg
Z2FtZXBhZFZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmKSBvdmVycmlkZTsKKyAgICBkb3VibGUg
bm9ybWFsaXplZFZhbHVlKCkgZmluYWw7CisKKyAgICBTaGFyZWRHYW1lcGFkVmFsdWUgbV92YWx1
ZTsKK307CisKK2NsYXNzIEhJREdhbWVwYWRIYXRzd2l0Y2ggOiBwdWJsaWMgSElER2FtZXBhZEVs
ZW1lbnQgeworcHVibGljOgorICAgIEhJREdhbWVwYWRIYXRzd2l0Y2goY29uc3QgSElERWxlbWVu
dCYgZWxlbWVudCwgVmVjdG9yPFNoYXJlZEdhbWVwYWRWYWx1ZT4mJiBidXR0b25WYWx1ZXMpCisg
ICAgICAgIDogSElER2FtZXBhZEVsZW1lbnQoZWxlbWVudCkKKyAgICAgICAgLCBtX2J1dHRvblZh
bHVlcyhXVEZNb3ZlKGJ1dHRvblZhbHVlcykpCisgICAgeworICAgIH0KKworICAgIC8vIFRyZWF0
IGhhdHN3aXRjaCB2YWx1ZSBjaGFuZ2VzIGFzIGEgYnV0dG9uIHByZXNzCisgICAgYm9vbCBpc0J1
dHRvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBISURJ
bnB1dFR5cGUgZ2FtZXBhZFZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmKSBmaW5hbDsKKyAgICBk
b3VibGUgbm9ybWFsaXplZFZhbHVlKCkgZmluYWw7CisKKyAgICBWZWN0b3I8U2hhcmVkR2FtZXBh
ZFZhbHVlPiBtX2J1dHRvblZhbHVlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL1N0YWRpYUhJREdh
bWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvU3RhZGlhSElE
R2FtZXBhZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE5NGU1NjIzM2EyMDQ0NjQxZjEwMGYwNTY0NGQ1NzVh
ZGJjOWU3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvbWFjL1N0YWRpYUhJREdhbWVwYWQuY3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0YWRpYUhJREdhbWVwYWQuaCIKKwor
I2lmIEVOQUJMRShHQU1FUEFEKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJHYW1lcGFk
Q29uc3RhbnRzLmgiCisjaW5jbHVkZSAiR2FtZXBhZENvbnN0YW50c01hYy5oIgorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdGFkaWFISURHYW1lcGFkOjpT
dGFkaWFISURHYW1lcGFkKEhJRERldmljZSYmIGRldmljZSwgdW5zaWduZWQgaW5kZXgpCisgICAg
OiBISURHYW1lcGFkKFdURk1vdmUoZGV2aWNlKSwgaW5kZXgpCit7CisgICAgTE9HKEdhbWVwYWQs
ICJDcmVhdGluZyBTdGFkaWFISURHYW1lcGFkICVwIiwgdGhpcyk7CisKKyAgICBtX21hcHBpbmcg
PSBzdGFuZGFyZEdhbWVwYWRNYXBwaW5nU3RyaW5nKCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IDE5OyArK2kpCisgICAgICAgIG1fYnV0dG9uVmFsdWVzLmFwcGVuZCgwLjApOworCisg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBheGlzQ291bnQgPSA0OworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYXhpc0NvdW50OyArK2kpCisgICAgICAgIG1fYXhpc1ZhbHVlcy5hcHBlbmQoMC4w
KTsKKworICAgIGF1dG8gaW5wdXRFbGVtZW50cyA9IGhpZERldmljZSgpLnVuaXF1ZUlucHV0RWxl
bWVudHNJbkRldmljZVRyZWVPcmRlcigpOworCisgICAgYXV0byBtYXBCdXR0b24gPSBbdGhpc10g
KEhJREVsZW1lbnQmIGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlIHJvbGUpIHsKKyAgICAgICAg
bV9lbGVtZW50TWFwLnNldChlbGVtZW50LmNvb2tpZSgpLCBtYWtlVW5pcXVlPEhJREdhbWVwYWRC
dXR0b24+KGVsZW1lbnQsIG1fYnV0dG9uVmFsdWVzWyhzaXplX3Qpcm9sZV0pKTsKKyAgICB9Owor
CisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogaW5wdXRFbGVtZW50cykgeworICAgICAgICBzd2l0
Y2ggKGVsZW1lbnQuZnVsbFVzYWdlKCkpIHsKKyAgICAgICAgY2FzZSBoaWRYQXhpc0Z1bGxVc2Fn
ZToKKyAgICAgICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVu
aXF1ZTxISURHYW1lcGFkQXhpcz4oZWxlbWVudCwgbV9heGlzVmFsdWVzWzBdKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRZQXhpc0Z1bGxVc2FnZToKKyAgICAgICAgICAg
IG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURHYW1lcGFk
QXhpcz4oZWxlbWVudCwgbV9heGlzVmFsdWVzWzFdKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBoaWRaQXhpc0Z1bGxVc2FnZToKKyAgICAgICAgICAgIG1fZWxlbWVudE1hcC5z
ZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURHYW1lcGFkQXhpcz4oZWxlbWVudCwg
bV9heGlzVmFsdWVzWzJdKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRS
ekF4aXNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtX2VsZW1lbnRNYXAuc2V0KGVsZW1lbnQuY29v
a2llKCksIG1ha2VVbmlxdWU8SElER2FtZXBhZEF4aXM+KGVsZW1lbnQsIG1fYXhpc1ZhbHVlc1sz
XSkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBoaWRIYXRzd2l0Y2hGdWxs
VXNhZ2U6IHsKKyAgICAgICAgICAgIFZlY3RvcjxTaGFyZWRHYW1lcGFkVmFsdWU+IGhhdHN3aXRj
aFZhbHVlczsKKyAgICAgICAgICAgIGhhdHN3aXRjaFZhbHVlcy5hcHBlbmQobV9idXR0b25WYWx1
ZXNbKHNpemVfdClHYW1lcGFkQnV0dG9uUm9sZTo6TGVmdENsdXN0ZXJUb3BdKTsKKyAgICAgICAg
ICAgIGhhdHN3aXRjaFZhbHVlcy5hcHBlbmQobV9idXR0b25WYWx1ZXNbKHNpemVfdClHYW1lcGFk
QnV0dG9uUm9sZTo6TGVmdENsdXN0ZXJSaWdodF0pOworICAgICAgICAgICAgaGF0c3dpdGNoVmFs
dWVzLmFwcGVuZChtX2J1dHRvblZhbHVlc1soc2l6ZV90KUdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0
Q2x1c3RlckJvdHRvbV0pOworICAgICAgICAgICAgaGF0c3dpdGNoVmFsdWVzLmFwcGVuZChtX2J1
dHRvblZhbHVlc1soc2l6ZV90KUdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0Q2x1c3RlckxlZnRdKTsK
KworICAgICAgICAgICAgbV9lbGVtZW50TWFwLnNldChlbGVtZW50LmNvb2tpZSgpLCBtYWtlVW5p
cXVlPEhJREdhbWVwYWRIYXRzd2l0Y2g+KGVsZW1lbnQsIFdURk1vdmUoaGF0c3dpdGNoVmFsdWVz
KSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIGhpZEFj
Y2VsZXJhdG9yRnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVw
YWRCdXR0b25Sb2xlOjpSaWdodFNob3VsZGVyQmFjayk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBoaWRCcmFrZUZ1bGxVc2FnZToKKyAgICAgICAgICAgIG1hcEJ1dHRvbihlbGVt
ZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6TGVmdFNob3VsZGVyQmFjayk7CisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIGhpZEJ1dHRvbjFGdWxsVXNhZ2U6CisgICAgICAgICAgICBt
YXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OlJpZ2h0Q2x1c3RlckJvdHRvbSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b24yRnVsbFVzYWdlOgor
ICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpSaWdodENs
dXN0ZXJSaWdodCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b240
RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25S
b2xlOjpSaWdodENsdXN0ZXJMZWZ0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IGhpZEJ1dHRvbjVGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2Ft
ZXBhZEJ1dHRvblJvbGU6OlJpZ2h0Q2x1c3RlclRvcCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBoaWRCdXR0b243RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVs
ZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0U2hvdWxkZXJGcm9udCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b244RnVsbFVzYWdlOgorICAgICAgICAgICAg
bWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpSaWdodFNob3VsZGVyRnJvbnQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uMTFGdWxsVXNhZ2U6
CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OkNlbnRl
ckNsdXN0ZXJMZWZ0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRv
bjEyRnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0
b25Sb2xlOjpDZW50ZXJDbHVzdGVyUmlnaHQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgaGlkQnV0dG9uMTNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVu
dCwgR2FtZXBhZEJ1dHRvblJvbGU6OkNlbnRlckNsdXN0ZXJDZW50ZXIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uMTRGdWxsVXNhZ2U6CisgICAgICAgICAgICBt
YXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OkxlZnRTdGljayk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b24xNUZ1bGxVc2FnZToKKyAgICAgICAg
ICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6UmlnaHRTdGljayk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b24xN0Z1bGxVc2FnZToKKyAg
ICAgICAgICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6Tm9uc3RhbmRh
cmQxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjE4RnVsbFVz
YWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpO
b25zdGFuZGFyZDIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL1N0YWRpYUhJREdhbWVw
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL1N0YWRpYUhJREdhbWVw
YWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MzI2YjhiMzY5MGQ2MGM5ZjA1NDRmZjA5ZjQyMzJjZmFkNmYxMmQx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
U3RhZGlhSElER2FtZXBhZC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHQU1FUEFEKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRl
ICJISURHYW1lcGFkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RhZGlhSElE
R2FtZXBhZCBmaW5hbCA6IHB1YmxpYyBISURHYW1lcGFkIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTdGFkaWFISURHYW1lcGFkKEhJRERldmljZSYmLCB1bnNp
Z25lZCBpbmRleCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEwZmY2OTI0ZGY0NjU5MzczMDYyZTM1MTQyYjI4
MTVhM2Y4YTVkOWUuLjNmMzk1MGJiZjZkNmE3YjIyYTRmOGRmODY1N2E3ODEyMmVmY2U3MTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAyMC0wOC0wMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3BlY2lhbCBISUQgbWFwcGluZyBmb3IgdGhlIEdvb2dsZSBTdGFkaWEgY29udHJv
bGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1
MDYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1lcGFkcy5tbToKKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Hb29nbGVTdGFkaWEubW06IEFk
ZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHVibGlzaFJlcG9ydENhbGxiYWNrKToKKwor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VmlydHVhbEdhbWVwYWQ6Omdvb2dsZVN0YWRpYU1hcHBp
bmcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1ZpcnR1YWxHYW1lcGFkLmg6CisKIDIw
MjAtMDctMzEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNw
ZWNpYWwgSElEIG1hcHBpbmcgZm9yIHRoZSBEdWFsc2hvY2sgMyBjb250cm9sbGVyCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQzNTRhNDg1NTlmMjA3ZjYwYWYyNzI5NmRiOWYyYjNlZjRiM2E2
YTMuLjIxMjkwMTU3NWVjNWExYjFhZDM1YjVkZWQ2MmZiNmIxNjc0M2YwNGQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yNzcsNiArMjc3LDcgQEAKIAkJNTEwNDc3NzcxRDI5OEU3MjAwOTc0
N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNDc3NzYxRDI5OEU1NzAwOTc0N0VCIC8qIElE
QkRlbGV0ZVJlY292ZXJ5Lmh0bWwgKi87IH07CiAJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAv
KiBJREJEZWxldGVSZWNvdmVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVy
eS5tbSAqLzsgfTsKIAkJNTEwQTkxRjgyNEQzNjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2sz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkx
RjcyNEQzNjIxOTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tICovOyB9OworCQk1MTBBOTIx
NDI0RDYxNUI0MDBCRkQ4OUMgLyogR29vZ2xlU3RhZGlhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkyMTMyNEQ2MEEzRTAwQkZEODlDIC8qIEdv
b2dsZVN0YWRpYS5tbSAqLzsgfTsKIAkJNTExMEZDRjExRTAxQ0Q2NDAwNkY4RDBCIC8qIElEQklu
ZGV4VXBncmFkZVRvVjIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTEwRkNGMDFFMDFDRDUzMDA2RjhEMEIgLyogSURCSW5kZXhVcGdy
YWRlVG9WMi5odG1sICovOyB9OwogCQk1MTEwRkNGNjFFMDFDRDgzMDA2RjhEMEIgLyogSW5kZXhV
cGdyYWRlLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExMEZDRjMxRTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5zcWxp
dGUzICovOyB9OwogCQk1MTEwRkNGOTFFMDFDRDhBMDA2RjhEMEIgLyogSW5kZXhVcGdyYWRlLmJs
b2IgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExMEZDRjIxRTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5ibG9iICovOyB9OwpAQCAt
MTk3Myw2ICsxOTc0LDcgQEAKIAkJNTEwNDc3NzUxRDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0
ZVJlY292ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSURC
RGVsZXRlUmVjb3ZlcnkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDQ3Nzc2
MUQyOThFNTcwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gSURCRGVsZXRlUmVjb3ZlcnkuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwQTkxRjcyNEQzNjIxOTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU29ueUR1YWxTaG9jazMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMEE5MjEzMjRENjBBM0UwMEJGRDg5
QyAvKiBHb29nbGVTdGFkaWEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBHb29nbGVTdGFkaWEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBG
Q0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSURCSW5kZXhVcGdyYWRlVG9WMi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEZDRjAxRTAxQ0Q1MzAwNkY4RDBCIC8qIElE
QkluZGV4VXBncmFkZVRvVjIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IElEQklu
ZGV4VXBncmFkZVRvVjIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEZD
RjIxRTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5ibG9iICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEluZGV4VXBncmFkZS5ibG9iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzQ2OCw2ICszNDcwLDcgQEAKIAkJNTFFQjEyNUQyNENBNkIzRTAwMENCMDMwIC8qIEdhbWVwYWRN
YXBwaW5ncyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTEwQTkyMTMyNEQ2MEEzRTAwQkZEODlDIC8qIEdvb2dsZVN0YWRpYS5tbSAqLywKIAkJCQk1MUVC
MTI2MDI0Q0E2QjVGMDAwQ0IwMzAgLyogTWljcm9zb2Z0WGJveE9uZS5tbSAqLywKIAkJCQk1MUVC
MTI1RTI0Q0E2QjVGMDAwQ0IwMzAgLyogU2hlbnpoZW5Mb25nc2hlbmd3ZWlUZWNobm9sb2d5R2Ft
ZXBhZC5tbSAqLywKIAkJCQk1MTBBOTFGNzI0RDM2MjE5MDBCRkQ4OUMgLyogU29ueUR1YWxTaG9j
azMubW0gKi8sCkBAIC00ODU2LDEzICs0ODU5LDEzIEBACiAJCQkJQ0U3ODcwNUYyMTA3QUI5ODAw
NTNBQzY3IC8qIE1vdmVPbmx5TGlmZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDODNERUZFMUQwQTU5MEMwMEZFQkNGMyAvKiBOYWtlZFB0ci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNTdENTRGMzFGMzM4QzM2MDBBOTdBQTcgLyogTmV2ZXJEZXN0cm95ZWQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0Q0OEE4NzMyNEM4QTY2RjAwRjU4MDBDIC8qIE9ic2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDODNERjAxMUQwQTU5MEMwMEZFQkNGMyAvKiBPcHRpb25hbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc3QkFBMzFEOUFGRkZDMDA1RkM1NjggLyogT3B0aW9u
U2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjAyMUQwQTU5MEMwMEZFQkNGMyAvKiBP
U09iamVjdFB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzJCNTQ5MjIyODEwQUM0MDA4QUQ3
MDIgLyogUGFja2VkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzOEQ2NUNBMjNBNDVGQUEwMDYz
RDY5QSAvKiBQYWNrZWRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4RDY1Q0IyM0E0NUZB
QTAwNjNENjlBIC8qIFBhY2tlZFJlZlB0ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDQ4QTg3
MzI0QzhBNjZGMDBGNTgwMEMgLyogT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0RGNTkxRDBBNTkwQzAwRkVCQ0YzIC8qIFBhcmtpbmdMb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTNFQzI1NDExRTk2RkQ4NzAwMDgzMUI5IC8qIFByaW9yaXR5UXVldWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0RGMTMxRDBBNTkwQzAwRkVCQ0YzIC8qIFJlZEJsYWNrVHJlZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTUxMDQsNiArNTEwNyw3IEBACiAJCQkJNDExNTcyMzcyMzRCMjQw
QzAwNTBBMUQxIC8qIEdldFVzZXJNZWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3Q0UxQ0Yz
MUYwNkE3RTAwMEJGODlGNSAvKiBHZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDdFNDk5OTExRjlFNTZERjAwMkYxRUYzIC8qIEdldFVzZXJNZWRpYVJlcHJvbXB0
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwQTkyMTQyNEQ2MTVCNDAwQkZEODlDIC8qIEdvb2ds
ZVN0YWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUzOTRBRTZGMjNGMjMwM0UwMDVCNDkzNiAv
KiBHcmFudEFjY2Vzc1RvTW9iaWxlQXNzZXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM0QTZE
MTkyNDEyREUzOTAwMTJBQjZFIC8qIEdyYW50QWNjZXNzVG9QcmVmZXJlbmNlc1NlcnZpY2UubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4RTRBODUzNzFFMUQxQUIyMDBGNTNCMEYgLyogR3JpZFBvc2l0
aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvSElER2FtZXBhZHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9I
SURHYW1lcGFkcy5tbQppbmRleCAyZTBmNDkxZDkwNWQzOTJmYTJhNTRhZDVhNTMxNjIwZWQyMmYw
OTc0Li4yMjdjZTEyM2EyMDgyNTE3MWY1M2ZlMmRkN2Q3MjVhZTBkMGExZTUyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1lcGFkcy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1lcGFkcy5tbQpAQCAtNDIxLDYgKzQyMSw3
NCBAQCBURVNUKEdhbWVwYWQsIER1YWxzaG9jazNCYXNpYykKICAgICBkaWRSZWNlaXZlTWVzc2Fn
ZSA9IHRydWU7CiB9CiAKK1RFU1QoR2FtZXBhZCwgU3RhZGlhKQoreworICAgIGF1dG8ga2V5V2lu
ZG93U3dpenpsZXIgPSBtYWtlVW5pcXVlPEluc3RhbmNlTWV0aG9kU3dpenpsZXI+KFtOU0FwcGxp
Y2F0aW9uIGNsYXNzXSwgQHNlbGVjdG9yKGtleVdpbmRvdyksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1Q
PihnZXRLZXlXaW5kb3dGb3JUZXN0aW5nKSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8g
bWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbR2FtZXBhZE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImdhbWVwYWQiXTsK
KworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
c2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJnYW1lcGFkIl07CisKKyAgICBbc2No
ZW1lSGFuZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlk
PFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRO
UyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlN
RVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05h
bWU6bmlsXSk7CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQo
KV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlczpt
YWluQnl0ZXMgbGVuZ3RoOnN0cmxlbihtYWluQnl0ZXMpXV07CisgICAgICAgIFt0YXNrIGRpZEZp
bmlzaF07CisgICAgfV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBrZXlXaW5kb3dGb3JUZXN0aW5n
ID0gW3dlYlZpZXcgd2luZG93XTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImdh
bWVwYWQ6Ly9ob3N0L21haW4uaHRtbCJdXV07CisKKyAgICBbW3dlYlZpZXcgd2luZG93XSBtYWtl
Rmlyc3RSZXNwb25kZXI6d2ViVmlldy5nZXQoKV07CisKKyAgICAvLyBSZXNpZ25pbmcvcmVpbnN0
YXRpbmcgdGhlIGtleSB3aW5kb3cgc3RhdGUgdHJpZ2dlcnMgdGhlICJrZXkgd2luZG93IGRpZCBj
aGFuZ2UiIG5vdGlmaWNhdGlvbiB0aGF0IFdLV2ViVmlldyBjdXJyZW50bHkKKyAgICAvLyBuZWVk
cyB0byBjb252aW5jZSBpdCB0byBtb25pdG9yIGdhbWVwYWQgZGV2aWNlcworICAgIFtbd2ViVmll
dyB3aW5kb3ddIHJlc2lnbktleVdpbmRvd107CisgICAgW1t3ZWJWaWV3IHdpbmRvd10gbWFrZUtl
eVdpbmRvd107CisKKyAgICAvLyBDb25uZWN0IGEgZ2FtZXBhZCBhbmQgbWFrZSBpdCB2aXNpYmxl
IHRvIHRoZSBwYWdlCisgICAgYXV0byBnYW1lcGFkID0gbWFrZVVuaXF1ZTxWaXJ0dWFsR2FtZXBh
ZD4oVmlydHVhbEdhbWVwYWQ6Omdvb2dsZVN0YWRpYU1hcHBpbmcoKSk7CisgICAgd2hpbGUgKCFb
d2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9udW1iZXJPZkNvbm5lY3Rl
ZEdhbWVwYWRzRm9yVGVzdGluZ10pCisgICAgICAgIFV0aWw6OnNsZWVwKDAuMDEpOworCisgICAg
RVhQRUNUX0VRKFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX251bWJl
ck9mQ29ubmVjdGVkSElER2FtZXBhZHNGb3JUZXN0aW5nXSwgMXUpOworICAgIEVYUEVDVF9FUShb
d2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9udW1iZXJPZkNvbm5lY3Rl
ZEdhbWVDb250cm9sbGVyRnJhbWV3b3JrR2FtZXBhZHNGb3JUZXN0aW5nXSwgMHUpOworCisgICAg
Z2FtZXBhZC0+c2V0QnV0dG9uVmFsdWUoMCwgMS4wKTsKKyAgICBnYW1lcGFkLT5zZXRCdXR0b25W
YWx1ZSgxLCAxLjApOworICAgIGdhbWVwYWQtPnNldEJ1dHRvblZhbHVlKDIsIDEuMCk7CisgICAg
Z2FtZXBhZC0+c2V0QnV0dG9uVmFsdWUoMywgMS4wKTsKKyAgICBnYW1lcGFkLT5zZXRCdXR0b25W
YWx1ZSg0LCAxLjApOworICAgIGdhbWVwYWQtPnNldEJ1dHRvblZhbHVlKDUsIDEuMCk7CisgICAg
Z2FtZXBhZC0+cHVibGlzaFJlcG9ydCgpOworCisgICAgLy8gV2FpdCBmb3IgdGhlIHBhZ2UgdG8g
dGVsbCB1cyBhIGdhbWVwYWQgY29ubmVjdGVkCisgICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVz
c2FnZSk7CisgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKKworICAgIEVYUEVDVF9FUSht
ZXNzYWdlSGFuZGxlci5nZXQoKS5tZXNzYWdlcy5zaXplKCksIDF1KTsKKyAgICBFWFBFQ1RfVFJV
RShbbWVzc2FnZUhhbmRsZXIuZ2V0KCkubWVzc2FnZXNbMF0gaXNFcXVhbFRvU3RyaW5nOkAiXCIx
OGQxLTk0MDAtVmlydHVhbCBTdGFkaWFcIiJdKTsKKworICAgIGJvb2wgZG9uZSA9IGZhbHNlOwor
ICAgIGF1dG8gcmVzdWx0QmxvY2sgPSBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0
W0AiZ2FtZXBhZENvdW50Il0gaXNFcXVhbFRvTnVtYmVyOkAoMSldKTsKKyAgICAgICAgRVhQRUNU
X0VRKCgoTlNBcnJheSAqKXJlc3VsdFtAImdhbWVwYWRCdXR0b25zIl1bMF0pLmNvdW50LCAxOXUp
OworICAgICAgICBFWFBFQ1RfRVEoKChOU0FycmF5ICopcmVzdWx0W0AiZ2FtZXBhZEF4ZXMiXVsw
XSkuY291bnQsIDR1KTsKKworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9OworCisgICAgW3dl
YlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDpAKHBvbGxHYW1lcGFkU3RhdGVGdW5jdGlvbikgYXJn
dW1lbnRzOm5pbCBpbkZyYW1lOm5pbCBpbkNvbnRlbnRXb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdl
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6cmVzdWx0QmxvY2tdOworCisgICAgVXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEhBVkUoSElEX0ZSQU1FV09SSykgJiYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0dh
bWVwYWRNYXBwaW5ncy9Hb29nbGVTdGFkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9H
YW1lcGFkTWFwcGluZ3MvR29vZ2xlU3RhZGlhLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyOGM2ZmFkZTMwYzE0
MTI3NGVmMWZmNDYzMWNmMjAxNWZhMGZlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9HYW1lcGFkTWFwcGluZ3MvR29vZ2xlU3RhZGlhLm1tCkBAIC0wLDAgKzEs
MjA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFs
R2FtZXBhZC5oIgorCisjaWYgSEFWRShISURfRlJBTUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCisjaW1wb3J0IDxISUQvSElEVXNlckRldmljZS5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK2NvbnN0IHVpbnQ4X3QgU3RhZGlhRGVzY3JpcHRvcltdID0geworICAg
IDB4MDUsIDB4MDEsICAgICAgICAgLy8gVXNhZ2UgUGFnZSAoR2VuZXJpYyBEZXNrdG9wIEN0cmxz
KQorICAgIDB4MDksIDB4MDUsICAgICAgICAgLy8gVXNhZ2UgKEdhbWUgUGFkKQorICAgIDB4QTEs
IDB4MDEsICAgICAgICAgLy8gQ29sbGVjdGlvbiAoQXBwbGljYXRpb24pCisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAgICgxKSBieXRlIHJlcG9ydCBJRCAtICgxKSBieXRlIHRvdGFsCisgICAg
MHg4NSwgMHgwMywgICAgICAgICAvLyAgIFJlcG9ydCBJRCAoMykKKyAgICAweDA1LCAweDAxLCAg
ICAgICAgIC8vICAgVXNhZ2UgUGFnZSAoR2VuZXJpYyBEZXNrdG9wIEN0cmxzKQorICAgIDB4NzUs
IDB4MDQsICAgICAgICAgLy8gICBSZXBvcnQgU2l6ZSAoNCkKKyAgICAweDk1LCAweDAxLCAgICAg
ICAgIC8vICAgUmVwb3J0IENvdW50ICgxKQorICAgIDB4MjUsIDB4MDcsICAgICAgICAgLy8gICBM
b2dpY2FsIE1heGltdW0gKDcpCisgICAgMHg0NiwgMHgzQiwgMHgwMSwgICAvLyAgIFBoeXNpY2Fs
IE1heGltdW0gKDMxNSkKKyAgICAweDY1LCAweDE0LCAgICAgICAgIC8vICAgVW5pdCAoU3lzdGVt
OiBFbmdsaXNoIFJvdGF0aW9uLCBMZW5ndGg6IENlbnRpbWV0ZXIpCisgICAgMHgwOSwgMHgzOSwg
ICAgICAgICAvLyAgIFVzYWdlIChIYXQgc3dpdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gICAoNCkgYml0IGhhdHN3aXRjaCAtICgxKSBieXRlICg0KSBiaXRzIHRvdGFsCisgICAgMHg4
MSwgMHg0MiwgICAgICAgICAvLyAgIElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIs
UHJlZmVycmVkIFN0YXRlLE51bGwgU3RhdGUpCisgICAgMHg0NSwgMHgwMCwgICAgICAgICAvLyAg
IFBoeXNpY2FsIE1heGltdW0gKDApCisgICAgMHg2NSwgMHgwMCwgICAgICAgICAvLyAgIFVuaXQg
KE5vbmUpCisgICAgMHg3NSwgMHgwMSwgICAgICAgICAvLyAgIFJlcG9ydCBTaXplICgxKQorICAg
IDB4OTUsIDB4MDQsICAgICAgICAgLy8gICBSZXBvcnQgQ291bnQgKDQpCisgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAgICg0KSBiaXQgcGFkZGluZyAtICgyKSBieXRlcyB0b3RhbAorICAgIDB4
ODEsIDB4MDEsICAgICAgICAgLy8gICBJbnB1dCAoQ29uc3QsQXJyYXksQWJzLE5vIFdyYXAsTGlu
ZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4MDUsIDB4MDksICAg
ICAgICAgLy8gICBVc2FnZSBQYWdlIChCdXR0b24pCisgICAgMHgxNSwgMHgwMCwgICAgICAgICAv
LyAgIExvZ2ljYWwgTWluaW11bSAoMCkKKyAgICAweDI1LCAweDAxLCAgICAgICAgIC8vICAgTG9n
aWNhbCBNYXhpbXVtICgxKQorICAgIDB4NzUsIDB4MDEsICAgICAgICAgLy8gICBSZXBvcnQgU2l6
ZSAoMSkKKyAgICAweDk1LCAweDBGLCAgICAgICAgIC8vICAgUmVwb3J0IENvdW50ICgxNSkKKyAg
ICAweDA5LCAweDEyLCAgICAgICAgIC8vICAgVXNhZ2UgKDB4MTIpCisgICAgMHgwOSwgMHgxMSwg
ICAgICAgICAvLyAgIFVzYWdlICgweDExKQorICAgIDB4MDksIDB4MTQsICAgICAgICAgLy8gICBV
c2FnZSAoMHgxNCkKKyAgICAweDA5LCAweDEzLCAgICAgICAgIC8vICAgVXNhZ2UgKDB4MTMpCisg
ICAgMHgwOSwgMHgwRCwgICAgICAgICAvLyAgIFVzYWdlICgweDBEKQorICAgIDB4MDksIDB4MEMs
ICAgICAgICAgLy8gICBVc2FnZSAoMHgwQykKKyAgICAweDA5LCAweDBCLCAgICAgICAgIC8vICAg
VXNhZ2UgKDB4MEIpCisgICAgMHgwOSwgMHgwRiwgICAgICAgICAvLyAgIFVzYWdlICgweDBGKQor
ICAgIDB4MDksIDB4MEUsICAgICAgICAgLy8gICBVc2FnZSAoMHgwRSkKKyAgICAweDA5LCAweDA4
LCAgICAgICAgIC8vICAgVXNhZ2UgKDB4MDgpCisgICAgMHgwOSwgMHgwNywgICAgICAgICAvLyAg
IFVzYWdlICgweDA3KQorICAgIDB4MDksIDB4MDUsICAgICAgICAgLy8gICBVc2FnZSAoMHgwNSkK
KyAgICAweDA5LCAweDA0LCAgICAgICAgIC8vICAgVXNhZ2UgKDB4MDQpCisgICAgMHgwOSwgMHgw
MiwgICAgICAgICAvLyAgIFVzYWdlICgweDAyKQorICAgIDB4MDksIDB4MDEsICAgICAgICAgLy8g
ICBVc2FnZSAoMHgwMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgKDE1KSBidXR0b25z
IC0gKDMpIGJ5dGVzICg3KSBiaXRzIHRvdGFsCisgICAgMHg4MSwgMHgwMiwgICAgICAgICAvLyAg
IElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51
bGwgUG9zaXRpb24pCisgICAgMHg3NSwgMHgwMSwgICAgICAgICAvLyAgIFJlcG9ydCBTaXplICgx
KQorICAgIDB4OTUsIDB4MDEsICAgICAgICAgLy8gICBSZXBvcnQgQ291bnQgKDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICgxKSBwYWRkaW5nIC0gKDQpIGJ5dGVzIHRvdGFsCisgICAg
MHg4MSwgMHgwMSwgICAgICAgICAvLyAgIElucHV0IChDb25zdCxBcnJheSxBYnMsTm8gV3JhcCxM
aW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCisgICAgMHgwNSwgMHgwMSwg
ICAgICAgICAvLyAgIFVzYWdlIFBhZ2UgKEdlbmVyaWMgRGVza3RvcCBDdHJscykKKyAgICAweDE1
LCAweDAxLCAgICAgICAgIC8vICAgTG9naWNhbCBNaW5pbXVtICgxKQorICAgIDB4MjYsIDB4RkYs
IDB4MDAsICAgLy8gICBMb2dpY2FsIE1heGltdW0gKDI1NSkKKyAgICAweDA5LCAweDAxLCAgICAg
ICAgIC8vICAgVXNhZ2UgKFBvaW50ZXIpCisgICAgMHhBMSwgMHgwMCwgICAgICAgICAvLyAgIENv
bGxlY3Rpb24gKFBoeXNpY2FsKQorICAgIDB4MDksIDB4MzAsICAgICAgICAgLy8gICAgIFVzYWdl
IChYKQorICAgIDB4MDksIDB4MzEsICAgICAgICAgLy8gICAgIFVzYWdlIChZKQorICAgIDB4NzUs
IDB4MDgsICAgICAgICAgLy8gICAgIFJlcG9ydCBTaXplICg4KQorICAgIDB4OTUsIDB4MDIsICAg
ICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMikKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
ICAgICAoMikgYXhlcyAxIGJ5dGUgZWFjaCAtICg2KSBieXRlcyB0b3RhbAorICAgIDB4ODEsIDB4
MDIsICAgICAgICAgLy8gICAgIElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIsUHJl
ZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCisgICAgMHhDMCwgICAgICAgICAgICAgICAv
LyAgIEVuZCBDb2xsZWN0aW9uCisgICAgMHgwOSwgMHgwMSwgICAgICAgICAvLyAgIFVzYWdlIChQ
b2ludGVyKQorICAgIDB4QTEsIDB4MDAsICAgICAgICAgLy8gICBDb2xsZWN0aW9uIChQaHlzaWNh
bCkKKyAgICAweDA5LCAweDMyLCAgICAgICAgIC8vICAgICBVc2FnZSAoWikKKyAgICAweDA5LCAw
eDM1LCAgICAgICAgIC8vICAgICBVc2FnZSAoUnopCisgICAgMHg3NSwgMHgwOCwgICAgICAgICAv
LyAgICAgUmVwb3J0IFNpemUgKDgpCisgICAgMHg5NSwgMHgwMiwgICAgICAgICAvLyAgICAgUmVw
b3J0IENvdW50ICgyKQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICgyKSBheGVzIDEg
Ynl0ZSBlYWNoIC0gKDgpIGJ5dGVzIHRvdGFsCisgICAgMHg4MSwgMHgwMiwgICAgICAgICAvLyAg
ICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8g
TnVsbCBQb3NpdGlvbikKKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vICAgRW5kIENvbGxlY3Rp
b24KKyAgICAweDA1LCAweDAyLCAgICAgICAgIC8vICAgVXNhZ2UgUGFnZSAoU2ltIEN0cmxzKQor
ICAgIDB4NzUsIDB4MDgsICAgICAgICAgLy8gICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDk1LCAw
eDAyLCAgICAgICAgIC8vICAgUmVwb3J0IENvdW50ICgyKQorICAgIDB4MTUsIDB4MDAsICAgICAg
ICAgLy8gICBMb2dpY2FsIE1pbmltdW0gKDApCisgICAgMHgyNiwgMHhGRiwgMHgwMCwgICAvLyAg
IExvZ2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDksIDB4QzUsICAgICAgICAgLy8gICBVc2Fn
ZSAoQnJha2UpCisgICAgMHgwOSwgMHhDNCwgICAgICAgICAvLyAgIFVzYWdlIChBY2NlbGVyYXRv
cikKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgKDIpICJhbmFsb2cgYnV0dG9ucyIiIDEg
Ynl0ZSBlYWNoIC0gKDEwKSBieXRlcyB0b3RhbAorICAgIDB4ODEsIDB4MDIsICAgICAgICAgLy8g
ICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBO
dWxsIFBvc2l0aW9uKQorICAgIDB4MDUsIDB4MEMsICAgICAgICAgLy8gICBVc2FnZSBQYWdlIChD
b25zdW1lcikKKyAgICAweDE1LCAweDAwLCAgICAgICAgIC8vICAgTG9naWNhbCBNaW5pbXVtICgw
KQorICAgIDB4MjUsIDB4MDEsICAgICAgICAgLy8gICBMb2dpY2FsIE1heGltdW0gKDEpCisgICAg
MHgwOSwgMHhFOSwgICAgICAgICAvLyAgIFVzYWdlIChWb2x1bWUgSW5jcmVtZW50KQorICAgIDB4
MDksIDB4RUEsICAgICAgICAgLy8gICBVc2FnZSAoVm9sdW1lIERlY3JlbWVudCkKKyAgICAweDc1
LCAweDAxLCAgICAgICAgIC8vICAgUmVwb3J0IFNpemUgKDEpCisgICAgMHg5NSwgMHgwMiwgICAg
ICAgICAvLyAgIFJlcG9ydCBDb3VudCAoMikKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICAg
KDIpIDEgYml0IGJ1dHRvbnMgLSAoMTApIGJ5dGVzICgyKSBiaXRzIHRvdGFsCisgICAgMHg4MSwg
MHgwMiwgICAgICAgICAvLyAgIElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIsUHJl
ZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCisgICAgMHgwOSwgMHhDRCwgICAgICAgICAv
LyAgIFVzYWdlIChQbGF5L1BhdXNlKQorICAgIDB4OTUsIDB4MDEsICAgICAgICAgLy8gICBSZXBv
cnQgQ291bnQgKDEpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICgxKSAxIGJpdCBidXR0
b25zIC0gKDEwKSBieXRlcyAoMykgYml0cyB0b3RhbAorICAgIDB4ODEsIDB4MDIsICAgICAgICAg
Ly8gICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxO
byBOdWxsIFBvc2l0aW9uKQorICAgIDB4OTUsIDB4MDUsICAgICAgICAgLy8gICBSZXBvcnQgQ291
bnQgKDUpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICg1KSBiaXRzIHBhZGRpbmcgLSAo
MTEpIGJ5dGVzIHRvdGFsCisgICAgMHg4MSwgMHgwMSwgICAgICAgICAvLyAgIElucHV0IChDb25z
dCxBcnJheSxBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRp
b24pCisgICAgMHg4NSwgMHgwNSwgICAgICAgICAvLyAgIFJlcG9ydCBJRCAoNSkKKyAgICAweDA2
LCAweDBGLCAweDAwLCAgIC8vICAgVXNhZ2UgUGFnZSAoUElEIFBhZ2UpCisgICAgMHgwOSwgMHg5
NywgICAgICAgICAvLyAgIFVzYWdlICgweDk3KQorICAgIDB4NzUsIDB4MTAsICAgICAgICAgLy8g
ICBSZXBvcnQgU2l6ZSAoMTYpCisgICAgMHg5NSwgMHgwMiwgICAgICAgICAvLyAgIFJlcG9ydCBD
b3VudCAoMikKKyAgICAweDI3LCAweEZGLCAweEZGLCAweDAwLCAweDAwLCAgLy8gICBMb2dpY2Fs
IE1heGltdW0gKDY1NTM0KQorICAgIDB4OTEsIDB4MDIsICAgICAgICAgLy8gICBPdXRwdXQgKERh
dGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlv
bixOb24tdm9sYXRpbGUpCisgICAgMHhDMCwgICAgICAgICAgICAgICAvLyBFbmQgQ29sbGVjdGlv
bgorfTsKKworLy8gRklYTUU6IEhhdHN3aXRjaCBpcyBub3QgeWV0IGFkZHJlc3NhYmxlIGJ5IHRl
c3QKK2NvbnN0IHNpemVfdCBTdGFkaWFCdXR0b25Db3VudCA9IDE5OworY29uc3Qgc2l6ZV90IFN0
YWRpYUF4aXNDb3VudCA9IDQ7Citjb25zdCBzaXplX3QgU3RhZGlhUmVwb3J0U2l6ZSA9IDExOwor
Y29uc3QgY2hhciogU3RhZGlhTmFtZSA9ICJWaXJ0dWFsIFN0YWRpYSI7CisKKy8vIFJlcG9ydCBs
YXlvdXQ6CisvLyB8UmVwb3J0SUR8IHxQYWQsIDRiaXQgaGF0fCB8OCBidXR0b25zfCB8UGFkIDcg
YnV0dG9uc3wgfFh8IHxZfCB8WnwgfFJ6fCB8QnJha2V8IHxBY2NlbGVyYXRvcnwgfFBhZCwgdnVw
IHZkb3duIHBhdXNlfAorCisvLyBCcmFrZSBhbmQgYWNjbGVyYXRvciBhcmUgYW5hbG9nIHZhbHVl
cyBmb3IgYmFjayBzaG91bGRlciBidXR0b25zLCB3aGljaCBhcmUgYWxzbyByZXByZXNlbnRlZCBp
biB0aGUgMTUgZGlnaXRhbCBidXR0b25zCisvLyBJIGNhbm5vdCBpZGVudGlmeSBwaHlzaWNhbCBh
Y3R1YXRvcnMgZm9yIHZvbHVtZS11cCwgdm9sdW1lLWRvd24sIGFuZCBwYXVzZS4KKworc3RhdGlj
IHZvaWQgcHVibGlzaFJlcG9ydENhbGxiYWNrKFZlY3RvcjxmbG9hdD4mIGJ1dHRvblZhbHVlcywg
VmVjdG9yPGZsb2F0PiYgYXhpc1ZhbHVlcywgSElEVXNlckRldmljZSAqdXNlckRldmljZSkKK3sK
KyAgICB1aW50OF90IHJlcG9ydERhdGFbU3RhZGlhUmVwb3J0U2l6ZV07CisgICAgYnplcm8ocmVw
b3J0RGF0YSwgU3RhZGlhUmVwb3J0U2l6ZSk7CisgICAgc2l6ZV90IHJlcG9ydEluZGV4ID0gMDsK
KworICAgIC8vIFJlcG9ydCBJRCAoTm9ybWFsIGlucHV0IHJlcG9ydCBpcyAjMykKKyAgICByZXBv
cnREYXRhW3JlcG9ydEluZGV4KytdID0gMHgwMzsKKworICAgIC8vIE5vIGludGVyZmFjZSB0byBj
aGFuZ2UgaGF0c3dpdGNoIHZhbHVlIGF0IHRoaXMgdGltZQorICAgIHJlcG9ydERhdGFbcmVwb3J0
SW5kZXgrK10gPSAweDA4OworCisgICAgLy8gRGlnaXRhbCBidXR0b25zIHNwYW4gdGhlIG5leHQg
MiBieXRlcworICAgIHVpbnQ4X3QgYnV0dG9uQnl0ZSA9IDB4MDA7CisgICAgbG9uZyBidXR0b25C
aXQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCA4OyArK2kpIHsKKyAgICAgICAgYnV0dG9u
Qml0ID0gbHJvdW5kKGJ1dHRvblZhbHVlc1tpXSk7CisgICAgICAgIGJ1dHRvbkJ5dGUgfD0gYnV0
dG9uQml0IDw8IGk7CisgICAgfQorICAgIHJlcG9ydERhdGFbcmVwb3J0SW5kZXgrK10gPSBidXR0
b25CeXRlOworCisgICAgYnV0dG9uQnl0ZSA9IDB4MDA7CisgICAgZm9yIChzaXplX3QgaSA9IDg7
IGkgPCAxNTsgKytpKSB7CisgICAgICAgIGJ1dHRvbkJpdCA9IGxyb3VuZChidXR0b25WYWx1ZXNb
aV0pOworICAgICAgICBidXR0b25CeXRlIHw9IGJ1dHRvbkJpdCA8PCAoaSAtIDgpOworICAgIH0K
KyAgICByZXBvcnREYXRhW3JlcG9ydEluZGV4KytdID0gYnV0dG9uQnl0ZTsKKworICAgIC8vIEF4
ZXMgKDEgYnl0ZSBlYWNoKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgNDsgKytpKQorICAg
ICAgICByZXBvcnREYXRhW3JlcG9ydEluZGV4KytdID0gKHVpbnQ4X3QpKGF4aXNWYWx1ZXNbaV0g
KiAyNTUpOworCisgICAgLy8gQnJha2UgYW5kIEFjY2VsZXJhdG9yIGFyZSBhbHNvIGJ1dHRvbiAx
NCBhbmQgMTUKKyAgICByZXBvcnREYXRhW3JlcG9ydEluZGV4KytdID0gKHVpbnQ4X3QpKGJ1dHRv
blZhbHVlc1sxM10gKiAyNTUpOworICAgIHJlcG9ydERhdGFbcmVwb3J0SW5kZXgrK10gPSAodWlu
dDhfdCkoYnV0dG9uVmFsdWVzWzE0XSAqIDI1NSk7CisKKyAgICAvLyBGaW5hbCBieXRlIGhhcyA1
IHBhZGRpbmcgYml0cywgMyBidXR0b24gYml0cyBpbiBpdCwgYnV0IG5vIHdheSB0byBhY3R1YXRl
IHRoZW0KKyAgICByZXBvcnREYXRhW3JlcG9ydEluZGV4KytdID0gMHgwMDsKKworICAgIGF1dG8g
bnNSZXBvcnREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXBv
cnREYXRhIGxlbmd0aDpTdGFkaWFSZXBvcnRTaXplXSk7CisgICAgW3VzZXJEZXZpY2UgaGFuZGxl
UmVwb3J0Om5zUmVwb3J0RGF0YS5nZXQoKSBlcnJvcjpuaWxdOworfQorCitHYW1lcGFkTWFwcGlu
ZyBWaXJ0dWFsR2FtZXBhZDo6Z29vZ2xlU3RhZGlhTWFwcGluZygpCit7CisgICAgcmV0dXJuIHsK
KyAgICAgICAgU3RhZGlhRGVzY3JpcHRvciwKKyAgICAgICAgc2l6ZW9mKFN0YWRpYURlc2NyaXB0
b3IpLAorICAgICAgICBTdGFkaWFOYW1lLAorICAgICAgICBISURWZW5kb3JJRDo6R29vZ2xlLAor
ICAgICAgICBISURQcm9kdWN0SUQ6OlN0YWRpYUEsCisgICAgICAgIFN0YWRpYUJ1dHRvbkNvdW50
LAorICAgICAgICBTdGFkaWFBeGlzQ291bnQsCisgICAgICAgIHB1Ymxpc2hSZXBvcnRDYWxsYmFj
aworICAgIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8v
IEhBVkUoSElEX0ZSQU1FV09SSykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1ZpcnR1YWxHYW1lcGFkLmggYi9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9WaXJ0dWFsR2FtZXBhZC5oCmluZGV4IDliMTY1NmEwY2Q0MDc1YjdmOTYz
OGNmZjEzZDI1MTkwZDdmZTA3NWMuLmMwNDI1ZGRhMzYwMTZiMzUyYTI1YTc0YWM4MDc3MTUxMzJh
ZTlhMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1ZpcnR1YWxHYW1lcGFk
LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVmlydHVhbEdhbWVwYWQuaApAQCAtNDAs
NiArNDAsNyBAQCBPQkpDX0NMQVNTIE5TU3RyaW5nOwogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
ewogCiBlbnVtIGNsYXNzIEhJRFZlbmRvcklEIDogdWludDE2X3QgeworICAgIEdvb2dsZSA9IDB4
MThkMSwKICAgICBNaWNyb3NvZnQgPSAweDA0NWUsCiAgICAgU2hlbnpoZW5Mb25nc2hlbmd3ZWlU
ZWNobm9sb2d5ID0gMHgwMDc5LAogICAgIFNvbnkgPSAweDA1NGMsCkBAIC01MiwxNyArNTMsMTgg
QEAgZW51bSBjbGFzcyBISURWZW5kb3JJRCA6IHVpbnQxNl90IHsKIC8vIFRlY2huaWNhbGx5IGRp
ZmZlcmVudCBwcm9kdWN0cyBmcm9tIGRpZmZlcmVudCB2ZW5kb3JzIGNhbiBoYXZlIHRoZSBzYW1l
IHByb2R1Y3QgSUQsCiAvLyBCdXQgaW4gcHJhY3RpY2UgdGhhdCBwcm9iYWJseSB3b24ndCBoYXBw
ZW4uCiBlbnVtIGNsYXNzIEhJRFByb2R1Y3RJRCA6IHVpbnQxNl90IHsKLSAgICBTdHJhdHVzWEwx
ID0gMHgxNDE4LAotICAgIFN0cmF0dXNYTDIgPSAweDE0MTksCi0gICAgTmltYnVzID0gMHgxNDIw
LAorICAgIER1YWxzaG9jazMgPSAweDAyNjgsCisgICAgRHVhbHNob2NrNF8xID0gMHgwNWM0LAor
ICAgIER1YWxzaG9jazRfMiA9IDB4MDljYywKICAgICBHYW1lcGFkID0gMHgwMDExLAogICAgIEdl
bmVyaWNORVMgPSAweGQwMTUsCisgICAgTmltYnVzID0gMHgxNDIwLAorICAgIFN0YWRpYUEgPSAw
eDk0MDAsCisgICAgU3RyYXR1c1hMMSA9IDB4MTQxOCwKKyAgICBTdHJhdHVzWEwyID0gMHgxNDE5
LAogICAgIFhib3hPbmUxID0gMHgwMmVhLAogICAgIFhib3hPbmUyID0gMHgwMmUwLAogICAgIFhi
b3hPbmUzID0gMHgwMmZkLAotICAgIER1YWxzaG9jazMgPSAweDAyNjgsCi0gICAgRHVhbHNob2Nr
NF8xID0gMHgwNWM0LAotICAgIER1YWxzaG9jazRfMiA9IDB4MDljYywKIH07CiAKIHR5cGVkZWYg
dm9pZCAoKlB1Ymxpc2hSZXBvcnRDYWxsYmFjaykoVmVjdG9yPGZsb2F0PiYsIFZlY3RvcjxmbG9h
dD4mLCBISURVc2VyRGV2aWNlKik7CkBAIC04MSw2ICs4Myw3IEBAIHN0cnVjdCBHYW1lcGFkTWFw
cGluZyB7CiBjbGFzcyBWaXJ0dWFsR2FtZXBhZCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CisgICAgc3RhdGljIEdhbWVwYWRNYXBwaW5nIGdvb2dsZVN0YWRpYU1hcHBp
bmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgbWljcm9zb2Z0WGJveE9uZU1hcHBpbmco
KTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgc2hlbnpoZW5Mb25nc2hlbmd3ZWlUZWNobm9s
b2d5R2FtZXBhZE1hcHBpbmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgc29ueUR1YWxz
aG9jazNNYXBwaW5nKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>