<?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>310896</bug_id>
          
          <creation_ts>2026-03-27 07:25:21 -0700</creation_ts>
          <short_desc>REGRESSION(310068@main): Broke at least some builds</short_desc>
          <delta_ts>2026-03-27 07:28:11 -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>New Bugs</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>
          
          <blocked>310655</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>annevk</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2194315</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-27 07:25:21 -0700</bug_when>
    <thetext>https://commits.webkit.org/310068@main introduced a regression:
Broke at least some builds

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2194317</commentid>
    <comment_count>1</comment_count>
      <attachid>478824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-27 07:25:26 -0700</bug_when>
    <thetext>Created attachment 478824
REVERT of 310068@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2194318</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-03-27 07:27:47 -0700</bug_when>
    <thetext>Committed 310073@main (bbdfaa98fedd): &lt;https://commits.webkit.org/310073@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478824.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2194319</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-27 07:28:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/173505129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478824</attachid>
            <date>2026-03-27 07:25:26 -0700</date>
            <delta_ts>2026-03-27 07:27:48 -0700</delta_ts>
            <desc>REVERT of 310068@main</desc>
            <filename>bug-310896-20260327142526.patch</filename>
            <type>text/plain</type>
            <size>27430</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA1MGQ4NmNhNTUwOWRlNmQ5NDM0MWEyZDg4ZGZjOWFiMjY5ZjYzYTA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBGcmksIDI3IE1hciAyMDI2IDE0OjI1OjI0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMxMDA2OEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMDg5NgoKQnJva2UgYXQgbGVhc3Qgc29tZSBidWlsZHMKClJl
dmVydGVkIGNoYW5nZXNldDoKCiJJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEJvcnJvdyBhbmQg
Q2FuQm9ycm93IgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwNjU1
Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzMxMDA2OEBtYWluCi0tLQogU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgIHwgICA4IC0KIFNvdXJjZS9XVEYvd3Rm
L0JvcnJvdy5oICAgICAgICAgICAgICAgICAgICAgICB8IDEzMyAtLS0tLS0tLS0tLS0tLS0KIFNv
dXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICB8ICAgNCArLQogU291
cmNlL1dURi93dGYvQ2FuQm9ycm93LmggICAgICAgICAgICAgICAgICAgIHwgIDgyIC0tLS0tLS0t
LS0KIFNvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5oICAgICAgICAgICAgICAgICB8ICAgMyAr
LQogU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tICAgICAgICAgICAgICAgIHwgIDI3ICsr
LQogU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0gICAgICAgICAgICAgICAgIHwgIDE0ICst
CiAuLi4vcmVncmVzc2lvbi9yZXByb18xNzMyNjY0NTctZXhwZWN0ZWQudHh0ICAgfCAgIDQgLQog
Li4uL3dlYmdwdS9yZWdyZXNzaW9uL3JlcHJvXzE3MzI2NjQ1Ny5odG1sICAgIHwgMTU0IC0tLS0t
LS0tLS0tLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA0MTAgZGVs
ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dURi93dGYvQm9ycm93LmgKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV1RGL3d0Zi9DYW5Cb3Jyb3cuaAogZGVsZXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd2ViZ3B1L3JlZ3Jlc3Npb24vcmVwcm9fMTczMjY2NDU3
LWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd2ViZ3B1
L3JlZ3Jlc3Npb24vcmVwcm9fMTczMjY2NDU3Lmh0bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA0YTk1YWNiYmI4ODEuLjcyNGFjM2U5ZWM5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTYsOCArNTU2LDYgQEAK
IAkJREQzREM5NzIyN0E0QkY4RTAwN0U1QjYxIC8qIElubGluZUFTTS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyQkMxNTFBODI1QTAwNDEyM0ZG
IC8qIElubGluZUFTTS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUREM0RDOTczMjdBNEJGOEUwMDdFNUI2MSAvKiBFeHBvcnRNYWNyb3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjlGMTUxQTgy
NUEwMDQxMjNGRiAvKiBFeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlERDNEQzk3NDI3QTRCRjhFMDA3RTVCNjEgLyogQmxvb21G
aWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QTQ3MjY1MTUxQTgyNUEwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUY1MEQxNzE4NTI5NDFGQ0M5REIzRjg5
NCAvKiBCb3Jyb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERFRDREMjcxQUZERDkwMjUwMjdGNTQ5NyAvKiBCb3Jyb3cuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3MzEwNzIyQjVFRjQ2NEYxNkFBRTkx
RDcgLyogQ2FuQm9ycm93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAzNkM3NTREODQ0OTEyMzE2REMwMEUgLyogQ2FuQm9ycm93LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREQzREM5NzUyN0E0QkY4
RTAwN0U1QjYxIC8qIExvY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyQzMxNTFBODI1QTAwNDEyM0ZGIC8qIExvY2tlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUREM0RDOTc2MjdBNEJG
OEUwMDdFNUI2MSAvKiBTaW5nbGVSb290R3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5NTIxMjAyMUY0MjU4ODgwMEJENjQyMSAvKiBTaW5nbGVS
b290R3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlERDNEQzk3NzI3QTRCRjhFMDA3RTVCNjEgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDg5QjZCNjFF
NjQxNTA4MDA5MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1NDgsOCArMTU0Niw2IEBACiAJ
CUE4QTQ3MjYwMTUxQTgyNUEwMDQxMjNGRiAvKiBCaXRWZWN0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0VmVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQThBNDcyNjExNTFBODI1QTAwNDEyM0ZGIC8qIEJpdFZlY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXRWZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyNjUxNTFBODI1QTAwNDEyM0ZGIC8qIEJsb29tRmlsdGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb29tRmlsdGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURFRDREMjcxQUZERDkwMjUwMjdGNTQ5NyAvKiBCb3Jyb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQm9ycm93Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQxMDM2Qzc1NEQ4NDQ5MTIzMTZEQzAwRSAvKiBDYW5Cb3Jyb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FuQm9ycm93Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjY3MTUxQTgyNUEwMDQxMjNGRiAvKiBCdW1wUG9p
bnRlckFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdW1wUG9p
bnRlckFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI2QTE1
MUE4MjVBMDA0MTIzRkYgLyogQ2hlY2tlZEFyaXRobWV0aWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2hlY2tlZEFyaXRobWV0aWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQThBNDcyNzAxNTFBODI1QTAwNDEyM0ZGIC8qIENvbXBpbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzQ2LDcgKzIzNDIsNiBAQAogCQkJCTBGMEMwM0U2Mjk5ODI4RTUwMDY0MjMw
QSAvKiBCbG9vbUZpbHRlci5jcHAgKi8sCiAJCQkJQThBNDcyNjUxNTFBODI1QTAwNDEyM0ZGIC8q
IEJsb29tRmlsdGVyLmggKi8sCiAJCQkJMEZCMzk5QjgyMEFGNUE1ODAwMTdFMjEzIC8qIEJvb2xl
YW5MYXR0aWNlLmggKi8sCi0JCQkJREVENEQyNzFBRkREOTAyNTAyN0Y1NDk3IC8qIEJvcnJvdy5o
ICovLAogCQkJCTBGOTMyNzRBMUMxN0Y0QjcwMENGNjU2NCAvKiBCb3guaCAqLywKIAkJCQkwRjkz
Mjc0QTFDMTdGNEI3MDBDRjY1NjYgLyogQm94UHRyLmggKi8sCiAJCQkJN0MzRjcyMzkxRDc4ODEx
OTAwNjc0RTI2IC8qIEJyaWdhbmQuaCAqLywKQEAgLTIzNTcsNyArMjM1Miw2IEBACiAJCQkJMEZF
QzNDNEYxRjMyM0M2ODAwRjU5QjZDIC8qIENhZ2VkUHRyLmggKi8sCiAJCQkJMEY1RjNENjgxRjNG
RUJBNjAwQjExNUEyIC8qIENhZ2VkVW5pcXVlUHRyLmggKi8sCiAJCQkJNDEzRkU4RjUxRjhEMkVB
QjAwRjZEN0Q3IC8qIENhbGxiYWNrQWdncmVnYXRvci5oICovLAotCQkJCTQxMDM2Qzc1NEQ4NDQ5
MTIzMTZEQzAwRSAvKiBDYW5Cb3Jyb3cuaCAqLywKIAkJCQk0NjIwOUEyNzI2NkQ1NDNBMDA3RjhG
NEEgLyogQ2FuY2VsbGFibGVUYXNrLmggKi8sCiAJCQkJMTQ3MEVBRjYyQkQ2RkIzRjAwRTI2MjU0
IC8qIENhbk1ha2VXZWFrUHRyLmggKi8sCiAJCQkJQThBNDcyNkExNTFBODI1QTAwNDEyM0ZGIC8q
IENoZWNrZWRBcml0aG1ldGljLmggKi8sCkBAIC0zNDg2LDcgKzM0ODAsNiBAQAogCQkJCUREM0RD
OTc0MjdBNEJGOEUwMDdFNUI2MSAvKiBCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDY4Mzc4QzYyRUMyRDg0MjAwQTkyNTdBIC8qIEJPTVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
REQzREM5MEUyN0E0QkY4RTAwN0U1QjYxIC8qIEJvb2xlYW5MYXR0aWNlLmggaW4gSGVhZGVycyAq
LywKLQkJCQlGNTBEMTcxODUyOTQxRkNDOURCM0Y4OTQgLyogQm9ycm93LmggaW4gSGVhZGVycyAq
LywKIAkJCQlERDNEQzkxQjI3QTRCRjhFMDA3RTVCNjEgLyogQm94LmggaW4gSGVhZGVycyAqLywK
IAkJCQlERDNEQzkyOTI3QTRCRjhFMDA3RTVCNjEgLyogQm94UHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlERDNEQzkxQzI3QTRCRjhFMDA3RTVCNjEgLyogQnJpZ2FuZC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDk5LDcgKzM0OTIsNiBAQAogCQkJCUREM0RDOTU0MjdBNEJGOEUwMDdFNUI2MSAvKiBD
YWdlZFB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQzREM5NTUyN0E0QkY4RTAwN0U1QjYxIC8q
IENhZ2VkVW5pcXVlUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlERDNEQzhFOTI3QTRCRjhFMDA3
RTVCNjEgLyogQ2FsbGJhY2tBZ2dyZWdhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk3MzEwNzIy
QjVFRjQ2NEYxNkFBRTkxRDcgLyogQ2FuQm9ycm93LmggaW4gSGVhZGVycyAqLywKIAkJCQlERDNE
Qzk5QjI3QTRCRjhFMDA3RTVCNjEgLyogQ2FuY2VsbGFibGVUYXNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxNDcwRUFGNzJCRDZGQjNGMDBFMjYyNTQgLyogQ2FuTWFrZVdlYWtQdHIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCURERjMwNkRBMjdDMDg2NTQwMDZBNTI2RiAvKiBDRkJ1bmRsZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Cb3Jyb3cuaCBiL1NvdXJj
ZS9XVEYvd3RmL0JvcnJvdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2ZjYzE5
OTFhYjAuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Cb3Jyb3cuaAorKysgL2Rl
di9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDI2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlIDx3dGYvQ2FuQm9ycm93Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+Ci0jaW5j
bHVkZSA8d3RmL0ZvcmJpZEhlYXBBbGxvY2F0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+Ci0KLSNpZiBPUyhEQVJXSU4pCi0jaW5jbHVkZSA8cHRocmVhZC5oPgotI2VuZGlmCi0K
LW5hbWVzcGFjZSBXVEYgewotCi0vKioKLSAqIEBicmllZiBCb3Jyb3cgaXMgYSBzY29wZWQgdG9r
ZW4gdGhhdCBlbnN1cmVzIGEgdmlldyBpbnRvIGFuIG9iamVjdCByZW1haW5zCi0gKiB2YWxpZCBl
dmVuIGlmIHRoZSBvYmplY3QgcGVyZm9ybXMgaW50ZXJuYWwgZGVzdHJ1Y3Rpb24uCi0gKgotICog
U29tZSBvYmplY3RzIG1heSBpbnZhbGlkYXRlIGludGVybmFsIHN0YXRlIGFzIGEgc2lkZSBlZmZl
Y3Qgb2YgbXV0YXRpb24uIEZvcgotICogZXhhbXBsZSwgYSBWZWN0b3IgbWF5IHJlYWxsb2NhdGUg
aXRzIGJhY2tpbmcgc3RvcmUgZHVyaW5nIGFwcGVuZCgpLCB3aGljaAotICogd291bGQgaW52YWxp
ZGF0ZSBhbnkgb3V0c3RhbmRpbmcgc3BhbigpLiBBIEJvcnJvdzxUPiBwcmV2ZW50cyBzdWNoCi0g
KiBpbnZhbGlkYXRpb24gZm9yIGFzIGxvbmcgYXMgaXQgaXMgYWxpdmU6IGlmIHRoZSBib3Jyb3dl
ZCBvYmplY3QgYXR0ZW1wdHMgYQotICogZGVzdHJ1Y3RpdmUgb3BlcmF0aW9uIHdoaWxlIGEgQm9y
cm93IGlzIG91dHN0YW5kaW5nLCB0aGUgcHJvZ3JhbSB3aWxsIGNyYXNoCi0gKiAodmlhIFJFTEVB
U0VfQVNTRVJUKSBpbnN0ZWFkIG9mIHNpbGVudGx5IGNvcnJ1cHRpbmcgbWVtb3J5LgotICoKLSAq
IEJvcnJvdyBpcyBub25jb3B5YWJsZSBhbmQgaW50ZW5kZWQgZm9yIHN0YWNrIHVzZS4KLSAqIEBj
b2RlCi0gKiBCb3Jyb3cgdmVjdG9yID0gb2JqZWN0LT52ZWN0b3IoKTsKLSAqIGF1dG8gc3BhbiA9
IHZlY3Rvci0+c3BhbigpOyAvLyBzcGFuIGlzIGd1YXJhbnRlZWQgdmFsaWQgZm9yIHRoZSBsaWZl
dGltZSBvZiB2ZWN0b3IKLSAqIHVzZShzcGFuKTsKLSAqIEBlbmRjb2RlCi0gKgotICogQGNvZGUK
LSAqIHVzZShib3Jyb3cob2JqZWN0LT52ZWN0b3IoKSktPnNwYW4oKSk7IC8vIGFyZ3VtZW50IGlz
IGd1YXJhbnRlZWQgdmFsaWQgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FsbAotICogQGVuZGNv
ZGUKLSAqCi0gKiBUIG11c3QgaW1wbGVtZW50IHRoZSBDYW5Cb3Jyb3cgcHJvdG9jb2wg4oCUIGVp
dGhlciBieSBpbmhlcml0aW5nIGZyb20KLSAqIENhbkJvcnJvdywgb3IgYnkgcHJvdmlkaW5nIHNl
dElzQm9ycm93ZWQoKSAvIGNyYXNoSWZCb3Jyb3dlZCgpIGJ5IGhhbmQuCi0gKgotICogQm9ycm93
IGlzIGEgbmV3IGNvbmNlcHQgYW5kIHdlIGFyZSBzdGlsbCB3b3JraW5nIHRocm91Z2ggdGhlIHN0
YXRpYyBhbmFseXNpcwotICogdGhhdCB3aWxsIGVuZm9yY2UgaXQuCi0gKi8KLXRlbXBsYXRlPHR5
cGVuYW1lIFQ+Ci1jbGFzcyBCb3Jyb3cgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJvcnJv
dyk7Ci0gICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047Ci1wdWJsaWM6Ci0gICAgZXhwbGlj
aXQgQm9ycm93KFQmIHJlZikKLSAgICAgICAgOiBtX3JlZihyZWYpCi0gICAgICAgICwgbV9wcmV2
aW91cyhtX3JlZi5zZXRJc0JvcnJvd2VkKHRydWUpKQotICAgIHsKLSAgICAgICAgYXNzZXJ0SXNP
blN0YWNrKCk7Ci0gICAgfQotCi0gICAgZXhwbGljaXQgQm9ycm93KFQqIHB0cikKLSAgICAgICAg
OiBtX3JlZigqcHRyKQotICAgICAgICAsIG1fcHJldmlvdXMobV9yZWYuc2V0SXNCb3Jyb3dlZCh0
cnVlKSkKLSAgICB7Ci0gICAgICAgIGFzc2VydElzT25TdGFjaygpOwotICAgIH0KLQotICAgIH5C
b3Jyb3coKQotICAgIHsKLSAgICAgICAgbV9yZWYuc2V0SXNCb3Jyb3dlZChtX3ByZXZpb3VzKTsK
LSAgICB9Ci0KLSAgICBUJiBnZXQoKSBjb25zdCBMSUZFVElNRV9CT1VORAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fcmVmOwotICAgIH0KLQotICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdCBMSUZF
VElNRV9CT1VORAotICAgIHsKLSAgICAgICAgcmV0dXJuICZtX3JlZjsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgdm9pZCBhc3NlcnRJc09uU3RhY2soKQotICAgIHsKLSNpZiBPUyhEQVJXSU4pICYm
IEFTU0VSVF9FTkFCTEVECi0gICAgICAgIGF1dG8gc2VsZiA9IHB0aHJlYWRfc2VsZigpOwotICAg
ICAgICB2b2lkKiBvcmlnaW4gPSBwdGhyZWFkX2dldF9zdGFja2FkZHJfbnAoc2VsZik7Ci0gICAg
ICAgIHJsaW1fdCBzaXplID0gcHRocmVhZF9nZXRfc3RhY2tzaXplX25wKHNlbGYpOwotCi0gICAg
ICAgIEFTU0VSVChvcmlnaW4sIHRoaXMgPCBvcmlnaW4pOwotICAgICAgICBBU1NFUlQoc2l6ZSwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9yaWdpbikgLSByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4odGhpcykgPCBzaXplKTsKLSNlbmRpZgotICAgIH0KLQotICAgIFQmIG1fcmVmOwot
ICAgIGJvb2wgbV9wcmV2aW91cyB7IGZhbHNlIH07Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotaW5saW5lIEJvcnJvdzxUPiBib3Jyb3coVCYgcmVmKQotewotICAgIHJldHVybiBCb3Jyb3c8
VD4ocmVmKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSBCb3Jyb3c8VD4gYm9y
cm93KFQqIHB0cikKLXsKLSAgICByZXR1cm4gQm9ycm93PFQ+KHB0cik7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdURgotCi11c2luZyBXVEY6OkJvcnJvdzsKLXVzaW5nIFdURjo6Ym9ycm93OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCA1YWU4Nzk5ODdhZmMuLjM0YTBmMjNjNDdiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQKQEAgLTI5LDcgKzI5LDYgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAg
IEJsb2NrUHRyLmgKICAgICBCbG9vbUZpbHRlci5oCiAgICAgQm9vbGVhbkxhdHRpY2UuaAotICAg
IEJvcnJvdy5oCiAgICAgQm94LmgKICAgICBCb3hQdHIuaAogICAgIEJyaWdhbmQuaApAQCAtMzgs
MTEgKzM3LDEwIEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBCdXR0ZXJmbHlBcnJheS5o
CiAgICAgQnl0ZU9yZGVyLmgKICAgICBDUFVUaW1lLmgKKyAgICBDYW5NYWtlV2Vha1B0ci5oCiAg
ICAgQ2FnZWRQdHIuaAogICAgIENhZ2VkVW5pcXVlUHRyLmgKICAgICBDYWxsYmFja0FnZ3JlZ2F0
b3IuaAotICAgIENhbkJvcnJvdy5oCi0gICAgQ2FuTWFrZVdlYWtQdHIuaAogICAgIENhbmNlbGxh
YmxlVGFzay5oCiAgICAgQ2hlY2tlZEFyaXRobWV0aWMuaAogICAgIENoZWNrZWRQdHIuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ2FuQm9ycm93LmggYi9Tb3VyY2UvV1RGL3d0Zi9DYW5C
b3Jyb3cuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUyMmE4OTc0N2I3Li4wMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvQ2FuQm9ycm93LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDI2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx1
dGlsaXR5PgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBCb3Jyb3c7Ci0KLS8qKgotICogQGJyaWVmIENh
bkJvcnJvdyBpcyBhIGJhc2UgY2xhc3MgdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBCb3Jyb3c8
VD4uCi0gKgotICogSW5oZXJpdGluZyBmcm9tIENhbkJvcnJvdyBnaXZlcyBhIGNsYXNzIHRoZSBi
b29ra2VlcGluZyBuZWVkZWQgYnkgQm9ycm93OgotICogYSBib29sZWFuIGZsYWcgdGhhdCB0cmFj
a3Mgd2hldGhlciB0aGUgb2JqZWN0IGlzIGN1cnJlbnRseSBib3Jyb3dlZCwgYW5kIGEKLSAqIGRl
c3RydWN0b3IgdGhhdCBjcmFzaGVzIGlmIHRoZSBvYmplY3QgaXMgZGVzdHJveWVkIHdoaWxlIGJv
cnJvd2VkLgotICoKLSAqIENsYXNzZXMgdGhhdCB3YW50IHRpZ2h0ZXIgY29udHJvbCBvdmVyIG1l
bW9yeSBsYXlvdXQgbWF5IGltcGxlbWVudCB0aGUKLSAqIENhbkJvcnJvdyBwcm90b2NvbCBieSBo
YW5kIChwcm92aWRpbmcgc2V0SXNCb3Jyb3dlZCgpIGFuZAotICogY3Jhc2hJZkJvcnJvd2VkKCkp
IGluc3RlYWQgb2YgaW5oZXJpdGluZyBmcm9tIHRoaXMgY2xhc3MuCi0gKgotICogQGNvZGUKLSAq
IGNsYXNzIE15Q29udGFpbmVyIDogcHVibGljIENhbkJvcnJvdyB7Ci0gKiAgICAgdm9pZCBtdXRh
dGUoKSB7Ci0gKiAgICAgICAgIGNyYXNoSWZCb3Jyb3dlZCgpOyAvLyBFbnN1cmUgbm8gb3V0c3Rh
bmRpbmcgQm9ycm93IGJlZm9yZSBtdXRhdGluZy4KLSAqICAgICAgICAgLy8gLi4uIGRlc3RydWN0
aXZlIG9wZXJhdGlvbiAuLi4KLSAqICAgICB9Ci0gKiB9OwotICogQGVuZGNvZGUKLSAqCi0gKiBA
c2VlIEJvcnJvdwotICovCi1jbGFzcyBDYW5Cb3Jyb3cgewotcHVibGljOgotICAgIH5DYW5Cb3Jy
b3coKQotICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1faXNCb3Jyb3dlZCk7Ci0gICAg
fQotCi0gICAgdm9pZCBjcmFzaElmQm9ycm93ZWQoKQotICAgIHsKLSAgICAgICAgUkVMRUFTRV9B
U1NFUlQoIW1faXNCb3Jyb3dlZCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGZyaWVuZCBjbGFzcyBCb3Jyb3c7Ci0KLSAgICBib29sIHNldElzQm9ycm93ZWQo
Ym9vbCBpc0JvcnJvd2VkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9p
c0JvcnJvd2VkLCBpc0JvcnJvd2VkKTsKLSAgICB9Ci0KLSAgICBib29sIG1faXNCb3Jyb3dlZCB7
IGZhbHNlIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpDYW5Cb3Jy
b3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIuaCBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0J1ZmZlci5oCmluZGV4IDY2ZjJhYjRiY2EyNy4uMDU1M2RkZDMwOTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9CdWZmZXIuaApAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCA8V2ViR1BVL1dl
YkdQVS5oPgogI2ltcG9ydCA8V2ViR1BVL1dlYkdQVUV4dC5oPgogI2ltcG9ydCA8dXRpbGl0eT4K
LSNpbXBvcnQgPHd0Zi9DYW5Cb3Jyb3cuaD4KICNpbXBvcnQgPHd0Zi9Db21waWxlci5oPgogI2lt
cG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvRmFzdE1hbGxvYy5o
PgpAQCAtNTYsNyArNTUsNyBAQCBjbGFzcyBDb21tYW5kRW5jb2RlcjsKIGNsYXNzIERldmljZTsK
IAogLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dwdXdlYi8jZ3B1YnVmZmVyCi1jbGFzcyBC
dWZmZXIgOiBwdWJsaWMgV0dQVUJ1ZmZlckltcGwsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZEFuZENhbk1ha2VUaHJlYWRTYWZlV2Vha1B0cjxCdWZmZXI+LCBwdWJsaWMgQ2FuQm9ycm93LCBw
dWJsaWMgVHJhY2tlZFJlc291cmNlIHsKK2NsYXNzIEJ1ZmZlciA6IHB1YmxpYyBXR1BVQnVmZmVy
SW1wbCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkQW5kQ2FuTWFrZVRocmVhZFNhZmVXZWFr
UHRyPEJ1ZmZlcj4sIHB1YmxpYyBUcmFja2VkUmVzb3VyY2UgewogICAgIFdURl9NQUtFX1RaT05F
X0FMTE9DQVRFRChCdWZmZXIpOwogcHVibGljOgogICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1aW50
OF90OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCmluZGV4IDc5NTFmMWM0MGRjYS4uNTM3MjkwZjlmY2Vl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KKysrIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCkBAIC0zMCw3ICszMCw2IEBACiAjaW1wb3J0ICJDb21t
YW5kQnVmZmVyLmgiCiAjaW1wb3J0ICJEZXZpY2UuaCIKIAotI2ltcG9ydCA8d3RmL0JvcnJvdy5o
PgogI2ltcG9ydCA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvVFpvbmVNYWxsb2NJbmxpbmVzLmg+CkBAIC0yNDMsOCAr
MjQyLDYgQEAgdm9pZCBCdWZmZXI6OnNldENvbW1hbmRFbmNvZGVyKENvbW1hbmRFbmNvZGVyJiBj
b21tYW5kRW5jb2RlciwgYm9vbCBtYXlNb2RpZnlCdWYKIAogdm9pZCBCdWZmZXI6OmRlc3Ryb3ko
KQogewotICAgIGNyYXNoSWZCb3Jyb3dlZCgpOwotCiAgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0
aHViLmlvL2dwdXdlYi8jZG9tLWdwdWJ1ZmZlci1kZXN0cm95CiAKICAgICBpZiAobV9zdGF0ZSAh
PSBTdGF0ZTo6VW5tYXBwZWQgJiYgbV9zdGF0ZSAhPSBTdGF0ZTo6RGVzdHJveWVkKSB7CkBAIC0y
OTIsNyArMjg5LDcgQEAgc3RhdGljIHNpemVfdCBOT0RFTEVURSBjb21wdXRlUmFuZ2VTaXplKHVp
bnQ2NF90IHNpemUsIHNpemVfdCBvZmZzZXQpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVy
biByZXN1bHQudmFsdWUoKTsKIH0KLQorICAKIHN0ZDo6c3Bhbjx1aW50OF90PiBCdWZmZXI6Omdl
dE1hcHBlZFJhbmdlKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplKQogewogI2lmIEVOQUJMRShX
RUJHUFVfU1dJRlQpCkBAIC01MjIsMTcgKzUxOSwxNyBAQCB2b2lkIEJ1ZmZlcjo6dGFrZVNsb3dJ
bmRleFZhbGlkYXRpb25QYXRoKENvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIsIHVpbnQzMl90
CiAgICAgICAgIHZlcmlmaWVkID0gdmVyaWZ5SW5kZXhCdWZmZXJEYXRhPHVpbnQzMl90PihtX2J1
ZmZlciwgZmlyc3RJbmRleCwgaW5kZXhDb3VudCwgdmVydGV4Q291bnQsIHByaW1pdGl2ZU9mZnNl
dCk7CiAKICAgICBpZiAoIXZlcmlmaWVkKSB7Ci0gICAgICAgIFNVUFBSRVNTX1VOQ09VTlRFRF9B
UkcgVmVjdG9yPHVpbnQ4X3Q+IHByaW9yRGF0YSA9IGJvcnJvdyh0aGlzKS0+Z2V0QnVmZmVyQ29u
dGVudHMoKTsKLQorICAgICAgICBhdXRvIHByaW9yRGF0YSA9IGdldEJ1ZmZlckNvbnRlbnRzKCk7
CiAgICAgICAgIHF1ZXVlLT5jbGVhckJ1ZmZlcihtX2J1ZmZlcik7CiAgICAgICAgIHF1ZXVlLT5m
aW5hbGl6ZUJsaXRDb21tYW5kRW5jb2RlcigpOwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiAgICAgICAgIGlmIChtX2J1ZmZlci5zdG9yYWdlTW9kZSA9PSBNVExT
dG9yYWdlTW9kZU1hbmFnZWQpCiAgICAgICAgICAgICBbbV9idWZmZXIgZGlkTW9kaWZ5UmFuZ2U6
TlNNYWtlUmFuZ2UoMCwgbV9idWZmZXIubGVuZ3RoKV07CiAjZW5kaWYKLSAgICAgICAgY29tbWFu
ZEJ1ZmZlci5hZGRQb3N0Q29tbWl0SGFuZGxlcihbcXVldWUsIHByaW9yRGF0YSA9IFdURjo6bW92
ZShwcmlvckRhdGEpLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oaWQ8TVRMQ29tbWFu
ZEJ1ZmZlcj4gbXRsQ29tbWFuZEJ1ZmZlcikgbXV0YWJsZSB7CisgICAgICAgIGNvbW1hbmRCdWZm
ZXIuYWRkUG9zdENvbW1pdEhhbmRsZXIoW3F1ZXVlLCBwcmlvckRhdGEsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShpZDxNVExDb21tYW5kQnVmZmVyPiBtdGxDb21tYW5kQnVmZmVyKSB7
CiAgICAgICAgICAgICBbbXRsQ29tbWFuZEJ1ZmZlciB3YWl0VW50aWxDb21wbGV0ZWRdOwotICAg
ICAgICAgICAgcXVldWUtPndyaXRlQnVmZmVyKCpwcm90ZWN0ZWRUaGlzLnB0cigpLCAwLCBwcmlv
ckRhdGEubXV0YWJsZVNwYW4oKSk7CisKKyAgICAgICAgICAgIHF1ZXVlLT53cml0ZUJ1ZmZlcigq
cHJvdGVjdGVkVGhpcy5wdHIoKSwgMCwgcHJpb3JEYXRhKTsKICAgICAgICAgfSk7CiAgICAgfQog
fQpAQCAtNTU4LDE4ICs1NTUsMTcgQEAgdm9pZCBCdWZmZXI6OnRha2VTbG93SW5kaXJlY3RJbmRl
eFZhbGlkYXRpb25QYXRoKENvbW1hbmRCdWZmZXImIGNvbW1hbmRCdWZmZXIsIEIKICAgICAgICAg
dmVyaWZpZWQgPSB2ZXJpZnlJbmRleEJ1ZmZlckRhdGE8dWludDMyX3Q+KGFwaUluZGV4QnVmZmVy
LmJ1ZmZlcigpLCBhcmdzLmluZGV4U3RhcnQsIGFyZ3MuaW5kZXhDb3VudCwgbWluVmVydGV4Q291
bnQgPiBzdGF0aWNfY2FzdDxpbnQ2NF90PihhcmdzLmJhc2VWZXJ0ZXgpID8gbWluVmVydGV4Q291
bnQgLSBhcmdzLmJhc2VWZXJ0ZXggOiAwLCBwcmltaXRpdmVPZmZzZXQpOwogCiAgICAgaWYgKCF2
ZXJpZmllZCkgewotICAgICAgICBTVVBQUkVTU19VTkNPVU5URURfQVJHIFZlY3Rvcjx1aW50OF90
PiBwcmlvckRhdGEgPSBib3Jyb3codGhpcyktPmdldEJ1ZmZlckNvbnRlbnRzKCk7Ci0KKyAgICAg
ICAgYXV0byBwcmlvckRhdGEgPSBnZXRCdWZmZXJDb250ZW50cygpOwogICAgICAgICBxdWV1ZS0+
Y2xlYXJCdWZmZXIobV9idWZmZXIsIGluZGlyZWN0T2Zmc2V0LCBzaXplb2YoTVRMRHJhd1ByaW1p
dGl2ZXNJbmRpcmVjdEFyZ3VtZW50cykpOwogICAgICAgICBxdWV1ZS0+ZmluYWxpemVCbGl0Q29t
bWFuZEVuY29kZXIoKTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQogICAgICAgICBpZiAobV9idWZmZXIuc3RvcmFnZU1vZGUgPT0gTVRMU3RvcmFnZU1vZGVNYW5h
Z2VkKQogICAgICAgICAgICAgW21fYnVmZmVyIGRpZE1vZGlmeVJhbmdlOk5TTWFrZVJhbmdlKDAs
IG1fYnVmZmVyLmxlbmd0aCldOwogI2VuZGlmCi0gICAgICAgIGNvbW1hbmRCdWZmZXIuYWRkUG9z
dENvbW1pdEhhbmRsZXIoW3F1ZXVlLCBwcmlvckRhdGEgPSBXVEY6Om1vdmUocHJpb3JEYXRhKSwg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGlkPE1UTENvbW1hbmRCdWZmZXI+IG10bENv
bW1hbmRCdWZmZXIpIG11dGFibGUgeworICAgICAgICBjb21tYW5kQnVmZmVyLmFkZFBvc3RDb21t
aXRIYW5kbGVyKFtxdWV1ZSwgcHJpb3JEYXRhLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fV0oaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gbXRsQ29tbWFuZEJ1ZmZlcikgewogICAgICAgICAgICAg
W210bENvbW1hbmRCdWZmZXIgd2FpdFVudGlsQ29tcGxldGVkXTsKIAotICAgICAgICAgICAgcXVl
dWUtPndyaXRlQnVmZmVyKCpwcm90ZWN0ZWRUaGlzLnB0cigpLCAwLCBwcmlvckRhdGEubXV0YWJs
ZVNwYW4oKSk7CisgICAgICAgICAgICBxdWV1ZS0+d3JpdGVCdWZmZXIoKnByb3RlY3RlZFRoaXMu
cHRyKCksIDAsIHByaW9yRGF0YSk7CiAgICAgICAgIH0pOwogICAgIH0KIH0KQEAgLTU5NSw4ICs1
OTEsNyBAQCB2b2lkIEJ1ZmZlcjo6dGFrZVNsb3dJbmRpcmVjdFZhbGlkYXRpb25QYXRoKENvbW1h
bmRCdWZmZXImIGNvbW1hbmRCdWZmZXIsIHVpbnQ2NAogICAgIGJvb2wgdmVyaWZpZWQgPSB2ZXJp
ZnlJbmRpcmVjdEJ1ZmZlckRhdGEoYXJncywgbWluVmVydGV4Q291bnQsIG1pbkluc3RhbmNlQ291
bnQpOwogCiAgICAgaWYgKCF2ZXJpZmllZCkgewotICAgICAgICBTVVBQUkVTU19VTkNPVU5URURf
QVJHIFZlY3Rvcjx1aW50OF90PiBwcmlvckRhdGEgPSBib3Jyb3codGhpcyktPmdldEJ1ZmZlckNv
bnRlbnRzKCk7Ci0KKyAgICAgICAgYXV0byBwcmlvckRhdGEgPSBnZXRCdWZmZXJDb250ZW50cygp
OwogICAgICAgICBNVExEcmF3UHJpbWl0aXZlc0luZGlyZWN0QXJndW1lbnRzIGRhdGEgPSB7CiAg
ICAgICAgICAgICAudmVydGV4Q291bnQgPSBzdGQ6Om1pbihhcmdzLnZlcnRleENvdW50LCBtaW5W
ZXJ0ZXhDb3VudCksCiAgICAgICAgICAgICAuaW5zdGFuY2VDb3VudCA9IHN0ZDo6bWluKGFyZ3Mu
aW5zdGFuY2VDb3VudCwgbWluSW5zdGFuY2VDb3VudCksCkBAIC02MTAsMTAgKzYwNSwxMCBAQCB2
b2lkIEJ1ZmZlcjo6dGFrZVNsb3dJbmRpcmVjdFZhbGlkYXRpb25QYXRoKENvbW1hbmRCdWZmZXIm
IGNvbW1hbmRCdWZmZXIsIHVpbnQ2NAogICAgICAgICBpZiAobV9idWZmZXIuc3RvcmFnZU1vZGUg
PT0gTVRMU3RvcmFnZU1vZGVNYW5hZ2VkKQogICAgICAgICAgICAgW21fYnVmZmVyIGRpZE1vZGlm
eVJhbmdlOk5TTWFrZVJhbmdlKDAsIG1fYnVmZmVyLmxlbmd0aCldOwogI2VuZGlmCi0gICAgICAg
IGNvbW1hbmRCdWZmZXIuYWRkUG9zdENvbW1pdEhhbmRsZXIoW3F1ZXVlLCBwcmlvckRhdGEgPSBX
VEY6Om1vdmUocHJpb3JEYXRhKSwgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGlkPE1U
TENvbW1hbmRCdWZmZXI+IG10bENvbW1hbmRCdWZmZXIpIG11dGFibGUgeworICAgICAgICBjb21t
YW5kQnVmZmVyLmFkZFBvc3RDb21taXRIYW5kbGVyKFtxdWV1ZSwgcHJpb3JEYXRhLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4gbXRsQ29tbWFuZEJ1
ZmZlcikgewogICAgICAgICAgICAgW210bENvbW1hbmRCdWZmZXIgd2FpdFVudGlsQ29tcGxldGVk
XTsKIAotICAgICAgICAgICAgcXVldWUtPndyaXRlQnVmZmVyKCpwcm90ZWN0ZWRUaGlzLnB0cigp
LCAwLCBwcmlvckRhdGEubXV0YWJsZVNwYW4oKSk7CisgICAgICAgICAgICBxdWV1ZS0+d3JpdGVC
dWZmZXIoKnByb3RlY3RlZFRoaXMucHRyKCksIDAsIHByaW9yRGF0YSk7CiAgICAgICAgIH0pOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggMzFkNGE5NTA3M2M2Li5iYzQyNzBkZWJm
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0zNSwxOCArMzUsMTYgQEAKICNpbXBvcnQgIk1l
dGFsU1BJLmgiCiAjaW1wb3J0ICJUZXh0dXJlLmgiCiAjaW1wb3J0ICJUZXh0dXJlVmlldy5oIgot
I2ltcG9ydCA8c2ltZC9zaW1kLmg+Ci0jaW1wb3J0IDx3dGYvQm9ycm93Lmg+Ci0jaW1wb3J0IDx3
dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KLSNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNp
bXBvcnQgPHd0Zi9UWm9uZU1hbGxvY0lubGluZXMuaD4KLQogI2lmIEVOQUJMRShXRUJHUFVfU1dJ
RlQpCiAjaW1wb3J0ICJDeHhCcmlkZ2luZy5oIgogI2ltcG9ydCA8V2ViR1BVL0N4eEJyaWRnaW5n
UHVibGljLmg+CiAjaW1wb3J0IDxXZWJHUFUvV0dQVVRleHR1cmVJbXBsLmg+CiAjaW1wb3J0ICJX
ZWJHUFVTd2lmdC1HZW5lcmF0ZWQuaCIKICNlbmRpZgorI2ltcG9ydCA8c2ltZC9zaW1kLmg+Cisj
aW1wb3J0IDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KKyNpbXBvcnQgPHd0Zi9UWm9uZU1hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdl
YkdQVSB7CiAKQEAgLTU2MywxMSArNTYxLDExIEBAIHZvaWQgUXVldWU6OndyaXRlQnVmZmVyKEJ1
ZmZlciYgYnVmZmVyLCB1aW50NjRfdCBidWZmZXJPZmZzZXQsIHN0ZDo6c3Bhbjx1aW50OF90CiAg
ICAgaWYgKGlzSWRsZSgpKSB7CiAgICAgICAgIHN3aXRjaCAoYnVmZmVyLmJ1ZmZlcigpLnN0b3Jh
Z2VNb2RlKSB7CiAgICAgICAgIGNhc2UgTVRMU3RvcmFnZU1vZGVTaGFyZWQ6Ci0gICAgICAgICAg
ICBTVVBQUkVTU19VTkNPVU5URURfQVJHIG1lbWNweVNwYW4oYm9ycm93KGJ1ZmZlciktPmdldEJ1
ZmZlckNvbnRlbnRzKCkuc3Vic3BhbihidWZmZXJPZmZzZXQsIGRhdGEuc2l6ZSgpKSwgZGF0YSk7
CisgICAgICAgICAgICBtZW1jcHlTcGFuKGJ1ZmZlci5nZXRCdWZmZXJDb250ZW50cygpLnN1YnNw
YW4oYnVmZmVyT2Zmc2V0LCBkYXRhLnNpemUoKSksIGRhdGEpOwogICAgICAgICAgICAgcmV0dXJu
OwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgICAgIGNh
c2UgTVRMU3RvcmFnZU1vZGVNYW5hZ2VkOgotICAgICAgICAgICAgU1VQUFJFU1NfVU5DT1VOVEVE
X0FSRyBtZW1jcHlTcGFuKGJvcnJvdyhidWZmZXIpLT5nZXRCdWZmZXJDb250ZW50cygpLnN1YnNw
YW4oYnVmZmVyT2Zmc2V0LCBkYXRhLnNpemUoKSksIGRhdGEpOworICAgICAgICAgICAgbWVtY3B5
U3BhbihidWZmZXIuZ2V0QnVmZmVyQ29udGVudHMoKS5zdWJzcGFuKGJ1ZmZlck9mZnNldCwgZGF0
YS5zaXplKCkpLCBkYXRhKTsKICAgICAgICAgICAgIFtidWZmZXIuYnVmZmVyKCkgZGlkTW9kaWZ5
UmFuZ2U6TlNNYWtlUmFuZ2UoYnVmZmVyT2Zmc2V0LCBkYXRhLnNpemUoKSldOwogICAgICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dlYmdwdS9y
ZWdyZXNzaW9uL3JlcHJvXzE3MzI2NjQ1Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3dlYmdwdS9yZWdyZXNzaW9uL3JlcHJvXzE3MzI2NjQ1Ny1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMWNlMmQyZmQxOC4uMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvd2ViZ3B1L3JlZ3Jlc3Npb24vcmVwcm9fMTczMjY2NDU3LWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBJbmRl
eCBidWZmZXIgY29udGVudHMgYWZ0ZXIgc3VibWlzc2lvbjoKLQotUEFTUyBPdXQtb2Ytb3JkZXIg
Y29tbWFuZCBidWZmZXIgc3VibWlzc2lvbjogaW5kZXggYnVmZmVyIGNvbnRhaW5zIE9PQiB2YWx1
ZXMgYWZ0ZXIgQiBzdWJtaXR0ZWQgYmVmb3JlIEEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC93ZWJncHUvcmVncmVzc2lvbi9yZXByb18xNzMyNjY0NTcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvd2ViZ3B1L3JlZ3Jlc3Npb24vcmVwcm9fMTczMjY2NDU3Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBmZTMxN2EzMDFlZS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvd2ViZ3B1L3JlZ3Jlc3Npb24vcmVwcm9fMTczMjY2NDU3Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVNZXRhbFNoYWRlclZhbGlkYXRpb249dHJ1ZSBdIC0tPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxjYW52YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjQwMCIgaGVp
Z2h0PSIzMDAiPjwvY2FudmFzPgotPHNjcmlwdD4KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
LSAgICBhc3NlcnRfdHJ1ZSghIW5hdmlnYXRvci5ncHUsICJXZWJHUFUgaXMgbm90IHN1cHBvcnRl
ZCIpOwotCi1jb25zdCBhZGFwdGVyID0gYXdhaXQgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRl
cigpOwotYXNzZXJ0X3RydWUoYWRhcHRlciAhPT0gbnVsbCwgIkZhaWxlZCB0byBnZXQgR1BVIGFk
YXB0ZXIiKTsKLQotY29uc3QgZGV2aWNlID0gYXdhaXQgYWRhcHRlci5yZXF1ZXN0RGV2aWNlKCk7
Ci10LmFkZF9jbGVhbnVwKCgpID0+IGRldmljZS5kZXN0cm95KCkpOwotCi1jb25zdCBjYW52YXMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7Ci1jb25zdCBjb250ZXh0ID0gY2Fu
dmFzLmdldENvbnRleHQoIndlYmdwdSIpOwotY29uc3QgZm9ybWF0ID0gbmF2aWdhdG9yLmdwdS5n
ZXRQcmVmZXJyZWRDYW52YXNGb3JtYXQoKTsKLWNvbnRleHQuY29uZmlndXJlKHsgZGV2aWNlLCBm
b3JtYXQsIGFscGhhTW9kZTogInByZW11bHRpcGxpZWQiIH0pOwotCi0vLyBWZXJ0ZXggYnVmZmVy
IOKAlCA0IHZlcnRpY2VzICh4LCB5IGluIGNsaXAgc3BhY2UpLgotLy8gVmFsaWQgaW5kaWNlcyBh
cmUgMOKAkzM7IDMwMDAwIGlzIGd1YXJhbnRlZWQgb3V0LW9mLWJvdW5kcy4KLWNvbnN0IHZlcnRl
eERhdGEgPSBuZXcgRmxvYXQzMkFycmF5KFsKLSAgICAtMC41LCAtMC41LAotICAgICAwLjUsIC0w
LjUsCi0gICAgIDAuNSwgIDAuNSwKLSAgICAtMC41LCAgMC41LAotXSk7Ci1jb25zdCB2ZXJ0ZXhC
dWZmZXIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHsKLSAgICBzaXplOiAgdmVydGV4RGF0YS5ieXRl
TGVuZ3RoLAotICAgIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5WRVJURVggfCBHUFVCdWZmZXJVc2Fn
ZS5DT1BZX0RTVCwKLX0pOwotZGV2aWNlLnF1ZXVlLndyaXRlQnVmZmVyKHZlcnRleEJ1ZmZlciwg
MCwgdmVydGV4RGF0YSk7Ci0KLS8vIEluZGV4IGJ1ZmZlciDigJQgNiB2YWxpZCBpbmRpY2VzIGZv
ciB0d28gdHJpYW5nbGVzLgotLy8gTmVlZHMgQ09QWV9TUkMgc28gd2UgY2FuIHJlYWQgaXQgYmFj
aywgYW5kIENPUFlfRFNUIHNvIGNvbW1hbmQgYnVmZmVyIEIKLS8vIGNhbiBvdmVyd3JpdGUgaXQu
Ci1jb25zdCBJTkRFWF9DT1VOVCAgID0gNjsKLWNvbnN0IE9PQl9WQUxVRSAgICAgPSAzMDAwMDsK
LWNvbnN0IGluaXRpYWxJbmRpY2VzID0gbmV3IFVpbnQzMkFycmF5KFswLCAxLCAyLCAwLCAyLCAz
XSk7Ci1jb25zdCBpbmRleEJ1ZmZlciA9IGRldmljZS5jcmVhdGVCdWZmZXIoewotICAgIHNpemU6
ICBpbml0aWFsSW5kaWNlcy5ieXRlTGVuZ3RoLAotICAgIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5J
TkRFWCB8IEdQVUJ1ZmZlclVzYWdlLkNPUFlfU1JDIHwgR1BVQnVmZmVyVXNhZ2UuQ09QWV9EU1Qs
Ci19KTsKLWRldmljZS5xdWV1ZS53cml0ZUJ1ZmZlcihpbmRleEJ1ZmZlciwgMCwgaW5pdGlhbElu
ZGljZXMpOwotCi0vLyBTdGFnaW5nIGJ1ZmZlciB1c2VkIHRvIHVwbG9hZCB0aGUgb3V0LW9mLWJv
dW5kcyB2YWx1ZXMgaW5zaWRlIGVuY29kZXIgQi4KLWNvbnN0IG9vYkRhdGEgPSBuZXcgVWludDMy
QXJyYXkoSU5ERVhfQ09VTlQpLmZpbGwoT09CX1ZBTFVFKTsKLWNvbnN0IHVwbG9hZEJ1ZmZlciA9
IGRldmljZS5jcmVhdGVCdWZmZXIoewotICAgIHNpemU6ICBvb2JEYXRhLmJ5dGVMZW5ndGgsCi0g
ICAgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLkNPUFlfU1JDIHwgR1BVQnVmZmVyVXNhZ2UuQ09QWV9E
U1QsCi19KTsKLWRldmljZS5xdWV1ZS53cml0ZUJ1ZmZlcih1cGxvYWRCdWZmZXIsIDAsIG9vYkRh
dGEpOwotCi0vLyBSZWFkYmFjayBzdGFnaW5nIGJ1ZmZlci4KLWNvbnN0IHJlYWRiYWNrQnVmZmVy
ID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7Ci0gICAgc2l6ZTogIGluaXRpYWxJbmRpY2VzLmJ5dGVM
ZW5ndGgsCi0gICAgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLkNPUFlfRFNUIHwgR1BVQnVmZmVyVXNh
Z2UuTUFQX1JFQUQsCi19KTsKLQotLy8gUmVuZGVyIHBpcGVsaW5lLgotY29uc3Qgc2hhZGVyTW9k
dWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Ci0gICAgY29kZTogYAotICAgICAgICBA
dmVydGV4Ci0gICAgICAgIGZuIHZzX21haW4oQGxvY2F0aW9uKDApIHBvczogdmVjMmYpIC0+IEBi
dWlsdGluKHBvc2l0aW9uKSB2ZWM0ZiB7Ci0gICAgICAgICAgICByZXR1cm4gdmVjNGYocG9zLCAw
LjAsIDEuMCk7Ci0gICAgICAgIH0KLQotICAgICAgICBAZnJhZ21lbnQKLSAgICAgICAgZm4gZnNf
bWFpbigpIC0+IEBsb2NhdGlvbigwKSB2ZWM0ZiB7Ci0gICAgICAgICAgICByZXR1cm4gdmVjNGYo
MC4yLCAwLjYsIDEuMCwgMS4wKTsKLSAgICAgICAgfQotICAgIGAsCi19KTsKLQotY29uc3QgcGlw
ZWxpbmUgPSBkZXZpY2UuY3JlYXRlUmVuZGVyUGlwZWxpbmUoewotICAgIGxheW91dDogImF1dG8i
LAotICAgIHZlcnRleDogewotICAgICAgICBtb2R1bGU6ICAgICBzaGFkZXJNb2R1bGUsCi0gICAg
ICAgIGVudHJ5UG9pbnQ6ICJ2c19tYWluIiwKLSAgICAgICAgYnVmZmVyczogW3sKLSAgICAgICAg
ICAgIGFycmF5U3RyaWRlOiA4LAotICAgICAgICAgICAgYXR0cmlidXRlczogW3sgc2hhZGVyTG9j
YXRpb246IDAsIG9mZnNldDogMCwgZm9ybWF0OiAiZmxvYXQzMngyIiB9XSwKLSAgICAgICAgfV0s
Ci0gICAgfSwKLSAgICBmcmFnbWVudDogewotICAgICAgICBtb2R1bGU6ICAgICBzaGFkZXJNb2R1
bGUsCi0gICAgICAgIGVudHJ5UG9pbnQ6ICJmc19tYWluIiwKLSAgICAgICAgdGFyZ2V0czogW3sg
Zm9ybWF0IH1dLAotICAgIH0sCi0gICAgcHJpbWl0aXZlOiB7IHRvcG9sb2d5OiAidHJpYW5nbGUt
bGlzdCIgfSwKLX0pOwotCi1mb3IgKGxldCBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCAyOyBp
dGVyYXRpb24rKykgewotICAgIC8vIENvbW1hbmQgYnVmZmVyIEEg4oCUIHJlbmRlciBwYXNzIHdp
dGggZHJhd0luZGV4ZWQuCi0gICAgY29uc3QgZW5jb2RlckEgPSBkZXZpY2UuY3JlYXRlQ29tbWFu
ZEVuY29kZXIoKTsKLSAgICB7Ci0gICAgICAgIGNvbnN0IHBhc3MgPSBlbmNvZGVyQS5iZWdpblJl
bmRlclBhc3MoewotICAgICAgICAgICAgY29sb3JBdHRhY2htZW50czogW3sKLSAgICAgICAgICAg
ICAgICB2aWV3OiAgICAgICBjb250ZXh0LmdldEN1cnJlbnRUZXh0dXJlKCkuY3JlYXRlVmlldygp
LAotICAgICAgICAgICAgICAgIGNsZWFyVmFsdWU6IHsgcjogMC4wLCBnOiAwLjAsIGI6IDAuMCwg
YTogMS4wIH0sCi0gICAgICAgICAgICAgICAgbG9hZE9wOiAgICAgImNsZWFyIiwKLSAgICAgICAg
ICAgICAgICBzdG9yZU9wOiAgICAic3RvcmUiLAotICAgICAgICAgICAgfV0sCi0gICAgICAgIH0p
OwotICAgICAgICBwYXNzLnNldFBpcGVsaW5lKHBpcGVsaW5lKTsKLSAgICAgICAgcGFzcy5zZXRW
ZXJ0ZXhCdWZmZXIoMCwgdmVydGV4QnVmZmVyKTsKLSAgICAgICAgcGFzcy5zZXRJbmRleEJ1ZmZl
cihpbmRleEJ1ZmZlciwgInVpbnQzMiIpOwotICAgICAgICBwYXNzLmRyYXdJbmRleGVkKElOREVY
X0NPVU5UKTsKLSAgICAgICAgcGFzcy5lbmQoKTsKLSAgICB9Ci0gICAgY29uc3QgY21kQnVmQSA9
IGVuY29kZXJBLmZpbmlzaCgpOwotCi0gICAgaWYgKGl0ZXJhdGlvbiA9PSAxKSB7Ci0gICAgICAg
IC8vIENvbW1hbmQgYnVmZmVyIEIg4oCUIG92ZXJ3cml0ZXMgZXZlcnkgaW5kZXggaW4gdGhlIGlu
ZGV4IGJ1ZmZlciB3aXRoIDMwMDAwLgotICAgICAgICBjb25zdCBlbmNvZGVyQiA9IGRldmljZS5j
cmVhdGVDb21tYW5kRW5jb2RlcigpOwotICAgICAgICBlbmNvZGVyQi5jb3B5QnVmZmVyVG9CdWZm
ZXIodXBsb2FkQnVmZmVyLCAwLCBpbmRleEJ1ZmZlciwgMCwgb29iRGF0YS5ieXRlTGVuZ3RoKTsK
LSAgICAgICAgY29uc3QgY21kQnVmQiA9IGVuY29kZXJCLmZpbmlzaCgpOwotCi0gICAgICAgIC8v
IFN1Ym1pdCBCIGZpcnN0LCB0aGVuIEEg4oCUIGludGVudGlvbmFsIG91dC1vZi1vcmRlciBzdWJt
aXNzaW9uLgotICAgICAgICBkZXZpY2UucXVldWUuc3VibWl0KFtjbWRCdWZCXSk7Ci0gICAgICAg
IGF3YWl0IGRldmljZS5xdWV1ZS5vblN1Ym1pdHRlZFdvcmtEb25lKCk7Ci0gICAgfQotICAgIGRl
dmljZS5xdWV1ZS5zdWJtaXQoW2NtZEJ1ZkFdKTsKLQotICAgIC8vIENvbW1hbmQgYnVmZmVyIEMg
4oCUIGNvcHkgaW5kZXggYnVmZmVyIHRvIHJlYWRiYWNrIHN0YWdpbmcgYnVmZmVyLgotICAgIC8v
IFN1Ym1pdHRlZCBhZnRlciBBIHNvIGl0IGlzIG9yZGVyZWQgYWZ0ZXIgYm90aCBCIGFuZCBBIG9u
IHRoZSBxdWV1ZS4KLSAgICBjb25zdCBlbmNvZGVyQyA9IGRldmljZS5jcmVhdGVDb21tYW5kRW5j
b2RlcigpOwotICAgIGVuY29kZXJDLmNvcHlCdWZmZXJUb0J1ZmZlcihpbmRleEJ1ZmZlciwgMCwg
cmVhZGJhY2tCdWZmZXIsIDAsIGluaXRpYWxJbmRpY2VzLmJ5dGVMZW5ndGgpOwotICAgIGRldmlj
ZS5xdWV1ZS5zdWJtaXQoW2VuY29kZXJDLmZpbmlzaCgpXSk7Ci0KLSAgICBhd2FpdCBkZXZpY2Uu
cXVldWUub25TdWJtaXR0ZWRXb3JrRG9uZSgpOwotCi0gICAgaWYgKGl0ZXJhdGlvbiA9PSAxKSB7
Ci0gICAgICAgIGF3YWl0IHJlYWRiYWNrQnVmZmVyLm1hcEFzeW5jKEdQVU1hcE1vZGUuUkVBRCk7
Ci0gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50MzJBcnJheShyZWFkYmFja0J1ZmZlci5n
ZXRNYXBwZWRSYW5nZSgpLnNsaWNlKDApKTsKLSAgICAgICAgcmVhZGJhY2tCdWZmZXIudW5tYXAo
KTsKLQotICAgICAgICAvLyBFdmVyeSBpbmRleCBtdXN0IGJlIDMwMDAwIOKAlCB0aGUgb3V0LW9m
LWJvdW5kcyB2YWx1ZSB3cml0dGVuIGJ5IEIuCi0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
SU5ERVhfQ09VTlQ7IGkrKykKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0W2ldLCBP
T0JfVkFMVUUsIGBpbmRleFske2l9XSBzaG91bGQgYmUgJHtPT0JfVkFMVUV9YCk7Ci0KLSAgICAg
ICAgY29uc29sZS5sb2coIkluZGV4IGJ1ZmZlciBjb250ZW50cyBhZnRlciBzdWJtaXNzaW9uOiIs
IEFycmF5LmZyb20ocmVzdWx0KS5qb2luKCIsICIpKTsKLSAgICB9Ci19Ci0KLX0sICJPdXQtb2Yt
b3JkZXIgY29tbWFuZCBidWZmZXIgc3VibWlzc2lvbjogaW5kZXggYnVmZmVyIGNvbnRhaW5zIE9P
QiB2YWx1ZXMgYWZ0ZXIgQiBzdWJtaXR0ZWQgYmVmb3JlIEEiKTsKLTwvc2NyaXB0PgotCi08L2Jv
ZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>